Compare commits

...

1452 Commits

Author SHA1 Message Date
JSS
997011bfb2 markup: expand test coverage and sanitize notice banner output
Add previously covered autolink test cases that were dropped during the
goldmark migration (hosts without dots, https variants, single-digit
issues, cross-repo issues). Add new test suites for link rewriting with
both path-only and absolute URL prefixes, and for HTML passthrough
behavior confirming raw HTML is stripped without WithUnsafe.

Sanitize RawMarkdown output in the server notice banner to prevent
potential XSS, since it was the only call site not passing through
SanitizeBytes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 08:49:17 -05:00
JSS
60f62b6583 markup: address review feedback for goldmark migration
- Use lazyregexp for linkifyURLRegexp to avoid compile-at-init overhead.
- Replace stdlib log with clog/v2 and return HTML-escaped body on
  conversion error instead of nil.
- Handle absolute URL prefixes in linkTransformer using net/url to
  preserve scheme and host.
- Remove goldmarkhtml.WithUnsafe() from RawMarkdown renderer options.
- Use exact assertions in autolink tests instead of Contains.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:28:15 -05:00
deepsource-autofix[bot]
3b7e331191 style: format code with Go fmt and Gofumpt
This commit fixes the style issues introduced in f9b4c5a according to the output
from Go fmt and Gofumpt.

Details: https://github.com/gogs/gogs/pull/8163
2026-02-08 05:48:28 +00:00
Joe Chen
f9b4c5a3ff markup: migrate from blackfriday to goldmark
Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019c3baf-c434-7794-9efd-084363bad1a2
2026-02-08 00:48:11 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
48500aa2b0 all: migrate from satori/go.uuid to google/uuid (#8161) 2026-02-08 00:13:43 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
785157ba1f all: migrate from nfnt/resize to golang.org/x/image/draw (#8158) 2026-02-08 00:08:50 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
1c8016a27b database/schemadoc: migrate to github.com/DATA-DOG/go-sqlmock (#8157) 2026-02-08 00:07:45 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
00c36d8d8a public: update jQuery from 3.6.0 to 3.7.1 (#8156) 2026-02-07 23:48:49 -05:00
Copilot
3747cd9058 Fix broken links in docs/getting-started/introduction.mdx (#8155)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-02-07 18:19:02 -05:00
Joe Chen
08e7cfd76c docs: fix up wwads-cn style in dark mode
[skip ci]
2026-02-07 17:49:58 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
9dd3e58f7b docs: migrate to Mintlify (#8154) 2026-02-07 17:32:52 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
edc1478f6b cmd: remove cert subcommand (#8153)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:23:33 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
bb86d12c36 cmd: show detected config path in web command help (#8152)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:38:53 -05:00
Copilot
bf17cc6c69 Replace github.com/unknwon/com with stdlib and internal helpers (#8148)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 22:08:54 -05:00
Copilot
6d56105f8f Run modernize tool across codebase (#8147)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2026-02-05 21:32:09 -05:00
Joe Chen
ed5d02e036 chore: free up "docs/" subdir for Mintlify
[skip ci]
2026-02-01 23:15:47 -05:00
dependabot[bot]
5874791a57 mod: bump golang.org/x/crypto from 0.45.0 to 0.47.0 (#8141)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-01 09:20:24 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
17ad3d3425 pkgr: fix up install main package path (#8146) 2026-02-01 09:12:12 -05:00
dependabot[bot]
9b2a967e45 mod: bump github.com/editorconfig/editorconfig-core-go/v2 from 2.6.3 to 2.6.4 (#8143)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-01 09:01:09 -05:00
dependabot[bot]
e80635a449 mod: bump github.com/go-ldap/ldap/v3 from 3.4.11 to 3.4.12 (#8144)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-01 09:00:50 -05:00
Joe Chen
47bccf292d pkgr: fix up install path
[skip ci]
2026-02-01 08:53:52 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
38def73489 Update security policy for version support and advisories
[skip ci]
2026-02-01 08:16:22 -05:00
Copilot
6cf6422b88 Remove codecov config and upload in CI (#8145)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: unknwon <2946214+unknwon@users.noreply.github.com>
2026-02-01 08:10:55 -05:00
dependabot[bot]
8d8d66ec1d mod: bump github.com/olekukonko/tablewriter from 1.1.0 to 1.1.3 (#8140)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-01 07:45:08 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
7ea2c4093f refactor: move main package from root to cmd/gogs (#8139)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:28:48 -05:00
dependabot[bot]
7ebfb202e4 mod: bump github.com/olekukonko/tablewriter from 0.0.5 to 1.1.0 (#8039)
Co-authored-by: Joe Chen <jc@unknwon.io>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:11:08 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
7b8c560f15 ci(go): use tparse for test output in non-Windows jobs (#8138)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 22:58:41 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
a636dcf678 fix(release): remove "v" prefix from archive names (#8137)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 22:42:45 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
3dcb74be39 release: cut CHANGELOG entries for 0.14.1
[skip ci]
2026-01-31 22:23:09 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
7ad425025e fix(ssh): git clone via built-in SSH server hangs (#8135)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 22:20:43 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
85abee4b9b chore: update release templates (#8134)
[skip ci]
2026-01-31 20:08:38 -05:00
Joe Chen
997c3c5eab chore: take care of legacy code 2026-01-31 20:07:49 -05:00
Joe Chen
a5ddb2665e chore: bump dev version to 0.15
[skip ci]
2026-01-31 20:04:55 -05:00
Joe Chen
b68e6886c6 release: cut CHANGELOG entries for 0.14.0
[skip ci]
2026-01-31 16:29:15 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
ac7ba9c8a7 locale: sync from Crowdin (#8131) 2026-01-31 16:07:47 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
dd862ee058 ci(docker): auto-tag minor version for stable releases (#8129)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 15:50:42 -05:00
Joe Chen
f94042ce6f chore: update release templates
[skip ci]
2026-01-31 15:17:59 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
628216d588 security: require authentication for attachment uploads (#8128)
https://github.com/gogs/gogs/security/advisories/GHSA-fc3h-92p8-h36f

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 14:40:39 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
7306b955a9 ci: use external unknwon/send-email-on-failure action (#8127) 2026-01-31 13:29:30 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
fc6d1e2055 ci(release): add email notification on failure for main branch (#8126)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 13:13:51 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
3b01892d85 fix(docker): correct binary path in Dockerfiles(#8125)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 13:02:25 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
7b7e38c880 security: prevent deletion of protected and default branches via web UI (#8124)
https://github.com/gogs/gogs/security/advisories/GHSA-2c6v-8r3v-gh6p

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 12:51:07 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
bb68c0a042 security: fix cross-repository label modification vulnerability (#8123)
https://github.com/gogs/gogs/security/advisories/GHSA-cv22-72px-f4gh

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 12:28:30 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
68271e6af0 chore: update vulnerability reporting guidelines
[skip ci]
2026-01-31 12:01:23 -05:00
Copilot
4f5b00f8c4 Build artifacts for every commit on main (#8122)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 11:58:45 -05:00
Joe Chen
5d3ffd132b chore: bunch of minor tidy-ups
[skip ci]
2026-01-31 09:59:32 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
ee65aa89ca ci: add cross-compilation workflow for releases (#8121)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 09:40:32 -05:00
dependabot[bot]
a1a97de76f mod: bump modernc.org/sqlite from 1.38.2 to 1.39.0 (#8038)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-30 23:19:19 -05:00
Matthias Jobst
9963268267 docker: ignore proxy for healthcheck command (#7532)
Co-authored-by: Joe Chen <jc@unknwon.io>
2026-01-30 23:12:49 -05:00
dependabot[bot]
49a45290ae mod: bump gopkg.in/macaron.v1 from 1.5.0 to 1.5.1 (#8035)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ᴊᴏᴇ ᴄʜᴇɴ <jc@unknwon.io>
2026-01-30 23:10:14 -05:00
Yaroslav Halchenko
3cc8e7aa6d Fix typos throughout the codebase (#7514) 2026-01-30 23:03:05 -05:00
Rajat Jain
9f1499f3ab Support comparing tags in addition to branches (#6493)
Co-authored-by: Joe Chen <jc@unknwon.io>
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-30 22:45:03 -05:00
Jeff Li
77dba1b5ea repo: fix 500 error on watchers and stargazers pages using MSSQL (#6386)
Co-authored-by: Joe Chen <jc@unknwon.io>
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-30 22:24:43 -05:00
Georg Wicke-Arndt
f70f29fdb0 Show file name in browser tab title when viewing files (#5896) 2026-01-30 22:11:10 -05:00
Joe Chen
ed6109d35d chore: update AGENTS.md
[skip ci]
2026-01-30 22:01:02 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
54e08ba678 docker: add image versions instructions
[skip ci]
2026-01-30 21:52:31 -05:00
Sino
87c8faaf08 Standardize HTTP status codes (#7851)
Co-authored-by: Joe Chen <jc@unknwon.io>
2026-01-30 09:27:59 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
1b226ca48d repo: improve authz for resources (#8119)
https://github.com/gogs/gogs/security/advisories/GHSA-jj5m-h57j-5gv7
2026-01-29 20:56:09 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
e3bb4165dc database: impersonate pure-Go SQLite driver as the old "sqlite3" (#8118) 2026-01-29 14:49:36 -05:00
pikomonde
df3d945a2c config: validate and print warnings for invalid options (#7705)
Co-authored-by: Joe Chen <jc@unknwon.io>
2026-01-28 11:36:03 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
ae41bab5f2 repo: always list tree entries with verbatim (#8116)
Co-authored-by: Ali <alicse3@gmail.com>
2026-01-28 10:11:30 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
2316b09eaf database: fully switch over to pure-Go SQLite driver (#8115) 2026-01-27 22:45:50 -05:00
Copilot
3477bbac0e Add ED25519 test coverage and refactor SSH key parsing tests (#8107)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: unknwon <2946214+unknwon@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 14:04:12 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
bb3cab921b chore: update release template (#8110)
[skip ci]
2026-01-24 23:07:27 -05:00
Copilot
1cdeef2ce8 Replace tool.IsMaliciousPath with pathutil.Clean and move IsSameSite to urlutil (#8106) 2026-01-23 21:13:27 -05:00
Joe Chen
a7bc1637db chore: update AGENTS.md
[skip ci]
2026-01-23 12:20:51 -05:00
Joe Chen
f1102a7a7c release: cut CHANGELOG entries for 0.13.4
[skip ci]
2026-01-23 10:13:11 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
26ef07f60d repo: validate Git server hook name for editing (#8103) 2026-01-23 09:40:36 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
ca59e76a53 api: verify write access to update repo content (#8102) 2026-01-23 09:19:11 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
27f1250d00 api: verify owner access to delete repos (#8101) 2026-01-22 22:52:57 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
560f92ec5f two_factor: verify recovery code ownership upon using (#8100) 2026-01-22 22:30:27 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
1bbc36149a wiki: sanitize old wiki page name when editing (#8099) 2026-01-22 11:00:27 -05:00
Copilot
4ee706b2bf chore: replace pkg/errors with cockroachdb/errors (#8098)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: unknwon <2946214+unknwon@users.noreply.github.com>
2026-01-22 08:20:53 -05:00
Copilot
ae59787ff5 chore: remove internal/database/errors package (#8096) 2026-01-22 07:17:34 -05:00
Copilot
389ec54b2c chore: rename osutil.IsExist to osutil.Exist (#8097) 2026-01-21 22:22:07 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
5544212adb wiki: auto-detect default branch (#8094) 2026-01-20 23:38:10 -05:00
Joe Chen
6e1e4cb848 chore: update AGENTS.md
[skip ci]
2026-01-19 22:13:49 -05:00
deepsource-autofix[bot]
8e08450182 style: format code with Go fmt and Gofumpt (#8092) 2026-01-19 14:54:13 -05:00
Shivam Kumar
beeeb64969 repo: check directory existence before creation (#8091)
Co-authored-by: ᴊᴏᴇ ᴄʜᴇɴ <jc@unknwon.io>
2026-01-19 14:36:38 -05:00
Mukaiu
3ef71a43d9 api: fix nil pointer dereference when listing user repos (#8069)
Co-authored-by: Joe Chen <jc@unknwon.io>
2026-01-18 21:01:03 -05:00
Joe Chen
e44284fada chore: add AGENTS.md
[skip ci]
2026-01-18 21:00:19 -05:00
Shivam Kumar
b7010084b7 auth: support redirecting to custom URL upon sign out (#8089)
Co-authored-by: ᴊᴏᴇ ᴄʜᴇɴ <jc@unknwon.io>
2026-01-16 15:44:26 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
b8ab712819 chore: update pull request template checklist
[skip ci]
2026-01-16 14:38:59 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
59e9fa191b chore: remove all MIT license file headers (#8083)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2026-01-08 19:32:15 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
553707f3fd repository: reject any updates that has symlink in path hierarchy (#8082)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-08 14:22:04 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
b6030ba713 docker-next: fix up Git user home directory and permission issue (#8081) 2026-01-07 10:33:27 -05:00
Élie Bouttier
e68949dd13 fix(Dockerfile.next): install curl (#8080) 2026-01-06 12:30:15 -05:00
Copilot
f813c17565 Add DigitalOcean container registry garbage collection workflow (#8073) 2025-12-20 18:29:32 +08:00
ᴊᴏᴇ ᴄʜᴇɴ
5e7c599755 chore: update security advisory reporting process
[skip ci]
2025-12-10 20:22:12 -05:00
Jakub Domeracki
2c88cd4d9f security: patch mermaid package version
Co-authored-by: Jakub Domeracki <jdomeracki.itsec@gmail.com>
Co-authored-by: ᴊᴏᴇ ᴄʜᴇɴ <jc@unknwon.io>
2025-12-04 14:58:06 +09:00
Copilot
04cc48339f chore: update Go version from 1.24 to 1.25 in CI and related files (#8066)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: unknwon <2946214+unknwon@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2025-12-03 20:11:14 -05:00
Neptunium93
3666718ec5 repo: fix potential null pointer dereference in mirror sync (#8065) 2025-12-03 18:04:42 -05:00
Joe Chen
4cc83c498b chore: fix up docker-next SSH instruction
[skip ci]
2025-11-30 10:26:58 -05:00
Copilot
332c0895e6 docker: add next-generation rootless image with Kubernetes security context support (#8061)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: unknwon <2946214+unknwon@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2025-11-29 23:01:12 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
16f466d1c1 CHANGELOG: add entry for #8057
[skip ci]
2025-11-25 22:40:48 -05:00
Joe Chen
5e3f45e7f5 ci: set timeout on deploy gogs-demo
[skip ci]
2025-11-25 20:31:33 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
994b769d9d ci: use kubeconfig of service account (#8060) 2025-11-25 19:07:24 -05:00
Copilot
3488e22a40 ci: pin all GitHub Actions to full SHA256 hashes (#8059) 2025-11-25 19:03:04 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
d0d4de70ca ci: deploy gogs-demo after image is built (#8058) 2025-11-24 11:05:25 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
79cc921892 conf: enable value mapping from env vars (#8057) 2025-11-23 20:59:52 -05:00
dependabot[bot]
1347c7802f mod: bump golang.org/x/crypto from 0.41.0 to 0.45.0 (#8056)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 21:46:39 -05:00
ᴊᴏᴇ ᴄʜᴇɴ
89f0f86c7e locale: sync from Crowdin (#8040) 2025-10-02 23:10:06 -04:00
Dmitry Afanasiev
6a6364bb5d chore: update mermaid to 11.9.0 (#8009)
Co-authored-by: ᴊᴏᴇ ᴄʜᴇɴ <jc@unknwon.io>
2025-09-30 06:11:09 -04:00
dependabot[bot]
35c047dc9d mod: bump golang.org/x/net from 0.42.0 to 0.43.0 (#8022)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 20:20:15 -04:00
dependabot[bot]
e4923af32d mod: bump golang.org/x/text from 0.27.0 to 0.28.0 (#8027)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 20:18:18 -04:00
dependabot[bot]
0533fb7744 mod: bump golang.org/x/crypto from 0.40.0 to 0.41.0 (#8024)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 13:13:50 -04:00
dependabot[bot]
28810f7db7 mod: bump github.com/prometheus/client_golang from 1.22.0 to 1.23.0 (#8026)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 12:38:55 -04:00
ᴊᴏᴇ ᴄʜᴇɴ
cfe38e0a08 chore: update Debian and Ubuntu targets in .pkgr.yml
[skip ci]
2025-09-01 21:45:41 -04:00
dependabot[bot]
110da379c1 mod: bump github.com/stretchr/testify from 1.10.0 to 1.11.1 (#8025)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 21:19:47 -04:00
dependabot[bot]
37962fcc0b mod: bump github.com/niklasfasching/go-org from 1.8.0 to 1.9.1 (#8013)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 21:56:02 -04:00
dependabot[bot]
7265a7cd26 mod: bump golang.org/x/net from 0.40.0 to 0.42.0 (#8014)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 21:52:36 -04:00
dependabot[bot]
521fbe34f6 mod: bump golang.org/x/crypto from 0.39.0 to 0.40.0 (#8016)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 16:32:05 -04:00
dependabot[bot]
1375bc401a mod: bump modernc.org/sqlite from 1.37.1 to 1.38.2 (#8017)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 15:43:27 -04:00
dependabot[bot]
28f83626d4 mod: bump github.com/urfave/cli from 1.22.16 to 1.22.17 (#7995)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-02 20:17:59 -04:00
dependabot[bot]
dcf8d9340e mod: bump github.com/sergi/go-diff from 1.3.1 to 1.4.0 (#7996)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 13:10:47 -04:00
dependabot[bot]
76b5d75d79 mod: bump golang.org/x/crypto from 0.38.0 to 0.39.0 (#7997)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 13:10:13 -04:00
dependabot[bot]
454175ece2 mod: bump github.com/Masterminds/semver/v3 from 3.3.1 to 3.4.0 (#8000)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 13:09:19 -04:00
Joe Chen
d940e692ec chore: fix up links and add CTA in README
[skip ci]
2025-06-18 09:46:51 -04:00
Joe Chen
7fc19d094c chore: update dev_release_patch_version.md
[skip ci]
2025-06-08 23:13:35 -04:00
Joe Chen
4e3bf27fe2 chore: update dev_release_patch_version.md
[skip ci]
2025-06-08 21:30:40 -04:00
Joe Chen
16b8b0974e chore: update dev_release_patch_version
[skip ci]
2025-06-08 21:23:46 -04:00
Joe Chen
f004b5b472 CHANGELOG: cut entries for 0.13.3 (#7983)
[skip ci]
2025-06-08 18:53:03 -04:00
Joe Chen
591810e405 web_editor: prohibit CRUD to symbolic files (#7981)
Fixes
[GHSA-wj44-9vcg-wjq7](https://github.com/gogs/gogs/security/advisories/GHSA-wj44-9vcg-wjq7)

---------

Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2025-06-08 18:28:28 -04:00
Joe Chen
3c2112215f ci: only run Docker job for the main repository (#7980) 2025-06-08 17:19:48 -04:00
dependabot[bot]
9db5c30c36 mod: bump github.com/pquerna/otp from 1.3.0 to 1.5.0 (#7972)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 12:58:19 -04:00
dependabot[bot]
49f4d4312b mod: bump github.com/niklasfasching/go-org from 1.7.0 to 1.8.0 (#7978)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 12:50:52 -04:00
dependabot[bot]
0cf12eccae mod: bump modernc.org/sqlite from 1.37.0 to 1.37.1 (#7977)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 12:50:32 -04:00
dependabot[bot]
495c38825a mod: bump gorm.io/driver/postgres from 1.5.11 to 1.6.0 (#7973)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2025-06-01 11:56:55 -04:00
dependabot[bot]
60b912ddda mod: bump golang.org/x/net from 0.39.0 to 0.40.0 (#7975)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 11:42:13 -04:00
Edoardo Ottavianelli
4d6a0ebaac security: patch for Stored XSS in PDF renderer (#7966) 2025-05-16 15:49:58 -04:00
dependabot[bot]
54fa465da5 mod: bump github.com/go-ldap/ldap/v3 from 3.4.10 to 3.4.11 (#7960)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 13:02:00 -04:00
dependabot[bot]
54cd8fd160 mod: bump golang.org/x/net from 0.36.0 to 0.38.0 (#7946)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2025-04-16 08:48:37 -04:00
dependabot[bot]
7abc81c4d2 mod: bump github.com/prometheus/client_golang from 1.21.0 to 1.21.1 (#7949)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-15 13:10:30 -04:00
dependabot[bot]
493834861d mod: bump golang.org/x/text from 0.22.0 to 0.23.0 (#7950)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-15 13:00:41 -04:00
dependabot[bot]
9a539393bd mod: bump github.com/editorconfig/editorconfig-core-go/v2 (#7948)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 18:05:48 -04:00
dependabot[bot]
139ea3ce7d mod: bump modernc.org/sqlite from 1.36.0 to 1.37.0 (#7947)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2025-04-14 18:00:07 -04:00
dependabot[bot]
4acaaac85a mod: bump golang.org/x/net from 0.34.0 to 0.36.0 (#7935)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 23:27:10 -05:00
dependabot[bot]
e93ced2163 mod: bump modernc.org/sqlite from 1.34.5 to 1.36.0 (#7929)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 23:18:23 -05:00
dependabot[bot]
9672b6dd6c mod: bump github.com/prometheus/client_golang from 1.20.5 to 1.21.0 (#7931)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 23:11:43 -05:00
dependabot[bot]
7a12c8418e mod: bump golang.org/x/text from 0.21.0 to 0.22.0 (#7933)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 23:11:08 -05:00
Joe Chen
2208f17e8e chore: update Trivy scan config (#7934) 2025-03-04 23:07:09 -05:00
宋子桓🌈
46a84fdad5 email: fix unable to override templates in custom directory (#7905)
Co-authored-by: Joe Chen <jc@unknwon.io>
2025-02-12 21:52:18 -05:00
dependabot[bot]
9c80e6d922 mod: bump modernc.org/sqlite from 1.34.4 to 1.34.5 (#7906)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-01 23:24:18 -05:00
dependabot[bot]
3a952bd248 mod: bump golang.org/x/net from 0.33.0 to 0.34.0 (#7908)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-01 23:22:49 -05:00
Joe Chen
96d5d622b8 ci: update GitHub Actions version for Code QL 2025-01-01 19:46:13 -05:00
MarcUs7i
b59e943aa6 Set timeout to explicit 0 in gogs.js (#7890)
## Describe the pull request

A simple fix in public/js/gogs.js making bug upload not result in a
timeout (added just one line)

Link to the issue: closes https://github.com/gogs/gogs/issues/6149

## Test plan

- Set the max_size of `attachment` to a high number

```toml
[release.attachment]
ENABLED          = true
ALLOWED_TYPES    = */*
MAX_SIZE         = 512
MAX_FILES        = 20
```

- Upload a file to releases


![image](https://github.com/user-attachments/assets/8cf29c73-c8ec-42a3-9660-681a583b577a)

It doesn't randomly timeout!
2025-01-01 19:41:24 -05:00
dependabot[bot]
371a6092de mod: bump modernc.org/sqlite from 1.34.1 to 1.34.4 (#7893)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-01 11:18:34 -05:00
dependabot[bot]
e6896eb393 mod: bump gorm.io/driver/postgres from 1.5.7 to 1.5.11 (#7895)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2025-01-01 11:11:51 -05:00
dependabot[bot]
6c04a1ce7c mod: bump github.com/go-ldap/ldap/v3 from 3.4.8 to 3.4.10 (#7894)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-01 10:37:55 -05:00
Martin
6bdbb88fb8 gogs.service: Remove syslog.target (#7681)
Remove syslog.target from service file, this target hasn't existed for
over a decade.


6aa8d43ade/NEWS (L72-L73)
2024-12-26 11:55:46 -05:00
ngn
6b4e8668a1 Adding '|' to the releases page (#7631)
Adding '|' to the releases page `templates/repo/release/list.tmpl` 

i changed this:

![2023-12-22_16-41_1](https://github.com/gogs/gogs/assets/78868991/3d0f8572-b4de-458d-8bf2-dcd030c67757)
to this:

![2023-12-22_16-41](https://github.com/gogs/gogs/assets/78868991/43e2fe58-1019-40f5-b2fb-d011d1145be4)
(yes)
2024-12-26 11:15:44 -05:00
Joe Chen
d8f562b6ad docs: remove dev/release directory (#7884)
[skip ci]
2024-12-23 13:26:07 -05:00
Joe Chen
f1e64008fb cmd: always build with "cert" subcommand (#7883) 2024-12-23 12:10:43 -05:00
Joe Chen
cfde357824 release: pull back 0.13.1 and move CHANGELOG entries to 0.13.2 (#7881) 2024-12-23 10:56:57 -05:00
Joe Chen
3459f8df49 Dockerfile: fix up outdated s6-svscan path (#7880)
## Describe the pull request

Link to the issue: https://github.com/gogs/gogs/issues/7864
2024-12-23 10:53:40 -05:00
Joe Chen
c0332ff856 release: update templates (#7877)
[skip ci]
2024-12-22 21:44:17 -05:00
Joe Chen
e1042e7d47 release: cut CHANGELOG entries for 0.13.1 (#7874)
Part of https://github.com/gogs/gogs/issues/7873

[skip ci]
2024-12-22 17:50:59 -05:00
Joe Chen
76831d0d06 dep: update github.com/gogs/git-module to v1.8.4 (#7872)
## Describe the pull request

Fixes
https://github.com/gogs/gogs/security/advisories/GHSA-m27m-h5gj-wwmg by
including https://github.com/gogs/git-module/pull/110
2024-12-22 16:37:51 -05:00
Joe Chen
68b3c8f339 repo: ignore unintended Git options for diff preview (#7871)
## Describe the pull request

Fixes
https://github.com/gogs/gogs/security/advisories/GHSA-9pp6-wq8c-3w2c
2024-12-22 15:59:03 -05:00
Joe Chen
77a4a945ae repo: prevent preview and delete files in .git directories (#7870)
## Describe the pull request

Fixes
https://github.com/gogs/gogs/security/advisories/GHSA-ccqv-43vm-4f3w
2024-12-22 15:24:18 -05:00
Joe Chen
b09f317aa0 database: lock mock properly to avoid data race in tests (#7869)
Fixes tests data race found in
https://github.com/gogs/gogs/actions/runs/12457230279/job/34771555537
2024-12-22 15:09:42 -05:00
Joe Chen
009a1855aa ssh: make env command a passthrough (#7868)
## Describe the pull request

Fixes
https://github.com/gogs/gogs/security/advisories/GHSA-vm62-9jw3-c8w3
2024-12-22 14:56:31 -05:00
Alexandre Jacquin
fb7812b194 Fix s6-svscan path in Dockerfile (#7867)
Related to #7864

## Describe the pull request

Fix the path of the s6-svscan binary path in the Dockerfile. As
mentionned in the issue, it is probably to the alpine base image change
(from `3.17` to `3.21`).

Link to the issue:
https://github.com/gogs/gogs/issues/7864#issuecomment-2558323928

Credit to @cryptovaltt

## Test plan

Build the image and check if the application can be ran. E.g.:

```bash
docker build -t gogs:working-7864 -f Dockerfile .
docker run --name=gogs -p 10022:22 -p 10880:3000 -v gogs:working-7864 --rm
```
2024-12-22 10:53:00 -05:00
Joe Chen
00bd6081a5 chore: minor fixup on README (#7866)
[skip ci]
2024-12-21 10:58:38 -05:00
Joe Chen
5326b4113a chore: update minimum Go version to 1.23.4 (#7865) 2024-12-21 10:48:17 -05:00
Joe Chen
7adac94f1e Dockerfile: update base image to alpine3.21 and enable trivy scan (#7863)
## Describe the pull request

Link to the issue: fixes https://github.com/gogs/gogs/issues/6674
2024-12-20 22:33:46 -05:00
Joe Chen
c5dff8cdad chore: update vulnerability report and patch policy
[skip ci]
2024-12-16 19:05:53 -05:00
dependabot[bot]
8a39d529d0 mod: bump golang.org/x/crypto from 0.29.0 to 0.31.0 (#7861)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-14 23:36:29 -05:00
Joe Chen
740eba4f70 session: support TLS for Redis provider (#7860) 2024-12-14 23:18:46 -05:00
Joe Chen
9a9388ace2 api: clean file path for updating repo contents (#7859)
## Describe the pull request

Link to the issue: closes https://github.com/gogs/gogs/issues/7582
2024-12-14 21:30:34 -05:00
Joe Chen
8a3b8198af chore: update security policy 2024-12-10 22:23:01 -05:00
Joe Chen
c94baec9ca repo/editor: disallow editing symlink while changing file name (#7857)
## Describe the pull request

Link to the issue: https://github.com/gogs/gogs/issues/7582
2024-12-08 21:12:55 -05:00
dependabot[bot]
25a799ad63 mod: bump github.com/Masterminds/semver/v3 from 3.2.1 to 3.3.1 (#7854)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2024-12-01 11:08:42 -05:00
dependabot[bot]
f518abaff1 mod: bump golang.org/x/net from 0.30.0 to 0.31.0 (#7853)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 10:58:39 -05:00
dependabot[bot]
58fa30c7be mod: bump golang.org/x/text from 0.19.0 to 0.20.0 (#7856)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 10:49:39 -05:00
dependabot[bot]
a02d6a22d6 mod: bump modernc.org/sqlite from 1.33.1 to 1.34.1 (#7852)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 09:49:01 -05:00
Joe Chen
7a2dffa95a ci: push Docker images to DigitalOcean Container Registry (#7839) 2024-11-09 19:50:01 -05:00
dependabot[bot]
2541348408 mod: bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5 (#7834)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-03 17:36:50 -05:00
dependabot[bot]
f037c58eee mod: bump golang.org/x/net from 0.29.0 to 0.30.0 (#7837)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-02 21:36:24 -04:00
dependabot[bot]
e5e03cba24 mod: bump github.com/urfave/cli from 1.22.15 to 1.22.16 (#7838)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 18:38:05 -04:00
Joe Chen
07380780c6 locale: sync from Crowdin (#7824) 2024-10-13 20:24:38 -04:00
dependabot[bot]
3a8bd73901 mod: bump github.com/prometheus/client_golang from 1.20.2 to 1.20.4 (#7818)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-02 21:52:08 -04:00
dependabot[bot]
79bd350ad6 mod: bump modernc.org/sqlite from 1.32.0 to 1.33.1 (#7816)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-02 08:23:28 -04:00
dependabot[bot]
0700cef63e mod: bump golang.org/x/net from 0.28.0 to 0.29.0 (#7814)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 20:44:05 -04:00
Mobile Mind
e34ebac459 install: fix SMTP password config name to save (#7807) 2024-09-12 22:10:02 -04:00
Joe Chen
03d26b0482 locale: sync from Crowdin (#7801) 2024-09-08 12:12:25 -04:00
Kyle Fawcett
e6d4db0b4c Fix spacing if BuildTime is missing. (#7800)
Co-authored-by: Gogs <gogs@fake.local>
Co-authored-by: Joe Chen <jc@unknwon.io>
2024-09-07 11:43:29 -04:00
dependabot[bot]
69d74485f0 mod: bump modernc.org/sqlite from 1.31.1 to 1.32.0 (#7795)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2024-09-04 08:46:26 -04:00
dependabot[bot]
9401784421 mod: bump github.com/prometheus/client_golang from 1.19.1 to 1.20.2 (#7793)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 08:43:26 -04:00
dependabot[bot]
93aba5a6b7 mod: bump golang.org/x/net from 0.27.0 to 0.28.0 (#7794)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 08:43:03 -04:00
dependabot[bot]
9108970e45 mod: bump golang.org/x/crypto from 0.25.0 to 0.26.0 (#7792)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2024-09-03 09:36:00 -04:00
dependabot[bot]
0965db473f mod: bump golang.org/x/net from 0.26.0 to 0.27.0 (#7780)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-02 01:14:46 -04:00
dependabot[bot]
f1f6d3f37d mod: bump golang.org/x/crypto from 0.24.0 to 0.25.0 (#7779)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 19:59:36 -04:00
dependabot[bot]
8e195067df mod: bump github.com/microcosm-cc/bluemonday from 1.0.25 to 1.0.27 (#7782)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 19:58:32 -04:00
dependabot[bot]
5d6bc5c9fd mod: bump modernc.org/sqlite from 1.29.2 to 1.31.1 (#7783)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 19:58:01 -04:00
Joe Chen
8869354d21 locale: sync from Crowdin (#7778) 2024-07-29 03:35:15 -04:00
dependabot[bot]
5bdf91e73c mod: bump golang.org/x/net from 0.25.0 to 0.26.0 (#7769)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 07:19:04 -04:00
dependabot[bot]
54776c776a mod: bump golang.org/x/text from 0.15.0 to 0.16.0 (#7770)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 07:11:59 -04:00
Joe Chen
f2ff885f33 locale: sync from Crowdin (#7764) 2024-06-28 23:17:41 -04:00
idnandre
6cb018df2f chore: remove duplicate error and fix typo error message (#7763) 2024-06-28 23:03:32 -04:00
Sergei Gnezdov
f4a78e5cfb chore: update version of mermaid to 10.9.1 (#7760) 2024-06-08 12:57:00 -04:00
dependabot[bot]
1815fd5c36 mod: bump github.com/editorconfig/editorconfig-core-go/v2 from 2.6.1 to 2.6.2 (#7755)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 21:51:10 -04:00
dependabot[bot]
15d64e0f23 mod: bump github.com/prometheus/client_golang from 1.19.0 to 1.19.1 (#7758)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 21:50:13 -04:00
dependabot[bot]
15077b13e3 mod: bump golang.org/x/net from 0.24.0 to 0.25.0 (#7759)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 21:49:58 -04:00
alingse
87f47166ac chore: fix miss makezero bug (#7752) 2024-05-26 18:04:54 -04:00
dependabot[bot]
c8cd3e7125 mod: bump github.com/go-ldap/ldap/v3 from 3.4.6 to 3.4.8 (#7738)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 19:26:33 -04:00
dependabot[bot]
ce350e768a mod: bump golang.org/x/net from 0.23.0 to 0.24.0 (#7737)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 19:17:28 -04:00
dependabot[bot]
56a1712275 mod: bump github.com/urfave/cli from 1.22.14 to 1.22.15 (#7736)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 19:17:21 -04:00
dependabot[bot]
f8a3e7153f mod: bump golang.org/x/crypto from 0.21.0 to 0.22.0 (#7735)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 19:00:01 -04:00
Jiaxin Zhu
6f9b63517d fix(systemd script): define RestartSec as 2 (#7733) 2024-04-30 09:15:34 -04:00
Joe Chen
1eae0b2fce locale: sync from Crowdin (#7732) 2024-04-27 13:22:20 -04:00
dependabot[bot]
24f06bb088 mod: bump golang.org/x/net from 0.22.0 to 0.23.0 (#7730)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-19 19:56:17 -04:00
Jiaxin Zhu
015589cdd9 fix(.editorconfig): remove setting end_of_line and make Git track EOL changes on Windows (#7725) 2024-04-15 10:36:54 -04:00
Jiaxin Zhu
ba17b9b56b fix(templates): the green color is supposed to be purple (#7722)
Co-authored-by: jxzhu <zhujiaxin@gmail.com>
2024-04-11 10:13:46 -04:00
dependabot[bot]
3b8c9ba7ab mod: bump gorm.io/driver/postgres from 1.5.6 to 1.5.7 (#7712)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 21:18:44 -04:00
dependabot[bot]
f915eb3a40 mod: bump golang.org/x/net from 0.21.0 to 0.22.0 (#7713)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 21:17:38 -04:00
dependabot[bot]
c036214c45 mod: bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#7714)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 21:09:52 -04:00
dependabot[bot]
b8ed5d8d91 mod: bump golang.org/x/crypto from 0.20.0 to 0.21.0 (#7715)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 21:09:30 -04:00
Joe Chen
d9ecdcaef0 all: unwrap database.UsersStore interface (#7708) 2024-03-27 23:18:59 -04:00
Joe Chen
202012887a all: unwrap database.TwoFactorsStore interface (#7707) 2024-03-27 22:14:08 -04:00
Joe Chen
4d05804729 all: unwrap database.RepositoriesStore interface (#7706) 2024-03-26 23:34:31 -04:00
bitebyte
e1e75ed36b Fix issue: synchronize the section name[mailer/email] of app.ini (#7704) 2024-03-26 22:30:25 -04:00
Joe Chen
895e553e68 all: unwrap database.PublicKeysStore interface (#7702) 2024-03-23 20:55:45 -04:00
Joe Chen
5cf0189df1 all: unwrap database.PermissionsStore interface (#7701) 2024-03-23 20:46:32 -04:00
Joe Chen
8d2386b4db database: set Handle direcetly during initialization (#7699) 2024-03-20 19:02:57 -04:00
Joe Chen
dd49412edd all: unwrap database.OrganizationsStore interface (#7696) 2024-03-19 19:33:43 -04:00
Joe Chen
b89f20e02d all: unwrap database.NoticesStore interface (#7695) 2024-03-17 20:44:13 -04:00
Joe Chen
e634aa6277 all: unwrap database.LoginSourcesStore interface (#7694) 2024-03-17 20:14:54 -04:00
Joe Chen
3a5132b6f7 all: unwrap database.LFSStore interface (#7692) 2024-03-16 20:32:12 -04:00
dependabot[bot]
b9e41f28c3 mod: bump github.com/jackc/pgx/v5 from 5.4.3 to 5.5.4 (#7688)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-16 18:08:27 -04:00
Joe Chen
6d77d6204d all: unwrap database.ActionsStore interface (#7686) 2024-03-13 22:03:02 -04:00
dependabot[bot]
f73edbd172 mod: bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#7685)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 20:00:00 -04:00
Joe Chen
fa84482d98 chore: upgrade go-mockgen for 1.22 (#7683) 2024-03-12 19:25:30 -04:00
dependabot[bot]
6c63a88ef0 mod: bump modernc.org/sqlite from 1.28.0 to 1.29.2 (#7680)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-01 13:14:35 -05:00
dependabot[bot]
35c59d2c24 mod: bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 (#7679)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-01 09:24:38 -05:00
dependabot[bot]
6d77bcebaa mod: bump golang.org/x/crypto from 0.18.0 to 0.20.0 (#7677)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-01 09:23:29 -05:00
dependabot[bot]
605c751926 mod: bump gorm.io/driver/postgres from 1.5.4 to 1.5.6 (#7676)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-01 09:23:11 -05:00
Joe Chen
8054ffc12f all: unwrap database.AccessTokensStore interface (#7670) 2024-02-20 21:47:32 -05:00
Joe Chen
917c14f2ce internal/database: consistently use Store and s as receiver (#7669) 2024-02-19 20:00:13 -05:00
Joe Chen
dfe27ad556 database: use all tables to setup test suite (#7667) 2024-02-18 21:26:30 -05:00
Joe Chen
3616bc03c9 packager: use centos-9 and debian-12 (#7668) 2024-02-18 21:25:01 -05:00
Joe Chen
10cd022e08 ci: upgrade GitHub Actions versions (#7666) 2024-02-18 21:05:27 -05:00
Joe Chen
3650b32ec5 chore: rename internal/db to internal/database (#7665) 2024-02-18 19:39:41 -05:00
Joe Chen
cad79a31d8 locale: sync from Crowdin (#7664) 2024-02-18 19:05:22 -05:00
dependabot[bot]
077141d2ba mod: bump golang.org/x/net from 0.19.0 to 0.20.0 (#7657)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-02 18:05:38 -05:00
Joe Chen
cd3f132844 README: update sponsor list (#7661)
[skip ci]
2024-02-02 18:00:58 -05:00
dependabot[bot]
ff7dc29ad3 mod: bump golang.org/x/crypto from 0.17.0 to 0.18.0 (#7659)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-02 17:46:13 -05:00
dependabot[bot]
87a5ae3f61 mod: bump gorm.io/gorm from 1.25.5 to 1.25.6 (#7658)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 23:34:56 -05:00
dependabot[bot]
6bd09e75fe mod: bump github.com/editorconfig/editorconfig-core-go/v2 from 2.6.0 to 2.6.1 (#7660)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 23:34:13 -05:00
dependabot[bot]
7b06bf642a mod: bump modernc.org/sqlite from 1.27.0 to 1.28.0 (#7637)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-01 13:51:32 -05:00
dependabot[bot]
b6e4b379c1 mod: bump github.com/prometheus/client_golang from 1.17.0 to 1.18.0 (#7638)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-01 13:51:15 -05:00
dependabot[bot]
5e96f64b83 mod: bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#7626)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-24 22:59:10 -05:00
Joe Chen
41d473e999 Taskfile: drop-test-db (#7623)
[skip ci]
2023-12-17 16:49:37 -05:00
Joe Chen
25fdeaac49 db: pass context to tests by default (#7622)
[skip ci]
2023-12-17 16:32:28 -05:00
Joe Chen
0c7b45ad1f locale: sync from Crowdin (#7621) 2023-12-16 21:31:21 -05:00
dependabot[bot]
5293781c0d mod: bump golang.org/x/net from 0.17.0 to 0.19.0 (#7609)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-01 12:31:22 -05:00
dependabot[bot]
7a2c691c5b mod: bump golang.org/x/text from 0.13.0 to 0.14.0 (#7608)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-01 12:25:35 -05:00
dependabot[bot]
dfc129ee98 mod: bump golang.org/x/crypto from 0.14.0 to 0.16.0 (#7607)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-01 12:25:21 -05:00
Joe Chen
1c711bc8d4 chore: move CODEOWNERS to .github/
[skip ci]
2023-11-17 19:20:20 -05:00
Joe Chen
31a0964e12 dbtest: properly close test connection (#7598) 2023-11-12 19:09:50 -05:00
Joe Chen
b644d797b4 chore: add CODEOWNERS 2023-11-12 19:08:26 -05:00
Joe Chen
61940ca879 chore: update security policy
[skip ci]
2023-11-09 22:10:42 -05:00
Joe Chen
16b185f97d build: remove support of Go 1.18 and 1.19 (#7590) 2023-11-01 23:06:24 -04:00
Athanasios Oikonomou
c531da02ca commit: fix matchUsersWithCommitEmails (#7561)
Co-authored-by: Joe Chen <jc@unknwon.io>
2023-11-01 11:58:48 -04:00
dependabot[bot]
bc1b5e52a9 mod: bump modernc.org/sqlite from 1.26.0 to 1.27.0 (#7587)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-01 08:56:17 -04:00
dependabot[bot]
0b5257425f mod: bump gorm.io/driver/postgres from 1.5.3 to 1.5.4 (#7588)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-01 08:55:58 -04:00
Joe Chen
7fb3dcb1eb locale: sync from Crowdin (#7584) 2023-10-29 21:38:20 -04:00
dependabot[bot]
5c3fde8531 mod: bump gorm.io/driver/postgres from 1.5.2 to 1.5.3 (#7573)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-20 20:26:53 -04:00
dependabot[bot]
7bffc0d0e3 mod: bump gorm.io/gorm from 1.25.4 to 1.25.5 (#7574)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-20 20:14:39 -04:00
Joe Chen
748c67df8b chore: slow down dep update to monthly
[ci skip]
2023-10-20 20:04:41 -04:00
dependabot[bot]
2d9be6c06b mod: bump gorm.io/driver/mysql from 1.5.1 to 1.5.2 (#7575)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-20 20:03:59 -04:00
dependabot[bot]
493a56b262 mod: bump golang.org/x/net from 0.15.0 to 0.17.0 (#7569)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-12 00:11:23 -04:00
dependabot[bot]
3350740563 mod: bump github.com/prometheus/client_golang from 1.16.0 to 1.17.0 (#7560)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 22:51:35 -04:00
dependabot[bot]
89b123f9d1 mod: bump modernc.org/sqlite from 1.25.0 to 1.26.0 (#7559)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 22:51:11 -04:00
dependabot[bot]
4821e89780 mod: bump github.com/editorconfig/editorconfig-core-go/v2 from 2.5.2 to 2.6.0 (#7558)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 22:50:52 -04:00
dependabot[bot]
e989093129 mod: bump github.com/msteinert/pam from 0.0.0-20190215180659-f29b9f28d6f9 to 1.2.0 (#7550)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-26 08:59:57 -04:00
dependabot[bot]
018337ddfb mod: bump github.com/go-ldap/ldap/v3 from 3.4.5 to 3.4.6 (#7548)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-18 11:42:16 -04:00
dependabot[bot]
fde10f1236 mod: bump golang.org/x/net from 0.14.0 to 0.15.0 (#7547)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 23:47:57 -04:00
dependabot[bot]
48710b9793 mod: bump golang.org/x/text from 0.12.0 to 0.13.0 (#7544)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 17:13:52 -04:00
Joe Chen
069f1ed9a4 db: migrate admin.go to notices.go with GORM (#7536) 2023-08-23 00:15:30 -04:00
dependabot[bot]
1112a71ea5 mod: bump gorm.io/gorm from 1.25.3 to 1.25.4 (#7535)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-21 10:40:39 -04:00
Joe Chen
9d86838fa7 ci: use Go 1.21 (#7528) 2023-08-14 22:24:26 -04:00
dependabot[bot]
f187005581 mod: bump gorm.io/gorm from 1.25.2 to 1.25.3 (#7526)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-14 10:39:53 -04:00
dependabot[bot]
7efda8e8fc mod: bump github.com/gogs/git-module from 1.8.2 to 1.8.3 (#7527)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-14 10:39:35 -04:00
dependabot[bot]
2620cc3e8d mod: bump golang.org/x/net from 0.12.0 to 0.14.0 (#7522)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-07 09:50:25 -04:00
dependabot[bot]
af77cbb759 mod: bump modernc.org/sqlite from 1.24.0 to 1.25.0 (#7521)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-07 09:30:19 -04:00
dependabot[bot]
65e14b18ec mod: bump golang.org/x/crypto from 0.11.0 to 0.12.0 (#7520)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-07 09:29:53 -04:00
dependabot[bot]
738ac3c03b mod: bump golang.org/x/text from 0.11.0 to 0.12.0 (#7519)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-07 09:29:34 -04:00
Joe Chen
7a0a07628d locale: sync from Crowdin (#7518) 2023-08-01 22:27:56 -04:00
dependabot[bot]
c373a92da6 mod: bump github.com/microcosm-cc/bluemonday from 1.0.24 to 1.0.25 (#7513)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-25 12:31:52 -04:00
dependabot[bot]
23ea4863f1 mod: bump github.com/niklasfasching/go-org from 1.6.6 to 1.7.0 (#7491)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-17 21:26:14 -04:00
dependabot[bot]
8940778bb8 mod: bump modernc.org/sqlite from 1.23.1 to 1.24.0 (#7508)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-17 21:25:18 -04:00
dependabot[bot]
53c009288c mod: bump golang.org/x/net from 0.11.0 to 0.12.0 (#7500)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-09 13:59:45 -04:00
Joe Chen
3be3ae500b ci: remove Codeball 2023-07-09 10:59:12 -04:00
dependabot[bot]
9ab8bd6785 mod: bump golang.org/x/crypto from 0.10.0 to 0.11.0 (#7501)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-09 10:58:12 -04:00
dependabot[bot]
9e91602b42 mod: bump golang.org/x/text from 0.10.0 to 0.11.0 (#7502)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-07 22:25:08 -04:00
dependabot[bot]
b13cb438d1 mod: bump gorm.io/gorm from 1.25.1 to 1.25.2 (#7497)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-06 22:22:31 -04:00
dependabot[bot]
69802f07b7 mod: bump golang.org/x/net from 0.10.0 to 0.11.0 (#7485)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-20 19:24:55 -04:00
dependabot[bot]
c426e9b8ad mod: bump golang.org/x/text from 0.9.0 to 0.10.0 (#7480)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-17 12:58:32 -04:00
dependabot[bot]
97ccf329b1 mod: bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 (#7482)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-17 12:39:17 -04:00
dependabot[bot]
89b759e2ed mod: bump github.com/urfave/cli from 1.22.13 to 1.22.14 (#7481)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-17 12:39:08 -04:00
dependabot[bot]
1fb33bd586 mod: bump modernc.org/sqlite from 1.22.1 to 1.23.1 (#7475)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-17 12:38:53 -04:00
dependabot[bot]
0ca017d0a8 mod: bump github.com/go-ldap/ldap/v3 from 3.4.4 to 3.4.5 (#7476)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2023-06-17 12:17:06 -04:00
Joe Chen
75767078aa pkgr: remove debian-9 (#7472)
[skip ci]
2023-06-03 20:01:30 -04:00
dependabot[bot]
22bf85b6f5 mod: bump gorm.io/driver/mysql from 1.5.0 to 1.5.1 (#7458)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-03 19:44:28 -04:00
dependabot[bot]
b2ea82c8d8 mod: bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (#7460)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-03 19:44:13 -04:00
dependabot[bot]
7fae076155 mod: bump github.com/microcosm-cc/bluemonday from 1.0.23 to 1.0.24 (#7459)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-03 19:43:57 -04:00
dependabot[bot]
ed825c6273 mod: bump gorm.io/driver/postgres from 1.5.0 to 1.5.2 (#7461)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-24 22:15:47 -04:00
dependabot[bot]
795cac1dd0 mod: bump github.com/gogs/git-module from 1.8.1 to 1.8.2 (#7455)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-15 07:42:45 -04:00
dependabot[bot]
ad3f9ac068 mod: bump golang.org/x/crypto from 0.8.0 to 0.9.0 (#7456)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-15 07:42:11 -04:00
Joe Chen
0721ef2399 refactor(db): migrate off user_email.go to users.go (#7452) 2023-05-14 20:15:47 -04:00
Joe Chen
9ac93067f6 ci: refurbish Docker job (#7446) 2023-05-09 23:02:57 -04:00
Joe Chen
167cdb09e3 chore: generate SCIP instead of LSIF (#7445) 2023-05-09 09:13:02 -04:00
Joe Chen
ada1083462 tests(db): fix data race (#7444)
[skip ci]
2023-05-08 23:02:45 -04:00
dependabot[bot]
5df9668063 mod: bump github.com/prometheus/client_golang from 1.15.0 to 1.15.1 (#7442)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-08 08:56:02 -04:00
dependabot[bot]
249668a2b9 mod: bump gorm.io/gorm from 1.25.0 to 1.25.1 (#7441)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-08 08:55:41 -04:00
dependabot[bot]
66364d9c02 mod: bump modernc.org/sqlite from 1.22.0 to 1.22.1 (#7439)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-01 07:21:10 -04:00
dependabot[bot]
077c80d258 mod: bump github.com/urfave/cli from 1.22.12 to 1.22.13 (#7438)
[skip ci]

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-01 07:20:48 -04:00
dependabot[bot]
79bda9df35 mod: bump github.com/editorconfig/editorconfig-core-go/v2 from 2.5.1 to 2.5.2 (#7433)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-24 20:00:41 +08:00
dependabot[bot]
6e5f9e8a1b mod: bump modernc.org/sqlite from 1.21.1 to 1.22.0 (#7432)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-24 19:58:20 +08:00
dependabot[bot]
7e5db4ba42 mod: bump github.com/prometheus/client_golang from 1.14.0 to 1.15.0 (#7427)
Bumps
[github.com/prometheus/client_golang](https://github.com/prometheus/client_golang)
from 1.14.0 to 1.15.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prometheus/client_golang/releases">github.com/prometheus/client_golang's
releases</a>.</em></p>
<blockquote>
<h2>v1.15.0</h2>
<h2>Changed</h2>
<p>[BUGFIX] Fix issue with atomic variables on ppc64le <a
href="https://redirect.github.com/prometheus/client_golang/issues/1171">#1171</a>
[BUGFIX] Support for multiple samples within same metric <a
href="https://redirect.github.com/prometheus/client_golang/issues/1181">#1181</a>
[BUGFIX] Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149 <a
href="https://redirect.github.com/prometheus/client_golang/issues/1187">#1187</a>
[ENHANCEMENT] Add exemplars and middleware examples <a
href="https://redirect.github.com/prometheus/client_golang/issues/1173">#1173</a>
[ENHANCEMENT] Add more context to &quot;duplicate label names&quot;
error to enable debugging <a
href="https://redirect.github.com/prometheus/client_golang/issues/1177">#1177</a>
[ENHANCEMENT] Add constrained labels and constrained variant for all
MetricVecs <a
href="https://redirect.github.com/prometheus/client_golang/issues/1151">#1151</a>
[ENHANCEMENT] Moved away from deprecated github.com/golang/protobuf
package <a
href="https://redirect.github.com/prometheus/client_golang/issues/1183">#1183</a>
[ENHANCEMENT] Add possibility to dynamically get label values for http
instrumentation <a
href="https://redirect.github.com/prometheus/client_golang/issues/1066">#1066</a>
[ENHANCEMENT] Add ability to Pusher to add custom headers <a
href="https://redirect.github.com/prometheus/client_golang/issues/1218">#1218</a>
[ENHANCEMENT] api: Extend and improve efficiency of json-iterator usage
<a
href="https://redirect.github.com/prometheus/client_golang/issues/1225">#1225</a>
[ENHANCEMENT] Added (official) support for go 1.20 <a
href="https://redirect.github.com/prometheus/client_golang/issues/1234">#1234</a>
[ENHANCEMENT] timer: Added support for exemplars <a
href="https://redirect.github.com/prometheus/client_golang/issues/1233">#1233</a>
[ENHANCEMENT] Filter expected metrics as well in CollectAndCompare <a
href="https://redirect.github.com/prometheus/client_golang/issues/1143">#1143</a>
[ENHANCEMENT] ⚠️ Only set start/end if time is not Zero. This breaks
compatibility in experimental api package. If you strictly depend on
empty time.Time as actual value, the behavior is now changed <a
href="https://redirect.github.com/prometheus/client_golang/issues/1238">#1238</a></p>
<!-- raw HTML omitted -->
<ul>
<li>Merge release 1.14 to main by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1164">prometheus/client_golang#1164</a></li>
<li>Fix typo in doc comment by <a
href="https://github.com/beorn7"><code>@​beorn7</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1166">prometheus/client_golang#1166</a></li>
<li>Fix issue with atomic variables on ppc64le by <a
href="https://github.com/beorn7"><code>@​beorn7</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1171">prometheus/client_golang#1171</a></li>
<li>examples: Add exemplars and middleware examples by <a
href="https://github.com/jessicalins"><code>@​jessicalins</code></a> in
<a
href="https://redirect.github.com/prometheus/client_golang/pull/1173">prometheus/client_golang#1173</a></li>
<li>Add context to &quot;duplicate label names&quot; to enable debugging
by <a
href="https://github.com/SpencerMalone"><code>@​SpencerMalone</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1177">prometheus/client_golang#1177</a></li>
<li>Add constrained labels and Constrained variant for all MetricVecs by
<a href="https://github.com/Okhoshi"><code>@​Okhoshi</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1151">prometheus/client_golang#1151</a></li>
<li>Support for multiple samples within same metric by <a
href="https://github.com/machadovilaca"><code>@​machadovilaca</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1181">prometheus/client_golang#1181</a></li>
<li>Replace deprecated github.com/golang/protobuf package by <a
href="https://github.com/zhsj"><code>@​zhsj</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1183">prometheus/client_golang#1183</a></li>
<li>Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149 by <a
href="https://github.com/b4bay"><code>@​b4bay</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1187">prometheus/client_golang#1187</a></li>
<li>typo fix by <a
href="https://github.com/ibreakthecloud"><code>@​ibreakthecloud</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1178">prometheus/client_golang#1178</a></li>
<li>Add possibility to dynamically get label values for http
instrumentation by <a
href="https://github.com/Okhoshi"><code>@​Okhoshi</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1066">prometheus/client_golang#1066</a></li>
<li>Bump github.com/cespare/xxhash/v2 from 2.1.2 to 2.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1199">prometheus/client_golang#1199</a></li>
<li>Bump github.com/prometheus/procfs from 0.8.0 to 0.9.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1198">prometheus/client_golang#1198</a></li>
<li>Bump golang.org/x/sys from 0.3.0 to 0.4.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1217">prometheus/client_golang#1217</a></li>
<li>Synchronize common files from prometheus/prometheus by <a
href="https://github.com/prombot"><code>@​prombot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1213">prometheus/client_golang#1213</a></li>
<li>Bump github.com/prometheus/common from 0.37.0 to 0.39.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1197">prometheus/client_golang#1197</a></li>
<li>Add <code>Header</code> method to Pusher for custom header by <a
href="https://github.com/songjiayang"><code>@​songjiayang</code></a> in
<a
href="https://redirect.github.com/prometheus/client_golang/pull/1218">prometheus/client_golang#1218</a></li>
<li>Synchronize common files from prometheus/prometheus by <a
href="https://github.com/prombot"><code>@​prombot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1224">prometheus/client_golang#1224</a></li>
<li>api: Extend and improve json-iterator usage by <a
href="https://github.com/beorn7"><code>@​beorn7</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1225">prometheus/client_golang#1225</a></li>
<li>Indent example in godoc consistently by <a
href="https://github.com/lamida"><code>@​lamida</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1226">prometheus/client_golang#1226</a></li>
<li>Remove unnecessary check if label is nil in observeWithExemplar by
<a href="https://github.com/dimonl"><code>@​dimonl</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1235">prometheus/client_golang#1235</a></li>
<li>README: Remove not working gocoverage images. by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1236">prometheus/client_golang#1236</a></li>
<li>Added support for go 1.20. by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1234">prometheus/client_golang#1234</a></li>
<li>timer: Added support for exemplars. by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1233">prometheus/client_golang#1233</a></li>
<li>Synchronize common files from prometheus/prometheus by <a
href="https://github.com/prombot"><code>@​prombot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1237">prometheus/client_golang#1237</a></li>
<li>Filter expected metrics as well in CollectAndCompare by <a
href="https://github.com/DariaKunoichi"><code>@​DariaKunoichi</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1143">prometheus/client_golang#1143</a></li>
<li>Only set start/end if time is not Zero by <a
href="https://github.com/jacksontj"><code>@​jacksontj</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1238">prometheus/client_golang#1238</a></li>
<li>Bump google.golang.org/protobuf from 1.28.1 to 1.30.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1243">prometheus/client_golang#1243</a></li>
<li>Bump golang.org/x/sys from 0.5.0 to 0.6.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1246">prometheus/client_golang#1246</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md">github.com/prometheus/client_golang's
changelog</a>.</em></p>
<blockquote>
<h2>1.15.0 / 2023-04-13</h2>
<h2>What's Changed</h2>
<ul>
<li>[BUGFIX] Fix issue with atomic variables on ppc64le <a
href="https://redirect.github.com/prometheus/client_golang/issues/1171">#1171</a></li>
<li>[BUGFIX] Support for multiple samples within same metric <a
href="https://redirect.github.com/prometheus/client_golang/issues/1181">#1181</a></li>
<li>[BUGFIX] Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149
<a
href="https://redirect.github.com/prometheus/client_golang/issues/1187">#1187</a></li>
<li>[ENHANCEMENT] Add exemplars and middleware examples <a
href="https://redirect.github.com/prometheus/client_golang/issues/1173">#1173</a></li>
<li>[ENHANCEMENT] Add more context to &quot;duplicate label names&quot;
error to enable debugging <a
href="https://redirect.github.com/prometheus/client_golang/issues/1177">#1177</a></li>
<li>[ENHANCEMENT] Add constrained labels and constrained variant for all
MetricVecs <a
href="https://redirect.github.com/prometheus/client_golang/issues/1151">#1151</a></li>
<li>[ENHANCEMENT] Moved away from deprecated github.com/golang/protobuf
package <a
href="https://redirect.github.com/prometheus/client_golang/issues/1183">#1183</a></li>
<li>[ENHANCEMENT] Add possibility to dynamically get label values for
http instrumentation <a
href="https://redirect.github.com/prometheus/client_golang/issues/1066">#1066</a></li>
<li>[ENHANCEMENT] Add ability to Pusher to add custom headers <a
href="https://redirect.github.com/prometheus/client_golang/issues/1218">#1218</a></li>
<li>[ENHANCEMENT] api: Extend and improve efficiency of json-iterator
usage <a
href="https://redirect.github.com/prometheus/client_golang/issues/1225">#1225</a></li>
<li>[ENHANCEMENT] Added (official) support for go 1.20 <a
href="https://redirect.github.com/prometheus/client_golang/issues/1234">#1234</a></li>
<li>[ENHANCEMENT] timer: Added support for exemplars <a
href="https://redirect.github.com/prometheus/client_golang/issues/1233">#1233</a></li>
<li>[ENHANCEMENT] Filter expected metrics as well in CollectAndCompare
<a
href="https://redirect.github.com/prometheus/client_golang/issues/1143">#1143</a></li>
<li>[ENHANCEMENT] ⚠️ Only set start/end if time is not Zero. This
breaks compatibility in experimental api package. If you strictly depend
on empty time.Time as actual value, the behavior is now changed <a
href="https://redirect.github.com/prometheus/client_golang/issues/1238">#1238</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d7896d4bd0"><code>d7896d4</code></a>
Cut v1.15.0 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1249">#1249</a>)</li>
<li><a
href="bba12b5514"><code>bba12b5</code></a>
Bump github.com/prometheus/common from 0.41.0 to 0.42.0 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1244">#1244</a>)</li>
<li><a
href="9015fcfc2c"><code>9015fcf</code></a>
Bump github.com/golang/protobuf from 1.5.2 to 1.5.3 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1245">#1245</a>)</li>
<li><a
href="1bb8cf8306"><code>1bb8cf8</code></a>
Bump golang.org/x/sys from 0.5.0 to 0.6.0 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1246">#1246</a>)</li>
<li><a
href="ff7efedd43"><code>ff7efed</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus/client_golang/issues/1243">#1243</a>
from prometheus/dependabot/go_modules/google.golang....</li>
<li><a
href="852a282f10"><code>852a282</code></a>
Bump google.golang.org/protobuf from 1.28.1 to 1.30.0</li>
<li><a
href="63a3955992"><code>63a3955</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus/client_golang/issues/1238">#1238</a>
from jacksontj/issue_621</li>
<li><a
href="eb339714f5"><code>eb33971</code></a>
Filter expected metrics as well in CollectAndCompare (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1143">#1143</a>)</li>
<li><a
href="5c7821d84a"><code>5c7821d</code></a>
Update common Prometheus files (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1237">#1237</a>)</li>
<li><a
href="603786389c"><code>6037863</code></a>
Only set start/end if time is not Zero</li>
<li>Additional commits viewable in <a
href="https://github.com/prometheus/client_golang/compare/v1.14.0...v1.15.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/prometheus/client_golang&package-manager=go_modules&previous-version=1.14.0&new-version=1.15.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-17 20:11:00 +08:00
dependabot[bot]
7be3ea194f mod: bump gorm.io/driver/mysql from 1.4.7 to 1.5.0 (#7424)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-11 18:35:54 +08:00
dependabot[bot]
d119526bde mod: bump github.com/Masterminds/semver/v3 from 3.2.0 to 3.2.1 (#7422)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-11 18:32:22 +08:00
dependabot[bot]
c3f1331a5e mod: bump gorm.io/gorm from 1.24.7-0.20230306060331-85eaf9eeda11 to 1.25.0 (#7423)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-11 18:32:02 +08:00
dependabot[bot]
8de873be86 mod: bump golang.org/x/crypto from 0.7.0 to 0.8.0 (#7421)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-11 18:19:23 +08:00
dependabot[bot]
eeb397a0ac mod: bump golang.org/x/net from 0.8.0 to 0.9.0 (#7419)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 21:20:59 +08:00
dependabot[bot]
5432293224 mod: bump modernc.org/sqlite from 1.21.0 to 1.21.1 (#7413) 2023-04-03 20:16:33 +08:00
Joe Chen
5da1e62426 locale: sync from Crowdin (#7401) 2023-03-19 22:34:04 +08:00
Joe Chen
057ae983a0 chore(ci): fix typo in docker.yml (#7398)
[skip ci]
2023-03-15 23:23:05 +08:00
dependabot[bot]
f473643d29 mod: bump github.com/niklasfasching/go-org from 1.6.5 to 1.6.6 (#7395)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 21:53:19 +08:00
dependabot[bot]
b96b8eb389 mod: bump gorm.io/driver/postgres from 1.4.8 to 1.5.0 (#7393)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 21:37:21 +08:00
dependabot[bot]
70777899f8 mod: bump github.com/microcosm-cc/bluemonday from 1.0.22 to 1.0.23 (#7394)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 21:36:38 +08:00
dependabot[bot]
cdde49978b mod: bump golang.org/x/crypto from 0.6.0 to 0.7.0 (#7388)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-06 19:10:56 +08:00
dependabot[bot]
0ddab94774 mod: bump gorm.io/gorm from 1.24.5 to 1.24.6 (#7387)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-06 19:08:13 +08:00
TheDarkUndoing
5483d97f73 gitutil: strip SSH port from submodule URL when rendering for HTML link (#7383)
Co-authored-by: Joe Chen <jc@unknwon.io>
2023-03-05 20:00:56 +08:00
dependabot[bot]
6fa552994a mod: bump gopkg.in/macaron.v1 from 1.4.0 to 1.5.0 (#7377)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-01 09:36:40 +08:00
dependabot[bot]
bd0ab704af mod: bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#7378)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-01 09:34:55 +08:00
dependabot[bot]
cd7b3cf971 mod: bump modernc.org/sqlite from 1.20.4 to 1.21.0 (#7380)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-01 09:34:08 +08:00
Joe Chen
fb6693f612 chore: update release playbook (#7376)
[skip ci]
2023-02-26 12:15:19 +08:00
Joe Chen
a98968436c chore: bump dev version to 0.14 (#7375)
[skip ci]
2023-02-26 12:13:11 +08:00
Joe Chen
540134d443 CHANGELOG: cut entries for 0.13.0 (#7373)
[skip ci]
2023-02-25 20:31:04 +08:00
Joe Chen
6244daa3ea chore: update release issue templates (#7371)
[skip ci]
2023-02-25 20:28:30 +08:00
Joe Chen
689e71ff2c ci: run Go tests with -shuffle=on (#7370) 2023-02-25 16:56:39 +08:00
Joe Chen
361a681225 docs: minor updates (#7367)
[skip ci]
2023-02-25 16:08:34 +08:00
Joe Chen
73ae88badf CHANGELOG: cut entries for 0.12.11 (#7368)
[skip ci]
2023-02-25 13:39:06 +08:00
dependabot[bot]
72d51347ec mod: bump gorm.io/driver/mysql from 1.4.3 to 1.4.7 (#7363)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-20 19:28:14 +08:00
dependabot[bot]
dc37bf5794 mod: bump modernc.org/sqlite from 1.20.3 to 1.20.4 (#7364)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-20 19:15:19 +08:00
dependabot[bot]
9e5fa984f8 mod: bump gorm.io/driver/postgres from 1.4.7 to 1.4.8 (#7362)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-20 19:14:56 +08:00
Joe Chen
3e3d6eda12 chore: update Go versions in CI (#7346) 2023-02-19 18:10:34 +08:00
dependabot[bot]
9110059797 mod: bump golang.org/x/net from 0.6.0 to 0.7.0 (#7358)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-18 22:19:40 +08:00
Joe Chen
15d0d6a94b fix(db): correctly check Git path on case-insensitive file system (#7359) 2023-02-18 22:15:13 +08:00
Joe Chen
0f8c71d3b3 fix(migration): skip v20 if column sha256 already exists (#7354) 2023-02-14 22:44:23 +08:00
Joe Chen
8f9895acaf fix(db): sanitize user full name after find (#7353) 2023-02-14 21:46:09 +08:00
Joe Chen
2a375007ee fix(repo): be tolerant to implicit submodules (#7352) 2023-02-14 14:46:29 +08:00
dependabot[bot]
c63448e357 mod: bump github.com/gogs/git-module from 1.7.2 to 1.8.0 (#7350)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-13 22:46:36 +08:00
dependabot[bot]
5db49a8892 mod: bump gorm.io/driver/postgres from 1.4.6 to 1.4.7 (#7349)
[ci skip]

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-13 22:45:31 +08:00
dependabot[bot]
1a1b50d786 mod: bump golang.org/x/crypto from 0.5.0 to 0.6.0 (#7347)
[ci skip]

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-13 22:43:31 +08:00
Joe Chen
b34ee73497 feat(ssh): support dynamic list of algorithms (#7345) 2023-02-12 13:10:41 +08:00
Joe Chen
92f66c9eac chore: ask for test plan when test cases are not applicable (#7344)
[ci skip]
2023-02-12 12:47:13 +08:00
Joe Chen
3a28168d41 fix(backup): skip "data" in the custom directory (#7343) 2023-02-12 00:14:51 +08:00
Vamsi Atluri
ef1fe1bb3b conf: add new config option for default branch name (#7291)
Co-authored-by: Vamsi Atluri <me@vamc19.dev>
Co-authored-by: Joe Chen <jc@unknwon.io>
2023-02-11 16:37:24 +08:00
Joe Chen
8350daf505 refactor(db): merge relation stores into entity stores (#7341) 2023-02-08 13:55:54 +08:00
Joe Chen
133b9d9044 refactor(db): finish migrate methods off user.go (#7337) 2023-02-07 23:39:00 +08:00
Joe Chen
7c453d5b36 README: update sponsor link (#7340)
[ci skip]
2023-02-07 20:00:31 +08:00
Joe Chen
b6df33fa72 README: update VPS sponsor (#7339)
[ci skip]
2023-02-06 23:17:40 +08:00
dependabot[bot]
8d6b964099 mod: bump gorm.io/gorm from 1.24.3 to 1.24.5 (#7338)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 20:08:09 +08:00
Joe Chen
7ff09cf359 refactor(db): migrate methods off user.go (#7336) 2023-02-05 16:28:47 +08:00
Joe Chen
3c43b9b21c locale: sync from Crowdin (#7335) 2023-02-04 20:47:53 +08:00
Zachary Walters
5887bc116f chore: remove usages of the deprecated ioutil (#7332)
Co-authored-by: Joe Chen <jc@unknwon.io>
2023-02-04 13:43:36 +08:00
Joe Chen
6d220540c1 refactor(db): migrate methods off user.go (#7334) 2023-02-04 13:36:00 +08:00
Joe Chen
ed51686240 refactor(db): migrate methods off user.go (#7333) 2023-02-04 12:22:37 +08:00
Joe Chen
cc4d4eacad refactor(db): migrate methods off user.go (#7331) 2023-02-04 00:02:34 +08:00
Joe Chen
c53a1998c5 all: replace interface{} with any (#7330)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2023-02-02 21:25:25 +08:00
Joe Chen
614382fec0 refactor(db): migrate methods off user.go (#7329) 2023-02-02 21:14:27 +08:00
Joe Chen
9df10cb8cc docker: upgrade base images to alpine:3.17 (#7043) 2023-01-30 20:38:53 +08:00
dependabot[bot]
5c47ecfcb8 mod: bump github.com/microcosm-cc/bluemonday from 1.0.21 to 1.0.22 (#7325)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-30 20:24:06 +08:00
dependabot[bot]
3d8004cf6f mod: bump modernc.org/sqlite from 1.20.2 to 1.20.3 (#7321)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2023-01-26 20:20:11 +08:00
dependabot[bot]
a3e2adeda2 mod: bump github.com/urfave/cli from 1.22.10 to 1.22.12 (#7320)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-24 22:07:28 +08:00
dependabot[bot]
63117f46ee mod: bump github.com/sergi/go-diff from 1.2.0 to 1.3.1 (#7312)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-18 10:07:30 +08:00
dependabot[bot]
cf70284de9 mod: bump gorm.io/gorm from 1.24.2 to 1.24.3 (#7305)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[ci skip]
2023-01-09 23:29:05 +08:00
dependabot[bot]
367f2907df mod: bump golang.org/x/crypto from 0.4.0 to 0.5.0 (#7303)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-09 23:22:47 +08:00
Juning
16aded2743 systemd: add mysql.service to "After" (#7300) 2023-01-07 17:02:24 +08:00
dependabot[bot]
12b46b7757 mod: bump modernc.org/sqlite from 1.20.0 to 1.20.2 (#7301)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-07 17:00:12 +08:00
dependabot[bot]
6133415f6d mod: bump gorm.io/driver/postgres from 1.4.5 to 1.4.6 (#7299)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2023-01-07 16:52:04 +08:00
dependabot[bot]
c53b7e9698 mod: bump github.com/Masterminds/semver/v3 from 3.1.1 to 3.2.0 (#7275)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-08 23:20:52 +08:00
dependabot[bot]
c5d07b8bf9 mod: bump modernc.org/sqlite from 1.19.5 to 1.20.0 (#7276)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-08 23:20:32 +08:00
dependabot[bot]
2fc1e35943 mod: bump golang.org/x/text from 0.4.0 to 0.5.0 (#7277)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-08 23:20:12 +08:00
xpume
83335043e2 chore: fix typo in docstring (#7269) 2022-12-08 21:58:01 +08:00
dependabot[bot]
a5ad63a005 mod: bump modernc.org/sqlite from 1.19.4 to 1.19.5 (#7268)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-28 18:54:04 +08:00
Joe Chen
ae20d03aec refactor(db): migrate UpdateUser off user.go (#7267) 2022-11-27 19:36:10 +08:00
Joe Chen
44333afd20 chore: consistently use errors.Cause for identifying error types (#7264) 2022-11-27 15:53:26 +08:00
Joe Chen
13099a7e4f refactor(db): add Users.Update (#7263) 2022-11-27 15:19:44 +08:00
Joe Chen
a7dbc970df fix(db): update user.updated_unix upon changing username (#7262) 2022-11-25 23:01:41 +08:00
Joe Chen
644a3a9d78 refactor(db): migrate ChangeUsername off user.go (#7261) 2022-11-25 22:40:20 +08:00
dependabot[bot]
93736cbc12 mod: bump github.com/derision-test/go-mockgen from 1.3.6 to 1.3.7 (#7243)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-15 22:48:45 +08:00
dependabot[bot]
b157cc8b06 mod: bump github.com/prometheus/client_golang from 1.13.1 to 1.14.0 (#7245)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-15 22:47:16 +08:00
dependabot[bot]
1d65c8e3ef mod: bump modernc.org/sqlite from 1.19.3 to 1.19.4 (#7233)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-10 22:15:12 +08:00
dependabot[bot]
cdf4f59cb4 mod: bump github.com/prometheus/client_golang from 1.13.0 to 1.13.1 (#7232)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-10 22:14:12 +08:00
Joe Chen
5fb29db2db refactor(db): migrate methods off and delete deprecated methods from user.go (#7231) 2022-11-05 23:33:05 +08:00
Joe Chen
b5d47b9692 refactor(db): migrate methods off user.go (#7230) 2022-11-05 18:56:48 +08:00
Joe Chen
fd798b4197 refactor(db): migrate methods off user.go (#7228) 2022-11-05 17:55:05 +08:00
Joe Chen
a66c90462d refactor(db): migrate methods off user.go and org.go (#7219) (#7227) 2022-11-05 13:12:53 +08:00
dependabot[bot]
3af5a424f0 mod: bump github.com/derision-test/go-mockgen from 1.3.4 to 1.3.6 (#7224)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[ci skip]
2022-10-31 22:31:28 +08:00
dependabot[bot]
a9e3fa3ce5 mod: bump modernc.org/sqlite from 1.19.2 to 1.19.3 (#7223)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[ci skip]
2022-10-31 22:30:51 +08:00
dependabot[bot]
75ee18f87e mod: bump github.com/gogs/git-module from 1.7.0 to 1.7.1 (#7222)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[ci skip]
2022-10-31 22:30:13 +08:00
Joe Chen
d44978c940 locale: update [settings] access_token_tips (#7221) 2022-10-31 12:02:06 +08:00
Joe Chen
516cf7d077 locale: sync from Crowdin (#7220) 2022-10-31 11:55:24 +08:00
Joe Chen
1905b19ee7 refactor(db): migrate methods off user.go (#7219) 2022-10-30 23:04:24 +08:00
Joe Chen
131be6e074 refactor(db): migrate helpers off user_cache.go (#7214) 2022-10-24 23:45:31 +08:00
dependabot[bot]
49be63abbf mod: bump gorm.io/driver/postgres from 1.4.4 to 1.4.5 (#7212)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-24 19:41:03 +08:00
dependabot[bot]
f2b158159c mod: bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#7213)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-24 19:40:37 +08:00
Joe Chen
f6acc4763e test(db): add missing tests (#7208) 2022-10-23 21:53:11 +08:00
Joe Chen
3265abfbc2 refactor(db): migrate perms methods off user.go (#7207) 2022-10-23 21:22:36 +08:00
Joe Chen
d0a4a3401c refactor(db): migrate avatar methods off user.go (#7206) 2022-10-23 20:54:16 +08:00
Joe Chen
c58c893621 refactor(db): migrate password methods off user.go (#7205) 2022-10-23 19:15:14 +08:00
Joe Chen
ef0388045f chore: rename file to align with type name (#7204)
[ci skip]
2022-10-23 16:48:45 +08:00
Joe Chen
b1fefcbe50 refactor(db): migrate Follow off user.go (#7203) 2022-10-23 16:17:53 +08:00
Joe Chen
8077360cf6 chore(db): remove unused field (#7202) 2022-10-23 00:15:43 +08:00
Joe Chen
2e020b1cf6 release: update playbook (#7201) 2022-10-23 00:04:53 +08:00
Mateusz Reszka
742bc36edd api: support put content (#7114)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-10-22 23:52:48 +08:00
Yarden Shoham
a7299bbb8d ui: remove useless "Cancel" buttons (#7192)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-10-22 23:00:42 +08:00
Joe Chen
11edc09681 refactor: replace ioutil.ReadAll with io.ReadAll (#7200) 2022-10-22 21:34:53 +08:00
Yang Liu
b9f5cfddc1 auth: enable authentication by token from password (#7198)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-10-22 21:25:36 +08:00
LJea
fd5874b07b ui: add usage instructions for PAT (#7194)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-10-22 20:07:52 +08:00
Joe Chen
ce25881c88 refactor(db): move some methods off user.go (#7199) 2022-10-22 20:01:38 +08:00
Joe Chen
7cbd84d5b3 refactor(db): rename User.Passwd to User.Password (#7196) 2022-10-22 14:56:25 +08:00
Joe Chen
c502dc6ed8 refactor(db): move some methods from user.go to users.go (#7195) 2022-10-22 14:41:40 +08:00
dependabot[bot]
260e990be7 mod: bump golang.org/x/text from 0.3.7 to 0.4.0 (#7193)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-18 18:46:38 +08:00
dependabot[bot]
2df4b61eb2 mod: bump modernc.org/sqlite from 1.19.1 to 1.19.2 (#7190)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-18 18:35:43 +08:00
dependabot[bot]
689991578e mod: bump gorm.io/driver/mysql from 1.4.1 to 1.4.3 (#7189)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-18 18:34:13 +08:00
dependabot[bot]
a9bce79c6b mod: bump gorm.io/gorm from 1.23.10 to 1.24.0 (#7179)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-10-10 20:16:45 +08:00
dependabot[bot]
ac86936797 mod: bump gorm.io/driver/postgres from 1.3.10 to 1.4.4 (#7180)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 19:56:53 +08:00
dependabot[bot]
dcf9c111b6 mod: bump gorm.io/driver/mysql from 1.3.6 to 1.4.1 (#7178)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 19:44:34 +08:00
Joe Chen
50e5766867 build: remove support of Go 1.17 (#7177) 2022-10-09 23:12:03 +08:00
Joe Chen
8982a42d38 refactor(db): move User.HasForkedRepository to users.HasForkedRepository (#7176)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-10-09 22:55:32 +08:00
dependabot[bot]
fb00e3e56f mod: bump github.com/microcosm-cc/bluemonday from 1.0.20 to 1.0.21 (#7169)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-04 16:24:00 +08:00
dependabot[bot]
a0b8f5464e mod: bump github.com/editorconfig/editorconfig-core-go/v2 from 2.4.5 to 2.5.1 (#7170)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-04 16:23:19 +08:00
dependabot[bot]
777fb14fc9 mod: bump gorm.io/gorm from 1.23.9 to 1.23.10 (#7166)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-27 20:31:42 +08:00
dependabot[bot]
25d6b168c5 mod: bump modernc.org/sqlite from 1.18.2 to 1.19.1 (#7162)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-21 08:50:56 +08:00
dependabot[bot]
c9fd177998 mod: bump gorm.io/gorm from 1.23.8 to 1.23.9 (#7163)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-20 23:46:19 +08:00
dependabot[bot]
02973f7f80 mod: bump gorm.io/driver/postgres from 1.3.9 to 1.3.10 (#7164)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-20 23:45:54 +08:00
dependabot[bot]
360280b0ea mod: bump modernc.org/sqlite from 1.18.1 to 1.18.2 (#7161)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-12 22:39:49 +08:00
Joe Chen
82e29c6bd3 locale: sync from Crowdin (#7159) 2022-09-11 17:09:47 +08:00
dependabot[bot]
cefbaa08d9 mod: bump github.com/microcosm-cc/bluemonday from 1.0.19 to 1.0.20 (#7154)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-06 01:56:47 +08:00
dependabot[bot]
87def3de5f mod: bump github.com/urfave/cli from 1.22.9 to 1.22.10 (#7155)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-06 01:56:12 +08:00
dependabot[bot]
9ea258e97f mod: bump gorm.io/driver/postgres from 1.3.8 to 1.3.9 (#7141)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-15 20:58:37 +08:00
dependabot[bot]
7e6fc2603e mod: bump modernc.org/sqlite from 1.18.0 to 1.18.1 (#7139)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-15 20:39:16 +08:00
dependabot[bot]
4487890979 mod: bump gopkg.in/ini.v1 from 1.66.6 to 1.67.0 (#7140)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-15 20:38:55 +08:00
dependabot[bot]
be775e2ffa mod: bump github.com/derision-test/go-mockgen from 1.3.3 to 1.3.4 (#7142)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-15 20:37:39 +08:00
dependabot[bot]
cee6ef39ee mod: bump gorm.io/driver/mysql from 1.3.5 to 1.3.6 (#7143)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-15 20:37:15 +08:00
dependabot[bot]
5910265e13 mod: bump github.com/prometheus/client_golang from 1.12.2 to 1.13.0 (#7130)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-08 19:15:21 +08:00
Joe Chen
a43b933c90 go: update required version to be 1.17 and add 1.19 to CI (#7129)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-08-08 13:56:50 +08:00
dependabot[bot]
cfa5ddbde8 mod: bump github.com/go-ldap/ldap/v3 from 3.4.3 to 3.4.4 (#7117)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-02 15:24:47 +08:00
dependabot[bot]
a21f0b0540 mod: bump modernc.org/sqlite from 1.17.3 to 1.18.0 (#7116)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-02 15:24:21 +08:00
Joe Chen
ad796b8ba5 CHANGELOG: cut entries for 0.12.10 (#7119)
[skip ci]
2022-08-02 10:43:14 +08:00
Joe Chen
db82024fc7 netutil: allow using * to match any hostname (#7111) 2022-07-25 21:38:15 +08:00
Christian Eichert
780b33c639 chore: add Simona Iacob as translator for Romanian language (#7102) 2022-07-17 15:17:49 +08:00
Yehonatan Ezron
a5d3e1900e api: support getting blob content (#7080)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-07-17 15:16:52 +08:00
dependabot[bot]
ab7133b35a mod: bump gorm.io/gorm from 1.23.7 to 1.23.8 (#7105)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-17 15:05:30 +08:00
dependabot[bot]
75cc3ce172 mod: bump gorm.io/driver/mysql from 1.3.4 to 1.3.5 (#7104)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-17 15:04:36 +08:00
liuxhit
05a6a9d6e9 docker: support adding extra options to backup command (#7060)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-07-17 14:52:35 +08:00
dependabot[bot]
25a2b716ad mod: bump gorm.io/driver/postgres from 1.3.7 to 1.3.8 (#7098)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-07-05 08:46:12 +08:00
dependabot[bot]
1d48df3fd1 mod: bump github.com/stretchr/testify from 1.7.5 to 1.8.0 (#7097)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-04 23:19:58 +08:00
dependabot[bot]
b8294a460e mod: bump github.com/microcosm-cc/bluemonday from 1.0.18 to 1.0.19 (#7099)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-04 23:18:54 +08:00
dependabot[bot]
6043bf20fe mod: bump gorm.io/gorm from 1.23.6 to 1.23.7 (#7096)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-04 23:17:13 +08:00
Joe Chen
1cd501b107 chore: go mod tidy (#7086) 2022-06-27 20:30:16 +08:00
dependabot[bot]
0022566a3a mod: bump github.com/stretchr/testify from 1.7.2 to 1.7.5 (#7083)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-27 20:13:54 +08:00
dependabot[bot]
5f3d44ec00 mod: bump github.com/gogs/git-module from 1.6.0 to 1.7.0 (#7084)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-27 20:04:50 +08:00
Joe Chen
25b49294b2 conf: update test golden file (#7085) 2022-06-27 20:04:16 +08:00
Joe Chen
a8e43f63a1 locale: sync from Crowdin (#7082) 2022-06-26 11:09:33 +08:00
Joe Chen
fb52bd6fea db: set XORM log level to error (#7078) 2022-06-25 21:17:55 +08:00
Joe Chen
bc5c739047 pkgr: update supported distributions (#7077)
[skip ci]
2022-06-25 20:58:01 +08:00
Joe Chen
97ccb365ec webhook: validate against hostname instead of full URL (#7075) 2022-06-25 20:36:05 +08:00
Joe Chen
083c3ee659 db: refactor "action" table to use GORM (#7054)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-06-25 18:07:39 +08:00
dependabot[bot]
9df4e3ae3c mod: bump github.com/editorconfig/editorconfig-core-go/v2 from 2.4.4 to 2.4.5 (#7067)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-20 20:26:59 +08:00
Joe Chen
4a3dc6c774 db: skip auto migrate for existing "version" table (#7057) 2022-06-14 15:47:11 +08:00
dependabot[bot]
c0db4a7f1b mod: bump gorm.io/gorm from 1.23.5 to 1.23.6 (#7052)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-13 19:42:13 +08:00
dependabot[bot]
04fe4c86ec mod: bump github.com/derision-test/go-mockgen from 1.2.0 to 1.3.3 (#7053)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-13 19:41:28 +08:00
Joe Chen
b772603d78 migrations: add tests and remove XORM (#7050) 2022-06-12 14:15:01 +08:00
Joe Chen
2e19f5a3c8 db: add tests for authentication through login sources (#7049) 2022-06-12 10:34:12 +08:00
Joe Chen
63cb76106a chore: fix typo in codecov.yml (#7047)
[skip ci]
2022-06-11 17:35:30 +08:00
Joe Chen
1df62fafb9 db: use context and go-mockgen for ReposStore (#7046) 2022-06-11 12:43:56 +08:00
Joe Chen
5e32058c13 db: use context and go-mockgen for TwoFactorsStore (#7045) 2022-06-11 11:54:11 +08:00
Joe Chen
75fbb82440 db: use context for backup and restore (#7044) 2022-06-11 11:10:25 +08:00
Joe Chen
f837ea6346 db: use context and go-mockgen for UsersStore (#7042) 2022-06-11 09:42:17 +08:00
Joe Chen
9776bdc9b8 db: use context and go-mockgen for login sources (#7041) 2022-06-10 19:54:36 +08:00
Joe Chen
94059f291d db: use context and go-mockgen for LFSStore (#7038) 2022-06-10 11:27:06 +08:00
shlande
318fb25761 web: enable ETag to improve loading speed of static resources (#7035)
Co-authored-by: shlande <shlandeme@icloud.com>
2022-06-09 09:48:03 +08:00
Joe Chen
577621d463 mod: use github.com/gogs/gorm-sqlite as the SQLite driver (#7034) 2022-06-08 19:30:17 +08:00
Joe Chen
7229dd893f db: use context and go-mockgen for PermsStore (#7033) 2022-06-08 19:26:20 +08:00
Joe Chen
0918d8758b db: add back xorm tag for AccessToken.UserID (#7032) 2022-06-08 14:47:15 +08:00
Joe Chen
fe1d07f29c db: rename AccessTokensStore.Save to Touch (#7029) 2022-06-08 13:34:10 +08:00
Joe Chen
390fd3d283 docker: remove outdated info from README (#7028)
[skip ci]
2022-06-08 08:51:09 +08:00
Joe Chen
8304574738 release: minor updates to templates and docs (#7027)
[skip ci]
2022-06-08 01:32:37 +08:00
Joe Chen
727d4dbbe0 mod: update gorm.io/driver/sqlite to 1.3.2 (#7025) 2022-06-07 23:34:33 +08:00
Joe Chen
d6c6b901f0 CHANGELOG: cut entries for 0.12.9 (#7024)
[skip ci]
2022-06-07 21:30:42 +08:00
Joe Chen
9bf748b6c4 http: clean request path from Git endpoints (#7022) 2022-06-07 21:11:36 +08:00
Joe Chen
e3706575d5 ci: pin go-mockgen to 1.2.0 (#7021) 2022-06-07 20:38:54 +08:00
Joe Chen
2ca014250f pathutil: check both styles of os.PathSeparator (#7020) 2022-06-07 20:34:46 +08:00
dependabot[bot]
325904ce5a mod: bump github.com/niklasfasching/go-org from 1.6.2 to 1.6.5 (#7015)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-06 22:51:18 +08:00
dependabot[bot]
fa36765373 mod: bump github.com/stretchr/testify from 1.7.1 to 1.7.2 (#7016)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-06 22:50:52 +08:00
dependabot[bot]
55a8079c83 mod: bump gopkg.in/ini.v1 from 1.66.5 to 1.66.6 (#7017)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-06 22:50:33 +08:00
Joe Chen
0a92ad27ef db: use context and go-mockgen for AccessTokensStore (#7013) 2022-06-06 12:10:36 +08:00
Joe Chen
4cc3000b07 schemadoc: print table indexes (#7012) 2022-06-05 18:08:59 +08:00
E99p1ant
a328e7ccc4 access_token: encrypt access token with SHA256 (#7008)
* access_token: encrypt access token with SHA256

* revert list access token

* fix lint

* generate schemadoc

* add database migrations

* fix tests

* fix tests

* add test case for access token golden

* fix test in postgres

* `Sha256` -> `SHA256`

* Use GORM for migration

* task generate-schemadoc

* Use unique

* change migration name

* allow read

* task generate-schemadoc

* add changelog

* fix lint error

* update changelog

* remove Debug

* add comments

Co-authored-by: Joe Chen <jc@unknwon.io>
2022-06-05 13:34:21 +08:00
E99p1ant
155cae1de8 issues: sanitize DisplayName (#7009)
* issues: display issue poster’s `Name` instead of `DisplayName`

* sanitize display name

* update changelog
2022-06-05 00:53:15 +08:00
Joe Chen
64e09476c7 ci: check tidiness of "task generate-schemadoc" (#7007) 2022-06-04 14:40:21 +08:00
Joe Chen
4455cc1244 db: code tidy up for AccessTokens (#7006) 2022-06-04 13:35:42 +08:00
Joe Chen
38aff73251 repo_editor: check both styles of os.PathSeparator in all systems (#7005) 2022-06-04 13:11:29 +08:00
Joe Chen
69827490e0 pull: ignore PR status check if head repository is missing (#7004) 2022-06-04 13:10:15 +08:00
Joe Chen
75e10445ca http: fix non-sense NotFound call (#7003) 2022-06-04 10:44:54 +08:00
Joe Chen
5f0999243a ci: add Codeball (#6997)
[skip ci]
2022-06-03 21:16:52 +08:00
Joe Chen
09ddb8761f repo: remove hard-coded branch name in init (#6999) 2022-06-03 17:14:21 +08:00
Joe Chen
ccdcb1c45b db: run tests with pure-Go SQLite (#6998) 2022-06-03 10:03:48 +08:00
Joe Chen
5f34265db6 ci: run database tests against Postgres, MySQL and SQLite (#6996) 2022-06-01 22:51:46 +08:00
Joe Chen
05cdf8616b chore: update release issue templates (#6993)
[skip ci]
2022-05-31 19:07:43 +08:00
Joe Chen
c0941f4631 CHANGELOG: cut entries for 0.12.8 (#6992)
[skip ci]
2022-05-31 16:47:13 +08:00
Joe Chen
5414ae14a9 CHANEGLOG: add missing entry for #6988 (#6990)
[skip ci]
2022-05-31 15:48:40 +08:00
Joe Chen
b782400b92 locale: sync from Crowdin (#6989) 2022-05-31 15:48:21 +08:00
Joe Chen
7885f454a4 webhook: revalidate local hostname before each delivery (#6988) 2022-05-31 15:17:17 +08:00
Joe Chen
90bc752297 repo_editor: prohibit move files to to .git directory (#6986) 2022-05-31 15:10:00 +08:00
1135
519aeefbd9 repo_editor: prohibits uploading files to .git. directory (#6970)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-05-30 19:14:41 +08:00
dependabot[bot]
649e9e7f8c mod: bump gorm.io/driver/mysql from 1.3.3 to 1.3.4 (#6985)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-05-30 19:01:11 +08:00
dependabot[bot]
d466c96229 mod: bump gopkg.in/ini.v1 from 1.66.4 to 1.66.5 (#6984)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-05-30 19:00:49 +08:00
dependabot[bot]
38dbfee56c mod: bump gorm.io/driver/postgres from 1.3.6 to 1.3.7 (#6983)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-30 18:49:43 +08:00
Joe Chen
069d832a51 docker: push ephemeral image to ttl.sh for pull requests (#6981)
[skip ci]
2022-05-29 22:37:13 +08:00
Joe Chen
04d3946511 web: print accessible URL on startup (#6979) 2022-05-29 19:45:40 +08:00
Joe Chen
d7bda9ac0e build: remove Makefile and update Docker build steps (#6980) 2022-05-29 19:45:25 +08:00
Joe Chen
8356dc7774 locale: sync from Crowdin (#6978) 2022-05-29 15:10:21 +08:00
Joe Chen
1496988ac1 docs: use "go install" instead of "go get" (#6972) 2022-05-27 08:36:38 +08:00
Toby Simmons
d54e153fc8 csrf: sanitize token after reading from cookie (#6969)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-05-26 23:56:14 +08:00
Naveen
e65071d3aa chore: Set permissions for GitHub actions (#6936) 2022-05-26 01:05:29 +08:00
Songsong Wang
b4624bd468 chore: update README_ZH.md (#6960)
[skip ci]

Co-authored-by: Joe Chen <jc@unknwon.io>
2022-05-25 18:27:24 +08:00
dependabot[bot]
bdff033492 mod: bump gorm.io/driver/postgres from 1.3.5 to 1.3.6 (#6964)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-23 20:35:06 +08:00
Joe Chen
e01b0ce0d1 codecov: make patch status to be informational (#6952) 2022-05-16 20:58:35 +08:00
Joe Chen
c4b770f305 chore: fix lint errors (#6951) 2022-05-16 20:57:19 +08:00
dependabot[bot]
a6c53eb068 mod: bump github.com/prometheus/client_golang from 1.12.1 to 1.12.2 (#6950)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-16 19:42:12 +08:00
Joe Chen
705126cac8 locale: sync from Crowdin (#6948) 2022-05-15 02:15:24 +08:00
dependabot[bot]
cdc904e49e mod: bump github.com/urfave/cli from 1.22.8 to 1.22.9 (#6938)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-09 19:39:16 +08:00
Joe Chen
7ca5c8ca72 chore: update release templates (#6935) 2022-05-07 00:16:46 +08:00
Joe Chen
e51e016834 CHANGELOG: cut entries for 0.12.7 (#6931)
[skip ci]
2022-05-05 16:09:17 +08:00
Joe Chen
f7802b9227 release: add step to publish GitHub security advisory (#6929) 2022-05-05 15:57:50 +08:00
Joe Chen
a76aff36d0 CHANGELOG: add entry for #6926 (#6928) 2022-05-05 15:57:32 +08:00
Joe Chen
f45dbf3e76 chore: watch "custom" directory in dev and use lowercase for header value (#6927) 2022-05-03 17:54:14 +08:00
Joe Chen
cb35b73048 attachment: set CSP header in the serving endpoint (#6926) 2022-05-03 17:51:28 +08:00
dependabot[bot]
a61a4389ec mod: bump github.com/urfave/cli from 1.22.7 to 1.22.8 (#6925)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-02 20:58:08 +08:00
dependabot[bot]
f1755f5bc5 mod: bump gorm.io/gorm from 1.23.4 to 1.23.5 (#6924)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-02 20:57:37 +08:00
Joe Chen
71fc57f8a0 chore: fix dead link in pull request template (#6922)
[skip ci]
2022-04-27 20:29:54 +08:00
4e4o
f2c3027f50 restore: fix incorrect existence checking of "repositories.zip" (#6914) 2022-04-27 10:32:13 +08:00
vinceAmstoutz
39adf6e55a chore: update TRANSLATORS (#6912) 2022-04-27 10:19:59 +08:00
Joe Chen
4d33a5b5a8 locale: sync from Crowdin (#6920) 2022-04-26 17:46:22 +08:00
dependabot[bot]
26fce15bcf mod: bump gorm.io/driver/postgres from 1.3.4 to 1.3.5 (#6917)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-25 20:33:16 +08:00
dependabot[bot]
a230b3de22 mod: bump github.com/urfave/cli from 1.22.5 to 1.22.7 (#6918)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-25 20:32:36 +08:00
dependabot[bot]
e5350b9627 mod: bump github.com/go-ldap/ldap/v3 from 3.4.2 to 3.4.3 (#6905)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 19:38:46 +08:00
dependabot[bot]
a7693cbc86 mod: bump gorm.io/driver/postgres from 1.3.3 to 1.3.4 (#6904)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 19:38:18 +08:00
Joe Chen
69514d2fc8 SECURITY: refer dummy issue to a simpler example (#6902) 2022-04-09 14:02:32 +08:00
Joe Chen
0778db4228 CHANGELOG: add missing entries (#6899)
[skip ci]
2022-04-06 21:30:55 +08:00
dependabot[bot]
5911b0296b mod: bump gorm.io/driver/mysql from 1.3.2 to 1.3.3 (#6892)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-05 16:49:08 +08:00
dependabot[bot]
8acbc2d1de mod: bump gorm.io/gorm from 1.23.3 to 1.23.4 (#6891)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-05 16:48:54 +08:00
Joe Chen
f37a8d82c1 codecov: make status only informational (#6897)
[skip ci]
2022-04-05 16:47:46 +08:00
dependabot[bot]
2601b40ffa mod: bump github.com/gogs/git-module from 1.5.0 to 1.6.0 (#6894)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-04-05 16:45:01 +08:00
Joe Chen
5acbd7bcc3 dependabot: request reviews from the core team (#6896)
[skip ci]
2022-04-05 16:41:17 +08:00
dependabot[bot]
5910f77e42 mod: bump gorm.io/driver/postgres from 1.3.1 to 1.3.3 (#6893)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-05 16:39:27 +08:00
Renzo Toma
efa572162f webhook: add missing %s URL value for webhook description (#6478)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-04-04 17:40:34 +08:00
Joe Chen
5c4db08968 locale: sync from Crowdin (#6888) 2022-04-02 19:04:55 +08:00
Joe Chen
f44a693bbd docs: remove task generate-bindata step from sync from Crowdin (#6887)
[skip ci]
2022-04-02 19:03:58 +08:00
Joe Chen
3f439f15c3 mod: update golang.org/x/crypto/ssh (#6884) 2022-04-01 09:54:42 +08:00
Joe Chen
6dbeb16d21 Taskfile: watch go.mod and use timestamp instead of checksum (#6885)
[skip ci]
2022-04-01 09:51:30 +08:00
Joe Chen
c5549b442b templates: use OldIndex for delete files in diff (#6878) 2022-03-28 21:47:07 +08:00
dependabot[bot]
70c6f0a490 mod: bump github.com/gogs/git-module from 1.4.0 to 1.5.0 (#6877)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-03-28 21:36:21 +08:00
Joe Chen
f37cd9672c restore: clean up leftover and invalid chars (#6875) 2022-03-26 15:10:39 +08:00
Joe Chen
9bce320160 Taskfile: fix incorrect sources syntax (#6874)
[skip ci]
2022-03-25 22:12:51 +08:00
Joe Chen
22fb91cff9 Taskfile: remove trailing period in task description (#6873)
[skip ci]
2022-03-25 18:38:40 +08:00
dependabot[bot]
3c49a6173d mod: bump github.com/gogs/git-module from 1.2.0 to 1.4.0 (#6866)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-03-22 00:55:36 +08:00
dependabot[bot]
d66fe583d5 mod: bump github.com/editorconfig/editorconfig-core-go/v2 from 2.4.3 to 2.4.4 (#6865)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-21 18:49:41 +08:00
dependabot[bot]
72c2d6ab70 mod: bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#6867)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-21 18:49:11 +08:00
dependabot[bot]
70ff8d787a mod: bump gorm.io/gorm from 1.23.2 to 1.23.3 (#6864)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-21 18:48:47 +08:00
Joe Chen
0300f88602 docs: tweak release matters (#6860)
[skip ci]
2022-03-19 17:10:00 +08:00
Joe Chen
f36eeedbf8 CHANGELOG: cut entries for 0.12.6 (#6858)
[skip ci]
2022-03-19 14:06:23 +08:00
Joe Chen
e10ec6f3b8 pkgr: remove debian-8 and ubuntu-14.04 (#6853)
[skip ci]
2022-03-17 15:00:23 +08:00
Joe Chen
d753a48a7d docs: remove instructions to install go-bindata (#6852)
[skip ci]
2022-03-17 14:09:00 +08:00
Michael Li
32c454ba5f assets: convert usage of go-bindata to Go embed (#6851)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-03-17 14:05:09 +08:00
Joe Chen
39f64a1371 go: update required version to be 1.16 (#6850) 2022-03-16 12:18:27 +08:00
Joe Chen
3539de754d ci: delete Go 1.15 and add Go 1.18 (#6847) 2022-03-16 02:04:27 +08:00
Joe Chen
1791665f74 chore: run task generate (#6844) 2022-03-15 22:42:22 +08:00
tc608
def6fcc4dc templates: fetch fixed size of members' avatar (#5755)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-03-15 22:12:08 +08:00
Joe Chen
d392bc6e9a workflows: lock closed threads after 90 days (#6843) 2022-03-15 21:30:13 +08:00
Joe Chen
714383a063 conf: add allowlist for accessing local network (#6842) 2022-03-14 22:06:08 +08:00
Joe Chen
a2c6325261 codecov: disable GitHub Checks (#6840)
[skip ci]
2022-03-14 12:52:50 +08:00
Joe Chen
aeb5e34490 golangci-lint: add unparam linter (#6839) 2022-03-13 22:37:00 +08:00
Joe Chen
775901058d repo_editor: check upload TreePath and file name (#6838) 2022-03-13 22:18:56 +08:00
Joe Chen
3e35371754 chore: fix typo in release issue templates (#6831)
[skip ci]
2022-03-11 15:04:47 +08:00
Joe Chen
bd12d46e79 CHANGELOG: cut entries for 0.12.5 (#6830)
[skip ci]
2022-03-11 15:04:12 +08:00
Joe Chen
82ee089088 SECURITY: clarify vulnerability lifecycle (#6828)
[skip ci]
2022-03-11 14:25:09 +08:00
Bo Lorentsen
61529fd780 docker: check "/data" mount ownership before forcing it (#6553)
Co-authored-by: bl <bl@moch.dk>
2022-03-11 12:29:51 +08:00
Joe Chen
aac91b3611 lsif: update upload endpoint (#6827)
Co-authored-by: Sourcegraph <batch-changes@sourcegraph.com>
2022-03-10 23:30:03 +08:00
dependabot[bot]
4ca87057f3 mod: bump gorm.io/gorm from 1.22.5 to 1.23.2 (#6817)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-03-08 20:44:30 +08:00
deepsource-autofix[bot]
553d32ce7d autofix: format code with gofmt and gofumpt (#6821)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>

[skip ci]
2022-03-08 20:35:31 +08:00
ysf
940a7da9d1 security: fix improper PAM authorization handling (#6819)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-03-08 20:02:01 +08:00
Michael Rowley
242deca524 security: fix SSRF in repository migration (#6812)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-03-08 11:34:53 +08:00
Nicolas Ferrari
bb19f52c05 README: Add alwaysdata to Cloud providers (#6818)
[skip ci]
2022-03-07 23:48:04 +08:00
dependabot[bot]
e75ee730b8 mod: bump github.com/niklasfasching/go-org from 1.6.1 to 1.6.2 (#6816)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-07 23:07:29 +08:00
Joe Chen
36102f1689 security: encourage reporting vulnerabilities through huntr.dev (#6811)
[skip ci]
2022-03-06 20:13:56 +08:00
deepsource-autofix[bot]
e452d94fc8 autofix: format code with gofumpt and gofmt (#6803)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-03-06 17:55:17 +08:00
deepsource-autofix[bot]
2466da4e82 autofix: fix nested if with else if (#6807)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-03-06 16:39:14 +08:00
deepsource-autofix[bot]
09dbbf9a69 autofix: fix unused method receiver (#6808)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-03-06 16:37:41 +08:00
deepsource-autofix[bot]
b7372b1f32 autofix: fix unnecessary allocations due to strings.Index call (#6806)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-03-06 16:34:01 +08:00
deepsource-autofix[bot]
5afca6ca8e autofix: function call can be replaced with helper function (#6805)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-03-06 16:33:55 +08:00
deepsource-autofix[bot]
deec3516d5 autofix: fix check for empty string (#6804)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-03-06 16:33:45 +08:00
deepsource-autofix[bot]
65526f84e1 chore: update .deepsource.toml (#6802)
Co-authored-by: DeepSource Bot <bot@deepsource.io>
2022-03-06 16:14:48 +08:00
deepsource-autofix[bot]
442609fa17 autofix: simplify slice expression to sliced value itself (#6801)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-03-06 16:03:27 +08:00
deepsource-autofix[bot]
2d609b8b31 autofix: types of function parameters can be combined (#6800)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-03-06 15:59:45 +08:00
deepsource-autofix[bot]
3acc13038d autofix: unused parameter should be replaced by underscore (#6799)
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
2022-03-06 15:46:21 +08:00
deepsource-autofix[bot]
ab96a4f0d8 chore: add .deepsource.toml (#6798)
Co-authored-by: DeepSource Bot <bot@deepsource.io>
2022-03-06 14:02:28 +08:00
shuyue
7c893a58da markdown: support rendering Mermaid diagrams (#6776)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-03-05 19:23:08 +08:00
Joe Chen
ed81fc5a01 docs: update release playbook for ARMv7 (#6792)
[skip ci]
2022-03-02 18:49:16 +08:00
dependabot[bot]
8f6c4341f7 mod: bump github.com/gogs/git-module from 1.1.5 to 1.2.0 (#6791)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-28 19:11:39 +08:00
dependabot[bot]
175e4f228d mod: bump github.com/go-ldap/ldap/v3 from 3.4.1 to 3.4.2 (#6790)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-28 19:10:46 +08:00
dependabot[bot]
325f4f9560 mod: bump github.com/niklasfasching/go-org from 0.1.9 to 1.6.1 (#6789)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-28 19:10:22 +08:00
Joe Chen
c7e8c145d1 ci: check Go module tidiness (#6787)
[skip ci]
2022-02-27 19:58:23 +08:00
Simone Cattaneo
6d77712b1b dep: update github.com/go-ldap/ldap to v3 (#6763)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-02-26 18:43:51 +08:00
Joe Chen
8442d8530a contributing: add guide for making proposals (#6784)
[skip ci]
2022-02-25 21:19:37 +08:00
Joe Chen
9a164bcb45 README: use branch check status instead of workflow (#6783) 2022-02-25 15:10:52 +08:00
dependabot[bot]
8a1a40ce6a mod: bump github.com/microcosm-cc/bluemonday from 1.0.17 to 1.0.18 (#6771)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 22:15:00 +08:00
dependabot[bot]
f6494d22ee mod: bump gopkg.in/ini.v1 from 1.66.2 to 1.66.4 (#6770)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 22:14:25 +08:00
dependabot[bot]
3d24360f20 mod: bump gorm.io/gorm from 1.22.4 to 1.22.5 (#6769)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-11 18:50:45 +08:00
Joe Chen
815624c88a contributing: add links of articles for the guide
[skip ci]
2022-02-10 20:11:36 +08:00
dependabot[bot]
47a996ba4b mod: bump github.com/prometheus/client_golang from 1.12.0 to 1.12.1 (#6756)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-07 23:24:37 +08:00
dependabot[bot]
5e8444ed0f mod: bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0 (#6745)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 12:37:18 +08:00
Joe Chen
dfe8fbde84 docker: remove healthcheck against the SSH port (#6742) 2022-01-20 16:11:35 +08:00
Joe Chen
3a5ccc18cf docker: delete Dockerfile.rpi (#6741)
[skip ci]
2022-01-20 14:20:18 +08:00
Joe Chen
82e5fd018b docs: delete and re-create Docker manifest for release (#6739)
[skip ci]
2022-01-20 12:57:08 +08:00
Joe Chen
2071eb634f docs: update release templates and playbook (#6735)
[skip ci]
2022-01-18 11:58:09 +08:00
Joe Chen
e6c5633f58 CHANGELOG: cut entries for 0.12.4 (#6733)
[skip ci]
2022-01-17 09:21:59 +08:00
Joe Chen
6ccc1ce804 docs: update links to release templates (#6729)
[skip ci]
2022-01-16 19:04:28 +08:00
Joe Chen
74886d95d0 docs: update release templates (#6728)
[skip ci]
2022-01-16 18:51:17 +08:00
Joe Chen
acf2df3688 mailmap: update replacements
[skip ci]
2022-01-13 11:29:50 +08:00
Joe Chen
9ae80a6173 chore: rename few consts to camel case (#6725) 2022-01-13 11:27:16 +08:00
Joe Chen
c8476b1c2e docker: add job for pull requests from forks (#6724) 2022-01-13 11:04:54 +08:00
Alex Zhao
cbe775aee2 docker: fix nc command (#6722) 2022-01-13 10:35:24 +08:00
Joe Chen
5e43fa92ff markup: use default link formation when no format in metas (#6723) 2022-01-13 10:13:36 +08:00
Joe Chen
539e2a8b42 github: update dead links in issue forms (#6721) 2022-01-11 23:48:04 +08:00
dependabot[bot]
5f250de8ad mod: bump gorm.io/driver/mysql from 1.0.3 to 1.2.3 (#6717)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 20:06:36 +08:00
Joe Chen
2e625a051d locale: sync from Crowdin (#6714) 2022-01-08 16:43:46 +08:00
Joe Chen
3e948fd792 contributing: add Philosophy and methodology (#6713)
[skip ci]
2022-01-08 14:55:50 +08:00
Nuyube
b52bea7503 chore: fix dead link in README (#6709)
[skip ci]
2022-01-06 22:47:27 +08:00
zvrh
a9be4de5a5 database: add PostgreSQL custom schema support (#6695)
Co-authored-by: Homura37 <git@gvip.xyz>
Co-authored-by: Homura <16538800+Homura37@users.noreply.github.com>
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-01-05 22:02:33 +08:00
dependabot[bot]
14481533b8 mod: bump github.com/olekukonko/tablewriter from 0.0.4 to 0.0.5 (#6705)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 14:33:52 +08:00
dependabot[bot]
2519f28632 mod: bump github.com/microcosm-cc/bluemonday from 1.0.16 to 1.0.17 (#6707)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 14:33:27 +08:00
dependabot[bot]
22caf7b659 mod: bump github.com/issue9/identicon from 1.0.1 to 1.2.1 (#6706)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 14:31:46 +08:00
dependabot[bot]
ee9ab396dc mod: bump github.com/prometheus/client_golang from 1.9.0 to 1.11.0 (#6704)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 11:27:30 +08:00
dependabot[bot]
dc07fbe753 mod: bump github.com/sergi/go-diff from 1.1.0 to 1.2.0 (#6699)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-28 12:00:44 +08:00
dependabot[bot]
d19af039e7 mod: bump github.com/editorconfig/editorconfig-core-go/v2 from 2.4.1 to 2.4.3 (#6698)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-28 11:59:12 +08:00
Joe Chen
37383d9a1f chore: add missing period to contributing.md (#6690)
[skip ci]
2021-12-23 15:51:57 +08:00
Joe Chen
165d5051b5 chore: fix dead links and wording in README (#6689) 2021-12-22 11:26:06 +08:00
Joe Chen
8d9f61c467 chore: update README banner (#6688) 2021-12-21 16:48:50 +08:00
dependabot[bot]
a72bac54d5 mod: bump unknwon.dev/clog/v2 from 2.1.2 to 2.2.0 (#6684)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-20 19:03:33 +08:00
Joe Chen
7878465567 db: skip ping when not available (#6687) 2021-12-20 18:46:54 +08:00
dependabot[bot]
c82dc04cbb mod: bump github.com/go-macaron/binding from 1.1.1 to 1.2.0 (#6686)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-20 18:43:49 +08:00
dependabot[bot]
69380e4934 mod: bump github.com/gogs/git-module from 1.1.4 to 1.1.5 (#6685)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-20 18:43:22 +08:00
dependabot[bot]
b6ab8cd68d mod: bump gorm.io/driver/postgres from 1.0.5 to 1.2.3 (#6683)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-20 18:42:29 +08:00
dependabot[bot]
0d0dc67141 mod: bump gopkg.in/ini.v1 from 1.62.0 to 1.66.2 (#6682)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-20 18:41:23 +08:00
Joe Chen
f0b21aff91 docker: build and push images when new releases are published (#6681) 2021-12-19 20:47:16 +08:00
Joe Chen
160a0b77cf docs: update links and outdated conent (#6680) 2021-12-18 11:23:59 +08:00
Joe Chen
6528bf35dc ci: send emails on job failures for Docker and Go (#6679) 2021-12-18 11:15:02 +08:00
Joe Chen
da56873d37 github: give Docker workflow write access to packages (#6678) 2021-12-18 10:51:22 +08:00
Joe Chen
c6968105e5 docker: update README to add ghcr.io (#6677) 2021-12-18 01:18:48 +08:00
Joe Chen
f1f3e970b9 github: fix CodeQL token permissions (#6676) 2021-12-18 01:03:01 +08:00
Joe Chen
b827a2f342 docker: upgrade base images to alpine3.14 (#6675) 2021-12-18 00:31:03 +08:00
dependabot[bot]
5f4e07eb4f mod: bump github.com/pquerna/otp from 1.2.0 to 1.3.0 (#6667)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-17 18:54:58 +08:00
dependabot[bot]
b1193607c2 mod: bump github.com/json-iterator/go from 1.1.10 to 1.1.12 (#6668)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-17 18:52:48 +08:00
Joe Chen
eeef90a475 github: refurbish contributing guide (#6673) 2021-12-17 18:49:58 +08:00
Joe Chen
a523138e51 github: improve description of the bug report issue form 2021-12-17 18:18:14 +08:00
Joe Chen
6ec001f944 github: fix grammar in the documentation issue form 2021-12-17 18:15:52 +08:00
Joe Chen
55070da239 github: refurbish issue and pull request templates (#6664) 2021-12-17 18:13:21 +08:00
Ikko Ashimine
6f2b7fb853 chore: fix typo in message.go (#6587) 2021-12-16 21:06:41 +08:00
dependabot[bot]
899ec7ed54 build(deps): bump github.com/microcosm-cc/bluemonday from 1.0.5 to 1.0.16 (#6660)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-15 23:58:49 +08:00
Joe Chen
8ee734b1df ci: build and push Docker images on main branch (#6659) 2021-12-15 16:20:39 +08:00
Joe Chen
7867163bfd docker: delete Dockerfile.aarch64 (#6658) 2021-12-15 11:52:58 +08:00
odidev
82652f0f08 Dockerfile: add ARM64 and ARMhf support (#6579)
Co-authored-by: Luciano Colosio <lucio@c8.io>
2021-12-15 11:27:27 +08:00
Devops
d60d9cf985 api: support listing repository tags (#6656)
Co-authored-by: zhouzhibo <zhouzhibo>
Co-authored-by: Joe Chen <jc@unknwon.io>
2021-12-14 20:41:12 +08:00
Joe Chen
63bd4bb4b1 locale: sync from Crowdin (#6651) 2021-11-28 17:03:18 +08:00
Pavel M
de3161155b api: EditWiki implementation (#5860)
Co-authored-by: Joe Chen <jc@unknwon.io>
2021-11-10 13:29:27 +08:00
Joe Chen
8938855b40 locale: sync from Crowdin (#6633) 2021-10-23 21:58:26 +08:00
Joe Chen
55e5a7c25a README: update VPS sponsors 2021-10-04 21:55:27 +08:00
Joe Chen
fa3d011415 chore: fix lint errors (#6620) 2021-09-24 00:44:09 +08:00
Jordan Levin
b9a3626cad api: add GET /api/v1/{owner}/{repo}/commits endpoint (#6574)
This pull request targets issue #6573.

It provides a new API endpoint: `/api/v1/repos/{org}/{repo}/commits?pageSize=<int>` with a default page size of 30 commits (the same as the UI).

This implementation currently only focuses on the main/master branch of the repository, and does not provide the ability to return commit history for other branches.

- Note: Since the logic for converting a git.Commit to api.Commit had to be used in `GetAllCommits` and `GetSingleCommit`, I decided to pull the code out into a helper function, ` gitCommitToAPICommit(commit, context)`.
2021-09-24 00:33:52 +08:00
dependabot[bot]
b3eb33be0f build(deps): bump github.com/microcosm-cc/bluemonday from 1.0.4 to 1.0.5 (#6613)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-04 13:53:00 +08:00
ᴜɴᴋɴᴡᴏɴ
4a89438454 ci: update GitHub Actions (#6612) 2021-09-04 13:40:35 +08:00
ᴜɴᴋɴᴡᴏɴ
f524e4f932 dep: update golang.org/x/sys (#6611) 2021-09-04 13:24:49 +08:00
Cuban Pete
156b91baff docker: add Healthcheck support (#6522)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <jc@unknwon.io>
2021-09-04 13:16:59 +08:00
DoMeLe
764e901689 docker: update default port to be exposed on the host (#6597) 2021-08-30 23:58:10 +08:00
James-REANNZ
8f6757cc7b web: correctly handle go-get pages for repository roots (#6598)
Fixes regression in go-get handling introduced in #6318.
2021-08-26 13:12:51 +08:00
ᴜɴᴋɴᴡᴏɴ
7445dec1b4 locale: sync from Crowdin (#6602) 2021-08-08 22:07:58 +08:00
Kevin
ba8be9489e public/js: upgrade jQuery to 3.6.0 (#6550)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2021-05-19 15:12:34 +08:00
ᴜɴᴋɴᴡᴏɴ
12ab7efdb0 chore: go mod tidy (#6564) 2021-05-19 14:56:19 +08:00
dependabot-preview[bot]
3993b65bbf build(deps): bump github.com/editorconfig/editorconfig-core-go/v2 from 2.3.9 to 2.4.1 (#6509)
Bumps [github.com/editorconfig/editorconfig-core-go/v2](https://github.com/editorconfig/editorconfig-core-go) from 2.3.9 to 2.4.1.
- [Release notes](https://github.com/editorconfig/editorconfig-core-go/releases)
- [Changelog](https://github.com/editorconfig/editorconfig-core-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/editorconfig/editorconfig-core-go/compare/v2.3.9...v2.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-05-19 14:41:01 +08:00
dependabot-preview[bot]
fb969f8492 build(deps): bump github.com/stretchr/testify from 1.6.1 to 1.7.0 (#6473)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.6.1...v1.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-05-19 14:39:08 +08:00
dependabot-preview[bot]
8f8a27c904 build(deps): bump github.com/prometheus/client_golang from 1.8.0 to 1.9.0 (#6454)
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.8.0...v1.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-05-19 14:38:04 +08:00
ᴜɴᴋɴᴡᴏɴ
d8fa08111b chore: fix linguist-vendored with double asterisks (#6563) 2021-05-19 14:32:09 +08:00
Massimiliano Losego
4077f27592 templates: add it-IT version of home page (#6558)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2021-05-19 13:43:09 +08:00
ᴜɴᴋɴᴡᴏɴ
1a1a01a842 ci: use new lint action and add custom config (#6562) 2021-05-19 13:38:13 +08:00
Peter Dave Hello
c4cf659e32 docker: reduce additional image layer for the not executable gosu binary (#6557)
This will help reduce the image size and image layers.
2021-05-19 13:31:19 +08:00
Atin
d6987ee05b chore: fix typos in code comments (#6556) 2021-05-19 13:12:09 +08:00
ᴜɴᴋɴᴡᴏɴ
509a392272 locale: sync from Crowdin (#6510)
* locale: sync from Crowdin

* Fix tests
2021-02-27 18:48:10 +08:00
ᴜɴᴋɴᴡᴏɴ
af6510fd17 locale: sync from Crowdin (#6449) 2020-12-13 10:24:23 +08:00
dependabot-preview[bot]
cd4d79cf99 build(deps): bump github.com/go-macaron/i18n from 0.5.0 to 0.6.0 (#6440)
Bumps [github.com/go-macaron/i18n](https://github.com/go-macaron/i18n) from 0.5.0 to 0.6.0.
- [Release notes](https://github.com/go-macaron/i18n/releases)
- [Commits](https://github.com/go-macaron/i18n/compare/v0.5.0...v0.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-06 01:14:08 +08:00
dependabot-preview[bot]
10e7c42a83 build(deps): bump github.com/editorconfig/editorconfig-core-go/v2 from 2.3.7 to 2.3.9 (#6441)
Bumps [github.com/editorconfig/editorconfig-core-go/v2](https://github.com/editorconfig/editorconfig-core-go) from 2.3.7 to 2.3.9.
- [Release notes](https://github.com/editorconfig/editorconfig-core-go/releases)
- [Changelog](https://github.com/editorconfig/editorconfig-core-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/editorconfig/editorconfig-core-go/compare/v2.3.7...v2.3.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-06 01:13:42 +08:00
dependabot-preview[bot]
7676b59b02 build(deps): bump gorm.io/gorm from 1.20.7 to 1.20.8 (#6442)
Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.20.7 to 1.20.8.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.20.7...v1.20.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-06 01:12:21 +08:00
ᴜɴᴋɴᴡᴏɴ
0ff888c989 CHANGELOG: make entries more informational (#6445) 2020-12-06 01:09:38 +08:00
peppe8o
6b4a5b5e91 README: add a new RPI Zero W tutorial (#6443)
Updated tutorial section adding peppe8o.com tutorial to install Gogs on a cheap Raspberry PI Zero W with MariaDB database.
2020-12-06 01:09:08 +08:00
ᴜɴᴋɴᴡᴏɴ
72af17bbbe db: simplify GORM logger init in tests (#6444) 2020-12-06 01:06:24 +08:00
Eduardo Bacchi Kienetz
c875950c43 ssh: allow setting allowed MAC algorithms for built-in server (#6435)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-12-04 21:52:26 +08:00
dependabot-preview[bot]
71eeb2f0c0 build(deps): bump gorm.io/driver/sqlite from 1.1.3 to 1.1.4 (#6432)
Bumps [gorm.io/driver/sqlite](https://github.com/go-gorm/sqlite) from 1.1.3 to 1.1.4.
- [Release notes](https://github.com/go-gorm/sqlite/releases)
- [Commits](https://github.com/go-gorm/sqlite/compare/v1.1.3...v1.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-28 03:28:00 +08:00
dependabot-preview[bot]
99f1b9899f build(deps): bump gorm.io/gorm from 1.20.6 to 1.20.7 (#6425)
* build(deps): bump gorm.io/gorm from 1.20.6 to 1.20.7

Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.20.6 to 1.20.7.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.20.6...v1.20.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Fix compile error

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-11-28 02:11:11 +08:00
dependabot-preview[bot]
bee3bebb4e build(deps): bump github.com/russross/blackfriday from 1.5.2 to 1.6.0 (#6429)
Bumps [github.com/russross/blackfriday](https://github.com/russross/blackfriday) from 1.5.2 to 1.6.0.
- [Release notes](https://github.com/russross/blackfriday/releases)
- [Commits](https://github.com/russross/blackfriday/compare/v1.5.2...v1.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-28 01:58:35 +08:00
dependabot-preview[bot]
efcb8bbca6 build(deps): bump github.com/Masterminds/semver/v3 from 3.1.0 to 3.1.1 (#6431)
Bumps [github.com/Masterminds/semver/v3](https://github.com/Masterminds/semver) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/Masterminds/semver/releases)
- [Changelog](https://github.com/Masterminds/semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Masterminds/semver/compare/v3.1.0...v3.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-28 01:54:35 +08:00
stypr
cd469f7a1d repo: disallow urlencoded new lines in git protocol paths (#6420)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-11-27 18:52:42 +08:00
weibaohui
c7f58ca870 templates: fix typo of BranchCount (#6370)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-11-24 23:13:40 +08:00
MichaIng
b34d040c78 scripts: fix MySQL script for MariaDB >= 10.3.1 (#6424)
innodb_file_format and innodb_large_prefix have been deprecated with MariaDB v10.2 and removed with v10.3.1. They have been reintroduced with v10.4.3 but remain deprecated and unused:
- https://mariadb.com/kb/en/innodb-system-variables/#innodb_file_format
- https://mariadb.com/kb/en/innodb-system-variables/#innodb_large_prefix

Setting those variables on MariaDB >=10.3.1 leads to the following error:
"ERROR 1238 (HY000) at line 7: Variable 'innodb_file_format' is a read only variable"

Since semantic versioning patch versions cannot be compared via numeric operators, only the major + minor versions are compared against 10.3. Since v10.2.2 the defaults match the desired values, so there is only the single patch version 10.3.0 where, when explicitly set differently via MariaDB configs, this commit could lead to an unwanted database format. In favour of a simple SQL change, this case is ignored.

This commit additionally removes trailing spaces and the doubled trailing empty line.

Signed-off-by: MichaIng <micha@dietpi.com>
2020-11-24 01:55:50 +08:00
ᴜɴᴋɴᴡᴏɴ
afaf6da405 locale: sync from Crowdin (#6419) 2020-11-15 01:14:39 +08:00
dependabot-preview[bot]
7bef64a0d6 build(deps): bump gopkg.in/macaron.v1 from 1.3.9 to 1.4.0 (#6416)
Bumps [gopkg.in/macaron.v1](https://github.com/go-macaron/macaron) from 1.3.9 to 1.4.0.
- [Release notes](https://github.com/go-macaron/macaron/releases)
- [Commits](https://github.com/go-macaron/macaron/compare/v1.3.9...v1.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-15 01:02:36 +08:00
dependabot-preview[bot]
146960368f build(deps): bump gorm.io/gorm from 1.20.5 to 1.20.6 (#6417)
Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.20.5 to 1.20.6.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.20.5...v1.20.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-15 01:02:20 +08:00
Matheus Mosca
997ba0fef0 context: add X-Frame-Options header (#6411)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-11-11 12:17:43 +08:00
dependabot-preview[bot]
6f735cc2da build(deps): bump github.com/urfave/cli from 1.22.4 to 1.22.5 (#6410)
Bumps [github.com/urfave/cli](https://github.com/urfave/cli) from 1.22.4 to 1.22.5.
- [Release notes](https://github.com/urfave/cli/releases)
- [Changelog](https://github.com/urfave/cli/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/urfave/cli/compare/v1.22.4...v1.22.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-09 23:42:36 +08:00
dependabot-preview[bot]
8b35485ee5 build(deps): bump golang.org/x/text from 0.3.3 to 0.3.4 (#6403)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.3 to 0.3.4.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.3.3...v0.3.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-04 21:31:58 +08:00
ᴜɴᴋɴᴡᴏɴ
428276d7a8 locale: sync from Crowdin (#6404) 2020-10-31 18:34:44 +08:00
Rubén de Celis Hernández
053695b63d Update CHANGELOG.md (#6389) 2020-10-26 17:50:36 +08:00
dependabot-preview[bot]
b4bb83e68f build(deps): bump gorm.io/driver/mysql from 1.0.2 to 1.0.3 (#6397)
Bumps [gorm.io/driver/mysql](https://github.com/go-gorm/mysql) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/go-gorm/mysql/releases)
- [Commits](https://github.com/go-gorm/mysql/compare/v1.0.2...v1.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-25 18:34:05 +08:00
dependabot-preview[bot]
2989a5e0f5 build(deps): bump gorm.io/driver/sqlserver from 1.0.4 to 1.0.5 (#6395)
Bumps [gorm.io/driver/sqlserver](https://github.com/go-gorm/sqlserver) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/go-gorm/sqlserver/releases)
- [Commits](https://github.com/go-gorm/sqlserver/compare/v1.0.4...v1.0.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-25 18:18:33 +08:00
dependabot-preview[bot]
9844d2c96a build(deps): bump gorm.io/driver/postgres from 1.0.2 to 1.0.5 (#6400)
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-25 18:18:09 +08:00
dependabot-preview[bot]
ab16ca0580 build(deps): bump github.com/prometheus/client_golang from 1.6.0 to 1.8.0 (#6394)
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.6.0 to 1.8.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.6.0...v1.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-25 18:06:36 +08:00
dependabot-preview[bot]
f0a9ec21cd build(deps): bump github.com/gogs/git-module from 1.1.3 to 1.1.4 (#6398)
Bumps [github.com/gogs/git-module](https://github.com/gogs/git-module) from 1.1.3 to 1.1.4.
- [Release notes](https://github.com/gogs/git-module/releases)
- [Commits](https://github.com/gogs/git-module/compare/v1.1.3...v1.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-25 18:04:50 +08:00
dependabot-preview[bot]
6c5fd05a31 build(deps): bump gorm.io/gorm from 1.20.2 to 1.20.5 (#6399)
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-25 18:02:27 +08:00
ᴜɴᴋɴᴡᴏɴ
1744f238e1 locale: sync from Crowdin (#6383) 2020-10-11 14:18:21 +08:00
E99p1ant
fd765bd88f context: fix Access-Control-Allow-Credentials header typo (#6381) 2020-10-10 23:09:42 +08:00
dependabot-preview[bot]
533b6b0de2 build(deps): bump gopkg.in/ini.v1 from 1.60.2 to 1.62.0 (#6380)
Bumps [gopkg.in/ini.v1](https://github.com/go-ini/ini) from 1.60.2 to 1.62.0.
- [Release notes](https://github.com/go-ini/ini/releases)
- [Commits](https://github.com/go-ini/ini/compare/v1.60.2...v1.62.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-10 23:08:36 +08:00
ᴜɴᴋɴᴡᴏɴ
bf3c9061a2 docs: update patch release issue template (#6375) 2020-10-08 02:32:29 +08:00
ᴜɴᴋɴᴡᴏɴ
b60e2c65d3 CHANGELOG: cut entries for 0.12.3 (#6374) 2020-10-07 22:37:15 +08:00
ᴜɴᴋɴᴡᴏɴ
e44ac3c20a docs: update patch release issue template 2020-10-07 22:29:15 +08:00
ᴜɴᴋɴᴡᴏɴ
2eaf1d693a db: migrate access table to use GORM (#6371) 2020-10-06 15:43:28 +08:00
ᴜɴᴋɴᴡᴏɴ
a92d818aa3 docs: update patch release issue template 2020-10-06 13:12:12 +08:00
ᴜɴᴋɴᴡᴏɴ
ca3330cecd lfs: ask client to always send the same value for the HTTP header (#6369) 2020-10-04 18:40:39 +08:00
ᴜɴᴋɴᴡᴏɴ
cf86546dff ci: change of Go dependencies needs go test (#6368) 2020-10-04 08:56:46 +08:00
dependabot-preview[bot]
8e028c32d4 build(deps): bump gorm.io/driver/mysql from 1.0.1 to 1.0.2 (#6366)
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-04 08:47:10 +08:00
dependabot-preview[bot]
c082bf72af build(deps): bump gorm.io/driver/postgres from 1.0.1 to 1.0.2 (#6365)
Bumps [gorm.io/driver/postgres](https://github.com/go-gorm/postgres) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/go-gorm/postgres/releases)
- [Commits](https://github.com/go-gorm/postgres/compare/v1.0.1...v1.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-04 08:40:16 +08:00
dependabot-preview[bot]
906c6a5ba0 build(deps): bump gorm.io/gorm from 1.20.1 to 1.20.2 (#6364)
Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.20.1 to 1.20.2.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.20.1...v1.20.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-04 08:39:54 +08:00
ᴜɴᴋɴᴡᴏɴ
a6bd00f807 locale: sync from Crowdin (#6367) 2020-10-04 08:37:55 +08:00
ouyangjinting
7797efe1bb docs: fix README_ZH.md link (#6360) 2020-10-01 12:21:50 +08:00
Zhukov Roman
be86d67e81 Add git diff timeout in app config (#6348)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-09-29 23:12:17 +08:00
Jeff
23823e9698 markup: render SHA links without branch prefix (#6350)
Co-authored-by: Zhukov Roman <zhukov.roman@gmail.com>
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-09-29 23:07:16 +08:00
ᴜɴᴋɴᴡᴏɴ
7bc3ee49aa cmd/serv: use different log files for ORMs in hook mode (#6361) 2020-09-29 22:26:07 +08:00
ᴜɴᴋɴᴡᴏɴ
8fc4013240 README: remove broken/deprecated links 2020-09-27 11:50:34 +08:00
dependabot-preview[bot]
211a1394b8 build(deps): bump gorm.io/driver/postgres from 1.0.0 to 1.0.1 (#6351)
Bumps [gorm.io/driver/postgres](https://github.com/go-gorm/postgres) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/go-gorm/postgres/releases)
- [Commits](https://github.com/go-gorm/postgres/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-26 21:58:43 +08:00
ᴜɴᴋɴᴡᴏɴ
73e5936220 docs: update patch release issue template (#6353) 2020-09-26 18:00:04 +08:00
ᴜɴᴋɴᴡᴏɴ
e4e46d8fbc release: cut entries for 0.12.2 (#6355) 2020-09-26 16:49:10 +08:00
ᴜɴᴋɴᴡᴏɴ
b4abbf3ac8 ci: enable Go for release branches 2020-09-26 16:28:39 +08:00
ᴜɴᴋɴᴡᴏɴ
83a89127fd action: fix issue reference regexp and error handling (#6352) 2020-09-26 16:23:05 +08:00
ᴜɴᴋɴᴡᴏɴ
6ed98ca8f6 dep: update github.com/unknwon/cae to v1.0.2 (#6342) 2020-09-21 20:26:47 +08:00
ᴜɴᴋɴᴡᴏɴ
3af91d7cfd auth: decouple types and functions from db (#6320) 2020-09-20 11:19:02 +08:00
dependabot-preview[bot]
b836a56e6e build(deps): bump github.com/go-macaron/binding from 1.1.0 to 1.1.1 (#6340)
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-19 22:37:22 +08:00
ᴜɴᴋɴᴡᴏɴ
c56db8f2c4 db: create new session for MySQL after changing attribute (#6338) 2020-09-18 18:37:47 +08:00
ᴜɴᴋɴᴡᴏɴ
dda1092e74 gitutil: infer submodule with baseURL when it is a relative path (#6337) 2020-09-18 16:19:31 +08:00
dependabot-preview[bot]
8b75e9a442 build(deps): bump gorm.io/driver/sqlite from 1.1.1 to 1.1.3 (#6336)
Bumps [gorm.io/driver/sqlite](https://github.com/go-gorm/sqlite) from 1.1.1 to 1.1.3.
- [Release notes](https://github.com/go-gorm/sqlite/releases)
- [Commits](https://github.com/go-gorm/sqlite/compare/v1.1.1...v1.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-18 15:06:43 +08:00
dependabot-preview[bot]
1da1e90d1e build(deps): bump gorm.io/driver/sqlserver from 1.0.3 to 1.0.4 (#6325)
Bumps [gorm.io/driver/sqlserver](https://github.com/go-gorm/sqlserver) from 1.0.3 to 1.0.4.
- [Release notes](https://github.com/go-gorm/sqlserver/releases)
- [Commits](https://github.com/go-gorm/sqlserver/compare/v1.0.3...v1.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-18 14:40:58 +08:00
dependabot-preview[bot]
9a268ca7f5 build(deps): bump github.com/editorconfig/editorconfig-core-go/v2 from 2.3.2 to 2.3.7 (#6324)
Bumps [github.com/editorconfig/editorconfig-core-go/v2](https://github.com/editorconfig/editorconfig-core-go) from 2.3.2 to 2.3.7.
- [Release notes](https://github.com/editorconfig/editorconfig-core-go/releases)
- [Changelog](https://github.com/editorconfig/editorconfig-core-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/editorconfig/editorconfig-core-go/compare/v2.3.2...v2.3.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-18 14:37:42 +08:00
dependabot-preview[bot]
d85504a9d1 build(deps): bump github.com/olekukonko/tablewriter from 0.0.1 to 0.0.4 (#6327)
Bumps [github.com/olekukonko/tablewriter](https://github.com/olekukonko/tablewriter) from 0.0.1 to 0.0.4.
- [Release notes](https://github.com/olekukonko/tablewriter/releases)
- [Commits](https://github.com/olekukonko/tablewriter/compare/v0.0.1...v0.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-18 14:37:00 +08:00
dependabot-preview[bot]
8658ded190 build(deps): bump gorm.io/gorm from 1.20.0 to 1.20.1 (#6328)
Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.20.0 to 1.20.1.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.20.0...v1.20.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-18 14:35:55 +08:00
dependabot-preview[bot]
04b11d3a07 build(deps): bump github.com/unknwon/cae from 1.0.0 to 1.0.1 (#6329)
Bumps [github.com/unknwon/cae](https://github.com/unknwon/cae) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/unknwon/cae/releases)
- [Commits](https://github.com/unknwon/cae/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-18 14:34:43 +08:00
ᴜɴᴋɴᴡᴏɴ
56eac57222 locale: sync from Crowdin (#6333) 2020-09-16 23:15:57 +08:00
ᴜɴᴋɴᴡᴏɴ
594a2dc41f web: correctly serving go-get pages for subdirs (#6318)
* web: correctly serving go-get page for subdirs

* Update CHANGELOG

* Fix golint error
2020-09-09 20:14:48 +08:00
ᴜɴᴋɴᴡᴏɴ
06193ed825 schemadoc: add go:generate to output database schema (#6310)
* schemadoc: add go:generate to output database schema

* Check errors

* Revert string renames
2020-09-06 17:02:25 +08:00
ᴜɴᴋɴᴡᴏɴ
519e59b577 db: migrate to GORM v2 (#6309) 2020-09-06 10:11:08 +08:00
dependabot-preview[bot]
771d3673f5 build(deps): bump github.com/gogs/git-module from 1.1.2 to 1.1.3 (#6306)
Bumps [github.com/gogs/git-module](https://github.com/gogs/git-module) from 1.1.2 to 1.1.3.
- [Release notes](https://github.com/gogs/git-module/releases)
- [Commits](https://github.com/gogs/git-module/compare/v1.1.2...v1.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-05 10:52:14 +08:00
ᴜɴᴋɴᴡᴏɴ
2cb83f13fd repo: set default value for is_unlisted column (#6305) 2020-09-04 05:56:31 +08:00
ᴜɴᴋɴᴡᴏɴ
2665b5968c locale: sync from Crowdin (#6303) 2020-09-04 04:08:31 +08:00
ᴜɴᴋɴᴡᴏɴ
7a649ada09 ci: only enforce Go checks for pushes to main branch
Otherwise would create duplicated GitHub Checks.
2020-09-04 04:08:00 +08:00
ᴜɴᴋɴᴡᴏɴ
a533e8fb52 Taskfile: add desc to each task (#6304) 2020-09-04 04:05:36 +08:00
ᴜɴᴋɴᴡᴏɴ
bb93cabd39 ci: re-run Go checks for every push on a pull request
If a pull request has changed any Go file, even if the new push doesn't change any,
we should re-run Go checks to make GitHub Checks look consistent.
2020-09-04 03:13:59 +08:00
Achilleas Koutsou
c4360747a3 repo: support unlisted but publicly accessible repositories (#6176)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-09-04 03:04:22 +08:00
ᴜɴᴋɴᴡᴏɴ
23ff182d1f chore: use Task as main build tool (#6297) 2020-08-29 21:05:55 +08:00
ᴜɴᴋɴᴡᴏɴ
cb88caa2d2 install: remove MSSQL option (#6295) 2020-08-29 14:49:54 +08:00
ᴜɴᴋɴᴡᴏɴ
cf216f12a1 github: add Go 1.15 to CI (#6294) 2020-08-29 13:41:35 +08:00
ᴜɴᴋɴᴡᴏɴ
a22fd01959 install: fix generating removed options (#6293) 2020-08-29 13:39:32 +08:00
ᴜɴᴋɴᴡᴏɴ
b38139a855 README: add emoji for license header 2020-08-28 13:01:20 +08:00
ᴜɴᴋɴᴡᴏɴ
1a681ad022 docker: revert shellcheck fix (#6288) 2020-08-28 11:43:14 +08:00
ᴜɴᴋɴᴡᴏɴ
f6d672a3cd chore: change default branch to main (#6285) 2020-08-27 19:51:44 +08:00
ᴜɴᴋɴᴡᴏɴ
016d9d8c88 Revert "README: update VPS sponsor"
This reverts commit f667d139bc.
2020-08-27 17:37:49 +08:00
ᴜɴᴋɴᴡᴏɴ
c769f2566a docs: add patch release docs 2020-08-27 15:33:46 +08:00
ᴜɴᴋɴᴡᴏɴ
423f9e6de7 github: enable Go actions on push 2020-08-27 14:57:12 +08:00
ᴜɴᴋɴᴡᴏɴ
bbef32b1ef CHANGELOG: cut more entries for 0.12.1 2020-08-27 14:42:54 +08:00
ᴜɴᴋɴᴡᴏɴ
92953007de CHANGELOG: cut entries for 0.12.1 2020-08-27 14:41:10 +08:00
ᴜɴᴋɴᴡᴏɴ
4ecd588776 db: fix wrong column type of login_source (#6283) 2020-08-27 14:29:03 +08:00
ᴜɴᴋɴᴡᴏɴ
4e5b7c5d24 docker: fix broken SSHD for Dockerfile.rpi (#6278) 2020-08-24 23:22:31 +08:00
ᴜɴᴋɴᴡᴏɴ
c1db31c130 CHANGELOG: add entry for #6210 2020-08-24 19:09:48 +08:00
Kosadchiy
a02b3e1258 issue: fix timestamp updating (#6210)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-08-24 19:06:29 +08:00
ᴜɴᴋɴᴡᴏɴ
afb445bb57 github: only run Actions when Go files are changed (#6275) 2020-08-23 15:27:54 +08:00
ᴜɴᴋɴᴡᴏɴ
92c5f94fe7 shellcheck: fix warnings (#6274)
* Remove outdated files

* Fix warnings
2020-08-23 15:17:54 +08:00
ᴜɴᴋɴᴡᴏɴ
a840ae9035 pkgr: use main branch and Go 1.15 for buildpack (#6273) 2020-08-23 14:55:01 +08:00
ᴜɴᴋɴᴡᴏɴ
0a5977e951 docker: fix missing make command (#6272) 2020-08-23 14:39:14 +08:00
ᴜɴᴋɴᴡᴏɴ
a7fb211827 docs: add release strategy (#6271) 2020-08-23 13:14:33 +08:00
ᴜɴᴋɴᴡᴏɴ
3ed8c292c2 migrations: remove old migrations before 0.12.0 (#6270) 2020-08-23 12:51:55 +08:00
ᴜɴᴋɴᴡᴏɴ
13ae25b785 Makefile: explicitly call go generate (#6269) 2020-08-22 22:36:58 +08:00
ᴜɴᴋɴᴡᴏɴ
40513a117f docs: add instructions for release (#6268) 2020-08-22 22:35:09 +08:00
ᴜɴᴋɴᴡᴏɴ
f0761eb7ec conf: remove legacy options (#6267)
* conf: remove legacy options

* Update tests
2020-08-22 22:25:21 +08:00
ᴜɴᴋɴᴡᴏɴ
05477f1d29 app: update dev version (#6266) 2020-08-22 21:36:28 +08:00
ᴜɴᴋɴᴡᴏɴ
ac4a708307 assets: make generate (#6265) 2020-08-22 19:12:31 +08:00
ᴜɴᴋɴᴡᴏɴ
720cb5fcb1 CHANGELOG: cut 0.12.0 and 0.13.0+dev (#6264) 2020-08-22 17:52:27 +08:00
ᴜɴᴋɴᴡᴏɴ
c7a10dd90d locale: sync from Crowdin (#6263) 2020-08-22 17:49:33 +08:00
ᴜɴᴋɴᴡᴏɴ
178b73fecd repo: users have access to base repository can also view forks (#6261) 2020-08-22 13:17:45 +08:00
ᴜɴᴋɴᴡᴏɴ
bc8428ca42 conf: make generate for #6237 (#6260) 2020-08-22 01:49:51 +08:00
David Refoua
90b1ee1dfa conf: fix some typos in comments (app.ini) (#6237) 2020-08-22 01:36:29 +08:00
ᴜɴᴋɴᴡᴏɴ
7f9a4b7578 CHANGELOG: add entry for gogs/git-module#59 (#6257) 2020-08-21 22:37:01 +08:00
Fernando San Julián
e789f82979 deps: update git-module to v.1.1.2 (#6256)
Co-authored-by: Gogs <gogs@fake.local>
2020-08-21 22:31:50 +08:00
ᴜɴᴋɴᴡᴏɴ
c6143edb44 osutil: update docstring and tests (#6255) 2020-08-19 21:30:01 +08:00
bibo38
252d0fd977 osutil: use system API to get the username when env vars are empty (#6246)
As Golang supports getting usernames via the standard library, this function
is now used to get the username if the environment variables are empty.
Using the standard library as a fallback is intended to keep compability
to existing implementations that rely on the environment variables dictating
the current username.
2020-08-19 21:17:16 +08:00
InsanusMokrassar
d1caae3f79 docker: fix gosu link in Dockerfile.rpi (#6203) 2020-08-17 21:29:22 +08:00
dependabot-preview[bot]
874d2fd602 build(deps): bump golang.org/x/text from 0.3.2 to 0.3.3 (#6207)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.2 to 0.3.3.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.3.2...v0.3.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-17 21:28:13 +08:00
dependabot-preview[bot]
32adb0f2da build(deps): bump github.com/microcosm-cc/bluemonday from 1.0.2 to 1.0.4 (#6251)
Bumps [github.com/microcosm-cc/bluemonday](https://github.com/microcosm-cc/bluemonday) from 1.0.2 to 1.0.4.
- [Release notes](https://github.com/microcosm-cc/bluemonday/releases)
- [Commits](https://github.com/microcosm-cc/bluemonday/compare/v1.0.2...v1.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-17 21:24:43 +08:00
ᴜɴᴋɴᴡᴏɴ
f3993b9cdb organization: limit showing at most 12 members in profile page (#6254) 2020-08-17 21:09:22 +08:00
ᴜɴᴋɴᴡᴏɴ
a961afe52b db: fix update team panic (#6253)
* db: fix update team panic

* Update CHANGELOG
2020-08-16 21:31:08 +08:00
ᴜɴᴋɴᴡᴏɴ
f667d139bc README: update VPS sponsor 2020-08-16 19:50:40 +08:00
Dre
90904b3f42 workflow: add shellcheck as a linter (#6202)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-07-17 22:49:32 +08:00
ᴜɴᴋɴᴡᴏɴ
a7afa11610 lsif: fix upload to private instance (#6216) 2020-06-30 00:25:57 +08:00
dependabot-preview[bot]
2fe4d07599 build(deps): bump github.com/json-iterator/go from 1.1.9 to 1.1.10 (#6199)
Bumps [github.com/json-iterator/go](https://github.com/json-iterator/go) from 1.1.9 to 1.1.10.
- [Release notes](https://github.com/json-iterator/go/releases)
- [Commits](https://github.com/json-iterator/go/compare/v1.1.9...v1.1.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-13 13:39:31 +08:00
dependabot-preview[bot]
da4f5d79f5 build(deps): bump gopkg.in/macaron.v1 from 1.3.8 to 1.3.9 (#6200)
Bumps [gopkg.in/macaron.v1](https://github.com/go-macaron/macaron) from 1.3.8 to 1.3.9.
- [Release notes](https://github.com/go-macaron/macaron/releases)
- [Commits](https://github.com/go-macaron/macaron/compare/v1.3.8...v1.3.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-13 13:39:04 +08:00
dependabot-preview[bot]
2af4114d64 build(deps): bump github.com/stretchr/testify from 1.6.0 to 1.6.1 (#6201)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.6.0...v1.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-13 13:38:49 +08:00
Baptiste Covolato
8366bd1cbe Update Dockerfiles for ARM to use alpine golang (#6183) 2020-06-11 23:10:10 +08:00
Justin Hutchings
79d8aa0cb8 Add CodeQL security scanning (#6188)
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-06-11 23:02:57 +08:00
ᴜɴᴋɴᴡᴏɴ
e62bccde9e README: remove OpenShift link (#6194) 2020-06-11 22:39:21 +08:00
ᴜɴᴋɴᴡᴏɴ
516c7ab505 locale: sync from Crowdin (#6191) 2020-06-08 11:08:27 +08:00
dependabot-preview[bot]
158dd33a25 build(deps): bump github.com/stretchr/testify from 1.5.1 to 1.6.0 (#6181)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.5.1 to 1.6.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.5.1...v1.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-30 01:22:21 +08:00
ᴜɴᴋɴᴡᴏɴ
7e99a6ce42 locale: sync from Crowdin (#6174) 2020-05-24 18:59:43 +08:00
ᴜɴᴋɴᴡᴏɴ
cb406bb350 lsif: upload data to dogfood instance (#6171) 2020-05-22 16:58:26 +08:00
garo (they/them)
9bbe029c28 lsif: don't upload indexes for forks (#6170) 2020-05-22 05:40:04 +08:00
ᴜɴᴋɴᴡᴏɴ
280b06485f docker: fix broken link in README
Fixes #6167
2020-05-20 20:44:10 +08:00
dependabot-preview[bot]
50797d8fa1 build(deps): bump gopkg.in/ini.v1 from 1.55.0 to 1.56.0 (#6166) 2020-05-16 14:44:27 +08:00
Aleksandar Puharic
2003864615 docker: add scheduled backups with retention policy (#6140) 2020-05-11 11:55:21 +08:00
ᴜɴᴋɴᴡᴏɴ
1125bb5848 lfs: add user and admin docs (#6158) 2020-05-10 20:37:22 +08:00
ᴜɴᴋɴᴡᴏɴ
44ea9604ed locale: sync from Crowdin (#6156) 2020-05-10 12:33:07 +08:00
dependabot-preview[bot]
d28101ee66 build(deps): bump gopkg.in/macaron.v1 from 1.3.6 to 1.3.8 (#6153) 2020-05-09 21:37:38 +08:00
ᴜɴᴋɴᴡᴏɴ
9fd4f5562d all: use semver to compare versions (#6147) 2020-05-04 18:48:23 +08:00
ᴜɴᴋɴᴡᴏɴ
9bb218734c db: use GORM to backup and restore non-legacy tables (#6142) 2020-05-04 16:25:57 +08:00
ᴜɴᴋɴᴡᴏɴ
82ffca3fc9 Add security policy 2020-05-02 17:15:55 +08:00
dependabot-preview[bot]
d9f8efa9c3 build(deps): bump github.com/prometheus/client_golang from 1.5.1 to 1.6.0 (#6144) 2020-05-02 16:48:16 +08:00
dependabot-preview[bot]
f26eb2a192 build(deps): bump gopkg.in/macaron.v1 from 1.3.5 to 1.3.6 (#6143) 2020-05-02 16:47:36 +08:00
dependabot-preview[bot]
dbe373af6f build(deps): bump github.com/editorconfig/editorconfig-core-go/v2 from 2.3.1 to 2.3.2 (#6135) 2020-04-25 09:57:13 +08:00
ᴜɴᴋɴᴡᴏɴ
4e1f38ce28 lfs: show configs in admin ui (#6128)
* Rename template consts

* Display new DB options

* Display LFS configs
2020-04-21 18:07:17 +08:00
ᴜɴᴋɴᴡᴏɴ
60273d3d6d Update CHANGELOG.md 2020-04-19 19:25:21 +08:00
Kousik Mitra
5a52ee75e3 db: remove db.User.LoginType field (#6122) 2020-04-19 04:32:53 +08:00
ᴜɴᴋɴᴡᴏɴ
c0fd6042fd test: remove the use of goconvey (#6123) 2020-04-19 04:24:08 +08:00
Kousik Mitra
fc57c921b1 conf: fallback time layout to RFC 3339 when misconfigured (#6120)
* Fix: fallback to default time format if misconfigured (#6098)

* Update CHANGELOG.md

Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-04-18 15:19:29 +08:00
ᴜɴᴋɴᴡᴏɴ
7b295378e4 public: remove unused github.min.css (#6119) 2020-04-18 12:29:11 +08:00
ᴜɴᴋɴᴡᴏɴ
9d64d222a8 db: add tests for users (#6116)
* Add new methods

* Use Users.Create to replace previous hack

* Reduce side effect

* Do not clear tables when test failed

* test_users_Authenticate

* Rename constant

* test_users_Create

* test_users_GetByEmail

* test_users_GetByID

* test_users_GetByUsername
2020-04-18 12:07:30 +08:00
ᴜɴᴋɴᴡᴏɴ
fa497b1633 db: add tests for repos (#6112)
* Add Repos.create method

* Fix repo name error handling

* Fix all compile errors

* Update github.com/go-macaron/captcha to fix http issue

* Add repos tests
2020-04-17 10:14:18 +08:00
eightpigs
e131a45646 docker: fix mkdir subdir in /data failed when no mount volume (#6107) 2020-04-15 22:32:47 +08:00
eightpigs
28d74a9844 docker: fix the bug of using root to create /data/ directory (#6106) 2020-04-15 19:42:32 +08:00
ᴜɴᴋɴᴡᴏɴ
5637706e46 docs: fix Go version (#6105)
* docs: fix Go version

* Update README.md
2020-04-15 12:06:45 +08:00
ᴜɴᴋɴᴡᴏɴ
614aba6007 Update CHANGELOG (#6103) 2020-04-15 06:03:41 +08:00
Rui Santos
440b1ecbfd api: add admin endpoint to get team members (#6101)
fixes #5877
2020-04-15 06:00:44 +08:00
ᴜɴᴋɴᴡᴏɴ
cdafe21661 db: add tests for loginSourceFiles (#6102) 2020-04-15 05:52:30 +08:00
ᴜɴᴋɴᴡᴏɴ
844d2f49ce db: use GORM bulk insert helper (#6100)
* Bulk insert permissions

* Bulk insert recovery codes

* Remove unnecessary import rename
2020-04-14 10:03:30 +08:00
ᴜɴᴋɴᴡᴏɴ
cb439a126a db: add tests for two factors (#6099)
* Rename to TwoFactors.Create

* Use GORM to execute queries

* TwoFactor.GetByUserID

* Add tests

* Fix failing tests

* Add MD5 tests

* Add tests for RandomChars
2020-04-14 09:41:54 +08:00
ᴜɴᴋɴᴡᴏɴ
659acd48b1 github: update bug report template (#6097) 2020-04-13 22:34:35 +08:00
wameidemao
d19287d5b7 ssh: improve env command processing (#6095)
* modify ssh env command processing mode

* Update internal/ssh/ssh.go

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* Update internal/ssh/ssh.go

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* Update internal/ssh/ssh.go

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* Update ssh.go

Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-04-12 12:18:43 +08:00
ᴜɴᴋɴᴡᴏɴ
26a2d0b2a1 ssh: ignore malformed "env" commands (#6094) 2020-04-12 09:18:58 +08:00
ᴜɴᴋɴᴡᴏɴ
ae107b2e6e db: only use AutoMigrate to create new tables (#6092)
* Only use AutoMigrate to create new tables

* Revert models.go
2020-04-11 23:45:06 +08:00
ᴜɴᴋɴᴡᴏɴ
41f56ad05d login_source: migrate to GORM and add tests (#6090)
* Use GORM in all write paths

* Migrate to GORM

* Fix lint errors

* Use GORM  to init table

* dbutil: make writer detect error

* Add more tests

* Rename to clearTables

* db: finish adding tests

* osutil: add tests

* Fix load source files path
2020-04-11 20:18:05 +08:00
ᴜɴᴋɴᴡᴏɴ
76bb647d24 db: add tests for permissions (#6088)
* Add flag to print SQLs

* Add tests for perms

* Make results stable

* codecov: only show diff

* Once again, stable find results
2020-04-11 05:39:45 +08:00
ᴜɴᴋɴᴡᴏɴ
e077ecdd9d db: add tests for LFS (#6087)
* Improve DB test setup

* Discard GORM logs in non-verbose mode

* Add tests to lfs

* Fix data race
2020-04-11 02:56:37 +08:00
ᴜɴᴋɴᴡᴏɴ
62dda96159 access_token: migrate to GORM and add tests (#6086)
* access_token: migrate to GORM

* Add tests

* Fix tests

* Fix test clock
2020-04-11 01:25:19 +08:00
ᴜɴᴋɴᴡᴏɴ
5753d4cb87 Revert "docker: fix the bug of using root account to create `/d… (#6085)
This reverts commit f3b05961aa.
2020-04-10 22:58:55 +08:00
ᴜɴᴋɴᴡᴏɴ
e186a3d2c9 db: add tests for helper functions (#6084) 2020-04-10 22:51:24 +08:00
ᴜɴᴋɴᴡᴏɴ
9a5b227f3e lfsutil: add Storager interface and local storage (#6083)
* Add Storager interface

* Add tests

* Add back note

* Add tests for basic protocol routes

* Fix lint errors
2020-04-10 22:13:42 +08:00
alpencrossi
3e055e329c repo: disable public access option when using external wiki and issue tracker (#6081) 2020-04-09 04:13:50 +08:00
ᴜɴᴋɴᴡᴏɴ
5b36ba66c2 docker: clean up never used files (#6080) 2020-04-09 00:53:52 +08:00
ᴜɴᴋɴᴡᴏɴ
e79aebb3e1 route: bypass require signin check for trigger repo tasks (#6079)
* route: bypass require signin check for trigger repo tasks

* CHANGELOG

* Fix lint errors
2020-04-08 20:55:15 +08:00
ᴜɴᴋɴᴡᴏɴ
6a096811ff docker: bump to Go 1.14 (#6077) 2020-04-07 16:00:12 +08:00
ᴜɴᴋɴᴡᴏɴ
cac1054acb github: update bug report template (#6076)
To include Docker image SHA
2020-04-07 15:43:22 +08:00
eightpigs
f3b05961aa docker: fix the bug of using root account to create /data/* directory (#6068)
* Fix the bug of using root account to create /data directory

* Fix the bug that sshkey cannot be added in the container and remove unnecessary chown.
2020-04-07 15:12:08 +08:00
☃ Stephen Shkardoon ☃
4ebdcb719a db: include the Team ID in the error message (#6056)
This means that when using the API to create a new team, the output
contains the existing team ID, not just the name.
While there may be the thought that this reveals sensitive
information, it is never the case that a user can create or update
a team without permission to view the teams in the first place.
2020-04-07 03:03:22 +08:00
ᴜɴᴋɴᴡᴏɴ
571be84e26 db: handle JSON conversion for LoginSource (#6075) 2020-04-07 00:29:27 +08:00
ᴜɴᴋɴᴡᴏɴ
2b3655fa11 lfs: add tests to batch endpoint (#6073) 2020-04-06 23:53:55 +08:00
ᴜɴᴋɴᴡᴏɴ
ca2f7a7e16 repo: delete rows in lfs_object table when delete repo (#6072) 2020-04-06 18:44:06 +08:00
ᴜɴᴋɴᴡᴏɴ
ee0ea2c5fc lfs: add unit test for middleware (#6070)
* Add unit test for `authenticate` middleware

* Add more cases

* Add tests for verifyOID and internalServerError

* Add tests for verifyHeader

* Add tests for authroize
2020-04-06 18:35:10 +08:00
ᴜɴᴋɴᴡᴏɴ
4d7db6e1c1 locale: sync from Crowdin (#6071) 2020-04-06 16:23:46 +08:00
ᴜɴᴋɴᴡᴏɴ
559af54e66 build: require Go 1.14 for using t.Cleanup (#6069) 2020-04-06 15:15:03 +08:00
alpencrossi
083ecb7244 conf: clearer doc comments for mirror config options (#6058)
* conf: clearer doc comments for mirror config options

* conf: apply suggestions from code review

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* conf: clearer doc comments for mirror config options - added bindata

Co-authored-by: Gogs <gogs@fake.local>
Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
Co-authored-by: gkuehn001 <gkuehn@gmail.com>
2020-04-06 14:48:25 +08:00
ᴜɴᴋɴᴡᴏɴ
07818d5fa5 route: no session for routes without UI (#6066)
Not all routes need session, register session and CSRF middleware as global is a waste of resource, and creating a lot one-time off yet never used session records.
2020-04-05 06:36:08 +08:00
ᴜɴᴋɴᴡᴏɴ
bae1d6ccd8 lfs: only remove file on io error (#6062) 2020-04-05 01:29:51 +08:00
ᴜɴᴋɴᴡᴏɴ
3a5c93eeff db: use gorm function to check ErrRecordNotFound (#6060) 2020-04-05 00:56:31 +08:00
ᴜɴᴋɴᴡᴏɴ
4aff4d66ec lfs: support upload retry (#6061) 2020-04-05 00:45:08 +08:00
ᴜɴᴋɴᴡᴏɴ
53b91ef306 lfs: run e2e and fix minor issues (#6059) 2020-04-05 00:14:22 +08:00
ᴜɴᴋɴᴡᴏɴ
34145c990d lfs: implement HTTP routes (#6035)
* Bootstrap with GORM

* Fix lint error

* Set conn max lifetime to one minute

* Fallback to use gorm v1

* Define HTTP routes

* Finish authentication

* Save token updated

* Add docstring

* Finish authorization

* serveBatch rundown

* Define types in lfsutil

* Finish Batch

* authutil

* Finish basic

* Formalize response error

* Fix lint errors

* authutil: add tests

* dbutil: add tests

* lfsutil: add tests

* strutil: add tests

* Formalize 401 response
2020-04-04 21:14:15 +08:00
dependabot-preview[bot]
2bd9d0b9c8 build(deps): bump github.com/urfave/cli from 1.22.3 to 1.22.4 (#6055)
Bumps [github.com/urfave/cli](https://github.com/urfave/cli) from 1.22.3 to 1.22.4.
- [Release notes](https://github.com/urfave/cli/releases)
- [Changelog](https://github.com/urfave/cli/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/urfave/cli/compare/v1.22.3...v1.22.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-03 00:49:18 +08:00
ᴜɴᴋɴᴡᴏɴ
a603c0f1fc dep: bump github.com/gogs/git-module from 1.1.0 to 1.1.1 (#6051) 2020-04-01 02:03:02 +08:00
dependabot-preview[bot]
5b8ed0add9 build(deps): bump github.com/pkg/errors from 0.8.1 to 0.9.1 (#6047)
Bumps [github.com/pkg/errors](https://github.com/pkg/errors) from 0.8.1 to 0.9.1.
- [Release notes](https://github.com/pkg/errors/releases)
- [Commits](https://github.com/pkg/errors/compare/v0.8.1...v0.9.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-31 17:55:33 +08:00
ᴜɴᴋɴᴡᴏɴ
fd7931cd2b Update CHANGELOG (#6049)
* Update CHANGELOG.md

* Update CHANGELOG.md
2020-03-31 05:05:34 +08:00
ᴜɴᴋɴᴡᴏɴ
72111e698e template: better diff handling of rename and deleted files (#6048)
* dep: bump github.com/gogs/git-module from 1.0.2 to 1.1.0

* template: better diff handling or rename and deleted files
2020-03-31 04:50:59 +08:00
ᴜɴᴋɴᴡᴏɴ
dce70fe6d1 locale: sync from Crowdin (#6046) 2020-03-30 01:14:18 +08:00
dependabot-preview[bot]
63ab497f6f build(deps): bump github.com/prometheus/client_golang from 1.2.… (#6044)
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.2.1 to 1.5.1.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.2.1...v1.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 00:38:36 +08:00
dependabot-preview[bot]
afe226cd16 build(deps): bump github.com/lib/pq from 1.2.0 to 1.3.0 (#6041)
Bumps [github.com/lib/pq](https://github.com/lib/pq) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/lib/pq/releases)
- [Commits](https://github.com/lib/pq/compare/v1.2.0...v1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 00:31:47 +08:00
dependabot-preview[bot]
efa9ef78c8 build(deps): bump github.com/go-macaron/binding from 1.0.1 to 1… (#6045)
Bumps [github.com/go-macaron/binding](https://github.com/go-macaron/binding) from 1.0.1 to 1.1.0.
- [Release notes](https://github.com/go-macaron/binding/releases)
- [Commits](https://github.com/go-macaron/binding/compare/v1.0.1...v1.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 00:26:25 +08:00
dependabot-preview[bot]
b5a06618fa build(deps): bump gopkg.in/ini.v1 from 1.54.0 to 1.55.0 (#6039)
Bumps [gopkg.in/ini.v1](https://github.com/go-ini/ini) from 1.54.0 to 1.55.0.
- [Release notes](https://github.com/go-ini/ini/releases)
- [Commits](https://github.com/go-ini/ini/compare/v1.54.0...v1.55.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 00:25:55 +08:00
dependabot-preview[bot]
f0f3b8707b build(deps): bump github.com/sergi/go-diff from 1.0.0 to 1.1.0 (#6042)
Bumps [github.com/sergi/go-diff](https://github.com/sergi/go-diff) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/sergi/go-diff/releases)
- [Commits](https://github.com/sergi/go-diff/compare/v1.0.0...v1.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 00:25:12 +08:00
dependabot-preview[bot]
045e1670a4 build(deps): bump github.com/niklasfasching/go-org from 0.1.6 t… (#6043)
Bumps [github.com/niklasfasching/go-org](https://github.com/niklasfasching/go-org) from 0.1.6 to 0.1.9.
- [Release notes](https://github.com/niklasfasching/go-org/releases)
- [Commits](https://github.com/niklasfasching/go-org/compare/v0.1.6...v0.1.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 00:24:44 +08:00
dependabot-preview[bot]
6298e33b8b build(deps): bump github.com/json-iterator/go from 1.1.7 to 1.1… (#6036)
Bumps [github.com/json-iterator/go](https://github.com/json-iterator/go) from 1.1.7 to 1.1.9.
- [Release notes](https://github.com/json-iterator/go/releases)
- [Commits](https://github.com/json-iterator/go/compare/v1.1.7...v1.1.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 00:23:34 +08:00
dependabot-preview[bot]
a8a6325054 build(deps): bump github.com/go-sql-driver/mysql from 1.4.1 to… (#6037)
Bumps [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/go-sql-driver/mysql/releases)
- [Changelog](https://github.com/go-sql-driver/mysql/blob/master/CHANGELOG.md)
- [Commits](https://github.com/go-sql-driver/mysql/compare/v1.4.1...v1.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 00:22:45 +08:00
ᴜɴᴋɴᴡᴏɴ
4cbb43b860 gitutil: simplify mock with t.Cleanup (#6033)
* gitutil: simplify mock with t.Cleanup

* Scope mock to tests only
2020-03-29 20:15:42 +08:00
ᴜɴᴋɴᴡᴏɴ
933206f1fe gitutil: refactor the way to mock (#6032)
* Refactor the mock module store

* Only test on 1.14.x
2020-03-29 19:37:28 +08:00
ᴜɴᴋɴᴡᴏɴ
9356231e64 codecov: formalize coverage settings (#6031)
Co-authored-by: Sourcegraph Bot <campaigns@sourcegraph.com>
2020-03-29 15:34:12 +08:00
ᴜɴᴋɴᴡᴏɴ
a0651b62a7 dep: bump github.com/gogs/git-module from 1.0.1 to 1.0.2 (#6030) 2020-03-29 15:24:10 +08:00
Philidor Green
470274204e api: support get releases endpoint (#6026) 2020-03-28 21:56:11 +08:00
ᴜɴᴋɴᴡᴏɴ
af0cfe112b web: rename CSRF header (#6027) 2020-03-28 19:17:15 +08:00
ᴜɴᴋɴᴡᴏɴ
0b80578e62 Revert "build(deps): bump xorm.io/builder from 0.3.6 to 0.3.7" (#6025)
This reverts commit f58ffb3fd4.
2020-03-27 22:34:06 +08:00
dependabot-preview[bot]
f58ffb3fd4 build(deps): bump xorm.io/builder from 0.3.6 to 0.3.7 (#6021)
Bumps xorm.io/builder from 0.3.6 to 0.3.7.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 22:31:54 +08:00
dependabot-preview[bot]
a0f239495d build(deps): bump github.com/editorconfig/editorconfig-core-go/… (#6020)
Bumps [github.com/editorconfig/editorconfig-core-go/v2](https://github.com/editorconfig/editorconfig-core-go) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/editorconfig/editorconfig-core-go/releases)
- [Changelog](https://github.com/editorconfig/editorconfig-core-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/editorconfig/editorconfig-core-go/compare/v2.3.0...v2.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 22:16:06 +08:00
dependabot-preview[bot]
870746791a build(deps): bump github.com/stretchr/testify from 1.4.0 to 1.5… (#6019)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.4.0 to 1.5.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.4.0...v1.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 22:13:42 +08:00
ᴜɴᴋɴᴡᴏɴ
71edd615ce README: remove unused badge (#6024) 2020-03-27 22:12:26 +08:00
ᴜɴᴋɴᴡᴏɴ
a9dcf4ce74 github: use Actions for CI (#6022)
* Update golint.yml

* Update README.md

* Update README.md

* Update golint.yml

* Update golint.yml

* Rename golint.yml to go.yml

* Update go.yml

* Update go.yml

* Update go.yml

* Improve tests on Windows

* Delete files
2020-03-27 22:06:29 +08:00
dependabot-preview[bot]
30c047fedd build(deps): bump github.com/mattn/go-sqlite3 from 1.11.0 to 1.… (#6017)
Bumps [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) from 1.11.0 to 1.13.0.
- [Release notes](https://github.com/mattn/go-sqlite3/releases)
- [Commits](https://github.com/mattn/go-sqlite3/compare/v1.11.0...v1.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 22:02:21 +08:00
dependabot-preview[bot]
bc309b3ddd build(deps): bump gopkg.in/macaron.v1 from 1.3.4 to 1.3.5 (#6016)
Bumps [gopkg.in/macaron.v1](https://github.com/go-macaron/macaron) from 1.3.4 to 1.3.5.
- [Release notes](https://github.com/go-macaron/macaron/releases)
- [Commits](https://github.com/go-macaron/macaron/compare/v1.3.4...v1.3.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 22:01:51 +08:00
dependabot-preview[bot]
a041601f1f build(deps): bump github.com/urfave/cli from 1.22.1 to 1.22.3 (#6015)
Bumps [github.com/urfave/cli](https://github.com/urfave/cli) from 1.22.1 to 1.22.3.
- [Release notes](https://github.com/urfave/cli/releases)
- [Changelog](https://github.com/urfave/cli/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/urfave/cli/compare/v1.22.1...v1.22.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 22:00:46 +08:00
dependabot-preview[bot]
60e93521d5 build(deps): bump github.com/google/go-cmp from 0.3.0 to 0.4.0 (#6014)
Bumps [github.com/google/go-cmp](https://github.com/google/go-cmp) from 0.3.0 to 0.4.0.
- [Release notes](https://github.com/google/go-cmp/releases)
- [Commits](https://github.com/google/go-cmp/compare/v0.3.0...v0.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 20:21:56 +08:00
ᴜɴᴋɴᴡᴏɴ
14cd16f1f8 csrf: set cookie HttpOnly and Secure (#6013) 2020-03-27 00:08:46 +08:00
ᴜɴᴋɴᴡᴏɴ
5800d78b99 go.mod: update github.com/gogs/git-module (#6011) 2020-03-26 00:02:33 +08:00
Philidor Green
87053c5369 cmd: backup support exclude mirror repositories (#6003)
* cmd: backup support exclude mirror repositories

* Apply suggestions from code review

Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-03-24 22:03:05 +08:00
ᴜɴᴋɴᴡᴏɴ
e14b6abf9d http: always set header X-Content-Type-Options to nosniff (#6008) 2020-03-23 22:18:05 +08:00
ᴜɴᴋɴᴡᴏɴ
740f814ce0 locale: sync from Crowdin (#6006) 2020-03-23 02:13:05 +08:00
imgbot[bot]
5bcf4292b6 [ImgBot] Optimize images (#6005)
*Total -- 13.23kb -> 10.21kb (22.85%)

/public/img/dingtalk.png -- 7.86kb -> 5.96kb (24.1%)
/public/img/slack.png -- 5.38kb -> 4.25kb (21.02%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2020-03-22 22:36:59 +08:00
ᴜɴᴋɴᴡᴏɴ
ad7d1d4f29 github: rename job name (#6004)
* Update golint.yml

* Update lsif.yml
2020-03-22 22:23:52 +08:00
ᴜɴᴋɴᴡᴏɴ
22717a1c06 webhook: overhaul route handlers (#6002)
* Overual route handlers and fixes #5366

* Merge routes for repo and org

* Inject OrgRepoContext

* DRY validateWebhook

* DRY c.HasError

* Add tests

* Update CHANGELOG
2020-03-22 22:07:22 +08:00
ᴜɴᴋɴᴡᴏɴ
82e511ddb1 cmd: init logging before SetEngine (#6001) 2020-03-22 14:11:52 +08:00
ᴜɴᴋɴᴡᴏɴ
5843038a08 workflows: enable golangci-lint (#5998)
* Create golint.yml

* Update golint.yml

* Update golint.yml

* Fix errcheck

* Fix gosimple

* Fix staticcheck
2020-03-21 13:39:32 +08:00
ᴜɴᴋɴᴡᴏɴ
958d8b6bb4 admin: use POST to run operations (#5997)
* admin: use POST to run operations

Fixed CSRF reported by Wenxu Wu of Tencent's Xuanwu Lab.

* Update CHANGELOG
2020-03-21 11:47:42 +08:00
ᴜɴᴋɴᴡᴏɴ
a43fc9ad17 ipynb: sanitize rendered HTML (#5996)
* ipynb: sanitize rendered HTML

Fixes #5170

* Remove hardcode URL

* Add tests
2020-03-21 00:12:38 +08:00
ᴜɴᴋɴᴡᴏɴ
c69a38652d locale: sync from Crowdin (#5991) 2020-03-16 13:57:46 +08:00
ᴜɴᴋɴᴡᴏɴ
a4de85dc80 util: add tests (#5989) 2020-03-16 01:54:08 +08:00
ᴜɴᴋɴᴡᴏɴ
9e9ca66467 refactor: unify error handling in routing layer 2020-03-16 01:22:27 +08:00
ᴜɴᴋɴᴡᴏɴ
82ff0c5852 email: check the owner when set as primary (#5988)
* email: check the owner when set as primary

Fixes a security issue reported by muxishuihan.

* Update CHANGELOG
2020-03-15 18:58:56 +08:00
ᴜɴᴋɴᴡᴏɴ
07f71e2034 README: update link to local development
[CI SKIP]
2020-03-15 03:49:09 +08:00
ᴜɴᴋɴᴡᴏɴ
328c23c5d4 public: make lessc compile minimize CSS (#5987) 2020-03-15 03:47:07 +08:00
Bharat Nallan
268c692efd api: group "/contents" with "" and "/*" #5985 (#5986)
This PR groups the contents api endpoint with both `""` and `/*` as
valid URL patterns.

When `""` is the URL pattern, this means that no repo path has'nt been
provided, in which case the path would be the default repo path.

When  `"/*"` is the URL pattern, then this would return the contents at
the specified path if it's valid.

Github API v3 is conformant to this behavior and have verified it
locally.
2020-03-13 22:37:42 +08:00
ᴜɴᴋɴᴡᴏɴ
434f1ec542 all: clean up dot files (#5983) 2020-03-11 03:02:18 +08:00
ᴜɴᴋɴᴡᴏɴ
927ffef864 api: minor changes to /repo/owner/repo/git/trees (#5982) 2020-03-11 01:28:26 +08:00
ᴜɴᴋɴᴡᴏɴ
047bf94908 ci: enable go vet check (#5981)
* ci: enable go vet check

* Improve .travis.yml
2020-03-11 00:30:51 +08:00
ᴜɴᴋɴᴡᴏɴ
880d0ec19f api: overhaul /repos/owner/repos/contents (#5980)
* Fix import path renaming

* api: overhaul /repos/owner/repos/contents
2020-03-10 22:15:55 +08:00
ᴜɴᴋɴᴡᴏɴ
2430612ad4 templates: fix not able to upload issue attachments (#5978) 2020-03-10 01:33:16 +08:00
ᴜɴᴋɴᴡᴏɴ
e87f1107ca commit: fix unexpected truncation in title
The commit message should not be treated as locale at all.
2020-03-09 02:08:53 +08:00
ᴜɴᴋɴᴡᴏɴ
bebaf4c112 diff: remove misaligned space 2020-03-09 02:06:45 +08:00
ᴜɴᴋɴᴡᴏɴ
d32add9938 go.mod: update to Go 1.13 (#5976) 2020-03-09 01:59:44 +08:00
Kostya Esmukov
975a2b3f59 templates: fix copypaste of email verification in reset_passwd (#5975) 2020-03-09 01:16:50 +08:00
ᴜɴᴋɴᴡᴏɴ
6437d0180b git: migrate to github.com/gogs/git-module@v1.0.0 (#5958)
* WIP

* Finish `internal/db/git_diff.go`

* FInish internal/db/mirror.go

* Finish internal/db/pull.go

* Finish internal/db/release.go

* Finish internal/db/repo.go

* Finish internal/db/repo_branch.go

* Finish internal/db/repo_editor.go

* Finish internal/db/update.go

* Save my work

* Add license header

* Compile!

* Merge master

* Finish internal/cmd/hook.go

* Finish internal/conf/static.go

* Finish internal/context/repo.go

* Finish internal/db/action.go

* Finish internal/db/git_diff.go

* Fix submodule URL inferring

* Finish internal/db/mirror.go

* Updat to beta.4

* css: update fonts

* Finish internal/db/pull.go

* Finish internal/db/release.go

* Finish internal/db/repo_branch.go

* Finish internal/db/wiki.go

* gitutil: enhance infer submodule UR

* Finish internal/route/api/v1/repo/commits.go

* mirror: only collect branch commits after sync

* mirror: fix tag support

* Finish internal/db/repo.go

* Finish internal/db/repo_editor.go

* Finish internal/db/update.go

* Finish internal/gitutil/pull_request.go

* Make it compile

* Finish internal/route/repo/setting.go

* Finish internal/route/repo/branch.go

* Finish internal/route/api/v1/repo/file.go

* Finish internal/route/repo/download.go

* Finish internal/route/repo/editor.go

* Use helper

* Finish internal/route/repo/issue.go

* Finish internal/route/repo/pull.go

* Finish internal/route/repo/release.go

* Finish internal/route/repo/repo.go

* Finish internal/route/repo/wiki.go

* Finish internal/route/repo/commit.go

* Finish internal/route/repo/view.go

* Finish internal/gitutil/tag.go

* go.sum
2020-03-08 19:09:31 +08:00
ᴜɴᴋɴᴡᴏɴ
c65b5b9f84 lsif: enable upload 2020-03-08 00:08:05 +08:00
ᴜɴᴋɴᴡᴏɴ
bf373f9da1 templates: show brand name in the footer (#5974) 2020-03-07 13:15:20 +08:00
ᴜɴᴋɴᴡᴏɴ
2064fc89c0 README: stop advertising using MSSQL (#5973) 2020-03-06 17:56:39 +08:00
ᴜɴᴋɴᴡᴏɴ
5a4c7c75c0 go.mod: update to unknwon.dev/clog/v2@v2.1.2 (#5970)
Fixed a critical bug
2020-03-06 01:16:49 +08:00
ᴜɴᴋɴᴡᴏɴ
5ad2fdcf0b api: GET /repos/:owner/:repo/contents/:path (#5963)
* support API `GET /repos/:owner/:repo/contents/:path`

This PR adds support to #5949:
`GET /repos/:owner/:repo/contents/:path`

Curl:

```bash
curl -H "Authorization: token REDACTED"
http://localhost:3000/api/v1/repos/root/testrepo/contents//master/README.md
-X GET  | jq .
```

Curl  Response:

```bash
{
  "type": "blob",
  "size": 12,
  "name": "README.md",
  "path": "README.md",
  "sha": "70fcb456d436f08462602f26df6fb7e167e7a916",
  "url": "http://localhost:3000/api/v1/repos/root/testrepo/contents/README.md",
  "git_url": "70fcb456d4",
  "html_url": "70fcb456d4",
  "download_url": "http://localhost:3000/api/v1/root/testrepo/raw/README.md",
  "_links": {
    "git": "70fcb456d4",
    "self": "http://localhost:3000/api/v1/repos/root/testrepo/contents/README.md",
    "html": "70fcb456d4"
  },
  "content": "IyB0ZXN0cmVwbwoK"
}

```

* rename - path.go to contents.go

* reorder imports

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* rename struct to repoContents and fix field order

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* rename variable

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* rename GetPathContents to GetContents

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* return on server error

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* resolve conflicts introduced via git web ui

* make constants as method variables

* handle dir type case last

* fix func and var names

* implement suggested changes in review

* refactor smaller funcs to be part of GetContent

* fix content type check for blob after refactoring

* changes based on suggestions

* read full file, return empty json array

* don't set submoduleURL

* set server err msg to method name

* set target to be blob data for symlinks

* Update contents.go

Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-03-05 16:15:38 +08:00
ᴜɴᴋɴᴡᴏɴ
8d37d418e7 locale: sync from Crowdin (#5965) 2020-03-04 02:28:13 +08:00
ᴜɴᴋɴᴡᴏɴ
8df3350252 auth: redirect landing URL with subpath prepended (#5964) 2020-03-04 02:02:12 +08:00
ᴜɴᴋɴᴡᴏɴ
931da04dc2 cmd/serv: improve hookMode handling (#5960)
- Allow remove primary logger at better location
- Use more appropriate log.Error to replace log.Fatal
2020-03-02 22:25:28 +08:00
ᴜɴᴋɴᴡᴏɴ
7efa946b02 git: explicitly disable debug in prod mode (#5959)
After first time running the application and went through the installation, the flag was always true until restarted.
2020-03-02 22:09:09 +08:00
ᴜɴᴋɴᴡᴏɴ
fe7b094b9e log: fix tests 2020-03-02 01:14:26 +08:00
ᴜɴᴋɴᴡᴏɴ
7382c23a17 cmd: init minimal logging config in hook mode 2020-03-02 01:01:52 +08:00
ᴜɴᴋɴᴡᴏɴ
0b86aa5d29 pkgr: update heroku-buildpack to latest (#5957) 2020-03-01 22:46:39 +08:00
ᴜɴᴋɴᴡᴏɴ
f04b2d4350 lint: fix some Golang CI lint issues (#5955) 2020-03-01 14:55:03 +08:00
ᴜɴᴋɴᴡᴏɴ
9c65798902 conf: enhance app.ini comments 2020-03-01 13:23:59 +08:00
ᴜɴᴋɴᴡᴏɴ
d8f56de258 Delete unused file
[CI SKIP]
2020-03-01 03:31:25 +08:00
ᴜɴᴋɴᴡᴏɴ
18e45aab98 template: improve admin config page 2020-03-01 03:21:13 +08:00
ᴜɴᴋɴᴡᴏɴ
344b784d69 js: fix jQuery error 2020-02-29 23:52:35 +08:00
ᴜɴᴋɴᴡᴏɴ
333998509f css: fix /admin/config pre overflow 2020-02-29 23:34:03 +08:00
ᴜɴᴋɴᴡᴏɴ
8796df8218 conf: add unit tests (#5954)
* conf: add tests for utils.go

* conf: add tests for static.go

* mock os/exec

* Run tests on Windows

* appveyor: fix gcc not found

* computed: add unit tests

* log: add unit tests

* log: fix tests on Windows

* conf: add some tests

* Finish adding tests

* Cover more cases

* Add tests for testutil

* Add more tests
2020-02-29 22:24:20 +08:00
ᴜɴᴋɴᴡᴏɴ
17ae0ed3ee conf: overhaul settings (#5953)
* Overhaul cache settings

* Overhaul HTTP settings

* conf: overhaul more settings

* log: make LGTM happy

* travis: upload report to Codecov

* Add codecov.yml
2020-02-29 16:29:17 +08:00
ᴜɴᴋɴᴡᴏɴ
d59b0f6ff7 conf: overhaul sessions settings (#5952) 2020-02-29 00:26:03 +08:00
ᴜɴᴋɴᴡᴏɴ
1898201b8b build: requires Go 1.13 2020-02-28 23:43:19 +08:00
guan
40214ef109 public: fix jquery3.x syntax error (#5951)
$.post().success -> $.post().done
2020-02-28 22:52:26 +08:00
imgbot[bot]
4f70ab8e27 [ImgBot] Optimize images (#5943)
*Total -- 115.45kb -> 73.67kb (36.19%)

/public/img/gogs-hero.png -- 58.29kb -> 34.18kb (41.37%)
/public/img/favicon.png -- 57.15kb -> 39.48kb (30.91%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

Co-authored-by: Imgbot <help@imgbot.net>

[CI SKIP]
2020-02-27 21:56:03 +08:00
ᴜɴᴋɴᴡᴏɴ
416f245e6c README: update acknowledgments
[CI SKIP]
2020-02-27 20:24:40 +08:00
ᴜɴᴋɴᴡᴏɴ
177806068d public: update to new logo 2020-02-27 20:21:41 +08:00
ᴜɴᴋɴᴡᴏɴ
7950f2d17d conf: overhaul auth and user settings (#5942)
* conf: overhaul auth and user settings

* ci: update travis Go versions
2020-02-27 18:06:38 +08:00
Bharat Nallan
cf3d55fa10 api: support getting repository Git tree (#5934) (#5937)
* add basic git repository tree api (#5934)

This PR adds the tree  api endpoint to gogs api:
`GET/repos/:owner/:repo/git/trees/:tree_sha`

This new api endpoint that is being added is in conformance to
the GitHub REST API v3 specification. Documentation can be found
here: developer.github.com/v3/git/trees/#get-a-tree

For a given user, repo and sha value, this api (currently) returns
a single tree using the SHA1 value for that tree.

- Recursive implementation is yet to be implemented.
- Creating a Tree using POST is yet to be implemented.

Example curl:

```

l curl -H "Authorization: token REDACTED" c59441ded1 -X GET  | jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   940  100   940    0     0  12034      0 --:--:-- --:--:-- --:--:-- 12051

[
  {
    "sha": "c59441ded1549b149def0d4c54594d31a7f3718f",
    "tree": [
      {
        "mode": "120000",
        "path": "/home/bharatnc/gogs-repositories/root/testrepo.git",
        "sha": "472ac2361b65136b393d652de25341e2ea44f299",
        "size": 1077,
        "type": "blob",
        "url": "472ac2361b"
      },
      {
        "mode": "120000",
        "path": "/home/bharatnc/gogs-repositories/root/testrepo.git",
        "sha": "70fcb456d436f08462602f26df6fb7e167e7a916",
        "size": 12,
        "type": "blob",
        "url": "70fcb456d4"
      },
      {
        "mode": "120000",
        "path": "/home/bharatnc/gogs-repositories/root/testrepo.git",
        "sha": "092c58d4b63df5779a4d020b1fdbb762421bbb4f",
        "size": 380,
        "type": "blob",
        "url": "092c58d4b6"
      }
    ],
    "url": "c59441ded1"
  }
]

```

* remove vertical space

* make go.mod to be same as in master

* rename structs to sound better

* simplify expressions and fix error msg

* Update tree.go

* Update tree.go

* display file name instead of repo path

* Update tree.go

Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-02-25 22:19:42 +08:00
ᴜɴᴋɴᴡᴏɴ
85f94676ba docs: improve local development guide
[CI SKIP]
2020-02-25 02:12:11 +08:00
ᴜɴᴋɴᴡᴏɴ
52ffb67b33 conf: overhaul email settings (#5940) 2020-02-25 00:35:35 +08:00
ᴜɴᴋɴᴡᴏɴ
0d6c405ccb cmd/web: fix wrong ExternalURL when specify port via CLI flag
Fixes #5936.
2020-02-24 21:21:48 +08:00
ᴜɴᴋɴᴡᴏɴ
0c064b1b79 cmd/web: fix error when Unix socket not exists 2020-02-24 21:13:56 +08:00
ᴜɴᴋɴᴡᴏɴ
63e56facbf README: add emoji to headings
[CI SKIP]
2020-02-23 11:53:12 +08:00
ᴜɴᴋɴᴡᴏɴ
f2dc0d3115 css: add img margin-right
[CI SKIP]
2020-02-23 11:38:50 +08:00
ᴜɴᴋɴᴡᴏɴ
286fbc07e9 conf: overhaul security settings 2020-02-22 20:46:16 +08:00
ᴜɴᴋɴᴡᴏɴ
a7e53b8134 go.mod: update unknwon.dev/clog/v2 to v2.1.1 2020-02-22 20:43:58 +08:00
ᴜɴᴋɴᴡᴏɴ
afc2500aee docker: fix link to Docker Hub
[CI SKIP]
2020-02-22 19:30:17 +08:00
ᴜɴᴋɴᴡᴏɴ
c4062f495a README: fix image and link
[CI SKIP]
2020-02-22 19:16:33 +08:00
ᴜɴᴋɴᴡᴏɴ
d3ecd22dba cmd: fix unable to find correct custom config 2020-02-22 19:12:31 +08:00
ᴜɴᴋɴᴡᴏɴ
5efbde4fe9 conf: overhaul database settings 2020-02-22 18:58:16 +08:00
ᴜɴᴋɴᴡᴏɴ
c4a0a40473 conf: overhaul repository settings (#5932) 2020-02-22 15:22:32 +08:00
ᴜɴᴋɴᴡᴏɴ
f59a68c531 README: update headline and preview
[CI SKIP]
2020-02-22 13:07:17 +08:00
ᴜɴᴋɴᴡᴏɴ
5282699f19 admin/config: show all server and SSH options 2020-02-22 11:40:23 +08:00
ᴜɴᴋɴᴡᴏɴ
648d9e253c conf: overhaul server settings (#5928)
* conf: rename package

* Requires Go 1.12

* Fix lint

* Fix lint

* Overhaul

* db: fix tests

* Save my work

* Fix tests

* Server.UnixSocketPermission

* Server.LocalRootURL

* SSH settings

* Server.OfflineMode

* Save my work

* App.Version

* Remove [server] STATIC_ROOT_PATH

* Server.LandingURL
2020-02-22 09:05:26 +08:00
ᴜɴᴋɴᴡᴏɴ
5b14cc6f0b docker: update link to Docker Hub and add info for gogs-rpi
[CI SKIP]
2020-02-21 20:18:31 +08:00
ᴜɴᴋɴᴡᴏɴ
e575405d7b go.mod: update golang.org/x/crypto/ssh for security fixes 2020-02-21 10:08:00 +08:00
ᴜɴᴋɴᴡᴏɴ
2e819a360c build: rename build tag miniwinsvc -> minwinsvc
This was in fact a typo.
2020-02-20 16:33:03 +08:00
ᴜɴᴋɴᴡᴏɴ
1c09373b4f log: migrate to unknwon.dev/clog/v2 (#5927)
* Add unknwon.dev/clog/v2

* Update all places
2020-02-20 02:25:02 +08:00
ᴜɴᴋɴᴡᴏɴ
422a206484 conf: remove unused config option SHOW_FOOTER_VERSION 2020-02-20 00:20:42 +08:00
ᴜɴᴋɴᴡᴏɴ
e545c310ee CHANGELOG: add missing entry for ce1ec81d6f
[CI SKIP]
2020-02-19 23:48:35 +08:00
ᴜɴᴋɴᴡᴏɴ
ce1ec81d6f repo/editor: clean up tree path
Fixes a security issue reported by @zeripath.
2020-02-19 23:45:02 +08:00
ᴜɴᴋɴᴡᴏɴ
33c6341ccd osutil: add unit tests 2020-02-19 23:15:57 +08:00
ᴜɴᴋɴᴡᴏɴ
b74ecd8a75 CHANGELOG: add missing entry for ea75f01ba2
[CI SKIP]
2020-02-19 17:45:40 +08:00
ᴜɴᴋɴᴡᴏɴ
bcc1ec65f9 .travis: fix config warning
[CI SKIP]
2020-02-19 17:37:52 +08:00
ᴜɴᴋɴᴡᴏɴ
e82c96dab1 log: use trace level for some logs 2020-02-19 17:33:45 +08:00
ᴜɴᴋɴᴡᴏɴ
ea75f01ba2 admin: show all version in dashboard
And removed version info from footer.
2020-02-19 17:32:56 +08:00
ᴜɴᴋɴᴡᴏɴ
3a2b2de814 Makefile: generate Sourcemap for less files
[CI SKIP]
2020-02-19 16:53:51 +08:00
ᴜɴᴋɴᴡᴏɴ
7b5b070900 docs: add steps to install npm and lessc
[CI SKIP]
2020-02-19 16:53:10 +08:00
ᴜɴᴋɴᴡᴏɴ
8d73608672 docs: improve set up guide
[CI SKIP]
2020-02-19 00:26:02 +08:00
ᴜɴᴋɴᴡᴏɴ
9f7433d4f3 docs: add local development
[CI SKIP]
2020-02-18 22:34:21 +08:00
ᴜɴᴋɴᴡᴏɴ
bbffd1b5b6 docker: fix Docker Hub build failure 2020-02-18 20:19:12 +08:00
ᴜɴᴋɴᴡᴏɴ
31d17de26c README: clean up 2020-02-18 20:08:48 +08:00
ᴜɴᴋɴᴡᴏɴ
3797a4839d README: update Features list
[CI SKIP]
2020-02-18 19:24:39 +08:00
ᴜɴᴋɴᴡᴏɴ
f85b17a00e mailer: fix template not found error 2020-02-18 17:48:36 +08:00
ᴜɴᴋɴᴡᴏɴ
33b6478cc7 go.mod: update github.com/go-macaron/i18n to v0.5.0
Fixes a security issue reported by Dor Tumarkin, Security Researcher at Checkmarx.
2020-02-18 17:22:11 +08:00
ᴜɴᴋɴᴡᴏɴ
317bca1008 Add CHANGELOG and adopt new release workflow
In development, the version now has +dev suffix indicates it is not a binary release.
2020-02-18 12:31:08 +08:00
Michael Li
4d83fd4238 Use go-bindata to embed public and templates files into binary (#5920)
* fixed private repositories are hidden in the organization's view

* use go-bindata integrate public and templates files to gogs binary

* optimize Dockerfile don't COPY public and templates files

* use kevinburke's go-bindata to generate assets code

* reset develepment as default run mode in configure file

* optimize generated assets code relayout and help function

* fixed code format

* Update conf/app.ini

* assets: add LICENSE headers

* Some housekeeping

* assets/public: simplify code logic

* assets/templates: simplify code logic

* cmd/web: more concise variable names

* Minor changes

* Add custom public and templates support back

Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-02-17 22:48:24 +08:00
Unknwon
fd14ad6ce9 README: fix phonemic transcription (#5916)
[CI SKIP]
2020-02-07 15:22:51 +08:00
Unknwon
31590afc5f README: add new sponsor BitLaunch
[CI SKIP]
2020-02-07 03:42:02 +08:00
Unknwon
85281d8efa db/repo: fix Git version check to 1.8.3 2020-02-04 20:50:37 +08:00
Unknwon
7a2af4a2a2 locale: sync from Crowdin 2020-02-04 20:41:35 +08:00
imgbot[bot]
465be9b16e [ImgBot] Optimize images (#5913)
*Total -- 2,264.72kb -> 2,093.92kb (7.54%)

/public/plugins/pdfjs-1.4.20/web/images/annotation-noicon.svg -- 0.15kb -> 0.08kb (46.84%)
/public/img/emoji/back.png -- 3.97kb -> 2.46kb (37.95%)
/public/img/gogs-large-resize.png -- 80.67kb -> 54.16kb (32.86%)
/public/plugins/pdfjs-1.4.20/web/images/annotation-note.svg -- 1.02kb -> 0.69kb (32.08%)
/public/img/404.png -- 8.43kb -> 5.94kb (29.47%)
/public/img/500.png -- 9.76kb -> 7.27kb (25.47%)
/public/img/favicon.png -- 28.47kb -> 21.58kb (24.21%)
/public/plugins/pdfjs-1.4.20/web/images/annotation-check.svg -- 0.41kb -> 0.31kb (23.37%)
/public/plugins/pdfjs-1.4.20/web/images/annotation-newparagraph.svg -- 0.42kb -> 0.32kb (23%)
/public/img/gogs.svg -- 14.66kb -> 11.34kb (22.66%)
/public/plugins/pdfjs-1.4.20/web/images/annotation-insert.svg -- 0.40kb -> 0.31kb (22.55%)
/public/img/gogs-lg.png -- 164.32kb -> 133.07kb (19.02%)
/public/img/dingtalk.png -- 30.02kb -> 24.91kb (17.02%)
/public/plugins/pdfjs-1.4.20/web/images/annotation-comment.svg -- 0.86kb -> 0.74kb (14.72%)
/public/img/avatar_default.png -- 502.04kb -> 442.97kb (11.77%)
/public/img/emoji/black_circle.png -- 2.31kb -> 2.07kb (10.68%)
/public/plugins/pdfjs-1.4.20/web/images/annotation-paragraph.svg -- 1.12kb -> 1.00kb (10.15%)
/public/plugins/pdfjs-1.4.20/web/images/annotation-help.svg -- 2.12kb -> 1.96kb (7.29%)
/public/plugins/pdfjs-1.4.20/web/images/annotation-key.svg -- 1.42kb -> 1.32kb (6.68%)
/public/assets/octicons-4.3.0/octicons.svg -- 43.89kb -> 41.59kb (5.23%)
/public/img/emoji/envelope.png -- 1.62kb -> 1.53kb (5.08%)
/public/css/themes/default/assets/fonts/icons.svg -- 381.68kb -> 369.58kb (3.17%)
/public/css/themes/default/assets/fonts/outline-icons.svg -- 104.69kb -> 101.59kb (2.96%)
/public/css/themes/default/assets/fonts/brand-icons.svg -- 495.73kb -> 487.61kb (1.64%)
/public/img/emoji/page_facing_up.png -- 2.13kb -> 2.09kb (1.56%)
/public/assets/font-awesome-4.6.3/fonts/fontawesome-webfont.svg -- 382.44kb -> 377.43kb (1.31%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

Co-authored-by: Imgbot <help@imgbot.net>
2020-02-01 06:35:59 +08:00
Unknwon
19ae04da66 public/plugins: upgrade highlight.js 9.16.2 to 9.18.0 2020-01-31 23:33:47 +08:00
Unknwon
2e00f00ab0 public/plugins: upgrade Dropzone 4.2.0 to 5.5.0 2020-01-31 23:27:56 +08:00
Unknwon
e99f43f59c public/js: upgrade jQuery 1.12.4 to 3.4.1 2020-01-31 23:26:44 +08:00
Unknwon
2637931102 public: upgrade Semantic UI 2.3.1 to 2.4.2 2020-01-31 21:37:30 +08:00
Unknwon
54067d105b public/js: upgrade clipboard 1.5.9 to 2.0.4 2020-01-31 21:21:30 +08:00
Unknwon
4c415aefed public/js: upgrade jQuery 1.11.3 to 1.12.4 2020-01-31 21:20:47 +08:00
ᴜɴᴋɴᴡᴏɴ
b28fb90851 all: use lazyregexp (#5911)
* Use lazyregexp

* all: fix imports and usages
2020-01-29 19:36:57 +08:00
Unknwon
8b7fa6627f conf: fix wrong default example value 2020-01-29 16:42:07 +08:00
Unknwon
f148b7bfc0 conf: update instructions for installing go-bindata 2020-01-29 16:42:06 +08:00
ivan
a0342d9527 repo: able fill pull request title by template from md file (#5901)
* able fill pull request title by template from md file

* fix: unusedresult: result of fmt.Sprintf call not used (from govet)

* fix: remove import fmt -> not used

* after review / PullRequestTitleTemplateCandidates moved to after line 39

* Update pull.go

* Update pull.go

Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-01-29 16:28:59 +08:00
ᴜɴᴋɴᴡᴏɴ
2f4cc5480e api/misc/markdown: remove Mode option (#5910)
We already have a separate `/markdown/raw` API, remove redundant functionality here.
2020-01-29 02:41:31 +08:00
ᴜɴᴋɴᴡᴏɴ
5e6c3b9d0e api: sanitize raw markdown content (#5907)
Fixed a security issue reported by bluebird.
2020-01-27 00:18:46 +08:00
Andrey Filippov
0a461b829a repo: fix redirect after opening/closing milestone (#5903)
* Fix milestone redirect

* gosimple

* Apply suggestions from code review

Co-Authored-By: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>

* fix typo

* Update docstring of MakeURL

Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
2020-01-26 05:42:38 +08:00
Achilleas Koutsou
91e9495148 docker: check "/app/gogs" separately on startup (#5895)
When running gogs after the first time, if the image has changed (update
rebuild), the /app/gogs directory will have changed owner back to
root:root, but /data will likely not be since the data directories are
likely to be persistent.

Checking /app/gogs separately fixes this.
2020-01-23 02:22:30 +08:00
Achilleas Koutsou
873966aa86 user/setting: check for IsErrEmailAlreadyUsed when updating user (#5900)
Check for email collisions when updating the entire user information,
not when the username is being changed.

Fixes #5899
2020-01-23 02:05:31 +08:00
Michael Li
6bd08a0b6f internal/db/org: fix private repositories are hidden in the organization view (#5890) 2020-01-21 21:11:00 +08:00
Yoan Blanc
76b87b1bbd repo: use editorconfig v2 (#5888)
* repo: editorconfig v2

Signed-off-by: Yoan Blanc <yoan@dosimple.ch>

* fixup! repo: editorconfig v2

Signed-off-by: Yoan Blanc <yoan@dosimple.ch>

* Update repo.go

* Update repo.go

Co-authored-by: Unknwon <u@gogs.io>
2019-12-25 10:26:57 +08:00
Kevin Gentile
1b929e3afc repo: fix stale webhook documentation link (#5883) 2019-12-09 14:20:04 -08:00
Unknwon
6b9b42bbdf locale: sync from Crowdin 2019-12-09 00:25:34 -05:00
Unknwon
67cc242820 .github: add refine feature_request and add security templates
[SKIP CI]
2019-11-25 23:26:04 -08:00
Unknwon
b5a85b51b6 .github: add config.yml and update bug_report template
[SKIP CI]
2019-11-25 23:11:27 -08:00
Unknwon
2b5639d503 Dockefile: format and use tagged version
[SKIP CI]
2019-11-25 22:49:25 -08:00
Unknwon
db4bf20df3 README: add phonetic symbol
[SKIP CI]
2019-11-25 15:27:20 -08:00
Unknwon
59e9a87d95 README: add Syncloud to Product Support
[SKIP CI]
2019-11-18 20:12:12 -08:00
Unknwon
bbc12378d4 mirror: use Git command to update origin remote address (#5767) (#5865)
Fixes a RCE reported by @ManassehZhou and @zeripath.
2019-11-16 21:26:06 -08:00
Unknwon
5bec61b824 go.mod: update github.com/go-macaron/binding@v1.0.1
Addresses gogs/go-gogs-client#111.
2019-11-12 22:54:09 -08:00
Johannes
7a0fbd0eb1 public: makes CodeMirror mode by filename lookups case-insensitive (#5857)
* updated the highlight.js plugin

* added some explicit mappings for syntax highlighting

* public: makes CodeMirror mode by filename extension lookup case-insensitive
2019-11-08 15:23:08 -08:00
Unknwon
53d30ccde9 templates: fix line wrap for very long commit message 2019-11-07 11:18:21 -08:00
johannes69ki
7d9f408d3a public: update highlights.js to 9.16.2 (#5856)
* updated the highlight.js plugin

* added some explicit mappings for syntax highlighting
2019-11-07 10:43:01 -08:00
Unknwon
260c4e8503 go.mod: update github.com/gogs/go-libravatar (#5851) 2019-11-05 23:12:06 -08:00
Kasei
dbc66d0405 tls: update default CurvePreferences and CipherSuites (#5850)
* Enable X25519 curve and reorder curve list to improve key exchange performance
* Enable ECDSA ciphers for EC certs
* Enable CHACHA20_POLY1305 ciphers
* Disable RSA key exchange algorithm which don't provide PFS
* Disable non-AEAD ciphers

Signed-off-by: Kasei Wang <kasei@kasei.im>
2019-11-05 23:09:29 -08:00
Unknwon
9578a3cc31 templates: update version info 2019-11-05 22:25:47 -08:00
Unknwon
83b480761f db/repo: print more error info 2019-11-05 11:01:11 -08:00
Guy Smoilov
b40b85e006 repo: delete local copies on owner name change (#5843)
* Protect local repo copy deletion with repoWorkingPool, and delete the local
copy on owner name change.

* Update internal/db/user.go

Co-Authored-By: Unknwon <u@gogs.io>

* Error format on local repo and wiki deletion
2019-11-03 11:07:40 -08:00
Unknwon
97772f406d README: remove unstable badge
[CI SKIP]
2019-11-02 20:27:03 -07:00
Unknwon
8c75b65475 README: use modern style of badges
[CI SKIP]
2019-11-02 20:26:09 -07:00
Unknwon
0f81490830 locale: sync from Crowdin 2019-11-02 12:44:15 -07:00
Unknwon
7da5d83d6e locale: amend source locale
[CI SKIP]
2019-10-30 20:18:20 -07:00
Unknwon
1cfdd1283a cmd/import: improve error message
- Print app.Run() error
2019-10-26 01:48:19 -07:00
Unknwon
762e1167c7 locale: sync from Crowdin 2019-10-26 01:47:27 -07:00
Unknwon
2d55c94c7b pkgr: slow but fix builds on packager.io (#5840)
* Test

* Test

* My last try

* Avoid cleaning old Go version
2019-10-25 21:58:40 -07:00
Unknwon
c9e712d07b Makefile: set -trimpath on build
[ci skip]
2019-10-25 13:16:34 -07:00
Unknwon
a887bed25b appveyor: remove direct from GOPROXY 2019-10-24 22:53:40 -07:00
Unknwon
3fc783617a appveyor: print Go version 2019-10-24 22:52:16 -07:00
Unknwon
34d9a17aad appveyor: use stack: go 1.13.3 2019-10-24 22:51:08 -07:00
Unknwon
40ee8de171 appveyor: add GOPROXY env 2019-10-24 22:47:10 -07:00
Unknwon
feb7d57333 pkgr: use lower version of buildpack 2019-10-24 22:27:39 -07:00
Unknwon
390b903c55 web: fix panic when download attachments (#5838) 2019-10-24 19:58:30 -07:00
Unknwon
1ba27853bd Remove use of develop branch 2019-10-24 18:37:00 -07:00
Unknwon
de61bb6a35 packager.io: update scripts (#5837)
* Test new buildpack and distro

* Try another buildpack version

* Give another try

* Try another one

* Best effort
2019-10-24 02:01:43 -07:00
Unknwon
01c8df01ec internal: move packages under this directory (#5836)
* Rename pkg -> internal

* Rename routes -> route

* Move route -> internal/route

* Rename models -> db

* Move db -> internal/db

* Fix route2 -> route

* Move cmd -> internal/cmd

* Bump version
2019-10-24 01:51:46 -07:00
Unknwon
613139e7be Enable Go modules (#5835)
* Remove vendor

* Enable Go modules

* ci: add command to fetch dependencies

* ci: update setting

* ci: update settings

* Require Go 1.11

* Rename module name to gogs.io/gogs
2019-10-23 23:03:17 -07:00
Unknwon
fb100dbf98 locale: sync from Crowdin
- Also amended some source translations.
2019-10-20 13:00:41 -07:00
Unknwon
ecf61be633 ci: add Go 1.13 2019-10-19 17:29:03 -07:00
Frode Aannevik
1619317c3b repo/download: add Last-Modified response header (#5827)
* repo/download: Add Last-Modified response header

ref: https://github.com/gogs/gogs/issues/5811

* Update download.go


Co-authored-by: Unknwon <u@gogs.io>
2019-10-19 17:26:56 -07:00
Unknwon
76fabe8785 locale: sync from Crowdin 2019-10-19 17:01:57 -07:00
Unknwon
1a17c2ba1f Makefile: use go build to replace go install 2019-10-15 14:37:42 -07:00
Unknwon
a04de87584 models/token: generate bindata and simplify code (#5820) 2019-10-15 14:36:52 -07:00
Frode Aannevik
ffbb0f6a60 token: disallow multiple tokens with same name (#5820)
* api/v1: don't allow multiple tokens with same name

Fail with 422 Unprocessable Entity if the token name
already exist

ref: https://github.com/gogs/gogs/issues/5587

* Move new token error type to models/errors/token

* Remove "useless" ListAccessTokensByName function

* Add an i18n entry for token_name_exists
2019-10-15 14:09:47 -07:00
unknwon
1c82c42cb3 locale: sync from Crowdin 2019-10-03 20:35:32 -07:00
Sauyon Lee
11f79a2095 api/v1: fix status response in checkUserFollowing (#5812) 2019-10-02 19:00:26 -07:00
unknwon
847c06d88b templates/repo: remove unnecessary wrap div 2019-09-21 20:48:09 -07:00
Alexey Agafonov
209569a035 repo: allow admin to remove observers from the repository (#5782) (#5803)
* admin can remove observers from the repository (#5782)

* admin can remove observers from the repository (#5782)

* admin can remove observers from the repository (#5782)

* admin can remove observers from the repository (#5782)

* admin can remove observers from the repository (#5782)
2019-09-21 20:37:20 -07:00
mb
0852e83eec scripts/init/ddwrt: removed reliance on sudo, daemonize deals with forking as user. (#5806)
Added wait for SQL as it may take more time to start up on a router: make sure you configure this before using.
Proper Start/Stop/Reset is now implemented.
2019-09-19 15:50:57 -07:00
mb
ca084ab1a2 scripts: ddwrt / entware init script (#5795) 2019-09-18 18:39:19 -07:00
Marco van Zwetselaar
cab2b96871 ldap: log two non-errors on Trace level (#5804) 2019-09-18 18:35:42 -07:00
unknwon
8675dff045 locale: sync from Crowdin 2019-09-15 11:04:40 -07:00
张怡秋
ed2adc7025 templates/mail: modify the year at the footer (#5793) 2019-09-13 13:28:57 -07:00
Alexey Agafonov
ddc7a2dd4d models/issue_mail: don't send email to non-active users (#5788)
Fixes #5782
2019-08-24 15:12:25 +08:00
Shiki-H
2f0cdfd564 scripts/mysql: fix compatibility issue (#5786) 2019-08-19 07:06:48 +08:00
unknwon
c154721f4a Bump version 2019-08-11 18:59:46 -07:00
unknwon
48cdae2829 Dockerfile: always use alpine:latest (#5714) 2019-08-10 20:23:18 -07:00
Atsushi Midorikawa
9571a9b53d docker: change how to check whether initial or not (#5766) 2019-08-10 20:05:11 -07:00
unknwon
f1e0ebfe93 routes/api/v1: codemod 2019-08-10 13:40:48 -07:00
unknwon
c7ba519af2 routes/api/v1: codemod 2019-08-08 23:53:43 -07:00
Pablo Alcantara
04de977855 dockerfile: add rsync (#5773)
* Add rsync to docker.

Add rsync to docker.
Rsync is nearly a necessity to optimize backup inside Openshift container.
Using TAR (default without Rsync), the process of external backup constantly stops at the middle.

* Add rsync to docker

Add rsync to docker.
Rsync is nearly a necessity to optimize backup inside Openshift container.
Using TAR (default without Rsync), the process of external backup constantly stops at the middle.

* Add rsync to docker

Add rsync to docker.
Rsync is nearly a necessity to optimize backup inside Openshift container.
Using TAR (default without Rsync), the process of external backup constantly stops at the middle.

* Add rsync to docker

Add rsync to docker.
Rsync is nearly a necessity to optimize backup inside Openshift container.
Using TAR (default without Rsync), the process of external backup constantly stops at the middle.
2019-08-06 19:25:04 -07:00
Mathias Rangel Wulff
591a05caa3 Update TRANSLATORS (#5774) 2019-08-06 19:24:09 -07:00
unknwon
82700ea95a README: add Builtkite to sponsors 2019-08-04 17:20:51 -07:00
unknwon
a36b29c25c Bump version 2019-08-01 18:41:45 -07:00
unknwon
c3af3ff1d0 routes/api: fix permission checks for routes
Reported by @ManassehZhou #5764
2019-08-01 18:36:05 -07:00
unknwon
1592e578ed routes/api: add missing permission checks for routes
Permission check not enforced for deploy keys, collaborators, and hooks.

Reported by @ManassehZhou #5764
2019-08-01 18:26:05 -07:00
unknwon
e640683c97 README: add new VPS sponsor
[CI SKIP]
2019-07-29 19:17:50 -07:00
mal
e6bddd3ed2 packager.io: fix and update build files (#5760)
* Update pkgr distros and dependencies

* Configure govendor for heroku builds
2019-07-28 18:37:44 -07:00
unknwon
bd0549caea vendor: update missing test deps for ci 2019-07-28 16:08:47 -07:00
unknwon
08a53e5eca pkg/context/notice: use path.Join to concatenate path 2019-07-28 16:08:00 -07:00
unknwon
025972ef64 vendor: update missing test deps for ci 2019-07-28 16:03:54 -07:00
unknwon
00a3e368b4 vendor: update to fix tests with Go 1.12.x
- github.com/smartystreets/goconvey
- github.com/jtolds/gls
2019-07-28 15:56:22 -07:00
unknwon
6b2465746a ci: add Go 1.12.x 2019-07-28 15:14:28 -07:00
unknwon
35e2cee5c5 pkg/template: use template function Year to get number of year
To avoid update in each year
2019-07-28 15:10:44 -07:00
unknwon
d775fe7936 pkg/context: change banner file path (#5750) 2019-07-28 14:59:51 -07:00
Achilleas Koutsou
dc13eb6df0 pkg/context: Render live notice banner from file (#5750)
* pkg/context: Render live notice banner from file

- Contexter checks if there is a file called 'notice' under the
GOGS_CUSTOM directory and loads it.
- The first line is treated as a header/title and everything else as the
message body.
- Message body is rendered as HTML (tags allowed).
- File size is limited to 1024 bytes.
- File mime type must be text.
- Notice is rendered in head.tmpl for all pages.

* pkg/context: Rename maxlen to maxSize

Rename maxlen to maxSize for the maximum size (in bytes) of the notice
file to render.
Define the variable when needed to avoid instantiating it when the file
doesn't exist.

Co-Authored-By: ᴊ. ᴄʜᴇɴ <u@gogs.io>

* pkg/context: Package name after license header

Co-Authored-By: ᴊ. ᴄʜᴇɴ <u@gogs.io>

* pkg/context: Don't print 'Found notice file'

Becomes too verbose as it prints on every page load when the file
exists.

* pkg/context: Match project conventions

Import order and grouping

Variable names:
    fileloc -> fpath
    fp -> f
    finfo -> fi

* pkg/context: Remove empty line

Co-Authored-By: ᴊ. ᴄʜᴇɴ <u@gogs.io>

* pkg/context: Render notice as markdown

Server notice file should be named 'notice.md'.  The contents of the
file are treated as markdown and rendered as a warning message at the
top of every page.

* Update notice.go


Co-authored-by: ᴊ. ᴄʜᴇɴ <u@gogs.io>
2019-07-27 23:47:35 -07:00
Robin van Boven
798636c95b Include the Sha in webhook create payloads. (#5689) 2019-07-09 17:26:19 -07:00
Unknwon
25fdf6cb16 locale: sync from Crowdin 2019-06-27 08:32:59 -04:00
Paul Spieker
044a45db2e docker: prevent Gogs from running a recursive chown on each boot (#5724)
The chown command in the setup file of Gogs is supposed to be executed just once. As soon as the app.ini file exists, this step should be skipped. However, the test was checking if a directory with the name app.ini exists instead of a file. Therefore, the chown command was executed on each boot.
2019-06-16 13:42:56 -04:00
Tekaoh
0aec2df74f models/repo: idiomatic English (#5678)
* Idiomatic English

* Even better English
2019-04-11 22:22:49 -04:00
Unknwon
4f9c5b60c5 locale: sync from Crowdin 2019-03-25 03:08:25 -04:00
Menno van Rahden
bd13df972e docker: remove deprecated option (#5650)
This line has been removed in respect to the OpenSSH spec update with Version 7.5 (https://www.openssh.com/txt/release-7.5)
2019-03-16 21:53:18 -04:00
boson.cat
a971910723 README: fix tutorial links (#5641)
* Update README_ZH.md

* Update README.md
2019-02-28 19:54:07 -05:00
Unknwon
b8a6fee6d6 README: sync translation
[CI SKIP]
2019-02-25 17:57:53 -05:00
Zou Nengren
0bfa981e70 README: introduce a deployment method which using helm (#5638) 2019-02-25 17:56:07 -05:00
Unknwon
070bdda011 locale: sync from Crowdin 2019-02-25 11:29:49 -05:00
Andy Hochhaus
e19c026083 models/issue_mail: add assignee to issue related emails (#5628)
Reference #4220
2019-02-20 18:04:38 -05:00
Unknwon
8b383f86de pkg/bindata: regenerate for PR #5623 2019-02-20 17:56:43 -05:00
Andy Hochhaus
9ebd62f676 pkg/mailer/mail: render markdown in issue related emails (#5629)
Reference #4552
2019-02-20 17:54:27 -05:00
Stephen Lane-Walsh
2c3e2b701e conf/gitignore: add Unreal Engine (#5623) 2019-02-17 02:14:37 -05:00
Unknwon
16f95123cd models/models: formalize error messages 2019-02-06 18:50:02 -05:00
Unknwon
0a176df6fb models: disable idle connection and set connection max life time (#5532) 2019-02-06 18:46:15 -05:00
Unknwon
d862c43be0 README: add new sponsor
[CI SKIP]
2019-02-01 19:38:08 -05:00
Unknwon
a452767e34 README: update LunaNode link
[CI SKIP]
2019-01-30 23:22:50 -05:00
Favyen Bastani
f0aeef82a1 README: add LunaNode cloud deployment URL (#5584) 2019-01-30 23:21:18 -05:00
Unknwon
06b6eaba06 locale: sync from Crowdin
- Add Portuguese
2019-01-30 21:59:10 -05:00
Unknwon
713a7d518d locale: sync from Crowdin 2019-01-21 15:19:27 -05:00
Guy Smoilov
5702e4bc24 pkg/mailer: support plaintext alt for HTML emails (#5568)
* Added option to use plain text alt to HTML emails. Should make the messages friendlier for spam filters.

* Check that plaintext conversion worked before adding the HTML alt

* Add description of ADD_PLAIN_TEXT_ALT to app.ini

* Added comment clarifying html AddAlternative
2018-12-25 10:08:00 -05:00
Unknwon
9b37b1569c models/repo_editor: add isRepositoryGitPath to detect invalid file path (#5558) 2018-12-25 10:01:52 -05:00
Unknwon
5f1f1bb5ed pkg/tool/path: use IsMaliciousPath to replace SanitizePath (#5558) 2018-12-25 09:47:33 -05:00
Unknwon
9ff2df78f0 public/css: make less (#5317) 2018-12-25 08:58:59 -05:00
Kyumyeong Han
74f26bb667 public/less: fix layout misalignment in Firefox for Linux (#5317)
* Update _repository.less

* Update _repository.less
2018-12-25 08:56:41 -05:00
Unknwon
1f11c1f71a models/repo_editor: ignore copying files with '.git/' path prefix (#5558) 2018-12-19 23:09:32 -05:00
Unknwon
8c8c37a66b pkg/tool/path: handle Windows path separators (#5558) 2018-12-19 22:56:36 -05:00
Unknwon
d4f9fd7204 *: remove Go 1.7 support 2018-12-19 08:38:10 -05:00
Unknwon
e70e72e025 pkg/ssh: specify ssh-keygen to always generate PEM format 2018-12-19 08:31:22 -05:00
Unknwon
e2ce6a0dab vendor: update github.com/go-sql-driver/mysql
Fix MySQL 1046 error
2018-12-19 08:26:32 -05:00
Unknwon
657ea2686f auth: coding style and glitches fixes for GitHub login source (#5340) 2018-12-18 16:46:50 -05:00
haixunlu
311df9c521 auth: add new authentication source: GitHub, including GitHub Enterprise (#5340)
* Add new Authentication Source: GitHub, including GitHub Enterprise.

* Add vendor dependencies.
2018-12-18 15:49:30 -05:00
Unknwon
ff93d9dbda pkg/tool: improve SanitizePath (#5558) 2018-12-18 01:38:08 -05:00
Unknwon
86ada87529 models/repo_editor: sanitize user-defined file name to prevent RCE (#5558)
Reported by PentesterLab (https://pentesterlab.com).
2018-12-18 01:31:04 -05:00
Unknwon
d74437af57 models/action: skip issue index parsing while using external issue tracker (#5551) 2018-12-17 22:52:58 -05:00
Unknwon
c82ac420fc vendor: update
- github.com/gogs/go-gogs-client
- gopkg.in/macaron.v1
2018-12-16 19:48:34 -05:00
Unknwon
f91cb9321e api: add GetReferenceSHA (#5546) 2018-12-16 19:47:32 -05:00
Unknwon
cc1a168aa0 vendor: update github.com/gogs/go-gogs-client 2018-12-15 00:24:53 -05:00
Unknwon
ee82d35ed8 api: add GetSingleCommit (#5546) 2018-12-15 00:24:41 -05:00
Unknwon
8bca30cfe4 vendor: update github.com/gogs/git-module 2018-12-15 00:05:06 -05:00
Unknwon
fe9a5d3159 .github: adjust issue templates
[skip ci]
2018-12-14 18:35:01 -05:00
Unknwon
f43d21d0af locale: sync from Crowdin 2018-12-11 22:17:09 -05:00
Unknwon
8e2c3b315b models: remove legacy support 2018-12-11 22:00:01 -05:00
Nikita
9079fb6a0d pkg/markup: support data URL of base64 encoded images (#5391) 2018-12-10 23:53:08 -05:00
Unknwon
db3f0048d8 templates: rename template function Str2html -> Str2HTML 2018-12-10 22:23:56 -05:00
Unknwon
d3d8284985 templates: sanitize special links in commit message (#5545)
Reported by @cezar97.
2018-12-10 22:21:42 -05:00
Unknwon
f545faa06d templates: make state changing routes to POST method (#5541)
- pkg/context: add ParamsUser to unify the injection process
2018-12-06 22:58:02 -05:00
Unknwon
458aadbb10 vendor: update github.com/go-macaron/session 2018-12-04 19:36:05 -05:00
Unknwon
f2ec0d80a8 user/auth: flush and destroy session at logout (#5540)
Reported by @cezar97.
2018-12-04 19:35:44 -05:00
Unknwon
be6bb5314e ci: update appveyor.yml 2018-12-03 20:00:28 -05:00
Unknwon
98114944fc vendor: update github.com/gogs/go-gogs-client
Bring fixes for #5538
2018-12-03 14:45:19 -05:00
Unknwon
6690023555 pkg/context: use host address and apply insecure flag for go-get=1 when needed (#5305) 2018-12-03 13:36:11 -05:00
Unknwon
a7e8187a0d pkg/context: expose port in import path for 'go-get=1' (#5305) 2018-12-03 13:24:31 -05:00
Unknwon
0c1b72616a locale: sync from Crowdin 2018-12-02 20:02:09 -05:00
Unknwon
945a378e55 public/css: adjust width of label color in dropdown
models/issue: unify Issue receiver name to 'issue'
2018-12-02 17:54:55 -05:00
Unknwon
29c5be47ed models/issue: fix panic when clear labels (#5445) 2018-12-02 17:51:24 -05:00
无闻
e0f18b2255 github: update issue templates (#5537) 2018-12-02 15:25:06 -05:00
Unknwon
e755aafe29 vendor: update github.com/gogs/go-gogs-client 2018-12-02 12:55:16 -05:00
Unknwon
e1b3a25008 api/repo: support edit repository issue tracker (gogs/go-gogs-client#94) 2018-12-02 12:55:05 -05:00
Unknwon
69c1cd3f38 routes/api: change status handle to new style
Also fixed one bug that did not catch team not found error.
2018-12-01 21:41:30 -05:00
Unknwon
ce13fbb98a routes/api: allow get repository without login (#5475) 2018-12-01 21:40:19 -05:00
Samuel Cochran
084d9e0009 templates/user/dashboard: include 'org' query parameter in new mirror URL (#5534) 2018-11-29 07:21:16 -05:00
Unknwon
3db9b06a6e api: fix critical CSRF vulnerabilities on API routes (#5355)
By explicitly requires token authentication.
2018-11-28 21:05:58 -05:00
Unknwon
e9be8016e6 README: add new sponsor 2018-11-27 10:46:46 -05:00
Unknwon
1f9e21ebd5 templates/wiki: fix emoji rendering (#4869) 2018-11-26 07:02:21 -05:00
Unknwon
a91d9054ad conf: fix unexpected behavior of config inheritance (#5007) 2018-11-26 06:44:06 -05:00
Charles Kenney
6c90d12a0c routes/repo/issue: implement issue pre-filling (#5521)
Signed-off-by: Charles Kenney <charlesc.kenney@gmail.com>
2018-11-20 13:16:42 -05:00
Unknwon
38e8ccac92 conf: add go-bindata install command in README
[ci skip]
2018-11-20 02:37:16 -05:00
Unknwon
1d19a58424 locale: sync from Crowdin 2018-11-19 18:58:00 -05:00
Danilo Riecken P. de Morais
f47f9ceade mirror: trigger additional push webhook on new branch (#5508)
This commit fixes issue #5473 and makes a new branch behave like a
      push event and trigger the appropriate webhook.
2018-11-14 23:03:03 -05:00
Federico Culloca
81effe674d templates/user/profile: added rel="me" to website link on user profile (#5485)
* Added rel="me" to website link on user profile

See issue #5008

* Added `nofollow` as per feedback
2018-11-12 20:49:30 -05:00
Unknwon
831251bcaa ci: remove Go master for the moment 2018-11-08 18:03:16 -05:00
A.J. Ruckman
f4630f9044 public/css: add 'overflow-wrap: break-word' to dashboard news feeds (#5507) 2018-11-08 17:51:56 -05:00
William Hilton
dae311ea9d repo/http: update CORS headers to allow custom user-agent (#5498)
At some point after #4970 was merged, isomorphic-git started sending a custom User-Agent in its HTTP requests to deal with some services (\*cough\* gists \*cough\*) which filtered git traffic by User-Agent. Sadly, this broke cloning from Gogs using isomorphic-git in the browser (https://github.com/isomorphic-git/isomorphic-git/issues/555). This PR fixes it by telling browsers it is OK for CORS requests to send a custom User-Agent header.
2018-11-07 18:14:15 -05:00
Unknwon
4677b46904 vendor: update github.com/go-macaron/session (#5469)
Fix security flaw reported by c957861129d62331c5704d2f04d11e41.
2018-11-06 22:22:02 -05:00
Unknwon
a4dd2b1916 Merge branch 'master' of github.com:gogs/gogs into develop 2018-11-05 16:48:31 -05:00
Masen Furer
3d117b8964 Dockerfile.aarch64hub: install shadow package (#5481)
the shadow package contains the usermod(8) utility which is used by
start.sh and finalize.sh to configure the git user
2018-11-05 16:46:53 -05:00
hopegolden
6a083e9561 ldap: grammar fix (#5493) 2018-11-05 16:44:28 -05:00
hopegolden
044d359a7e docker: grammar fix (#5492) 2018-11-05 16:44:01 -05:00
Unknwon
f35d4164d6 pkg/bindata: update content 2018-11-04 18:37:01 -05:00
Unknwon
3058f8fd69 conf: change default session cookie name
[CI SKIP]
2018-10-24 10:05:35 -04:00
Unknwon
5129ed215e vendor: update github.com/go-macaron/session (#5469)
Fix security flaw reported by c957861129d62331c5704d2f04d11e41.
2018-10-24 09:59:07 -04:00
Unknwon
b93079f1c1 vendor: update github.com/go-macaron/session (#5469)
Fix security flaw reported by c957861129d62331c5704d2f04d11e41.
2018-10-24 09:43:59 -04:00
Unknwon
a1098384c0 vendor: update github.com/gogs/git-module 2018-10-23 07:02:13 -04:00
aboron
43bca4df40 ldap: fix group membership search handling when the group members are listed by 'dn' (#4684) (#4688)
Also, fixed typo in group member list return size check.
2018-10-23 04:16:39 -04:00
Unknwon
82269e4b8c locale: sync from Crowdin 2018-10-16 16:58:18 -04:00
Unknwon
14e49614e6 gogs: rise Go requirement to 1.7 2018-10-03 20:49:49 -04:00
Unknwon
a221b2807f routes/repo/issue: fix redirect with unexpected escape (#5443) 2018-09-30 13:55:40 -04:00
Unknwon
0d66b1cc1c pkg/context: apply EscapePound at context level
Always escape template variable {{.Link}} variable and  redirect calls.

Relates to #5442
2018-09-28 23:56:45 -04:00
Unknwon
1843354d88 templates/repo/setting: fix missing EscapePound (#5442) 2018-09-28 23:32:00 -04:00
Unknwon
bd7d1e2f16 routes: fix open redirect vulnerability (#5355)
Reported by @cezar97.
2018-09-28 23:19:29 -04:00
Unknwon
aff0bbcc32 pkg/ssh: print actual error in panic (#5435) 2018-09-28 15:37:34 -04:00
Unknwon
33e009bedb README: add FOSSA badge
[ci skip]
2018-09-26 19:04:41 -04:00
Unknwon
f94dc67a43 librejs: add jQuery
[ci skip]
2018-09-19 13:24:49 -04:00
Unknwon
091f63fd4e Makefile: only read GOPATH from env var
[ci skip]
2018-09-18 12:33:14 -04:00
Unknwon
3a4c981e31 locale: sync from Crowdin 2018-09-16 11:53:32 -04:00
Unknwon
0d48344f93 docker: chown only for the frist time (#5422) 2018-09-15 13:57:41 -04:00
Unknwon
21ceba6cfd Revert "docker: remove chown the git repos on startup (refs #4996). (#5390)"
This reverts commit 068e6ce2c9.
2018-09-15 13:46:14 -04:00
Unknwon
f8302c5470 ci: fix go vet and add Go 1.11.x 2018-09-14 22:48:35 -04:00
Unknwon
7a7e07a57c vendor: add dependencies of Prometheus client 2018-09-14 22:38:06 -04:00
Unknwon
520530dfcf metrics: add initial Prometheus support (#4141) 2018-09-14 22:29:43 -04:00
Unknwon
31c18b4bc7 repo: adjust pull request setting description (#5359) 2018-09-14 20:10:54 -04:00
Unknwon
1ec365de25 repo: trigger webhook when delete branch after merged pull request (#5331) 2018-09-14 20:04:31 -04:00
Unknwon
99f3eabb1b README: update vision
[ci skip]
2018-09-14 15:25:15 -04:00
Unknwon
32479744f6 templates/admin/monitor: fix field error
[ci skip]
2018-09-13 23:30:59 -04:00
Unknwon
b68de2330d auth: support set default login source (#5274) 2018-09-13 14:06:04 -04:00
haixunlu
68a6579852 login_source: add default authentication switch (#5338)
* Add default Authentication Switch.

* adjust the code accroding to reviews

* #1. Remove redudant logic.
#2, Fix a bug in "Edit" panel.

* Remove unused logic

* Fix local authentication files are not flushed.

* refactor according to review.
2018-09-13 13:49:07 -04:00
Jakob Lykke Andersen
798798f7ab templates: hide dashboard org creation when not allowed (#5393)
The admin -> DISABLE_REGULAR_ORG_CREATION setting
hides organization creation in the header, but not
in the dashboard.
2018-09-11 14:10:09 -04:00
leonunix
54e9442a14 docker: fix aarch64 dockerfile make docker image error (#5411) 2018-09-10 15:38:35 -04:00
Unknwon
f7b9f35ce1 locale: sync from Crowdin 2018-09-10 10:41:00 -04:00
Ross Golder
068e6ce2c9 docker: remove chown the git repos on startup (refs #4996). (#5390) 2018-09-08 08:07:30 -04:00
PiPc2
5d4bb4d6f8 librejs.html: fix semantic version (#5404)
currently incompatible with librejs
2018-09-06 20:16:21 -04:00
Unknwon
a05c19682e locale: sync from Crowdin 2018-08-23 12:45:53 +08:00
Stefan Liu
5caa7436d8 gogs: remove app flags line (#5388)
No meaning for this line
2018-08-23 12:35:36 +08:00
Unknwon
512a900202 repo/editor: hide internal error detail
Prevent exposure of server path
2018-08-17 23:35:53 +08:00
Unknwon
ba7b2cc1f6 vendor: update github.com/gogs/git-module 2018-08-17 23:15:26 +08:00
Unknwon
ac73d43444 repo_editor: able to trigger Git hooks (#4338) 2018-08-17 23:15:20 +08:00
Unknwon
33434a40d7 vendor: update github.com/gogs/git-module 2018-08-17 20:03:00 +08:00
Unknwon
844d69143f pkg/markup: allow match SHA1 length 7-40 (#3321) 2018-08-17 20:02:43 +08:00
Unknwon
77275a9b31 models: rename Id to ID 2018-08-16 20:26:09 +08:00
Unknwon
de10d9be08 models: fix delete undesired release attachments when delete a comment (#4627)
Apparently, AfterDelete has ID=0
2018-08-16 20:17:19 +08:00
Steven Haigh
3c227af508 scripts: add NoNewPrivileges=true to systemd unit file (#5381)
Also add comment about unsupported options in different systemd versions.
2018-08-16 19:07:36 +08:00
Unknwon
4c1a479a60 models: fix delete public keys ORM syntax (#5376) 2018-08-14 22:10:44 +08:00
Michael Li
cc95d251d6 docker: add new Dockerfile.docker-ce for docker-ce(>=v17.06) to build docker image (#5322)
* add new Dockerfile.docker-ce for docker-ce(>=v17.06) to  build docker image

* change default Dockerfile to support docker-ce(>=v17.06) multi-stage build
2018-08-13 20:50:25 +08:00
chromium1337
1f247cf813 routes: fix open redirect vulnerability #5364 (#5365) 2018-08-06 17:10:16 +08:00
GeekComb
c9bb33afc3 repo: fix issue of fork repository no check the limit of users' repository (#5346) 2018-07-18 20:03:09 +08:00
Unknwon
97fb9d283f locale: sync from Crowdin 2018-07-16 06:14:54 +08:00
Bogdan Khomutsky
66016b8499 scripts: apply hardening for systemd service (#5332) 2018-07-09 16:13:28 +08:00
PHANI
8bbf0293f5 webhook: add headers to support spring config server (#5325)
Spring cloud config server dependency spring cloud config monitor looks for X-Github-Event condition PropertyPathEndpoint.class -> GithubPropertyPathNotificationExtractor.class if ("push".equals(headers.getFirst("X-Github-Event"))) {...}
2018-07-09 16:12:30 +08:00
cezar97
87b229d280 templates: add 'rel=noopener noreferrer' to <a> tags (#5319)
Signed-off-by: cezar97 <cezar97@protonmail.com>
2018-07-02 19:33:14 +08:00
Unknwon
2a86b3e31d restore: reset milestone deadline_unix and closed_date_unix (#5264) 2018-06-27 22:08:24 +08:00
Steve Chung
436dd6c0a4 routes/repo/setting: require autosize when repo/settings/options is rendered (#5315) 2018-06-26 21:40:09 +08:00
Unknwon
f6bdefe3f3 public: minor fix for PR #5276 2018-06-26 21:16:29 +08:00
ususdei
cd71077c6a pull request: able to add custom commit description (#5276)
* pull request merges now allow for custom commit messages

* allow i18n on commit_message label

* place label above textarea for commit message

* rename commit message for pull requests into commit description and pass to git separately
2018-06-26 20:49:46 +08:00
Unknwon
029b33c650 restore: ignore created_unix for milestone table (#5264) 2018-06-25 20:33:21 +08:00
Unknwon
f4f4edf276 vendor: update github.com/gogs/git-module 2018-06-25 19:58:40 +08:00
Unknwon
992ea5802a locale: sync from Crowdin 2018-06-18 12:21:51 +08:00
Unknwon
376a629c9f repo: add changes to repository avatar feature (#5221) 2018-06-17 22:18:41 +08:00
Sergey Dryabzhinsky
303fa37b60 repo: support avatars (#5221)
* First code for repository avatars

* Last code for repository avatars

- add new option for repo avatars location on filesystem
- add route catch in web
- add new fields to repo model
- add migration
- update settings handlers
- update repo header template

* Update locale messages

* Add repo avatars to home page

* Add repo avatars to organization right panel

* Show repo avatars in repo list

* Remove AvatarEamil field, remove Gravatar support, use generic locale messages

* Fix migration

* Fix seed and not used tool

* Revert public css changes, add them to less files

* Latest lessc (2.6.0) don't put result into file but output to stdout

So redirect output to file

* Simplify things:

- migration don't needed, and table changes too
- just upload file to repo avatar storage
- or generate random image

* Fix repo image seed - name not unique

* Get rid of not needed model fields

* Class value is enough, remove height attribute

* Don't generate random avatar for repository

- use html and semantic ui icons if no avatar found

* Update styles and templates for repo

- use repo icon as default avatar
- use globe icon for public repos
- add micro style for repo avatars at dashboard

* Remvoe redundant empty line

* Fix nl2br filter - must return string

* Fix css style for micro-repo-avatar in dashboard list

* Remove `|len`, works fine w/o it.

* Update after review 2:

- use static route for repository avatar
- format images settings block in settings

* Update after review 2:

- no random avatar for repo

* Update after review 2:

- no random avatar for repo 2
- update imports
- update UploadAvatar* functions

* Update after review 2:

- update templates

* Fix trace call

* Remove unused immport since we use static route for repo avatars.
2018-06-17 20:21:52 +08:00
Unknwon
ef02414d7e pkg/setting: ignore config inline comment by default 2018-06-17 09:10:18 +08:00
Unknwon
bcf83ea792 vendor: update gopkg.in/ini.v1 2018-06-17 09:08:21 +08:00
Unknwon
86a27cf16d modes/repo: syntax fix for PR #5234 2018-06-16 16:48:47 +08:00
James
08ae0dd74b repo: show in search if any part is public (#5234)
if repo is private but wiki and/or issue are public show repo in search
2018-06-16 16:34:55 +08:00
Unknwon
93f3a7f96a vendor: update github.com/go-sql-driver/mysql 2018-06-15 13:33:08 +08:00
Unknwon
7856b1202d *: fix wrong format type 2018-06-13 22:26:56 +08:00
Unknwon
e5ddbcab7d routes/repo/http: fix wrong format type 2018-06-13 21:58:46 +08:00
oOOps
f9bc980b0b api: correct pagination in repository search api (#5293) 2018-06-13 21:55:09 +08:00
奶爸
806754b512 repo: clean up webhook and hook_task when delete repository (#5239) 2018-06-11 21:35:38 +08:00
Unknwon
4d18df204a Merge branch 'pr-5277' into develop
# Conflicts:
#	models/migrations/migrations.go
2018-06-11 21:32:57 +08:00
奶爸
04b4431bc0 migrations: clean unlinked webhook and hook_tasks 2018-06-11 21:29:24 +08:00
Unknwon
dfd494c113 repo: minor improve for PR #5219 and support UTF-8 byte count 2018-06-11 21:06:24 +08:00
Sergey Dryabzhinsky
57897cc8c2 repo: update repository description field to contain more than 256 symbols (#5219)
* Update repository description field to contain more than 256 symbols

- update repository model - description field now is `TEXT` and limited by 4000 symbols
- new migration
- add description to html forms - repo creation and repo settings
- add translation for description

* Update for description field, new features

- add autosize (height) for description textarea, new plugin
- set max description length to 512 symbols
- update locales

* Fix migration - typo in var

* Update repo description behaviour

- add textarea autosize for /repo/create
- add symbols counter under description testarea (create/edit)

* Fix function definition - it a var

* Revert ru-RU locale

* Update by review

- Use type `varchar(512)` in migration
- Remove unused files from autosize plugin

* Fix migration - new project paths

* Fixes after review 2

- copyright year
- format includes
- use switch instead of multi-if

* Remove unused `default:` option.
2018-06-11 20:34:26 +08:00
Unknwon
459c8be94f ci: remove Go 1.6.x 2018-06-09 17:43:26 +08:00
Unknwon
5e158b51db vendor: add new dependencies 2018-06-09 17:34:38 +08:00
Unknwon
fbecc18e2e *: use jsoniter to replace encoding/json 2018-06-09 17:32:58 +08:00
Unknwon
b538c5345e restore: reset original created_unix after insert (#5264) 2018-06-09 17:21:58 +08:00
Unknwon
694208865b vendor: add github.com/json-iterator/go 2018-06-09 17:20:38 +08:00
Unknwon
a75c435245 vendor: update github.com/go-xorm/… 2018-06-09 16:28:52 +08:00
Unknwon
53c8e4263b models: skip JSON for fields skipped by XORM
Reduce output JSON size by backup command
2018-06-09 16:06:47 +08:00
Unknwon
078549518d vendor: update github.com/gogs/git-module 2018-06-09 10:00:45 +08:00
Alexey Terentyev
4c844081f3 routes/repo: added deletion of an empty line at the end of file (#5261) (#5270)
* Added deletion of an empty line at the end of file (#5261)

Signed-off-by: Alexey Terentyev <axifnx@gmail.com>

* Fix after feedback

Signed-off-by: Alexey Terentyev <axifnx@gmail.com>
2018-06-06 21:32:54 +08:00
Unknwon
91441c3fb2 locale: sync from Crowdin 2018-06-05 07:31:34 +08:00
Michael Li
b152cbe45a Makefile: fix make build failure when environment of GOPATH have multiple items (#5262)
* fixed make build failure when enviroment of GOPATH have Multiple items

gogs source in /other/path/to/go/src/github.com/gogs/gogs and then

>cd /other/path/go/go/src/github.com/gogs/gogs
>GOPATH=/path/to/go:/other/path/to/go make

will also build success in this fixed code

* in makefile rename gogits to gogs
2018-06-04 18:41:54 +08:00
Unknwon
c08aab90ec models/mirror: shot push webhook after synced commits (#4528) 2018-06-03 20:32:44 +08:00
Unknwon
8d091ec062 vendor: update github.com/gogs/git-module 2018-06-03 20:26:29 +08:00
Unknwon
0376e59520 pkg/setting: fix '[git] GC_ARGS' is not loaded 2018-06-03 16:02:17 +08:00
Unknwon
e25fe22f9d pkg/template: fix NewLine2br return type to string 2018-06-02 08:15:56 +08:00
Unknwon
bef7f6745c templates/repo/settings: fix mirror setting error 2018-05-30 21:32:40 +08:00
Unknwon
775919c129 mirror: show sync feeds on dashboard (#2017) 2018-05-30 21:26:03 +08:00
Unknwon
702acc06d8 vendor: update github.com/gogs/git-module 2018-05-29 06:43:19 +08:00
Sergey Dryabzhinsky
b5a1daa756 template: simple html filter for repository description (#5242)
* Add markdown renderer function to templates, use it for description in repo template

* Fix function call

* Define function Md2html in template namespace

* Change filter from Md2html to nl2br

* Change filter name to NewLine2br as suggested

* Update description output:

- just replace `\n` by `<br>`
- sanitize html after replace
2018-05-29 06:42:27 +08:00
Unknwon
5a47301dbd docker: rename "gogits" to "gogs" 2018-05-27 09:29:34 +08:00
Unknwon
e33d9e77f4 vendor: rename "gogits" to "gogs" 2018-05-27 09:07:15 +08:00
Unknwon
aff4208244 *: rename "gogits" to "gogs" 2018-05-27 08:53:48 +08:00
Wei He
73dbaefec5 routes/user/setting: fix avatar email update error (#5245) 2018-05-26 09:19:04 +08:00
Unknwon
05edcde6c9 routes/user/auth: improve coding style 2018-05-21 14:45:47 +08:00
Unknwon
01ccc2cc96 security: prevent same passcode from being reused
Reported by @cezar97.
2018-05-21 14:24:06 +08:00
Madzahttr
cd093a07a3 templates/mail/auth: update copyright year (#5224)
* Update activate.tmpl

* Update activate_email.tmpl

* Update register_notify.tmpl

* Update reset_passwd.tmpl
2018-05-13 05:25:51 -04:00
Sergey Dryabzhinsky
7e450542d9 templates/repo: use correct Semantic UI icon styles to fix star and watch icons (#5218)
* Update font-awesome to 4.7.0

* Fix font-awesome styles overrided by semantic

* Revert back

* Revert back 2

* Just use right `semantic` icon styles
2018-05-10 04:58:04 -04:00
Michael Li
45545e897c templates/user/dashboard: make page more concise for user's activity/issues/PR information (#5209) 2018-05-08 14:43:23 -04:00
Lauris BH
eccc8109c1 security: fix path cleanup for repository init and editor (#5207)
Reported by Kacper Szurek https://security.szurek.pl/.
2018-05-08 14:32:49 -04:00
Unknwon
2fabcd0455 locale: sync from Crowdin 2018-05-02 20:46:54 -04:00
Unknwon
e3ce295215 public/css: generate CSS for PR #5169 2018-04-26 17:05:30 -04:00
Florian Wiech
8df59c01d5 public/css: fix file view responsiveness (#5169) 2018-04-26 17:00:55 -04:00
Unknwon
15f9a83618 templates/repo: escape branch name (#4601) 2018-04-25 22:35:50 -04:00
Unknwon
d572381a37 vendor: update gopkg.in/clog.v1 2018-04-25 22:13:16 -04:00
Unknwon
9127001f11 pkg/setting: support Discord logger 2018-04-25 22:13:01 -04:00
Unknwon
742420a5e2 .github: update link to ISSUE_TEMPLATE.md (#5193) 2018-04-25 18:28:41 -04:00
Unknwon
f439df4441 locale: sync from Crowdin 2018-04-25 13:50:48 -04:00
rokuu
c92e8940dc pkg/form: fix bad locale reference (#5196) 2018-04-24 09:57:42 -04:00
rokuu
c68fc4f31a templates: fixes broken UI under supported resolution (1024x768) #5179 (#5182)
* Update view_list.tmpl

* Update commits_table.tmpl

* Update dashboard.tmpl

* Update list.tmpl

* Update list.tmpl

* Update list.tmpl

* Update list.tmpl

* Update notice.tmpl

* Update monitor.tmpl

* Update view_file.tmpl

* Update diff_preview.tmpl

* Update box.tmpl
2018-04-24 09:54:22 -04:00
rokuu
0e80e47592 public/{less,css}: fix overflow of brand logo hyperlink (#5189)
* Update gogs.css

* Update _base.less
2018-04-21 12:11:24 -04:00
Cosmin Stroe
54b9311344 pkg/markup/markdown: Issue mentions should also render with square brackets (#4707)
* gofmt reformat of markdown.go
2018-04-21 12:08:11 -04:00
rokuu
9387b79b98 templates: delete legacy file (#5180) 2018-04-19 01:27:59 -04:00
Unknwon
5c2de3a9ea pkg/template: fix Gravatar URLs are badly generated (#5157) 2018-04-18 19:40:35 -04:00
Changwoo Ryu
eac5b48da0 locale: Add myself to TRANSLATORS (#5177) 2018-04-18 11:09:38 -04:00
Unknwon
f89d948c06 templates/repo/issue: rework escape delete branch link after merged pull request (#4601) 2018-04-16 23:08:09 -04:00
Unknwon
45a0988833 templates/repo/issue: escape delete branch link after merged pull request (#4601) 2018-04-16 23:02:20 -04:00
Nicolas Ettlin
afbb31c05e MISC: fix Mac OS X → macOS (#5168) 2018-04-16 19:29:11 -04:00
Unknwon
e6af6487e1 locale: sync from Crowdin
Add Vietnamese
2018-04-16 17:48:23 -04:00
Josef Kemetmüller
c0b45fa36f ldap: return valid LDAP string if user input lacks "%s" (#5171)
If the user provides a string that does not contain "%s", fmt.Sprintf
silently appends "%!(EXTRA type=value)" instead of failing loudly.
This fixes #4375.
2018-04-16 17:19:45 -04:00
Unknwon
cb47595f13 Bump version 2018-04-12 10:57:43 -04:00
Unknwon
c59704a24b public: update Semantic UI 2.2.13 -> 2.3.1 2018-04-12 09:57:27 -04:00
Unknwon
f2ecfdc96a auth: support authentication source config file (#3142) 2018-04-12 09:55:58 -04:00
Unknwon
717d409b72 templates/admin/auth/list: rename list title 2018-04-11 19:39:17 -04:00
Unknwon
6e207c823e templates/admin/auth/list: move "new" button to table foot 2018-04-11 19:38:52 -04:00
Unknwon
b69294b6d6 locale: sync from Crowdin 2018-04-09 12:38:39 -04:00
Unknwon
6cbaa4787b MISC: update docker build script 2018-04-09 07:26:55 -04:00
Unknwon
8b66c433c5 models/pull: fix error on merge pull requests to non-default branch (#5138) 2018-04-09 07:26:38 -04:00
Unknwon
3329bfa5b2 .github: adjust ISSUE_TEMPLATE 2018-04-05 17:23:03 -04:00
Unknwon
f41f5785bf docker: update README about "custom" directory (#5150) 2018-04-05 17:19:45 -04:00
Unknwon
55f148f499 template: delete legacy file 2018-04-02 00:03:07 -04:00
Unknwon
2978bb1773 README: update sponsors
[CI SKIP]
2018-03-30 23:26:48 -04:00
Unknwon
0152e12172 locale: sync from Crowdin 2018-03-30 23:19:20 -04:00
Unknwon
38d73a4be6 .gopmfile: delete as no longer used
[CI SKIP]
2018-03-30 22:52:05 -04:00
Unknwon
34bd04f925 MISC: fix typo and grammar
Reference: 932490d7f1 (commitcomment-28344918)
2018-03-30 04:40:13 -04:00
Unknwon
17d789a785 pkg/mailer: support custom mail subject prefix (#4524) 2018-03-30 03:52:23 -04:00
Unknwon
63a263f542 templates/admin/config: show SSH.StartBuiltinServer 2018-03-30 01:42:35 -04:00
Unknwon
932490d7f1 conf: add option to rewrite authorized_keys file at start (#4435)
Added config option '[server] REWRITE_AUTHORIZED_KEYS_AT_START'.
2018-03-30 01:32:18 -04:00
Unknwon
a855abf8c0 models: rename RewriteAllPublicKeys -> RewriteAuthorizedKeys 2018-03-30 01:26:36 -04:00
Unknwon
0d2398aaff bindata: update 2018-03-29 05:58:31 -04:00
Unknwon
c17a6ff533 templates/repo: show quick guide to people with write permission (#4646)
Used to only show people who has admin permission.
2018-03-29 05:57:11 -04:00
Rebecca Turner
c3c7944d79 conf: default to disabling federated avatar lookup (#5126)
It's a fun feature but `ENABLE_FEDERATED_AVATAR` being true by default
leads to confusion and huge slowdowns (see #2838, #980, #914) --- it's
unexpected that Gogs requires DNS configured (?) for avatars.

Avatar lookup is a niche feature that I don't believe should be enabled
by default given how prone it is to causing problems.
2018-03-29 05:48:53 -04:00
Unknwon
75555585e8 models/pull: fix rebase merging no effect (#5051) 2018-03-21 19:11:36 -04:00
Unknwon
28e0003a9a templates/repo/branches: escape pound in branch name (#4874) 2018-03-20 20:11:02 -04:00
Jorge Maldonado Ventura
2818ce4632 templates: make dropdowns menus work when JavaScript is disabled (#4780)
* Make dropdowns menus work when JavaScript is disabled

* Update head.tmpl

* Update head.tmpl
2018-03-20 20:04:34 -04:00
Unknwon
52ee796d6d repo_branch: fix SQL builder (#5054) 2018-03-20 19:06:13 -04:00
Unknwon
0f737f2999 vendor: update gopkg.in/clog.v1 2018-03-20 00:48:21 -04:00
William Hilton
6a185e94b9 repo/http: add CORS headers to allow clone/push from browser agents (#4970) 2018-03-14 11:08:00 -04:00
Unknwon
ba0a78da2a templates/repo/branches: escape pound in branch name (#4874) 2018-03-12 15:27:27 -04:00
Dennis Chen
f0bbcef3a4 api: fix nil pointer dereference on repo/forks (#4633)
Sets BaseRepo value for each resulting fork in GetForks().
Finds correct permissions for parent repository in APIFormat().

The output JSON is a little redundant, perhaps we should offer a
different view of the api.Repository without the Parent attribute?

Signed-off-by: Dennis Chen <barracks510@gmail.com>
2018-03-12 15:03:51 -04:00
Unknwon
d7280f82ac locale: sync from Crowdin 2018-03-12 09:23:29 -04:00
m2nlight
aa53d0978c models: add ROW_FORMAT=DYNAMIC when creating table for supports mysql 5.6 (#4913)
* Add ROW_FORMAT=DYNAMIC when creating table for supports mysql 5.6 (fix #4894)

* Update models.go

Rename NewEngine2 to NewEngineWithParams

* Rename NewEngine2 to NewEngineWithParams

Please update vendor when https://github.com/go-xorm/xorm/pull/798 closed.

* Update dialect_mysql.go

* Update dialect_mysql.go

* Update models.go
2018-03-09 15:44:07 -05:00
Julian Xhokaxhiu
ffdd8b3afa docker: enable Automated builds for aarch64 ( ARM64 ) platforms (#5058)
* Enable Automated builds for aarch64

* Native aarch64 build

* Move to the new organization

* Try to build it with latest go binary

* Rebuild using Go 1.10
2018-03-09 13:05:33 -05:00
Unknwon
86d249eb16 migrations: remove unused function and fix compile error 2018-03-09 00:33:40 -05:00
Unknwon
28f74cf1c6 vendor: update github.com/go-xorm/xorm (#4913) 2018-03-09 00:26:47 -05:00
Unknwon
83655d5c00 vendor: update github.com/go-xorm/core (#4913) 2018-03-09 00:25:05 -05:00
Unknwon
63eaac67a6 repo: improve error handling for PR #4803 2018-03-08 07:22:14 -05:00
Unknwon
1f7983059a models: move ErrBranchNotExist to errors package 2018-03-08 07:15:55 -05:00
bayangan1991
51e087fd87 repo: disallow web ui to delete protected branch after PR merged (#4803)
* Disallow web ui to delete protected branch

* Fix for branches not yet protected

Had to change how error was handled. If a branch had not yet been protected the error would be generated.

Reworked to start as false and then use the protected if it was found.
2018-03-08 07:11:34 -05:00
Markus Hauschild
679147cd5d pkgr: update spec to build on Debian 9 (Stretch) (#5083) 2018-03-08 02:14:18 -05:00
Unknwon
40eb652cfa public/plugins: update notebookjs to 0.3.0 (#5077) 2018-03-08 02:12:04 -05:00
Ruben Vermeersch
f4e4ea1374 public: update notebookjs to 0.3.0 (#5084)
Fixes #5077
2018-03-08 02:06:57 -05:00
James
199d67581a templates/user/dashboard/issues: show labels to each issue (#4976)
* add issue labels

* remove hyperlink from issue label

* wrap labels in right aligned span

* put issues with div

put the issue labels within a div so they don't interfere with the number of comments
2018-03-07 06:39:38 -05:00
Unknwon
49bd893a77 bindata: update changes from pull requests 2018-03-06 17:22:27 -05:00
Andres D
8729a60c1d templates/user/auth/login: disable password autocomplete (#5068)
As gogs can be linked with PAM it is recommended to disable the autocomplete on the password input.
2018-03-06 17:20:38 -05:00
Wendell Sun
e4f187cd3d models: bug fix for query protected branches (#5054)
Signed-off-by: Wendell Sun <iwendellsun@gmail.com>
2018-03-06 17:11:31 -05:00
Larry Li
f9c706e31b templates/user/settings: fix delete email button (#4998) 2018-03-06 17:03:43 -05:00
Anton Kazarinov
c5728291ba conf/gitignore: add PhpStorm and WebStorm (#4974) 2018-03-06 16:49:14 -05:00
Sanxing Chen
68d22e78bf templates: update year in footer (#4966)
Happy new year!
2018-03-06 16:47:35 -05:00
Douglas Thrift
0bfce7aca4 repo/commit: fix file commit history pagination (#4965)
- The `commits_table.tmpl` pagination uses a `$.FileName` variable in
  order to generate the next/previous URLs, but it seems like that
  variable was no longer being populated in `renderCommits`.
2018-03-06 16:46:53 -05:00
Drahoslav Bednář
7faa2356d8 pkg/context: add doctype to go-get=1 response (#4938) 2018-03-06 16:43:48 -05:00
Arnie97
2a8a293c7c pkg/tool: use identicon image as the default gravatar (#4934) 2018-03-06 16:43:00 -05:00
Flávio Monteiro
f3e8352193 locale: update TRANSLATORS (#4908) 2018-03-06 16:37:28 -05:00
kaajavi
ca874ba8c7 templates/repo: fix wrong branch url in branches view (#4902) 2018-03-06 16:35:24 -05:00
Unknwon
f274f76607 vendor: update github.com/go-xorm/core
Related #4642
2018-03-06 05:27:04 -05:00
Unknwon
a8b9cefa73 ci: add Go 1.10 2018-03-06 01:31:12 -05:00
Unknwon
b9e4a052b8 vendor: update gopkg.in/macaron.v1 2018-03-06 01:25:55 -05:00
Unknwon
4a669f5478 web: support HTTP HEAD requests (#2857) 2018-03-06 01:21:13 -05:00
Unknwon
ade8aab43f locale: sync from Crowdin
Added Indonesian and Persian
2018-03-05 04:37:44 -05:00
Unknwon
17d2a9c435 vendor: update github.com/gogits/git-module 2018-03-02 02:17:04 -05:00
Unknwon
6f2347fc71 locale: sync from Crowdin
Fixes #4811
2017-11-22 14:46:14 -05:00
Unknwon
dd245fe8bd pull_request: fix changes not pushed to upstream if between two repositories (#4890) 2017-11-22 14:12:52 -05:00
m2nlight
f12c058b78 models: update mySQL charset=utf8mb4 (#4880)
* Add utf8mb4 to connStr for mysql. fix #4131

* Update models.go. charset=utf8mb4 for mysql.

charset=utf8mb4 for mysql.
2017-11-22 13:42:30 -05:00
Robin Alexander Richtsfeld
3cba8778b2 scripts: fix overextending of variable name (#4888) 2017-11-22 13:40:38 -05:00
Unknwon
1c33c936e6 MISC: add Discord invite link to README
[CI SKIP]
2017-11-21 13:27:39 -05:00
m2nlight
67d67289c7 models: add utf8mb4 to connStr for mysql (#4878) 2017-11-21 00:25:36 -05:00
Unknwon
f4ab9f9932 css: fix UI breaks 2017-11-19 16:56:41 -05:00
Unknwon
b752fe6808 MISC: bump version 2017-11-19 13:29:06 -05:00
Unknwon
114677b747 bindata: update 2017-11-19 12:49:46 -05:00
无闻
9362b9fdfe cmd/hook: fix custom hook cannot be executed on Windows (#4255)
This solution still requires the server installed git-bash.
2017-11-18 21:45:29 -05:00
Unknwon
f48921c256 README: update numer of language supported
[CI SKIP]
2017-11-18 01:51:43 -05:00
Unknwon
51e0eef11e locale: sync from Crowdin 2017-11-18 01:27:56 -05:00
Ross Williams
925c2a2ca2 docker: symlink fixes (#4747)
* Prevent circular links (symlinks) from being created:
	* /data/gogs/log/log -> /data/gogs/log
	* /data/gogs/data/data -> /data/gogs/data
	* /data/git/git -> /data/git
2017-11-18 00:50:07 -05:00
Yen Chi Hsuan
f1465b6847 locale: fix the language name for zh_TW (#4807) 2017-11-18 00:48:07 -05:00
Ryan Chang
5260d70b19 templates: fix typo in repo/home.tmpl (#4845) 2017-11-18 00:47:48 -05:00
33MHz
339fd9c5a4 locale: fix English grammar for delete repository dialog (#4862)
* fix typo in en-US delete dialog

* fix typo in en-GB delete dialog

* improve en-GB delete dialog language

* improve en-US delete dialog language
2017-11-18 00:47:20 -05:00
Unknwon
0f14b92bce MISC: minor fixes in webhook 2017-11-18 00:38:46 -05:00
Unknwon
43d6ad5fda pull: fix after commit ID is not latest commit in the base branch (#4442) 2017-11-18 00:38:06 -05:00
Unknwon
667c40c3de css: fix minor table issue 2017-11-17 00:12:59 -05:00
Unknwon
3b8b8a2ee3 pull_request: able to ignore whitespace when check conflict (#4834) 2017-11-16 22:22:38 -05:00
Unknwon
6f04ee879c auth/ldap: allow placeholder %s for BindDN (#2526) 2017-11-16 19:32:33 -05:00
Unknwon
e1e76d3f88 admin/config: add UI for [http] section (#3987) 2017-11-16 19:03:46 -05:00
Unknwon
221aa8968a CI: add go 1.9.x 2017-11-16 18:44:54 -05:00
Unknwon
86931f546f repo: fix go-get meta tags (#4832)
The first part in go-import should be the root import path. It
included subpath when 'go get' with a subpath and was not correct.
2017-11-16 18:43:03 -05:00
Unknwon
ae40bb00b3 vendor: update github.com/gogits/git-module (#4855) 2017-11-16 13:13:28 -05:00
Unknwon
3dd93f5533 vendor: update github.com/gogits/git-module 2017-11-16 00:04:07 -05:00
Unknwon
181dc5d75e editor: remove out of sync branch before checkout again
If a branch was deleted from server, sometimes it is not reflected
on local copy. Therefore, we need to remove the branch with same
name if it is out of sync and then checkout to correct version.
2017-11-16 00:03:35 -05:00
Mohammad Gholami
ae4c4708ad locale: update TRANSLATORS (#4866)
Crowdin contributor
2017-11-15 23:45:24 -05:00
Unknwon
34c2e52bd5 repo/pull: allow rebase before merging (#4805) 2017-11-15 23:28:31 -05:00
mharinder
5cd1fdeb9e pull: add an option to use rebase for merging pull requests
For DVCS, either merge or rebase works for getting new code in a pull
request in the main branch.

The rebase workflow produces a linear history which is cleaner, and
more bisect-able.

This commit adds a repo-level option to enable the rebase workflow. Once
enabled, "Merge Pull Request" will be replaced by
"Rebase and Merge Pull Request" which does exactly what the user wants.
It's unlikely a project wants a mixed-use of both rebase and merge
workflows, therefore the feature is not implemented as a drop-down
button like what GitHub does
(https://github.com/blog/2243-rebase-and-merge-pull-requests).
2017-11-15 23:28:23 -05:00
Unknwon
dbe6de313e public: update Semantic UI 2.2.10 -> 2.2.13 2017-11-15 21:59:47 -05:00
Anton Antonov
77c77fbd42 api: add endpoint /api/v1/user/orgs (#4835)
* Add API endpoint /api/v1/user/orgs

The difference between this endpoint and
/api/v1/admin/users/<username>/orgs,
is that here you're creating a repo with the `user`
that corresponds to the API token you're using.

* Extract duplicate API org creation
2017-11-13 22:27:30 -05:00
Unknwon
9b4054f1fc locale: sync from Crowdin 2017-11-05 23:59:12 -05:00
Unknwon
af3911b833 MISC: update README and migration comment 2017-10-22 19:29:29 -04:00
Unknwon
4258bf3d54 user/auth: fix page not redirect after login 2017-10-22 19:29:17 -04:00
Unknwon
4d1d66d906 Bump version 2017-10-15 00:12:52 -04:00
Unknwon
b727e0be71 SECURITY: fix branch name persistent XSS
Reported by Carl Hattenfels.
2017-10-15 00:07:46 -04:00
Unknwon
ea313d0c1e SECURITY: HTML injection in user search API
Reported by Tim Hawes.
2017-10-14 23:53:20 -04:00
Unknwon
c1507eda45 locale: sync from Crowdin 2017-10-14 04:19:24 -04:00
Robert Beal
ce7496aec9 docker: allow setting UID and GID when running a container (#4776)
* Allow setting the UID and GID when running a docker container via shadow

* Disable password login via usermod (fix leaving user in insecure state)
2017-10-13 16:26:39 -04:00
Josef Kemetmüller
b16c12f67b cmd/admin: add subcommands for all admin dashboard actions (#4813) 2017-10-10 17:02:44 -04:00
Unknwon
1b24e6ed76 locale: sync from Crowdin 2017-09-25 20:29:10 -04:00
Athurg Feng
52f3833811 Add Dingtalk webhook support (#4773)
* Add dingtalk webhook into html template

* Add Dingtalk's icon

* Insert dingtalk into repo's webhook page template

* Insert dingtalk into org's webhook page

* Add dingtalk into default webhook config

* Add locale string for add_dingtalk_hook_desc

* Update bindata

* Add dingtalk webhook form validator

* Add dingtalk hook task

* Add dingtalk hook create handler

* Add dingtalk hook edit handler

* Add dingtalk router

* Add dingtalk webhook task skeleton

* Add markdown link formatter

* Add Dingtalk ActionCard create wrapper

* Add support for dingtalk create event payload

* Add support for dingtalk delete event payload

* Add support for dingtalk fork event payload

* Add support for dingtalk push event payload

* Add support for dingtalk issue event payload

* Add support for dingtalk issue comment payload

* Add support for dingtalk pull event payload

* Add support for dingtalk release event payload
2017-09-21 14:32:48 -04:00
Unknwon
b1100b5e34 locale: sync from Crowdin 2017-08-15 18:20:28 -04:00
Sb
ab2c6cb008 models: fix #4692 and typo in comments (#4695) 2017-08-13 02:11:48 -04:00
Unknwon
f2c3f4a944 locale: sync from Crowdin 2017-07-30 02:45:13 -04:00
Unknwon
6bc11c4450 hook: fix email not sent after push (#4430)
Turns out mail service was not initialized at all, also mail must
be sent in sync in hook mode before program exits.
2017-07-27 16:53:02 -04:00
Unknwon
643c85e9c8 routes/home: minor code improve 2017-07-18 22:09:57 -04:00
Unknwon
ee9950ec2f explore: fix total repository number and page number do not match (#4441)
Because in the final repository list we use Distinct to remove
duplicates, but didn't do so when count total number of repositories.
2017-07-18 22:07:40 -04:00
Unknwon
dc10594d7b repo: fix cannot fork repository (#4572)
Should not load attributes if repository not found in HasForkedRepo.
2017-07-18 12:56:23 -04:00
Unknwon
e02fac4968 repo: fix panic on pull request submit (#4572) 2017-07-14 18:51:23 -04:00
Julian Xhokaxhiu
5a88546a80 docker: enable Automated builds for rpi (#4431)
* Enable Automated builds for rpi

* Rename the file to fit only for Docker Hub

* Update the binary to v2.9.0+resin1

* Restore default status

* Commit as new file

In order to avoid breaking native builds
2017-07-14 18:04:19 -04:00
Unknwon
f67d6bbca3 repo/diff: fix line number in split view template (#4584) 2017-07-14 17:02:45 -04:00
Unknwon
c970c4ee41 css: not include line numbers in diff selection (#4584)
Changed template file in order to make CSS work properly.
2017-07-14 16:50:49 -04:00
Unknwon
3a6623104f Makefile: correct errors 2017-07-14 16:48:55 -04:00
Unknwon
b18a2bdcd3 locale: sync from Crowdin 2017-07-14 16:48:41 -04:00
Unknwon
d09eaef542 locale: sync from Crowdin 2017-07-09 21:38:11 -04:00
Unknwon
13cca8a66a models/comment: remove unused SQL parameter (#4586) 2017-06-27 20:39:59 -04:00
Unknwon
8ed2330d6e issue_comment: fix pg syntax ambiguous (#4586)
Also handle error related to time parsing.
2017-06-27 20:21:36 -04:00
Andy Hochhaus
261237745f api: fix ListIssueComments API (#4587) 2017-06-27 19:59:41 -04:00
Unknwon
c9d76a381b css: update less (#4584) 2017-06-27 15:21:14 -04:00
Einar
2961afe8fb css: not include line numbers in diff selection (#4584) 2017-06-27 15:08:19 -04:00
Unknwon
ea03bee1b9 locale: sync from Crowdin 2017-06-27 14:45:10 -04:00
Unknwon
d1a96c2543 cmd/restore: skip non existent directories in backup archive (#4413) 2017-06-25 01:16:32 -04:00
Unknwon
11b1498a6e api/repo: load attributes when listing user repositories (#4565) 2017-06-21 17:41:18 -04:00
Unknwon
f59500a90b locale: sync from Crowdin 2017-06-20 00:10:10 -04:00
Credomane Evonguard
3df25fadfa scripts: fix LSB init scripts so gogs starts when using mysql/postgresql for database (#4561) 2017-06-14 20:37:32 -04:00
Unknwon
0e6a6bf880 Refactoring: remove sessionRelease()
XORM supports automatic roll back in session Close() already.
2017-06-11 03:06:36 -04:00
Unknwon
e1f01305d8 vendor: update github.com/go-macaron/binding (#4428) 2017-06-11 02:59:49 -04:00
Unknwon
23b83cb736 pkg/process: fix potential race condition
Following conditions were not protected:
1. Use and increase next pid
2. Append and remove process from the list
2017-06-11 02:28:08 -04:00
Unknwon
e16196124e setting: disable SSH minimum key size check when not eligible (#4507) 2017-06-11 02:06:26 -04:00
Unknwon
ab2197bc75 random: some code simplify 2017-06-11 00:56:31 -04:00
Unknwon
a887e475e3 repo: change action visibility when repository visibility changed (#4414) 2017-06-11 00:43:56 -04:00
Unknwon
4400d2fdd9 Refactoring: rename package routers -> routes 2017-06-11 00:34:14 -04:00
2366 changed files with 253576 additions and 834771 deletions

View File

@@ -1,19 +0,0 @@
[run]
init_cmds = [
["make", "build-dev"],
["./gogs", "web"]
]
watch_all = true
watch_dirs = [
"$WORKDIR/cmd",
"$WORKDIR/models",
"$WORKDIR/pkg",
"$WORKDIR/routers"
]
watch_exts = [".go"]
ignore_files = [".+_test.go"]
build_delay = 1500
cmds = [
["make", "build-dev"], # TAGS=sqlite cert pam tidb
["./gogs", "web"]
]

View File

@@ -1,7 +0,0 @@
conf/**
docker/**
modules/bindata/**
packager/**
public/**
scripts/**
templates/**

View File

@@ -1,7 +0,0 @@
{
"GOLANG": {
"TOTAL_LOC": [500, 999, 1999, 9999],
"TOO_MANY_FUNCTIONS": [50, 99, 199, 999],
"TOO_MANY_IVARS": [20, 50, 70, 99]
}
}

26
.deepsource.toml Normal file
View File

@@ -0,0 +1,26 @@
version = 1
exclude_patterns = ["**/mocks_test.go"]
[[analyzers]]
name = "docker"
enabled = true
[[analyzers]]
name = "shell"
enabled = true
[[analyzers]]
name = "go"
enabled = true
[analyzers.meta]
import_root = "github.com/gogs/gogs"
[[transformers]]
name = "gofumpt"
enabled = true
[[transformers]]
name = "gofmt"
enabled = true

View File

@@ -1,17 +1,15 @@
.git
.git/**
packager
packager/**
.packager
.packager/**
scripts
scripts/**
.github/
.github/**
config.codekit
.dockerignore
*.yml
*.md
.bra.toml
.editorconfig
.gitignore
Dockerfile*
gogs
!Taskfile.yml

View File

@@ -4,7 +4,6 @@ root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
@@ -16,10 +15,9 @@ indent_size = 4
indent_style = tab
indent_size = 2
[*.{less,yml}]
[*.{less, yml}]
indent_style = space
indent_size = 2
[*.js]
indent_style = tab
indent_size = 4
indent_size = 2

18
.gitattributes vendored
View File

@@ -1,10 +1,8 @@
conf/gitignore/* linguist-vendored
conf/license/* linguist-vendored
public/assets/* linguist-vendored
public/plugins/* linguist-vendored
public/css/themes/* linguist-vendored
public/css/github.min.css linguist-vendored
public/css/semantic-2.2.10.min.css linguist-vendored
public/js/libs/* linguist-vendored
public/js/jquery-1.11.3.min.js linguist-vendored
public/js/semantic-2.2.10.min.js linguist-vendored
conf/gitignore/** linguist-vendored
conf/license/** linguist-vendored
public/assets/** linguist-vendored
public/plugins/** linguist-vendored
public/css/themes/** linguist-vendored
public/css/semantic-* linguist-vendored
public/js/libs/** linguist-vendored
public/js/semantic-* linguist-vendored

2
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1,2 @@
# Default
* @unknwon

View File

@@ -1,63 +1,78 @@
# Contributing to Gogs
# Welcome to Gogs contributing guide
> This guidelines sheet is forked from [CONTRIBUTING.md](https://github.com/drone/drone/blob/8d9c7cee56d6c2eac81dc156ce27be6716d97e68/CONTRIBUTING.md).
Thank you for investing your time in contributing to our projects!
Gogs is not perfect, and it has bugs or incomplete features in rare cases. You're welcome to tell us, or to contribute some code. This document describes details about how can you contribute to Gogs project.
Read our [Code of Conduct](https://go.dev/conduct) to keep our community approachable and respectable.
## Contribution guidelines
In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.
Depends on the situation, you will:
Use the table of contents icon <img src="https://github.com/github/docs/raw/50561895328b8f369694973252127b7d93899d83/assets/images/table-of-contents.png" width="25" height="25" /> on the top left corner of this document to get to a specific section of this guide quickly.
- Find a bug and create an issue
- Need more functionality and make a feature request
- Want to contribute code and open a pull request
- Run into issue and need help
## New contributor guide
### Bug Report
To get an overview of the project, read the [README](/README.md). Here are some resources to help you get started with open source contributions:
If you find something you consider a bug, please create a issue on [GitHub](https://github.com/gogits/gogs/issues). To avoid wasting time and reduce back-and-forth communication with team members, please include at least the following information in a form comfortable for you:
- [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)
- [Set up Git](https://docs.github.com/en/get-started/quickstart/set-up-git)
- [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow)
- [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests)
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
- [Talk, then code](https://www.craft.do/s/kyHVs6OoE4Dj5V)
- Bug Description
- Gogs Version
- Git Version
- System Type
- Error Log
- Other information
In addition to the general guides with open source contributions, you would also need to:
Please take a moment to check that an issue on [GitHub](https://github.com/gogits/gogs/issues) doesn't already exist documenting your bug report or improvement proposal. If it does, it never hurts to add a quick "+1" or "I have this problem too". This will help prioritize the most common problems and requests.
- Have basic knowledge about web applications development, database management systems and programming in [Go](https://go.dev/).
- Have a working local development setup with a reasonable good IDE or editor like [Visual Studio Code](https://code.visualstudio.com/docs/languages/go), [GoLand](https://www.jetbrains.com/go/) or [Vim](https://github.com/fatih/vim-go).
- [Set up your development environment](/docs/dev/local_development.md).
#### Bug Report Example
## Issues
Gogs crashed when creating a repository with a license, using v0.5.13.0207, SQLite3, Git 1.9.0, Ubuntu 12.04.
### Ask for help
Error log:
Before opening an issue, please make sure the problem you're encountering isn't already addressed on the [Troubleshooting](https://gogs.io/docs/intro/troubleshooting.html) and [FAQs](https://gogs.io/docs/intro/faqs.html) pages.
```
2014/09/01 07:21:49 [E] nil pointer
```
### Create a new issue
### Feature Request
- For questions, ask in [Discussions](https://github.com/gogs/gogs/discussions).
- [Check to make sure](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments) someone hasn't already opened a similar [issue](https://github.com/gogs/gogs/issues).
- If a similar issue doesn't exist, open a new issue using a relevant [issue form](https://github.com/gogs/gogs/issues/new/choose).
- Blank issues that are not coming from maintainers will be closed without a response.
There is no standard form of making a feature request. Just try to describe the feature as clearly as possible, because team members may not have experience with the functionality you're talking about.
### Pick up an issue to solve
### Pull Request
- Scan through our [existing issues](https://github.com/gogs/gogs/issues) to find one that interests you.
- The [👋 good first issue](https://github.com/gogs/gogs/issues?q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%91%8B+good+first+issue%22) is a good place to start exploring issues that are well-groomed for newcomers.
- Do not hesitate to ask for more details or clarifying questions on the issue!
- Communicate on the issue you are intended to pick up _before_ starting working on it.
- Every issue that gets picked up will have an expected timeline for the implementation, the issue may be reassigned after the expected timeline. Please be responsible and proactive on the communication 🙇‍♂️
Please read detailed information on [Wiki](https://github.com/gogits/gogs/wiki/Contributing-Code).
## Add new features or make big changes
### Ask For Help
New features or big changes require proposals before we may be able to accept any contribution. Proposals should be posted to the [Discussions - Proposal](https://github.com/gogs/gogs/discussions/categories/proposal) category for review and discussions. GitHub Discussions provides sub-threading which is much more suitable than GitHub Issues for discussions to happen. Please read [Write a proposal for open source contributions](https://unknwon.io/posts/220210-write-a-proposal-for-open-source-contributions/) to begin with.
Before opening an issue, please make sure your problem isn't already addressed on the [Troubleshooting](https://gogs.io/docs/intro/troubleshooting.html) and [FAQs](https://gogs.io/docs/intro/faqs.html) pages.
## Pull requests
## Code of conduct
When you're finished with the changes, create a pull request, or a series of pull requests if necessary.
As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
Contributing to another codebase is not as simple as code changes, it is also about contributing influence to the design. Therefore, we kindly ask you that:
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion.
- Please acknowledge that no pull request is guaranteed to be merged.
- Please always do a self-review before requesting reviews from others.
- Please expect code review to be strict and may have multiple rounds.
- Please make self-contained incremental changes, pull requests with huge diff may be rejected for review.
- Please use English in code comments and docstring.
- Please do not force push unless absolutely necessary. Force pushes make review much harder in multiple rounds, and we use [Squash and merge](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-pull-request-commits) so you don't need to worry about messy commits and just focus on the changes.
Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
### Things we do not accept
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
1. Updates to locale files (`conf/locale_xx-XX.ini`) other than the `conf/locale_en-US.ini`. Please read the [guide for localizing Gogs](https://gogs.io/docs/features/i18n).
1. Docker compose files.
Instances of abusive, harassing, or otherwise unacceptable behavior can be reported by emailing u@gogs.io
### Coding guidelines
This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
1. Please read the Sourcegraph's [Go style guide](https://docs.sourcegraph.com/dev/background-information/languages/go).
1. **NO** direct modifications to `.css` files, `.css` files are all generated by `.less` files. You can regenerate `.css` files by executing `task less`.
## Your PR is merged!
Congratulations 🎉🎉 Thanks again for taking the effort to have this journey with us 🌟

View File

@@ -1,26 +0,0 @@
The issue will be closed without any reasons if it does not satisfy any of following requirements:
1. Please speak English, we have forum in [Chinese](https://discuss.gogs.io/c/getting-help/getting-help-chinese).
2. Please post questions or config/deploy problems on our forum: https://discuss.gogs.io, here are bugs and feature requests only.
3. Please take a moment to search that an issue doesn't already exist.
4. Please give all relevant information below for bug reports; incomplete details considered invalid report.
**You MUST delete above content including this line before posting; too lazy to take this action considered invalid report.**
- Gogs version (or commit ref):
- Git version:
- Operating system:
- Database (use `[x]`):
- [ ] PostgreSQL
- [ ] MySQL
- [ ] MSSQL
- [ ] SQLite
- Can you reproduce the bug at https://try.gogs.io:
- [ ] Yes (provide example URL)
- [ ] No
- [ ] Not relevant
- Log gist (usually found in `log/gogs.log`):
## Description
...

82
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,82 @@
name: Bug report
description: File a bug report to help us improve
labels: ["\U0001F48A bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- Please use English :)
- For questions, ask in [Discussions](https://github.com/gogs/gogs/discussions).
- Before you file an issue read the [Contributing guide](https://github.com/gogs/gogs/blob/main/.github/CONTRIBUTING.md).
- Check to make sure someone hasn't already opened a similar [issue](https://github.com/gogs/gogs/issues).
- type: input
attributes:
label: Gogs version
description: |
Please specify the exact Gogs version you're reporting for, e.g. "0.12.3". You can find the version information in the admin dashboard (`/admin`).
_Note that "gogs/gogs:latest" is not a Gogs version, it does not mean anything._
validations:
required: true
- type: textarea
attributes:
label: Git version
description: |
Please specify the exact Git version you're using of both server and client. You can find the version information by running `git version`.
value: |
- Server:
- Client:
validations:
required: true
- type: input
attributes:
label: Operating system
description: |
Please specify the exact operating system name and version you're reporting for, e.g. "Windows 10", "CentOS 7", "Ubuntu 20.04".
validations:
required: true
- type: input
attributes:
label: Database
description: |
Please specify the exact database and version you're reporting for, e.g. "PostgreSQL 9.6", "MySQL 5.7", "SQLite 3".
validations:
required: true
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
attributes:
label: To reproduce
description: The steps to reproduce the problem described above.
validations:
required: true
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: |
Links? References? Suggestions? Anything that will give us more context about the issue you are encountering!
Please include any error logs found in the `log/gogs.log` file. Otherwise, we probably won't be able to help you much.
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false
- type: checkboxes
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://go.dev/conduct)
options:
- label: I agree to follow this project's Code of Conduct
required: true

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Ask questions
url: https://github.com/gogs/gogs/discussions
about: Please ask questions in Discussions.
- name: Make a proposal
url: https://github.com/gogs/gogs/discussions/categories/proposal
about: Please make proposals in Discussions.

View File

@@ -0,0 +1,46 @@
---
name: "Dev: Release a minor version"
about: ONLY USED BY MAINTAINERS.
assignees: "unknwon"
title: "Release [VERSION]"
labels: 📸 release
---
_This is generated from the [minor release template](https://github.com/gogs/gogs/blob/main/.github/ISSUE_TEMPLATE/dev_release_minor_version.md)._
## Before release
On the `main` branch:
- [ ] Close stale issues with the label [status: needs feedback](https://github.com/gogs/gogs/issues?q=is%3Aissue+is%3Aopen+label%3A%22status%3A+needs+feedback%22).
- [ ] [Sync locales from Crowdin](https://github.com/gogs/gogs/blob/main/docs/dev/import_locale.md).
- [ ] [Update CHANGELOG](https://github.com/gogs/gogs/commit/f1102a7a7c545ec221d2906f02fa19170d96f96d) to include entries for the current minor release.
- Do not forget adding entries for GHSA patches.
- [ ] Cut a new release branch `release/<MAJOR>.<MINOR>`, e.g. `release/0.14`.
## During release
On the release branch:
- [ ] [Update the hard-coded version](https://github.com/gogs/gogs/commit/f0e3cd90f8d7695960eeef2e4e54b2e717302f6c) to the current release, e.g. `0.14.0+dev` -> `0.14.0`.
- [ ] Wait for GitHub Actions to complete and no failed jobs.
- [ ] Publish new RC releases (e.g. `v0.14.0-rc.1`, `v0.14.0-rc.2`) ⚠️ **on the release branch** ⚠️ and ensure Docker and release workflows both succeed.
- [ ] Pull down the Docker image and [run through application setup](https://github.com/gogs/gogs/blob/main/docker/README.md) to make sure nothing blows up.
- [ ] Download one of the release archives and run through application setup to make sure nothing blows up.
- [ ] Publish a new [GitHub release](https://github.com/gogs/gogs/releases) ⚠️ **on the release branch** ⚠️ with entries from [CHANGELOG](https://github.com/gogs/gogs/blob/main/CHANGELOG.md) for the current minor release.
- [ ] [Wait for new image tags for the current release](https://github.com/gogs/gogs/actions/workflows/docker.yml?query=event%3Arelease) to be created automatically on both [Docker Hub](https://hub.docker.com/r/gogs/gogs/tags) and [GitHub Container registry](https://github.com/gogs/gogs/pkgs/container/gogs).
- Pull down the Docker image and [run through application setup](https://github.com/gogs/gogs/blob/main/docker/README.md) to make sure nothing blows up.
- [ ] Download all release archives and [generate SHA256 checksum](https://github.com/gogs/gogs/blob/main/docs/dev/release/sha256.sh) for all binaries to the file `checksum_sha256.txt`.
- [ ] Upload all archives and `checksum_sha256.txt` to https://dl.gogs.io.
## After release
On the `main` branch:
- [ ] Update the repository mirror on [Gitee](https://gitee.com/unknwon/gogs).
- [ ] Create a new release announcement in [Discussions](https://github.com/gogs/gogs/discussions/categories/announcements).
- [ ] Send a tweet on the [official Twitter account](https://twitter.com/GogsHQ) for the minor release.
- [ ] Close the milestone for the minor release.
- [ ] [Bump the hard-coded version](https://github.com/gogs/gogs/commit/a98968436cd5841cf691bb0b80c54c81470d1676) to the new develop version, e.g. `0.14.0+dev` -> `0.15.0+dev`.
- [ ] Run `task legacy` to identify deprecated code that is aimed to be removed in current develop version.
- [ ] **After 14 days**, publish [GitHub security advisories](https://github.com/gogs/gogs/security) for security patches included in the release.

View File

@@ -0,0 +1,49 @@
---
name: "Dev: Release a patch version"
about: ONLY USED BY MAINTAINERS.
assignees: "unknwon"
title: "Release [VERSION]"
labels: 📸 release
---
_This is generated from the [patch release template](https://github.com/gogs/gogs/blob/main/.github/ISSUE_TEMPLATE/dev_release_patch_version.md)._
## Before release
On the release branch:
- [ ] Make sure all commits are cherry-picked from the `main` branch by checking the patch milestone.
- Run `task build` for every cherry-picked commit to make sure there is no compilation error.
- [ ] [Update CHANGELOG on the `main` branch](https://github.com/gogs/gogs/commit/f1102a7a7c545ec221d2906f02fa19170d96f96d) to include entries for the current patch release.
## During release
On the release branch:
- [ ] [Update the hard-coded version](https://github.com/gogs/gogs/commit/f0e3cd90f8d7695960eeef2e4e54b2e717302f6c) to the current release, e.g. `0.12.0` -> `0.12.1`.
- [ ] Wait for GitHub Actions to complete and no failed jobs.
- [ ] Publish new RC releases in [GitHub release](https://github.com/gogs/gogs/releases) (e.g. `v0.12.0-rc.1`, `v0.12.0-rc.2`) ⚠️ **on the release branch** ⚠️ and ensure Docker workflow succeeds.
- [ ] Pull down the Docker image and [run through application setup](https://github.com/gogs/gogs/blob/main/docker/README.md) to make sure nothing blows up.
- [ ] Download one of the release archives and run through application setup to make sure nothing blows up.
- [ ] Publish a new [GitHub release](https://github.com/gogs/gogs/releases) ⚠️ **on the release branch** ⚠️ with entries from [CHANGELOG](https://github.com/gogs/gogs/blob/main/CHANGELOG.md) for the current patch release and all previous releases with same minor version.
- [ ] Update all previous GitHub releases with same minor version with the warning:
```
** Heads up! There is a new patch release [0.12.1](https://github.com/gogs/gogs/releases/tag/v0.12.1) available, we recommend directly installing or upgrading to that version.**
```
- [ ] [Wait for new image tags for the current release](https://github.com/gogs/gogs/actions/workflows/docker.yml?query=event%3Arelease) to be created automatically on both [Docker Hub](https://hub.docker.com/r/gogs/gogs/tags) and [GitHub Container registry](https://github.com/gogs/gogs/pkgs/container/gogs).
- Pull down the Docker image and [run through application setup](https://github.com/gogs/gogs/blob/main/docker/README.md) to make sure nothing blows up.
- [ ] Download all release archives and [generate SHA256 checksum](https://github.com/gogs/gogs/blob/main/docs/dev/release/sha256.sh) for all binaries to the file `checksum_sha256.txt`.
- [ ] Upload all archives and `checksum_sha256.txt` to https://dl.gogs.io.
## After release
On the `main` branch:
- [ ] Post the following message on issues that are included in the patch milestone:
```
The <MAJOR>.<MINOR>.<PATCH> has been released that includes the patch of the reported issue.
```
- [ ] Create a new release announcement in [Discussions](https://github.com/gogs/gogs/discussions/categories/announcements).
- [ ] Send a tweet on the [official Twitter account](https://twitter.com/GogsHQ) for the patch release.
- [ ] Close the milestone for the patch release.
- [ ] **After 14 days**, publish [GitHub security advisories](https://github.com/gogs/gogs/security) for security patches included in the release.

View File

@@ -0,0 +1,32 @@
name: Improve documentation
description: Suggest an idea or a patch for documentation
labels: ["📖 documentation"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this form!
- Please use English :)
- For questions, ask in [Discussions](https://github.com/gogs/gogs/discussions).
- Before you file an issue read the [Contributing guide](https://github.com/gogs/gogs/blob/main/.github/CONTRIBUTING.md).
- Check to make sure someone hasn't already opened a similar [issue](https://github.com/gogs/gogs/issues).
- type: textarea
attributes:
label: What needs to be improved? Please describe
description: A clear and concise description of what is wrong or missing.
validations:
required: true
- type: textarea
attributes:
label: Why do you think it is important?
description: A clear and concise explanation of the rationale.
validations:
required: true
- type: checkboxes
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://go.dev/conduct)
options:
- label: I agree to follow this project's Code of Conduct
required: true

View File

@@ -0,0 +1,47 @@
name: Feature request
description: Suggest an idea for this project
labels: ["\U0001F3AF feature"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this form!
- Please use English :)
- For questions, ask in [Discussions](https://github.com/gogs/gogs/discussions).
- Before you file an issue read the [Contributing guide](https://github.com/gogs/gogs/blob/main/.github/CONTRIBUTING.md).
- Check to make sure someone hasn't already opened a similar [issue](https://github.com/gogs/gogs/issues).
- type: textarea
attributes:
label: Describe the feature
description: A clear and concise description of what the feature is, e.g. I think it is reasonable to have [...]
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: |
Links? References? Suggestions? Anything that will give us more context about the feature you are requesting!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false
- type: checkboxes
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://go.dev/conduct)
options:
- label: I agree to follow this project's Code of Conduct
required: true

View File

@@ -1,9 +0,0 @@
The pull request will be closed without any reasons if it does not satisfy any of following requirements:
1. Please make sure you are targeting the `develop` branch.
2. Please read contributing guidelines:
https://github.com/gogits/gogs/wiki/Contributing-Code
3. Please describe what your pull request does and which issue you're targeting
4. ... if it is not related to any particular issues, explain why we should not reject your pull request.
**You MUST delete above content including this line before posting; too lazy to take this action considered invalid pull request.**

9
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
# Docs: https://git.io/JCUAY
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "monthly"
commit-message:
prefix: "mod:"

16
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,16 @@
## Describe the pull request
A clear and concise description of what the pull request is about, i.e. what problem should be fixed?
Link to the issue: <!-- paste the issue link here, or put "n/a" if not applicable -->
## Checklist
- [ ] I agree to follow the [Code of Conduct](https://go.dev/conduct) by submitting this pull request.
- [ ] I have read and acknowledge the [Contributing guide](https://github.com/gogs/gogs/blob/main/.github/CONTRIBUTING.md).
- [ ] I have added test cases to cover the new code or have provided the test plan. (if applicable)
- [ ] I have added an entry to [CHANGELOG](https://github.com/gogs/gogs/blob/main/CHANGELOG.md). (if applicable)
## Test plan
<!-- Please provide concrete but concise steps to proof things are working as stated, see an example in https://github.com/gogs/gogs/pull/7345 -->

75
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,75 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ main ]
pull_request:
paths:
- '.github/workflows/codeql.yml'
schedule:
- cron: '0 19 * * 0'
permissions:
contents: read
security-events: write
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ 'go' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@fdbfb4d2750291e159f0156def62b853c2798ca2 # v3.28.3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@fdbfb4d2750291e159f0156def62b853c2798ca2 # v3.28.3
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@fdbfb4d2750291e159f0156def62b853c2798ca2 # v3.28.3

26
.github/workflows/digitalocean_gc.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: DigitalOcean
on:
workflow_dispatch:
workflow_call:
jobs:
garbage-collection:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Install doctl
uses: digitalocean/action-doctl@5727c67aa3c2c34ae9462d5a0ecfea8a1b31e5ce # v2
with:
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
- name: Run garbage collection
run: |
# --force: Required for CI to skip confirmation prompts
# --include-untagged-manifests: Deletes unreferenced manifests to maximize space
doctl registry garbage-collection start --force --include-untagged-manifests
- name: Send email on failure
uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
if: ${{ failure() }}
with:
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}

402
.github/workflows/docker.yml vendored Normal file
View File

@@ -0,0 +1,402 @@
name: Docker
on:
push:
branches:
- main
pull_request:
paths:
- '.trivy.yaml'
- 'Dockerfile'
- 'Dockerfile.next'
- 'docker/**'
- 'docker-next/**'
- '.github/workflows/docker.yml'
release:
types: [ published ]
jobs:
buildx:
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'gogs/gogs' }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
runs-on: ubuntu-latest
permissions:
actions: write
contents: read
packages: write
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Set up QEMU
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
with:
platforms: linux/amd64,linux/arm64,linux/arm/v7
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Inspect builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- name: Login to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container registry
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push images
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: |
gogs/gogs:latest
ghcr.io/gogs/gogs:latest
- name: Scan for container vulnerabilities
uses: aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8 # 0.33.1
with:
image-ref: gogs/gogs:latest
exit-code: '1'
- name: Send email on failure
uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
if: ${{ failure() }}
with:
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}
buildx-next:
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'gogs/gogs' }}
concurrency:
group: ${{ github.workflow }}-next-${{ github.ref }}
cancel-in-progress: true
runs-on: ubuntu-latest
permissions:
actions: write
contents: read
packages: write
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Set up QEMU
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
with:
platforms: linux/amd64,linux/arm64,linux/arm/v7
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Inspect builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- name: Login to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container registry
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DigitalOcean Container registry
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: registry.digitalocean.com
username: ${{ secrets.DIGITALOCEAN_USERNAME }}
password: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
- name: Build and push next-gen images
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
context: .
file: Dockerfile.next
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: |
gogs/gogs:next-latest
ghcr.io/gogs/gogs:next-latest
registry.digitalocean.com/gogs/gogs:next-latest
- name: Scan for container vulnerabilities
uses: aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8 # 0.33.1
with:
image-ref: gogs/gogs:next-latest
exit-code: '1'
- name: Send email on failure
uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
if: ${{ failure() }}
with:
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}
deploy-demo:
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'gogs/gogs' }}
needs: buildx-next
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Configure kubectl
run: |
mkdir -p ~/.kube
echo "${KUBECONFIG}" | base64 -d > ~/.kube/config
env:
KUBECONFIG: ${{ secrets.DIGITALOCEAN_K8S_CLUSTER_KUBECONFIG }}
- name: Restart gogs-demo deployment
timeout-minutes: 5
run: |
set -ex
kubectl rollout restart deployment gogs-demo -n gogs
kubectl rollout status deployment gogs-demo -n gogs
- name: Send email on failure
uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
if: ${{ failure() }}
with:
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}
buildx-pull-request:
if: ${{ github.event_name == 'pull_request'}}
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
with:
config-inline: |
[worker.oci]
max-parallelism = 2
- name: Inspect builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- name: Compute short commit SHA
id: short-sha
uses: benjlevesque/short-sha@599815c8ee942a9616c92bcfb4f947a3b670ab0b # v3.0
- name: Build and push images
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
context: .
platforms: linux/amd64
push: true
tags: |
ttl.sh/gogs/gogs-${{ steps.short-sha.outputs.sha }}:7d
- name: Scan for container vulnerabilities
uses: aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8 # 0.33.1
with:
image-ref: ttl.sh/gogs/gogs-${{ steps.short-sha.outputs.sha }}:7d
exit-code: '1'
buildx-next-pull-request:
if: ${{ github.event_name == 'pull_request'}}
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
with:
config-inline: |
[worker.oci]
max-parallelism = 2
- name: Inspect builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- name: Compute short commit SHA
id: short-sha
uses: benjlevesque/short-sha@599815c8ee942a9616c92bcfb4f947a3b670ab0b # v3.0
- name: Build and push next-gen images
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
context: .
file: Dockerfile.next
platforms: linux/amd64
push: true
tags: |
ttl.sh/gogs/gogs-next-${{ steps.short-sha.outputs.sha }}:7d
- name: Scan for container vulnerabilities
uses: aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8 # 0.33.1
with:
image-ref: ttl.sh/gogs/gogs-next-${{ steps.short-sha.outputs.sha }}:7d
exit-code: '1'
# Updates to the following section needs to be synced to all release branches within their lifecycles.
buildx-release:
if: ${{ github.event_name == 'release' }}
runs-on: ubuntu-latest
permissions:
actions: write
contents: read
packages: write
steps:
- name: Compute image tags
run: |
IMAGE_TAG=$(echo $GITHUB_REF_NAME | cut -c 2-)
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
TAGS="gogs/gogs:$IMAGE_TAG
ghcr.io/gogs/gogs:$IMAGE_TAG"
# Add minor version tag for stable releases (no prerelease suffix per semver).
if [[ ! "$IMAGE_TAG" =~ - ]]; then
MINOR_TAG=$(echo "$IMAGE_TAG" | cut -d. -f1,2)
TAGS="$TAGS
gogs/gogs:$MINOR_TAG
ghcr.io/gogs/gogs:$MINOR_TAG"
fi
echo "TAGS<<EOF" >> $GITHUB_ENV
echo "$TAGS" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Set up QEMU
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
with:
platforms: linux/amd64,linux/arm64,linux/arm/v7
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Inspect builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- name: Login to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container registry
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push images
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: ${{ env.TAGS }}
- name: Send email on failure
uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
if: ${{ failure() }}
with:
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}
# Updates to the following section needs to be synced to all release branches within their lifecycles.
buildx-next-release:
if: ${{ github.event_name == 'release' }}
runs-on: ubuntu-latest
permissions:
actions: write
contents: read
packages: write
steps:
- name: Compute image tags
run: |
IMAGE_TAG=$(echo $GITHUB_REF_NAME | cut -c 2-)
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
TAGS="gogs/gogs:next-$IMAGE_TAG
ghcr.io/gogs/gogs:next-$IMAGE_TAG"
# Add minor version tag for stable releases (no prerelease suffix per semver).
if [[ ! "$IMAGE_TAG" =~ - ]]; then
MINOR_TAG=$(echo "$IMAGE_TAG" | cut -d. -f1,2)
TAGS="$TAGS
gogs/gogs:next-$MINOR_TAG
ghcr.io/gogs/gogs:next-$MINOR_TAG"
fi
echo "TAGS<<EOF" >> $GITHUB_ENV
echo "$TAGS" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Set up QEMU
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
with:
platforms: linux/amd64,linux/arm64,linux/arm/v7
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Inspect builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- name: Login to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container registry
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push next-gen images
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
context: .
file: Dockerfile.next
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: ${{ env.TAGS }}
- name: Send email on failure
uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
if: ${{ failure() }}
with:
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}
digitalocean-gc:
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'gogs/gogs' }}
needs: buildx-next
permissions:
contents: read
uses: ./.github/workflows/digitalocean_gc.yml
secrets: inherit
digitalocean-gc-pull-request:
if: ${{ github.event_name == 'pull_request' && github.repository == 'gogs/gogs' }}
needs: buildx-next-pull-request
permissions:
contents: read
uses: ./.github/workflows/digitalocean_gc.yml
secrets: inherit

176
.github/workflows/go.yml vendored Normal file
View File

@@ -0,0 +1,176 @@
name: Go
on:
push:
branches:
- main
- 'release/**'
paths:
- '**.go'
- 'go.mod'
- '.golangci.yml'
- '.github/workflows/go.yml'
pull_request:
paths:
- '**.go'
- 'go.mod'
- '.golangci.yml'
- '.github/workflows/go.yml'
env:
GOPROXY: "https://proxy.golang.org"
permissions:
contents: read
jobs:
lint:
permissions:
contents: read # for actions/checkout to fetch code
pull-requests: read # for golangci/golangci-lint-action to fetch pull requests
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Install Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version: 1.25.x
- name: Install Task
uses: arduino/setup-task@b91d5d2c96a56797b48ac1e0e89220bf64044611 # v2.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Check Go module tidiness and generated files
shell: bash
run: |
go mod tidy
task generate
STATUS=$(git status --porcelain)
if [ ! -z "$STATUS" ]; then
echo "Unstaged files:"
echo $STATUS
echo "Run 'go mod tidy' or 'task generate' commit them"
exit 1
fi
- name: Run golangci-lint
uses: golangci/golangci-lint-action@9fae48acfc02a90574d7c304a1758ef9895495fa # v7.0.1
with:
version: latest
args: --timeout=30m
test:
name: Test
strategy:
matrix:
go-version: [ 1.25.x ]
platform: [ ubuntu-latest, macos-latest ]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Install Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version: ${{ matrix.go-version }}
- name: Run tests with coverage
run: |
go test -shuffle=on -v -race -coverprofile=coverage -covermode=atomic -json ./... > test-report.json
go install github.com/mfridman/tparse@latest
tparse -all -file=test-report.json
- name: Send email on failure
uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
if: ${{ failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
with:
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}
# Running tests with race detection consumes too much memory on Windows,
# see https://github.com/golang/go/issues/46099 for details.
test-windows:
name: Test Windows
strategy:
matrix:
go-version: [ 1.25.x ]
platform: [ windows-latest ]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Install Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version: ${{ matrix.go-version }}
- name: Run tests with coverage
run: go test -shuffle=on -v -coverprofile=coverage -covermode=atomic ./...
- name: Send email on failure
uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
if: ${{ failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
with:
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}
postgres:
name: Postgres
strategy:
matrix:
go-version: [ 1.25.x ]
platform: [ ubuntu-latest ]
runs-on: ${{ matrix.platform }}
services:
postgres:
image: postgres:9.6
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Install Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version: ${{ matrix.go-version }}
- name: Run tests with coverage
run: |
go test -shuffle=on -v -race -coverprofile=coverage -covermode=atomic -json ./internal/database/... > test-report.json
go install github.com/mfridman/tparse@latest
tparse -all -file=test-report.json
env:
GOGS_DATABASE_TYPE: postgres
PGPORT: 5432
PGHOST: localhost
PGUSER: postgres
PGPASSWORD: postgres
PGSSLMODE: disable
mysql:
name: MySQL
strategy:
matrix:
go-version: [ 1.25.x ]
platform: [ ubuntu-22.04 ] # Use the lowest version possible for backwards compatibility
runs-on: ${{ matrix.platform }}
steps:
- name: Start MySQL server
run: sudo systemctl start mysql
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Install Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version: ${{ matrix.go-version }}
- name: Run tests with coverage
run: |
go test -shuffle=on -v -race -coverprofile=coverage -covermode=atomic -json ./internal/database/... > test-report.json
go install github.com/mfridman/tparse@latest
tparse -all -file=test-report.json
env:
GOGS_DATABASE_TYPE: mysql
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_HOST: localhost
MYSQL_PORT: 3306

25
.github/workflows/lock.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: 'Lock Threads'
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
issues: write
pull-requests: write
concurrency:
group: lock
jobs:
action:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1
with:
github-token: ${{ github.token }}
issue-inactive-days: '90'
issue-lock-reason: 'resolved'
pr-inactive-days: '365'
pr-lock-reason: 'resolved'

146
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,146 @@
name: Release
on:
release:
types: [published]
push:
branches:
- main
pull_request:
paths:
- '.github/workflows/release.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
GOPROXY: "https://proxy.golang.org"
permissions:
contents: write
jobs:
build:
name: Build ${{ matrix.goos }}/${{ matrix.goarch }}${{ matrix.suffix }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- {goos: linux, goarch: amd64}
- {goos: linux, goarch: arm64}
- {goos: linux, goarch: "386"}
- {goos: darwin, goarch: amd64}
- {goos: darwin, goarch: arm64}
- {goos: windows, goarch: amd64}
- {goos: windows, goarch: arm64}
- {goos: windows, goarch: "386"}
- {goos: windows, goarch: amd64, suffix: "_mws", tags: minwinsvc}
- {goos: windows, goarch: arm64, suffix: "_mws", tags: minwinsvc}
- {goos: windows, goarch: "386", suffix: "_mws", tags: minwinsvc}
steps:
- name: Checkout code
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Setup Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version: 1.25.x
- name: Determine version
id: version
run: |
if [ "${{ github.event_name }}" = "release" ]; then
echo "version=${{ github.event.release.tag_name }}" | sed 's/version=v/version=/' >> "$GITHUB_OUTPUT"
echo "release_tag=${{ github.event.release.tag_name }}" >> "$GITHUB_OUTPUT"
elif [ "${{ github.event_name }}" = "push" ] && [ "${{ github.ref }}" = "refs/heads/main" ]; then
echo "version=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
echo "release_tag=latest-commit-build" >> "$GITHUB_OUTPUT"
else
echo "version=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
echo "release_tag=release-archive-testing" >> "$GITHUB_OUTPUT"
fi
- name: Build binary
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
CGO_ENABLED: "0"
run: |
BINARY_NAME="gogs"
if [ "${{ matrix.goos }}" = "windows" ]; then
BINARY_NAME="gogs.exe"
fi
TAGS_FLAG=""
if [ -n "${{ matrix.tags }}" ]; then
TAGS_FLAG="-tags ${{ matrix.tags }}"
fi
go build -v \
-ldflags "
-X \"gogs.io/gogs/internal/conf.BuildTime=$(date -u '+%Y-%m-%d %I:%M:%S %Z')\"
-X \"gogs.io/gogs/internal/conf.BuildCommit=$(git rev-parse HEAD)\"
" \
$TAGS_FLAG \
-trimpath -o "$BINARY_NAME" ./cmd/gogs
- name: Prepare archive contents
run: |
mkdir -p dist/gogs
BINARY_NAME="gogs"
if [ "${{ matrix.goos }}" = "windows" ]; then
BINARY_NAME="gogs.exe"
fi
cp "$BINARY_NAME" dist/gogs/
cp LICENSE README.md README_ZH.md dist/gogs/
cp -r scripts dist/gogs/
- name: Create archives
working-directory: dist
run: |
VERSION="${{ steps.version.outputs.version }}"
ARCHIVE_BASE="gogs_${VERSION}_${{ matrix.goos }}_${{ matrix.goarch }}${{ matrix.suffix }}"
zip -r "${ARCHIVE_BASE}.zip" gogs
if [ "${{ matrix.goos }}" = "linux" ]; then
tar -czvf "${ARCHIVE_BASE}.tar.gz" gogs
fi
- name: Upload to release
env:
GH_TOKEN: ${{ github.token }}
run: |
RELEASE_TAG="${{ steps.version.outputs.release_tag }}"
if [ "${{ github.event_name }}" != "release" ]; then
git tag -f "$RELEASE_TAG"
git push origin "$RELEASE_TAG" --force || true
RELEASE_TITLE="Release Archive Testing"
RELEASE_NOTES="Automated testing release for workflow development."
if [ "$RELEASE_TAG" = "latest-commit-build" ]; then
RELEASE_TITLE="Latest Commit Build"
RELEASE_NOTES="Automated build from the latest commit on main branch. This release is updated automatically with every push to main."
fi
gh release view "$RELEASE_TAG" || gh release create "$RELEASE_TAG" --title "$RELEASE_TITLE" --notes "$RELEASE_NOTES" --prerelease
fi
PATTERN="_${{ matrix.goos }}_${{ matrix.goarch }}${{ matrix.suffix }}\."
gh release view "$RELEASE_TAG" --json assets --jq ".assets[].name" | grep "$PATTERN" | while read -r asset; do
gh release delete-asset "$RELEASE_TAG" "$asset" --yes || true
done
gh release upload "$RELEASE_TAG" dist/gogs_*.zip --clobber
if [ "${{ matrix.goos }}" = "linux" ]; then
gh release upload "$RELEASE_TAG" dist/gogs_*.tar.gz --clobber
fi
notify-failure:
name: Notify on failure
runs-on: ubuntu-latest
needs: [build]
if: ${{ failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
steps:
- name: Send email on failure
uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
with:
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}

17
.github/workflows/shell.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Shell
on:
push:
branches: [ main ]
pull_request:
permissions:
contents: read
jobs:
shellcheck:
name: Shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # 2.0.0

27
.gitignore vendored
View File

@@ -1,19 +1,16 @@
.DS_Store
*.db
*.log
# Build artifacts
.bin/
dist/
# Runtime data
log/
custom/
data/
.vendor/
# Configuration and application files
.idea/
*.iml
public/img/avatar/
*.exe
*.exe~
/gogs
profile/
*.pem
output*
*.sublime-project
*.sublime-workspace
/release
.task/
.envrc
# System junk
.DS_Store

42
.golangci.yml Normal file
View File

@@ -0,0 +1,42 @@
version: "2"
linters:
enable:
- nakedret
- rowserrcheck
- unconvert
- unparam
settings:
govet:
disable:
# printf: non-constant format string in call to fmt.Errorf (govet)
# showing up since golangci-lint version 1.60.1
- printf
staticcheck:
checks:
- all
- "-SA1019" # This project is under active refactoring and not all code is up to date.
- "-QF1001" # I'm a math noob
- "-ST1016" # Some legit code uses this pattern
nakedret:
max-func-lines: 0 # Disallow any unnamed return statement
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofmt
- goimports
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$

View File

@@ -1,64 +0,0 @@
[target]
path = github.com/gogits/gogs
[deps]
github.com/bradfitz/gomemcache = commit:2fafb84
github.com/urfave/cli = commit:347a988
github.com/go-macaron/binding = commit:4892016
github.com/go-macaron/cache = commit:5617353
github.com/go-macaron/captcha = commit:8aa5919
github.com/go-macaron/csrf = commit:6a9a7df
github.com/go-macaron/gzip = commit:cad1c65
github.com/go-macaron/i18n = commit:ef57533
github.com/go-macaron/inject = commit:d8a0b86
github.com/go-macaron/session = commit:66031fc
github.com/go-macaron/toolbox = commit:82b5115
github.com/go-sql-driver/mysql = commit:2e00b5c
github.com/go-xorm/builder = commit:9c35786
github.com/go-xorm/core = commit:7daacb2
github.com/go-xorm/xorm = commit:19f6dfc
github.com/gogits/chardet = commit:2404f77
github.com/gogits/cron = commit:2fc07a4
github.com/gogits/git-module = commit:1b9552b
github.com/gogits/go-gogs-client = commit:264a3d5
github.com/gogits/go-libravatar = commit:cd1abbd
github.com/issue9/identicon = commit:d36b545
github.com/jaytaylor/html2text = commit:d16d412
github.com/kardianos/minwinsvc = commit:cad6b2b
github.com/klauspost/compress = commit:461e8fd
github.com/klauspost/cpuid = commit:09cded8
github.com/klauspost/crc32 = commit:cb6bfca
github.com/lib/pq = commit:67c3f2a
github.com/mattn/go-colorable = commit:d228849
github.com/mattn/go-isatty = commit:30a891c
github.com/mattn/go-sqlite3 = commit:ce9149a
github.com/mcuadros/go-version = commit:257f7b9
github.com/microcosm-cc/bluemonday = commit:e797637
github.com/msteinert/pam = commit:02ccfbf
github.com/nfnt/resize = commit:891127d
github.com/russross/blackfriday = commit:5f33e7b
github.com/satori/go.uuid = commit:b061729
github.com/sergi/go-diff = commit:24e2351
github.com/shurcooL/sanitized_anchor_name = commit:1dba4b3
github.com/Unknwon/cae = commit:c6aac99
github.com/Unknwon/com = commit:28b053d
github.com/Unknwon/i18n = commit:e0eb0ce
github.com/Unknwon/paginater = commit:701c23f
github.com/fatih/color = commit:42c364b
golang.org/x/crypto = commit:dc137be
golang.org/x/net = commit:f249948
golang.org/x/sys = commit:d75a526
golang.org/x/text = commit:ece019d
gopkg.in/alexcesaro/quotedprintable.v3 = commit:2caba25
gopkg.in/asn1-ber.v1 = commit:4e86f43
gopkg.in/bufio.v1 = commit:567b2bf
gopkg.in/clog.v1 = commit:bf4bf4a
gopkg.in/editorconfig/editorconfig-core-go.v1 = commit:a872f05
gopkg.in/gomail.v2 = commit:81ebce5
gopkg.in/ini.v1 = commit:e3c2d47
gopkg.in/ldap.v2 = commit:8168ee0
gopkg.in/macaron.v1 = commit:8be5635
gopkg.in/redis.v2 = commit:e617904
[res]
include = public|scripts|templates

View File

@@ -1,2 +1,4 @@
Unknwon <u@gogs.io> <joe2010xtmf@163.com>
Unknwon <u@gogs.io> 无闻 <u@gogs.io>
Joe Chen <jc@unknwon.io> Unknwon <u@gogs.io>
Joe Chen <jc@unknwon.io> 无闻 <u@gogs.io>
Joe Chen <jc@unknwon.io> ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
Joe Chen <jc@unknwon.io> ᴜɴᴋɴᴡᴏɴ <jc@unknwon.io>

View File

@@ -8,10 +8,10 @@ APP_USER=$(${CLI} config:get APP_USER)
APP_GROUP=$(${CLI} config:get APP_GROUP)
APP_CONFIG="/etc/${APP_NAME}/conf/app.ini"
mkdir -p $(dirname ${APP_CONFIG})
chown ${APP_USER}.${APP_GROUP} $(dirname ${APP_CONFIG})
mkdir -p "$(dirname ${APP_CONFIG})"
chown "${APP_USER}"."${APP_GROUP}" "$(dirname ${APP_CONFIG})"
[ -f ${APP_CONFIG} ] || ${CLI} run cp conf/app.ini ${APP_CONFIG}
${CLI} config:set USER=${APP_USER}
${CLI} config:set USER="${APP_USER}"
sed -i "s|RUN_USER = git|RUN_USER = ${APP_USER}|" ${APP_CONFIG}
sed -i "s|RUN_MODE = dev|RUN_MODE = prod|" ${APP_CONFIG}

View File

@@ -1,34 +1,35 @@
targets:
debian-7: &debian
debian-11: &debian
build_dependencies:
- libpam0g-dev
dependencies:
- libpam0g
- git
debian-8:
debian-12:
<<: *debian
ubuntu-12.04:
debian-13:
<<: *debian
ubuntu-14.04:
debian-14:
<<: *debian
ubuntu-16.04:
ubuntu-18.04:
<<: *debian
build_dependencies:
- bzr
- mercurial
centos-6: &el
ubuntu-20.04:
<<: *debian
ubuntu-22.04:
<<: *debian
ubuntu-24.04:
<<: *debian
centos-9:
build_dependencies:
- pam-devel
# required for go buildpack
# required for Go buildpack
- perl-Digest-SHA
dependencies:
- pam
- git
centos-7:
<<: *el
before:
- mv packager/Procfile .
- mv .packager/Procfile .
after:
- mv bin/gogs gogs
after_install: ./packager/hooks/postinst
buildpack: https://github.com/heroku/heroku-buildpack-go.git#v62
after_install: ./.packager/hooks/postinst
buildpack: https://github.com/heroku/heroku-buildpack-go.git#main

View File

@@ -1,17 +0,0 @@
language: go
go:
- 1.6
- 1.7
- 1.8
- master
before_install:
- sudo apt-get update -qq
- sudo apt-get install -y libpam-dev
env:
- GO15VENDOREXPERIMENT=1
script:
- go build -v -tags "pam"
- go test -v -cover -race ./...

32
AGENTS.md Normal file
View File

@@ -0,0 +1,32 @@
## Core principles
- Stop telling me "You're right", it just shows how incompetent you are. Do it right on your first try, fact-check and review after changes. If you are not sure, ask for help.
- When you see changes made outside your knowledge, use the current version as your new starting point. Do not blindly overwrite those changes or you suck. Even if you have to update the code, always respect the pattern in the surrounding context!
## Style and mechanics
This applies to all texts, including but not limited to UI, documentation, code comments.
- Use sentence case. Preserve original casing for brand names.
- End with a period for a full sentence.
- Do not add comments that repeat what the code is doing, always prefer more descriptive names. Do add comments for intentions that aren't obvious via reading the code alone. This rule takes precedence over matching existing patterns.
## Coding guidelines
- Use `github.com/cockroachdb/errors` for error handling.
- Use `github.com/stretchr/testify` for assertions in tests. Be mindful about the choice of `require` and `assert`, the former should be used when the test cannot proceed meaningfully after a failed assertion.
## Build instructions
- Prefer `task` command over vanilla `go` command when available. Use `--force` flag when necessary.
- Run `task lint` after every time you finish changing code, and fix all linter errors.
## Tool-use guidance
- Use `gh` CLI to access information on github.com that is not publicly available.
## Source code control
- When pushing changes to a pull request from a fork, use SSH address and do not add remote.
- Never automatically executes commands that touches Git history even if the session does not require approvals, including but not limited to `rebase`, `commit`, `push`, `pull`, `reset`, `amend`. Exceptions are only allowed case-by-case.
- Do not amend commits unless being explicitly asked to do so.

302
CHANGELOG.md Normal file
View File

@@ -0,0 +1,302 @@
# Changelog
All notable changes to Gogs are documented in this file.
## 0.15.0+dev (`main`)
### Removed
- The `gogs cert` subcommand. [#8153](https://github.com/gogs/gogs/pull/8153)
## 0.14.1
### Added
- Support comparing tags in addition to branches. [#6141](https://github.com/gogs/gogs/issues/6141)
- Show file name in browser tab title when viewing files. [#5896](https://github.com/gogs/gogs/pull/5896)
- Support using TLS for Redis session provider using `[session] PROVIDER_CONFIG = ...,tls=true`. [#7860](https://github.com/gogs/gogs/pull/7860)
- Support expanading values in `app.ini` from environment variables, e.g. `[database] PASSWORD = ${DATABASE_PASSWORD}`. [#8057](https://github.com/gogs/gogs/pull/8057)
- Support custom logout URL that users get redirected to after sign out using `[auth] CUSTOM_LOGOUT_URL`. [#8089](https://github.com/gogs/gogs/pull/8089)
- Start publishing next-generation, security-focused Docker image via `gogs/gogs:next-latest`, which will become the default image distribution (`gogs/gogs:latest`) starting 0.16.0. While not all container options support have been added in the next-generation image, the use of current legacy Docker image is deprecated, it will be published as `gogs/gogs:legacy-latest` starting 0.16.0, and be completely removed no earlier than 0.17.0. [#8061](https://github.com/gogs/gogs/pull/8061)
### Changed
- The required Go version to compile source code changed to 1.25.
- The build tag `cert` has been removed, and the `gogs cert` subcommand is now always available. [#7883](https://github.com/gogs/gogs/pull/7883)
- Switched to pure-Go SQLite driver, CGO is no longer required to compile Gogs. [#7882](https://github.com/gogs/gogs/issues/7882)
- Updated Mermaid JS to 11.9.0. [#8009](https://github.com/gogs/gogs/pull/8009)
- Halt the repository creation and leave the directory untouched if the repository root already exists. [#8091](https://github.com/gogs/gogs/pull/8091)
### Fixed
- _Security:_ Unauthenticated file upload. [#8128](https://github.com/gogs/gogs/pull/8128) - [GHSA-fc3h-92p8-h36f](https://github.com/gogs/gogs/security/advisories/GHSA-fc3h-92p8-h36f)
- _Security:_ Protected branch bypass in web UI. [#8124](https://github.com/gogs/gogs/pull/8124) - [GHSA-2c6v-8r3v-gh6p](https://github.com/gogs/gogs/security/advisories/GHSA-2c6v-8r3v-gh6p)
- _Security:_ Authorization bypass allows cross-repository label modification. [#8123](https://github.com/gogs/gogs/pull/8123) - [GHSA-cv22-72px-f4gh](https://github.com/gogs/gogs/security/advisories/GHSA-cv22-72px-f4gh)
- _Security:_ Cross-repository comment deletion. [#8119](https://github.com/gogs/gogs/pull/8119) - [GHSA-jj5m-h57j-5gv7](https://github.com/gogs/gogs/security/advisories/GHSA-jj5m-h57j-5gv7)
- 500 error on repository watchers and stargazers pages when using MSSQL. [#5482](https://github.com/gogs/gogs/issues/5482)
- Submodules using `ssh://` protocol and a port number are not rendered correctly. [#4941](https://github.com/gogs/gogs/issues/4941)
- Missing link to user profile on the first commit in commits history page. [#7404](https://github.com/gogs/gogs/issues/7404)
- Unable to delete or display files with special characters in their names. [#7596](https://github.com/gogs/gogs/issues/7596)
- Docker healthcheck fails when `HTTP_PROXY` or `HTTPS_PROXY` environment variables are set. [#7529](https://github.com/gogs/gogs/issues/7529)
## 0.13.4
### Fixed
- _Security:_ DoS in repository mirror sync. [#8065](https://github.com/gogs/gogs/pull/8065) - [GHSA-cr88-6mqm-4g57](https://github.com/gogs/gogs/security/advisories/GHSA-cr88-6mqm-4g57)
- _Security:_ RCE in repository put contents API. [#8082](https://github.com/gogs/gogs/pull/8082) - [GHSA-gg64-xxr9-qhjp](https://github.com/gogs/gogs/security/advisories/GHSA-gg64-xxr9-qhjp)
- _Security:_ Arbitrary file deletion via path traversal in wiki page update. [#8099](https://github.com/gogs/gogs/pull/8099) - [GHSA-jp7c-wj6q-3qf2](https://github.com/gogs/gogs/security/advisories/GHSA-jp7c-wj6q-3qf2)
- _Security:_ 2FA bypass via recovery code. [#8100](https://github.com/gogs/gogs/pull/8100) - [GHSA-p6x6-9mx6-26wj](https://github.com/gogs/gogs/security/advisories/GHSA-p6x6-9mx6-26wj)
- _Security:_ Authorization bypass in repository deletion API. [#8101](https://github.com/gogs/gogs/pull/8101) - [GHSA-rjv5-9px2-fqw6](https://github.com/gogs/gogs/security/advisories/GHSA-rjv5-9px2-fqw6)
- _Security:_ Update repository content via API with read-only permission. [#8102](https://github.com/gogs/gogs/pull/8102) - [GHSA-5qhx-gwfj-6jqr](https://github.com/gogs/gogs/security/advisories/GHSA-5qhx-gwfj-6jqr)
- _Security:_ Arbitrary file read/write via path traversal in Git hook editing. [#8103](https://github.com/gogs/gogs/pull/8103) - [GHSA-mrph-w4hh-gx3g](https://github.com/gogs/gogs/security/advisories/GHSA-mrph-w4hh-gx3g)
- _Security:_ Stored XSS via Mermaid diagrams. [`2c88cd4`](https://github.com/gogs/gogs/commit/2c88cd4d9fdc346d8e06d82f5368d657c10e79c2) - [GHSA-26gq-grmh-6xm6](https://github.com/gogs/gogs/security/advisories/GHSA-26gq-grmh-6xm6)
- Route `GET /api/v1/user/repos` responses 500 when accessible repositories contain forks. [#8069](https://github.com/gogs/gogs/pull/8069)
- Newer Git versions that uses default branch `main` cause wiki initialization to fail. [#8094](https://github.com/gogs/gogs/pull/8094)
## 0.13.3
### Fixed
- _Security:_ Stored XSS in PDF renderer. [GHSA-xh32-cx6c-cp4v](https://github.com/gogs/gogs/security/advisories/GHSA-xh32-cx6c-cp4v)
- _Security:_ Path Traversal in file editing UI. [GHSA-wj44-9vcg-wjq7](https://github.com/gogs/gogs/security/advisories/GHSA-wj44-9vcg-wjq7)
- Randomly timeout on repository file uploads. [#7890](https://github.com/gogs/gogs/pull/7890)
- Unable to override email templates in custom directory. [#7905](https://github.com/gogs/gogs/pull/7905)
## 0.13.2
### Fixed
- _Security:_ Path Traversal in file editing UI. [GHSA-r7j8-5h9c-f6fx](https://github.com/gogs/gogs/security/advisories/GHSA-r7j8-5h9c-f6fx)
- _Security:_ Path Traversal in file update API. [GHSA-qf5v-rp47-55gg](https://github.com/gogs/gogs/security/advisories/GHSA-qf5v-rp47-55gg)
- _Security:_ Argument Injection in the built-in SSH server. [GHSA-vm62-9jw3-c8w3](https://github.com/gogs/gogs/security/advisories/GHSA-vm62-9jw3-c8w3)
- _Security:_ Deletion of internal files. [GHSA-ccqv-43vm-4f3w](https://github.com/gogs/gogs/security/advisories/GHSA-ccqv-43vm-4f3w)
- _Security:_ Argument Injection during changes preview. [GHSA-9pp6-wq8c-3w2c](https://github.com/gogs/gogs/security/advisories/GHSA-9pp6-wq8c-3w2c)
- _Security:_ Argument Injection when tagging new releases. [GHSA-m27m-h5gj-wwmg](https://github.com/gogs/gogs/security/advisories/GHSA-m27m-h5gj-wwmg)
- Use the non-deprecated section name `[email]` during installation for email settings. [#7704](https://github.com/gogs/gogs/pull/7704)
- Use the non-deprecated section name `[email] PASSWORD` during installation for email password. [#7807](https://github.com/gogs/gogs/pull/7807)
- Make purple template label color to actually use the hexcode of purple. [#7722](https://github.com/gogs/gogs/pull/7722)
## 0.13.0
### Added
- Support using personal access token in the password field. [#3866](https://github.com/gogs/gogs/issues/3866)
- An unlisted option is added when create or migrate a repository. Unlisted repositories are public but not being listed for users without direct access in the UI. [#5733](https://github.com/gogs/gogs/issues/5733)
- New API endpoint `PUT /repos/:owner/:repo/contents/:path` for creating and update repository contents. [#5967](https://github.com/gogs/gogs/issues/5967)
- New configuration option `[git.timeout] DIFF` for customizing operation timeout of `git diff`. [#6315](https://github.com/gogs/gogs/issues/6315)
- New configuration option `[server] SSH_SERVER_MACS` for setting list of accepted MACs for connections to builtin SSH server. [#6434](https://github.com/gogs/gogs/issues/6434)
- New configuration option `[repository] DEFAULT_BRANCH` for setting default branch name for new repositories. [#7291](https://github.com/gogs/gogs/issues/7291)
- New configuration option `[server] SSH_SERVER_ALGORITHMS` for specifying the list of accepted key exchange algorithms for connections to builtin SSH server. [#7345](https://github.com/gogs/gogs/pull/7345)
- Support specifying custom schema for PostgreSQL. [#6695](https://github.com/gogs/gogs/pull/6695)
- Support rendering Mermaid diagrams in Markdown. [#6776](https://github.com/gogs/gogs/pull/6776)
- Docker: Allow passing extra arguments to the `backup` command. [#7060](https://github.com/gogs/gogs/pull/7060)
- New languages support: Mongolian, Romanian. [#6510](https://github.com/gogs/gogs/pull/6510) [#7082](https://github.com/gogs/gogs/pull/7082)
### Changed
- The default branch has been changed to `main`. [#6285](https://github.com/gogs/gogs/pull/6285)
- MSSQL as database backend is deprecated, installation page no longer shows it as an option. Existing installations and manually craft configuration file continue to work. [#6295](https://github.com/gogs/gogs/pull/6295)
- Use [Task](https://github.com/go-task/task) as the build tool. [#6297](https://github.com/gogs/gogs/pull/6297)
- The required Go version to compile source code changed to 1.18.
- Access tokens are now stored using their SHA256 hashes instead of raw values. [#7008](https://github.com/gogs/gogs/pull/7008)
### Fixed
- Unable to use LDAP authentication on ARM machines. [#6761](https://github.com/gogs/gogs/issues/6761)
- Unable to choose "Lookup Avatar by mail" in user settings without deleting custom avatar. [#7267](https://github.com/gogs/gogs/pull/7267)
- Mistakenly include the "data" directory under the custom directory in the Docker setup. [#7343](https://github.com/gogs/gogs/pull/7343)
- Unable to start after data recovery with an outdated migration version. [#7125](https://github.com/gogs/gogs/issues/7125)
### Removed
- ⚠️ Migrations before 0.12 are removed, installations not on 0.12 should upgrade to it to run the migrations and then upgrade to 0.13.
- Configuration section `[mailer]` is no longer used, please use `[email]`.
- Configuration section `[service]` is no longer used, please use `[auth]`.
- Configuration option `APP_NAME` is no longer used, please use `BRAND_NAME`.
- Configuration option `[security] REVERSE_PROXY_AUTHENTICATION_USER` is no longer used, please use `[auth] REVERSE_PROXY_AUTHENTICATION_HEADER`.
- Configuration option `[auth] ACTIVE_CODE_LIVE_MINUTES` is no longer used, please use `[auth] ACTIVATE_CODE_LIVES`.
- Configuration option `[auth] RESET_PASSWD_CODE_LIVE_MINUTES` is no longer used, please use `[auth] RESET_PASSWORD_CODE_LIVES`.
- Configuration option `[auth] ENABLE_CAPTCHA` is no longer used, please use `[auth] ENABLE_REGISTRATION_CAPTCHA`.
- Configuration option `[auth] ENABLE_NOTIFY_MAIL` is no longer used, please use `[user] ENABLE_EMAIL_NOTIFICATION`.
- Configuration option `[auth] REGISTER_EMAIL_CONFIRM` is no longer used, please use `[auth] REQUIRE_EMAIL_CONFIRMATION`.
- Configuration option `[session] GC_INTERVAL_TIME` is no longer used, please use `[session] GC_INTERVAL`.
- Configuration option `[session] SESSION_LIFE_TIME` is no longer used, please use `[session] MAX_LIFE_TIME`.
- Configuration option `[server] ROOT_URL` is no longer used, please use `[server] EXTERNAL_URL`.
- Configuration option `[server] LANDING_PAGE` is no longer used, please use `[server] LANDING_URL`.
- Configuration option `[database] DB_TYPE` is no longer used, please use `[database] TYPE`.
- Configuration option `[database] PASSWD` is no longer used, please use `[database] PASSWORD`.
- Remove option to use Makefile as the build tool. [#6980](https://github.com/gogs/gogs/pull/6980)
## 0.12.11
### Fixed
- _Security:_ Stored XSS for issue assignees. [#7145](https://github.com/gogs/gogs/issues/7145)
- _Security:_ OS Command Injection in repo editor on case-insensitive file systems. [#7030](https://github.com/gogs/gogs/issues/7030)
- Unable to render repository pages with implicit submodules (e.g. `get submodule "REDACTED": revision does not exist`). [#6436](https://github.com/gogs/gogs/issues/6436)
## 0.12.10
### Changed
- Support using `[security] LOCAL_NETWORK_ALLOWLIST = *` to allow all hostnames. [#7111](https://github.com/gogs/gogs/pull/7111)
### Fixed
- Unable to send webhooks to local network addresses after configured `[security] LOCAL_NETWORK_ALLOWLIST`. [#7074](https://github.com/gogs/gogs/issues/7074)
## 0.12.9
### Fixed
- _Security:_ OS Command Injection in file editor. [#7000](https://github.com/gogs/gogs/issues/7000)
- _Security:_ Sanitize `DisplayName` in repository issue list. [#7009](https://github.com/gogs/gogs/pull/7009)
- _Security:_ Path Traversal in file editor on Windows. [#7001](https://github.com/gogs/gogs/issues/7001)
- _Security:_ Path Traversal in Git HTTP endpoints. [#7002](https://github.com/gogs/gogs/issues/7002)
- Unable to init repository during creation on Windows. [#6967](https://github.com/gogs/gogs/issues/6967)
- Mysterious panic on `Value not found for type *repo.HTTPContext`. [#6963](https://github.com/gogs/gogs/issues/6963)
## 0.12.8
### Changed
- All users (including admins) need to use the configuration option `[security] LOCAL_NETWORK_ALLOWLIST` to allow repository migration and webhooks to be able to access local network addresses, which is a comma separated list of hostnames. [#6988](https://github.com/gogs/gogs/pull/6988)
### Fixed
- _Security:_ SSRF in webhook. [#6901](https://github.com/gogs/gogs/issues/6901)
- _Security:_ XSS in cookies. [#6953](https://github.com/gogs/gogs/issues/6953)
- _Security:_ OS Command Injection in file uploading. [#6968](https://github.com/gogs/gogs/issues/6968)
- _Security:_ Remote Command Execution in file editing. [#6555](https://github.com/gogs/gogs/issues/6555)
## 0.12.7
### Fixed
- _Security:_ Stored XSS in issues. [#6919](https://github.com/gogs/gogs/issues/6919)
- Invalid character in `Access-Control-Allow-Credentials` response header. [#4983](https://github.com/gogs/gogs/issues/4983)
- Mysterious `ssh: overflow reading version string` errors from builtin SSH server. [#6882](https://github.com/gogs/gogs/issues/6882)
## 0.12.6
### Fixed
- _Security:_ Remote command execution in file uploading. [#6833](https://github.com/gogs/gogs/issues/6833)
- _Regression:_ Unable to migrate repository from other local Git hosting. Added a new configuration option `[security] LOCAL_NETWORK_ALLOWLIST`, which is a comma separated list of hostnames that are explicitly allowed to be accessed within the local network. [#6841](https://github.com/gogs/gogs/issues/6841)
- Slow start of Docker containers using NAS devices. [#6554](https://github.com/gogs/gogs/issues/6554)
## 0.12.5
### Fixed
- _Security:_ Potential SSRF in repository migration. [#6754](https://github.com/gogs/gogs/issues/6754)
- _Security:_ Improper PAM authorization handling. [#6810](https://github.com/gogs/gogs/issues/6810)
## 0.12.4
### Fixed
- _Security:_ Potential SSRF attack by CRLF injection via repository migration. [#6413](https://github.com/gogs/gogs/issues/6413)
- _Regression:_ Fixed smart links for issues stops rendering. [#6506](https://github.com/gogs/gogs/issues/6506)
- Added `X-Frame-Options` header to prevent Clickjacking. [#6409](https://github.com/gogs/gogs/issues/6409)
## 0.12.3
### Fixed
- _Regression:_ When running Gogs on Windows, push commits no longer fail on a daily basis with the error "pre-receive hook declined". [#6316](https://github.com/gogs/gogs/issues/6316)
- Auto-linked commit SHAs now have correct links. [#6300](https://github.com/gogs/gogs/issues/6300)
- Git LFS client (with version >= 2.5.0) wasn't able to upload files with known format (e.g. PNG, JPEG), and the server is expecting the HTTP Header `Content-Type` to be `application/octet-stream`. The server now tells the LFS client to always use `Content-Type: application/octet-stream` when upload files.
## 0.12.2
### Fixed
- _Regression:_ Pages are correctly rendered when requesting `?go-get=1` for subdirectories. [#6314](https://github.com/gogs/gogs/issues/6314)
- _Regression:_ Submodule with a relative path is linked correctly. [#6319](https://github.com/gogs/gogs/issues/6319)
- Backup can be processed when `--target` is specified on Windows. [#6339](https://github.com/gogs/gogs/issues/6339)
- Commit message contains keywords look like an issue reference no longer fails the push entirely. [#6289](https://github.com/gogs/gogs/issues/6289)
## 0.12.1
### Fixed
- The `updated_at` field is now correctly updated when updates an issue. [#6209](https://github.com/gogs/gogs/issues/6209)
- Fixed a regression which created `login_source.cfg` column to have `VARCHAR(255)` instead of `TEXT` in MySQL. [#6280](https://github.com/gogs/gogs/issues/6280)
## 0.12.0
### Added
- Support for Git LFS, you can read documentation for both [user](https://github.com/gogs/gogs/blob/main/docs/user/lfs.md) and [admin](https://github.com/gogs/gogs/blob/main/docs/admin/lfs.md). [#1322](https://github.com/gogs/gogs/issues/1322)
- Allow admin to remove observers from the repository. [#5803](https://github.com/gogs/gogs/pull/5803)
- Use `Last-Modified` HTTP header for raw files. [#5811](https://github.com/gogs/gogs/issues/5811)
- Support syntax highlighting for SAS code files (i.e. `.r`, `.sas`, `.tex`, `.yaml`). [#5856](https://github.com/gogs/gogs/pull/5856)
- Able to fill in pull request title with a template. [#5901](https://github.com/gogs/gogs/pull/5901)
- Able to override static files under `public/` directory, please refer to [documentation](https://gogs.io/docs/features/custom_template) for usage. [#5920](https://github.com/gogs/gogs/pull/5920)
- New API endpoint `GET /admin/teams/:teamid/members` to list members of a team. [#5877](https://github.com/gogs/gogs/issues/5877)
- Support backup with retention policy for Docker deployments. [#6140](https://github.com/gogs/gogs/pull/6140)
### Changed
- The organization profile page has changed to display at most 12 members. [#5506](https://github.com/gogs/gogs/issues/5506)
- The required Go version to compile source code changed to 1.14.
- All assets are now embedded into binary and served from memory by default. Set `[server] LOAD_ASSETS_FROM_DISK = true` to load them from disk. [#5920](https://github.com/gogs/gogs/pull/5920)
- Application and Go versions are removed from page footer and only show in the admin dashboard.
- Build tag for running as Windows Service has been changed from `miniwinsvc` to `minwinsvc`.
- Configuration option `APP_NAME` is deprecated and will end support in 0.13.0, please start using `BRAND_NAME`.
- Configuration option `[server] ROOT_URL` is deprecated and will end support in 0.13.0, please start using `[server] EXTERNAL_URL`.
- Configuration option `[server] LANDING_PAGE` is deprecated and will end support in 0.13.0, please start using `[server] LANDING_URL`.
- Configuration option `[database] DB_TYPE` is deprecated and will end support in 0.13.0, please start using `[database] TYPE`.
- Configuration option `[database] PASSWD` is deprecated and will end support in 0.13.0, please start using `[database] PASSWORD`.
- Configuration option `[security] REVERSE_PROXY_AUTHENTICATION_USER` is deprecated and will end support in 0.13.0, please start using `[auth] REVERSE_PROXY_AUTHENTICATION_HEADER`.
- Configuration section `[mailer]` is deprecated and will end support in 0.13.0, please start using `[email]`.
- Configuration section `[service]` is deprecated and will end support in 0.13.0, please start using `[auth]`.
- Configuration option `[auth] ACTIVE_CODE_LIVE_MINUTES` is deprecated and will end support in 0.13.0, please start using `[auth] ACTIVATE_CODE_LIVES`.
- Configuration option `[auth] RESET_PASSWD_CODE_LIVE_MINUTES` is deprecated and will end support in 0.13.0, please start using `[auth] RESET_PASSWORD_CODE_LIVES`.
- Configuration option `[auth] REGISTER_EMAIL_CONFIRM` is deprecated and will end support in 0.13.0, please start using `[auth] REQUIRE_EMAIL_CONFIRMATION`.
- Configuration option `[auth] ENABLE_CAPTCHA` is deprecated and will end support in 0.13.0, please start using `[auth] ENABLE_REGISTRATION_CAPTCHA`.
- Configuration option `[auth] ENABLE_NOTIFY_MAIL` is deprecated and will end support in 0.13.0, please start using `[user] ENABLE_EMAIL_NOTIFICATION`.
- Configuration option `[session] GC_INTERVAL_TIME` is deprecated and will end support in 0.13.0, please start using `[session] GC_INTERVAL`.
- Configuration option `[session] SESSION_LIFE_TIME` is deprecated and will end support in 0.13.0, please start using `[session] MAX_LIFE_TIME`.
- The name `-` is reserved and cannot be used for users or organizations.
### Fixed
- [Security] Potential open redirection with i18n.
- [Security] Potential ability to delete files outside a repository.
- [Security] Potential ability to set primary email on others' behalf from their verified emails.
- [Security] Potential XSS attack via `.ipynb`. [#5170](https://github.com/gogs/gogs/issues/5170)
- [Security] Potential SSRF attack via webhooks. [#5366](https://github.com/gogs/gogs/issues/5366)
- [Security] Potential CSRF attack in admin panel. [#5367](https://github.com/gogs/gogs/issues/5367)
- [Security] Potential stored XSS attack in some browsers. [#5397](https://github.com/gogs/gogs/issues/5397)
- [Security] Potential RCE on mirror repositories. [#5767](https://github.com/gogs/gogs/issues/5767)
- [Security] Potential XSS attack with raw markdown API. [#5907](https://github.com/gogs/gogs/pull/5907)
- File both modified and renamed within a commit treated as separate files. [#5056](https://github.com/gogs/gogs/issues/5056)
- Unable to restore the database backup to MySQL 8.0 with syntax error. [#5602](https://github.com/gogs/gogs/issues/5602)
- Open/close milestone redirects to a 404 page. [#5677](https://github.com/gogs/gogs/issues/5677)
- Disallow multiple tokens with same name. [#5587](https://github.com/gogs/gogs/issues/5587) [#5820](https://github.com/gogs/gogs/pull/5820)
- Enable Federated Avatar Lookup could cause server to crash. [#5848](https://github.com/gogs/gogs/issues/5848)
- Private repositories are hidden in the organization's view. [#5869](https://github.com/gogs/gogs/issues/5869)
- Users have access to base repository cannot view commits in forks. [#5878](https://github.com/gogs/gogs/issues/5878)
- Server error when changing email address in user settings page. [#5899](https://github.com/gogs/gogs/issues/5899)
- Fall back to use RFC 3339 as time layout when misconfigured. [#6098](https://github.com/gogs/gogs/issues/6098)
- Unable to update team with server error. [#6185](https://github.com/gogs/gogs/issues/6185)
- Webhooks are not fired after push when `[service] REQUIRE_SIGNIN_VIEW = true`.
- Files with identical content are randomly displayed one of them.
### Removed
- Configuration option `[other] SHOW_FOOTER_VERSION`
- Configuration option `[server] STATIC_ROOT_PATH`
- Configuration option `[repository] MIRROR_QUEUE_LENGTH`
- Configuration option `[repository] PULL_REQUEST_QUEUE_LENGTH`
- Configuration option `[session] ENABLE_SET_COOKIE`
- Configuration option `[release.attachment] PATH`
- Configuration option `[webhook] QUEUE_LENGTH`
- Build tag `sqlite`, which means CGO is now required.
---
**Older change logs can be found on [GitHub](https://github.com/gogs/gogs/releases?after=v0.12.0).**

1
CLAUDE.md Symbolic link
View File

@@ -0,0 +1 @@
AGENTS.md

2
CODEOWNERS Normal file
View File

@@ -0,0 +1,2 @@
# Default
* @gogs/core

View File

@@ -1,24 +1,44 @@
FROM alpine:3.5
FROM golang:alpine3.21 AS binarybuilder
RUN apk --no-cache --no-progress add --virtual \
build-deps \
build-base \
git \
linux-pam-dev
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.9/gosu-amd64 /usr/sbin/gosu
RUN chmod +x /usr/sbin/gosu \
&& apk --no-cache --no-progress add ca-certificates bash git linux-pam s6 curl openssh socat tzdata
WORKDIR /gogs.io/gogs
COPY . .
ENV GOGS_CUSTOM /data/gogs
RUN ./docker/build/install-task.sh
RUN TAGS="cert pam" task build
COPY . /app/gogs/build
WORKDIR /app/gogs/build
FROM alpine:3.21
RUN apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata \
rsync
RUN ./docker/build-go.sh \
&& ./docker/build.sh \
&& ./docker/finalize.sh
ENV GOGS_CUSTOM=/data/gogs
# Configure LibC Name Service
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
# Configure Docker Container
VOLUME ["/data"]
WORKDIR /app/gogs
COPY docker ./docker
COPY --from=binarybuilder /gogs.io/gogs/.bin/gogs .
RUN ./docker/build/finalize.sh
# Configure Docker Container
VOLUME ["/data", "/backup"]
EXPOSE 22 3000
HEALTHCHECK CMD (curl --noproxy localhost -o /dev/null -sS http://localhost:3000/healthcheck) || exit 1
ENTRYPOINT ["/app/gogs/docker/start.sh"]
CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]
CMD ["/usr/bin/s6-svscan", "/app/gogs/docker/s6/"]

View File

@@ -1,24 +0,0 @@
FROM aarch64/alpine:3.5
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.9/gosu-arm64 /usr/sbin/gosu
RUN chmod +x /usr/sbin/gosu \
&& apk --no-cache --no-progress add ca-certificates bash git linux-pam s6 curl openssh socat tzdata
ENV GOGS_CUSTOM /data/gogs
COPY . /app/gogs/build
WORKDIR /app/gogs/build
RUN ./docker/build-go.sh \
&& ./docker/build.sh \
&& ./docker/finalize.sh
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
# Configure Docker Container
VOLUME ["/data"]
EXPOSE 22 3000
ENTRYPOINT ["/app/gogs/docker/start.sh"]
CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]

50
Dockerfile.next Normal file
View File

@@ -0,0 +1,50 @@
FROM golang:alpine3.23 AS binarybuilder
RUN apk --no-cache --no-progress add --virtual \
build-deps \
build-base \
git \
linux-pam-dev
WORKDIR /gogs.io/gogs
COPY . .
RUN ./docker/build/install-task.sh
RUN TAGS="cert pam" task build
FROM alpine:3.23
# Create git user and group with fixed UID/GID at build time for better K8s security context support.
# Using 1000:1000 as it's a common non-root UID/GID that works well with most volume permission setups.
ARG GOGS_UID=1000
ARG GOGS_GID=1000
RUN addgroup -g ${GOGS_GID} -S git && \
adduser -u ${GOGS_UID} -G git -H -D -g 'Gogs Git User' -h /data/git -s /bin/sh git
RUN apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh-keygen
ENV GOGS_CUSTOM=/data/gogs
WORKDIR /app/gogs
COPY --from=binarybuilder /gogs.io/gogs/.bin/gogs .
COPY docker-next/start.sh .
RUN chmod +x start.sh && \
mkdir -p /data && \
ln -s /data/git /home/git && \
chown -R git:git /app/gogs /data
# Configure Docker Container
VOLUME ["/data", "/backup"]
EXPOSE 22 3000
HEALTHCHECK CMD (curl --noproxy localhost -o /dev/null -sS http://localhost:3000/healthcheck) || exit 1
# Run as non-root user by default for better K8s security context support.
USER git:git
ENTRYPOINT ["/app/gogs/start.sh"]
CMD ["/app/gogs/gogs", "web"]

View File

@@ -1,24 +0,0 @@
FROM armhf/alpine:3.5
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.9/gosu-armhf /usr/sbin/gosu
RUN chmod +x /usr/sbin/gosu \
&& apk --no-cache --no-progress add ca-certificates bash git linux-pam s6 curl openssh socat tzdata
ENV GOGS_CUSTOM /data/gogs
COPY . /app/gogs/build
WORKDIR /app/gogs/build
RUN ./docker/build-go.sh \
&& ./docker/build.sh \
&& ./docker/finalize.sh
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
# Configure Docker Container
VOLUME ["/data"]
EXPOSE 22 3000
ENTRYPOINT ["/app/gogs/docker/start.sh"]
CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]

View File

@@ -1,83 +0,0 @@
LDFLAGS += -X "github.com/gogits/gogs/pkg/setting.BuildTime=$(shell date -u '+%Y-%m-%d %I:%M:%S %Z')"
LDFLAGS += -X "github.com/gogits/gogs/pkg/setting.BuildGitHash=$(shell git rev-parse HEAD)"
DATA_FILES := $(shell find conf | sed 's/ /\\ /g')
LESS_FILES := $(wildcard public/less/gogs.less public/less/_*.less)
GENERATED := pkg/bindata/bindata.go public/css/gogs.css
OS := $(shell uname)
TAGS = ""
BUILD_FLAGS = "-v"
RELEASE_ROOT = "release"
RELEASE_GOGS = "release/gogs"
NOW = $(shell date -u '+%Y%m%d%I%M%S')
GOVET = go tool vet -composites=false -methods=false -structtags=false
.PHONY: build pack release bindata clean
.IGNORE: public/css/gogs.css
all: build
check: test
dist: release
web: build
./gogs web
govet:
$(GOVET) gogs.go
$(GOVET) models pkg routers
build: $(GENERATED)
go install $(BUILD_FLAGS) -ldflags '$(LDFLAGS)' -tags '$(TAGS)'
cp '$(GOPATH)/bin/gogs' .
build-dev: $(GENERATED) govet
go install $(BUILD_FLAGS) -tags '$(TAGS)'
cp '$(GOPATH)/bin/gogs' .
build-dev-race: $(GENERATED) govet
go install $(BUILD_FLAGS) -race -tags '$(TAGS)'
cp '$(GOPATH)/bin/gogs' .
pack:
rm -rf $(RELEASE_GOGS)
mkdir -p $(RELEASE_GOGS)
cp -r gogs LICENSE README.md README_ZH.md templates public scripts $(RELEASE_GOGS)
rm -rf $(RELEASE_GOGS)/public/config.codekit $(RELEASE_GOGS)/public/less
cd $(RELEASE_ROOT) && zip -r gogs.$(NOW).zip "gogs"
release: build pack
bindata: pkg/bindata/bindata.go
pkg/bindata/bindata.go: $(DATA_FILES)
go-bindata -o=$@ -ignore="\\.DS_Store|README.md|TRANSLATORS" -pkg=bindata conf/...
less: public/css/gogs.css
public/css/gogs.css: $(LESS_FILES)
lessc $< $@
clean:
go clean -i ./...
clean-mac: clean
find . -name ".DS_Store" -print0 | xargs -0 rm
test:
go test -cover -race ./...
fixme:
grep -rnw "FIXME" cmd routers models pkg
todo:
grep -rnw "TODO" cmd routers models pkg
# Legacy code should be remove by the time of release
legacy:
grep -rnw "LEGACY" cmd routers models pkg

161
README.md
View File

@@ -1,138 +1,107 @@
Gogs [![Build Status](https://travis-ci.org/gogits/gogs.svg?branch=master)](https://travis-ci.org/gogits/gogs) [![Build status](https://ci.appveyor.com/api/projects/status/b9uu5ejl933e2wlt/branch/master?svg=true)](https://ci.appveyor.com/project/Unknwon/gogs/branch/master) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/gogs/localized.svg)](https://crowdin.com/project/gogs) [![Sourcegraph](https://sourcegraph.com/github.com/gogits/gogs/-/badge.svg)](https://sourcegraph.com/github.com/gogits/gogs?badge) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/gogits/gogs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
=====================
![gogs-brand](https://user-images.githubusercontent.com/2946214/146899259-6a8b58ad-8d6e-40d2-ab02-79dc6aadabbf.png)
![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true)
[![GitHub Workflow Status](https://img.shields.io/github/checks-status/gogs/gogs/main?logo=github&style=for-the-badge)](https://github.com/gogs/gogs/actions?query=branch%3Amain) [![Sourcegraph](https://img.shields.io/badge/view%20on-Sourcegraph-brightgreen.svg?style=for-the-badge&logo=sourcegraph)](https://sourcegraph.com/github.com/gogs/gogs)
##### Current tip version: [`.VERSION`](templates/.VERSION) (see [Releases](https://github.com/gogits/gogs/releases) for binary versions)
👉 Deploy on DigitalOcean and [get $200 in free credits](https://m.do.co/c/5aeb02268b55)!
| Web | UI | Preview |
|:-------------:|:-------:|:-------:|
|![Dashboard](https://gogs.io/img/screenshots/1.png)|![Repository](https://gogs.io/img/screenshots/2.png)|![Editor](https://gogs.io/img/screenshots/3.png)|
|![Profile](https://gogs.io/img/screenshots/4.png)|![Diff](https://gogs.io/img/screenshots/5.png)|![Repository Settings](https://gogs.io/img/screenshots/6.png?ts=20170322)|
|![Webhook](https://gogs.io/img/screenshots/7.png)|![Organization](https://gogs.io/img/screenshots/8.png)|![Admin Dashboard](https://gogs.io/img/screenshots/9.png)|
## 🔮 Vision
### Important Notes
The Gogs (`/gɑgz/`) project aims to build a simple, stable and extensible self-hosted Git service that can be set up in the most painless way. With Go, this can be done with an independent binary distribution across all platforms that Go supports, including Linux, macOS, Windows and ARM-based systems.
1. **YOU MUST READ [Contributing Code](https://github.com/gogits/gogs/wiki/Contributing-Code) BEFORE STARTING TO WORK ON A PULL REQUEST**.
2. Due to testing purpose, data of [try.gogs.io](https://try.gogs.io) was reset in **Jan 28, 2015** and will reset multiple times after. Please do **NOT** put your important data on the site.
3. The demo site [try.gogs.io](https://try.gogs.io) is running under `develop` branch.
4. If you think there are vulnerabilities in the project, please talk privately to **u@gogs.io**, and the name you want to be credited as. Thanks!
5. If you're interested in using APIs, we have experimental support with [documentation](https://github.com/gogits/go-gogs-client/wiki).
6. If your team/company is using Gogs and would like to put your logo on [our website](https://gogs.io), contact us by any means.
## 📡 Overview
[简体中文](README_ZH.md)
## Purpose
The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. With Go, this can be done with an independent binary distribution across **ALL platforms** that Go supports, including Linux, Mac OS X, Windows and ARM.
## Overview
- Please see the [Documentation](https://gogs.io/docs/intro) for common usages and change log.
- Please visit [our home page](https://gogs.io) for user documentation.
- Please refer to [CHANGELOG.md](CHANGELOG.md) for list of changes in each releases.
- Want to try it before doing anything else? Do it [online](https://try.gogs.io/gogs/gogs)!
- Having trouble? Get help with [Troubleshooting](https://gogs.io/docs/intro/troubleshooting.html) or [User Forum](https://discuss.gogs.io/).
- Want to help with localization? Check out the [guide](https://gogs.io/docs/features/i18n.html)!
- Having trouble? Help yourself with [troubleshooting](https://gogs.io/docs/intro/troubleshooting.html) or ask questions in [Discussions](https://github.com/gogs/gogs/discussions).
- Want to help with localization? Check out the [localization documentation](https://gogs.io/docs/features/i18n.html).
- Ready to get hands dirty? Read our [contributing guide](.github/CONTRIBUTING.md).
- Hmm... What about APIs? We have experimental support with [documentation](https://github.com/gogs/docs-api).
## Features
## 💌 Features
- Activity timeline
- SSH and HTTP/HTTPS protocols
- SMTP/LDAP/Reverse proxy authentication
- Reverse proxy with sub-path
- Account/Organization/Repository management
- Add/Remove repository collaborators
- Repository/Organization webhooks (including Slack and Discord)
- Repository Git hooks/deploy keys
- Repository issues, pull requests, wiki and protected branches
- Migrate and mirror repository and its wiki
- Web editor for repository files and wiki
- Jupyter Notebook
- Two-factor authentication
- Gravatar and Federated avatar with custom source
- Mail service
- Administration panel
- Supports MySQL, PostgreSQL, SQLite3, MSSQL and [TiDB](https://github.com/pingcap/tidb) (via MySQL protocol)
- Multi-language support ([25 languages](https://crowdin.com/project/gogs))
- User dashboard, user profile and activity timeline.
- Access repositories via SSH, HTTP and HTTPS protocols.
- User, organization and repository management.
- Repository and organization webhooks, including Slack, Discord and Dingtalk.
- Repository Git hooks, deploy keys and Git LFS.
- Repository issues, pull requests, wiki, protected branches and collaboration.
- Migrate and mirror repositories with wiki from other code hosts.
- Web editor for quick editing repository files and wiki.
- Jupyter Notebook and PDF rendering.
- Authentication via SMTP, LDAP, reverse proxy, GitHub.com and GitHub Enterprise with 2FA.
- Customize HTML templates, static files and many others.
- Rich database backend support, including PostgreSQL, MySQL, SQLite3 or any database backend that speaks one of those protocols.
- Have localization over [31 languages](https://crowdin.com/project/gogs).
## Hardware Requirements
## 💾 Hardware requirements
- A Raspberry Pi or $5 Digital Ocean Droplet is more than enough to get you started. Some even use 64MB RAM Docker [CaaS](https://blog.docker.com/2016/02/containers-as-a-service-caas/).
- A Raspberry Pi or $5 Digital Ocean Droplet is more than enough to get you started. Some even use 64MB RAM Docker [CaaS](https://www.docker.com/blog/containers-as-a-service-caas/).
- 2 CPU cores and 512MB RAM would be the baseline for teamwork.
- Increase CPU cores when your team size gets significantly larger, memory footprint remains low.
## Browser Support
## 💻 Browser support
- Please see [Semantic UI](https://github.com/Semantic-Org/Semantic-UI#browser-support) for specific versions of supported browsers.
- The smallest resolution officially supported is **1024*768**, however the UI may still look right in smaller resolutions, but no promises or fixes.
## Installation
## 📜 Installation
Make sure you install the [prerequisites](https://gogs.io/docs/installation) first.
There are 5 ways to install Gogs:
There are 6 ways to install Gogs:
- [Install from binary](https://gogs.io/docs/installation/install_from_binary.html)
- [Install from source](https://gogs.io/docs/installation/install_from_source.html)
- [Install from packages](https://gogs.io/docs/installation/install_from_packages.html)
- [Ship with Docker](https://github.com/gogits/gogs/tree/master/docker)
- [Install with Vagrant](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
- [Ship with Docker](https://github.com/gogs/gogs/tree/main/docker)
- [Try with Vagrant](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
### Deploy to cloud
- [Cloudron](https://www.cloudron.io/store/io.gogs.cloudronapp.html)
- [YunoHost](https://github.com/YunoHost-Apps/gogs_ynh)
- [alwaysdata](https://www.alwaysdata.com/en/marketplace/gogs/)
### Tutorials
- [Private Git Web Portal in Raspberry PI With Gogs](https://peppe8o.com/private-git-web-portal-in-raspberry-pi-with-gogs/)
- [How To Set Up Gogs on Ubuntu 14.04](https://www.digitalocean.com/community/tutorials/how-to-set-up-gogs-on-ubuntu-14-04)
- [Run your own GitHub-like service with the help of Docker](http://blog.hypriot.com/post/run-your-own-github-like-service-with-docker/)
- [Dockerized Gogs git server and alpine postgres in 20 minutes or less](http://garthwaite.org/docker-gogs.html)
- [Run your own GitHub-like service with the help of Docker](https://blog.hypriot.com/post/run-your-own-github-like-service-with-docker/)
- [Dockerized Gogs git server and alpine postgres in 20 minutes or less](https://garthwaite.org/docker-gogs.html)
- [Host Your Own Private GitHub with Gogs](https://eladnava.com/host-your-own-private-github-with-gogs-io/)
- [使用 Gogs 搭建自己的 Git 服务器](https://mynook.info/blog/post/host-your-own-git-server-using-gogs) (Chinese)
- [阿里云上 Ubuntu 14.04 64 位安装 Gogs](http://my.oschina.net/luyao/blog/375654) (Chinese)
- [使用 Gogs 搭建自己的 Git 服务器](https://blog.mynook.info/post/host-your-own-git-server-using-gogs/) (Chinese)
- [阿里云上 Ubuntu 14.04 64 位安装 Gogs](https://my.oschina.net/luyao/blog/375654) (Chinese)
- [Installing Gogs on FreeBSD](https://www.codejam.info/2015/03/installing-gogs-on-freebsd.html)
- [Gogs on Raspberry Pi](http://blog.meinside.pe.kr/Gogs-on-Raspberry-Pi/)
- [Cloudflare Full SSL with Gogs using NGINX](http://www.listekconsulting.com/articles/cloudflare-full-ssl-with-gogs-go-git-service-using-nginx/)
### Screencasts
- [How to install Gogs on a Linux Server (DigitalOcean)](https://www.youtube.com/watch?v=deSfX0gqefE)
- [Instalando Gogs no Ubuntu](https://www.youtube.com/watch?v=4UkHAR1F7ZA) (Português)
### Deploy to Cloud
- [OpenShift](https://github.com/tkisme/gogs-openshift)
- [Cloudron](https://cloudron.io/appstore.html#io.gogs.cloudronapp)
- [Scaleway](https://www.scaleway.com/imagehub/gogs/)
- [Sandstorm](https://github.com/cem/gogs-sandstorm)
- [sloppy.io](https://github.com/sloppyio/quickstarters/tree/master/gogs)
- [YunoHost](https://github.com/YunoHost-Apps/gogs_ynh)
- [DPlatform](https://github.com/j8r/DPlatform)
## Software and Service Support
- [Drone](https://github.com/drone/drone) (CI)
- [Jenkins](https://wiki.jenkins-ci.org/display/JENKINS/Gogs+Webhook+Plugin) (CI)
- [Fabric8](http://fabric8.io/) (DevOps)
- [Taiga](https://taiga.io/) (Project Management)
- [Puppet](https://forge.puppetlabs.com/Siteminds/gogs) (IT)
- [Kanboard](http://kanboard.net/plugin/gogs-webhook) (Project Management)
- [BearyChat](https://bearychat.com/) (Team Communication)
- [HiWork](http://www.hiwork.cc/) (Team Communication)
- [GitPitch](https://gitpitch.com/) (Markdown Presentations)
### Product Support
## 📦 Software, service and product support
- [Jenkins](https://plugins.jenkins.io/gogs-webhook/) (CI)
- [Puppet](https://forge.puppet.com/modules/Siteminds/gogs) (IT)
- [Synology](https://www.synology.com) (Docker)
- [One Space](http://www.onespace.cc) (App Store)
- [Syncloud](https://syncloud.org/) (App Store)
## Acknowledgments
## 🙇‍♂️ Acknowledgments
- Thanks [Egon Elbre](https://twitter.com/egonelbre) for designing logo.
- Thanks [Crowdin](https://crowdin.com/project/gogs) for providing open source translation plan.
- Thanks [DigitalOcean](https://www.digitalocean.com) for hosting home and demo sites.
- Thanks [KeyCDN](https://www.keycdn.com/) and [QiNiu](http://www.qiniu.com/) for providing CDN service.
<p>This project is proudly supported by:</p>
<p>
<a href="https://m.do.co/c/5aeb02268b55">
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px">
</a>
</p>
## Contributors
Other acknowledgments:
- See [contributors page](https://github.com/gogits/gogs/graphs/contributors) for top 100 contributors.
- Thanks [Egon Elbre](https://twitter.com/egonelbre) for designing the original version of the logo.
- Thanks [Crowdin](https://crowdin.com/project/gogs) for sponsoring open source translation plan.
- Thanks [Buildkite](https://buildkite.com) for sponsoring open source CI/CD plan.
## 👋 Contributors
- See [contributors page](https://github.com/gogs/gogs/graphs/contributors) for top 100 contributors.
- See [TRANSLATORS](conf/locale/TRANSLATORS) for public list of translators.
## License
## ⚖️ License
This project is under the MIT License. See the [LICENSE](https://github.com/gogits/gogs/blob/master/LICENSE) file for the full license text.
This project is under the MIT License. See the [LICENSE](https://github.com/gogs/gogs/blob/main/LICENSE) file for the full license text.

View File

@@ -1,39 +1,37 @@
Gogs [![Build Status](https://travis-ci.org/gogits/gogs.svg?branch=master)](https://travis-ci.org/gogits/gogs) [![Build status](https://ci.appveyor.com/api/projects/status/b9uu5ejl933e2wlt/branch/master?svg=true)](https://ci.appveyor.com/project/Unknwon/gogs/branch/master)
=====================
# Gogs
Gogs 是一款极易搭建的自助 Git 服务。
## 开发目的
## 项目愿景
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 **所有平台**,包括 Linux、Mac OS X、Windows 以及 ARM 平台
Gogs`/gɑgz/`)项目旨在打造一个最简便的方式搭建简单、稳定和可扩展的自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 **所有平台**,包括 Linux、macOS、Windows 和基于 ARM 的操作系统
## 项目概览
## 概览
- 有关基本用法和变更日志,请通过 [使用手册](https://gogs.io/docs/intro) 查看
- 想要先睹为快?直接去 [在线体验](https://try.gogs.io/gogs/gogs) 。
- 使用过程中遇到问题?尝试从 [故障排查](https://gogs.io/docs/intro/troubleshooting.html) 页面或 [用户论坛](https://discuss.gogs.io/) 获取帮助。
- 希望帮助多国语言界面的翻译吗?请立即访问 [详情页面](https://gogs.io/docs/features/i18n.html)
- 请移步[官网](https://gogs.io)查看用户使用文档
- 请通过 [CHANGELOG.md](CHANGELOG.md) 文件查看各个版本的变更历史
- 想要先睹为快?直接去[在线体验](https://try.gogs.io/gogs/gogs)吧!
- 使用过程中遇到问题?尝试[故障排查](https://gogs.io/docs/intro/troubleshooting.html)或者前往[用户论坛](https://discuss.gogs.io/)获取帮助
- 希望帮助多国语言的翻译吗?请查看[本地化文档](https://gogs.io/docs/features/i18n.html)
- 准备搞点事情?请阅读[开发指南](docs/dev/local_development.md)配置开发环境
- 想调用 API 吗?请查看[文档](https://github.com/gogs/docs-api)吧
## 功能特性
## 主要特性
- 支持活动时间线
- 支持 SSH 以及 HTTP/HTTPS 协议
- 支持 SMTP、LDAP 和反向代理的用户认证
- 支持反向代理子路径
- 支持用户、组织和仓库管理系统
- 支持添加和删除仓库协作
- 支持仓库和组织级别 Web 钩子(包括 Slack 和 Discord 集成)
- 支持仓库 Git 钩子和部署密钥
- 支持仓库工单Issue、合并请求Pull Request、Wiki 和保护分支
- 支持迁移和镜像仓库以及它的 Wiki
- 支持在线编辑仓库文件和 Wiki
- 支持自定义源的 Gravatar 和 Federated Avatar
- 支持 Jupyter Notebook
- 支持两步验证登录
- 支持邮件服务
- 支持后台管理面板
- 支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 [TiDB](https://github.com/pingcap/tidb)(通过 MySQL 协议)数据库
- 支持多语言本地化([25 种语言]([more](https://crowdin.com/project/gogs))
- 控制面板、用户页面以及活动时间线
- 通过 SSHHTTPHTTPS 协议操作仓库
- 管理用户、组织和仓库
- 仓库和组织级 Webhook包括 Slack、Discord 和钉钉
- 仓库 Git 钩子、部署密钥和 Git LFS
- 仓库工单Issue、合并请求Pull Request、Wiki、保护分支和多人协作
- 从其它代码平台迁移和镜像仓库以及 Wiki
- 在线编辑仓库文件和 Wiki
- Jupyter Notebook 和 PDF 的渲染
- 通过 SMTP、LDAP、反向代理、GitHub.com 和 GitHub 企业版进行用户认证
- 开启两步验证2FA登录
- 自定义 HTML 模板、静态文件和许多其它组件
- 多样的数据库后端,包括 PostgreSQL、MySQL、SQLite3 和 [TiDB](https://github.com/pingcap/tidb)
- 超过 [31 种语言](https://crowdin.com/project/gogs)的本地化
## 硬件要求
@@ -50,18 +48,14 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
在安装 Gogs 之前,您需要先安装 [基本环境](https://gogs.io/docs/installation)。
然后,您可以通过以下 5 种方式来安装 Gogs
然后,您可以通过以下 6 种方式来安装 Gogs
- [二进制安装](https://gogs.io/docs/installation/install_from_binary.html)
- [源码安装](https://gogs.io/docs/installation/install_from_source.html)
- [包管理安装](https://gogs.io/docs/installation/install_from_packages.html)
- [采用 Docker 部署](https://github.com/gogits/gogs/tree/master/docker)
- [采用 Docker 部署](https://github.com/gogs/gogs/tree/main/docker)
- [通过 Vagrant 安装](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
### 使用教程
- [使用 Gogs 搭建自己的 Git 服务器](https://mynook.info/blog/post/host-your-own-git-server-using-gogs)
- [阿里云上 Ubuntu 14.04 64 位安装 Gogs](http://my.oschina.net/luyao/blog/375654)
- [通过基于 Kubernetes 的 Helm Charts](https://github.com/helm/charts/tree/master/incubator/gogs)
### 云端部署
@@ -72,36 +66,37 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
- [sloppy.io](https://github.com/sloppyio/quickstarters/tree/master/gogs)
- [YunoHost](https://github.com/mbugeia/gogs_ynh)
- [DPlatform](https://github.com/j8r/DPlatform)
- [LunaNode](https://github.com/LunaNode/launchgogs)
## 软件及服务支持
### 使用教程
- [使用 Gogs 搭建自己的 Git 服务器](https://blog.mynook.info/post/host-your-own-git-server-using-gogs/)
- [阿里云上 Ubuntu 14.04 64 位安装 Gogs](http://my.oschina.net/luyao/blog/375654)
## 软件、服务以及产品支持
- [Drone](https://github.com/drone/drone)CI
- [Jenkins](https://wiki.jenkins-ci.org/display/JENKINS/Gogs+Webhook+Plugin)CI
- [Fabric8](http://fabric8.io/)DevOps
- [Jenkins](https://plugins.jenkins.io/gogs-webhook/)CI
- [Taiga](https://taiga.io/)(项目管理)
- [Puppet](https://forge.puppetlabs.com/Siteminds/gogs)IT
- [Kanboard](http://kanboard.net/plugin/gogs-webhook)(项目管理)
- [Puppet](https://forge.puppet.com/Siteminds/gogs)IT
- [Kanboard](https://github.com/kanboard/plugin-gogs-webhook)(项目管理)
- [BearyChat](https://bearychat.com/)(团队交流)
- [HiWork](http://www.hiwork.cc/)(团队交流)
- [GitPitch](https://gitpitch.com/)Markdown 演示)
### 产品支持
- [Synology](https://www.synology.com)Docker
- [One Space](http://www.onespace.cc)(应用商店)
- [Syncloud](https://syncloud.org/)(应用商店)
## 特别鸣谢
- 感谢 [Egon Elbre](https://twitter.com/egonelbre) 设计的 Logo。
- 感谢 [DigitalOcean](https://www.digitalocean.com) 和 [MonoVM](https://monovm.com) 提供服务器赞助。
- 感谢 [Crowdin](https://crowdin.com/project/gogs) 提供免费的开源项目本地化支持。
- 感谢 [DigitalOcean](https://www.digitalocean.com) 提供主站和体验站点的服务器赞助
- 感谢 [KeyCDN](https://www.keycdn.com/) 和 [七牛云存储](http://www.qiniu.com/) 提供 CDN 服务赞助。
- 感谢 [Buildkite](https://buildkite.com) 提供免费的开源项目 CI/CD 支持
## 贡献成员
- 您可以通过查看 [贡献者页面](https://github.com/gogits/gogs/graphs/contributors) 获取 TOP 100 的贡献者列表。
- 您可以通过查看 [贡献者页面](https://github.com/gogs/gogs/graphs/contributors) 获取 TOP 100 的贡献者列表。
- 您可以通过查看 [TRANSLATORS](conf/locale/TRANSLATORS) 文件获取公开的翻译人员列表。
## 授权许可
本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://github.com/gogits/gogs/blob/master/LICENSE) 文件中。
本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://github.com/gogs/gogs/blob/main/LICENSE) 文件中。

27
SECURITY.md Normal file
View File

@@ -0,0 +1,27 @@
# Security policy
## Supported versions
Only the latest minor version releases are supported (e.g., 0.14) for patching vulnerabilities. You can find the latest minor version in the [GitHub releases](https://github.com/gogs/gogs/releases) page.
Existing vulnerability reports are being tracked in [GitHub Security Advisories](https://github.com/gogs/gogs/security/advisories). Not all accepted GHSA are published.
## Vulnerability lifecycle
> [!important]
> Starting **Nov 9, 2023 00:00 UTC**, only security vulnerabilities reported through [GitHub Security Advisories](https://github.com/gogs/gogs/security/advisories/new) are accepted.
> Pre-existing vulnerability reported through https://huntr.dev/ or email (`security@gogs.io`) will continue to be worked through.
1. Report an advisory for the vulnerability.
- Please be aware that **only advisories reported in plain English** will be reviewed.
- We DO NOT accept vulnerabilities cannot be reproduced on the latest `main` commit.
1. Project maintainers review the advisory:
- Ask clarifying questions
- Make sure there was no prior advisory exists for the same vulnerability
- Confirm or deny the vulnerability
1. Once the advisory is accepted, the reporter may submit a patch or wait for project maintainers to patch.
- The latter is usually significantly slower.
1. Patch releases will be made for the supported versions.
1. After 14 days of the release, publish the corresponding advisory on [GitHub Security Advisories](https://github.com/gogs/gogs/security/advisories).
Thank you for making open source community a better place!

101
Taskfile.yml Normal file
View File

@@ -0,0 +1,101 @@
version: '3'
vars:
BINARY_EXT:
sh: echo '{{if eq OS "windows"}}.exe{{end}}'
tasks:
default:
deps: [build]
web:
desc: Build the binary and start the web server
deps: [build]
env:
GOGS_WORK_DIR: '{{.ROOT_DIR}}'
cmds:
- .bin/gogs web
build:
desc: Build the binary
cmds:
- go build -v
-ldflags '
-X "{{.PKG_PATH}}.BuildTime={{.BUILD_TIME}}"
-X "{{.PKG_PATH}}.BuildCommit={{.BUILD_COMMIT}}"
'
-tags '{{.TAGS}}'
-trimpath -o .bin/gogs{{.BINARY_EXT}} ./cmd/gogs
vars:
PKG_PATH: gogs.io/gogs/internal/conf
BUILD_TIME:
sh: date -u '+%Y-%m-%d %I:%M:%S %Z'
BUILD_COMMIT:
sh: git rev-parse HEAD
sources:
- go.mod
- cmd/gogs/*.go
- internal/**/*.go
- conf/**/*
- public/**/*
- templates/**/*
- custom/**/*
method: timestamp
generate-schemadoc:
desc: Generate database schema documentation
cmds:
- go generate ./internal/database/schemadoc
generate:
desc: Run all go:generate commands
cmds:
- go generate ./...
test:
desc: Run all tests.
cmds:
- go test -cover -race ./...
clean:
desc: Cleans up system meta files
cmds:
- find . -name "*.DS_Store" -type f -delete
less:
desc: Generate CSS from LESS files
cmds:
- lessc --clean-css --source-map "public/less/gogs.less" public/css/gogs.min.css
fixme:
desc: Show all occurrences of "FIXME"
cmds:
- grep -rnw "FIXME" internal
todo:
desc: Show all occurrences of "TODO"
cmds:
- grep -rnw "TODO" internal
legacy:
desc: Identify legacy and deprecated lines
cmds:
- grep -rnw "\(LEGACY\|Deprecated\)" internal
drop-test-db:
desc: Drop the test database
cmds:
- |
for dbname in $(psql -Xc "copy (select datname from pg_database where datname like 'gogs-%') to stdout"); do
dropdb "$dbname"
echo "dropped $dbname"
done
lint:
desc: Run all linters
cmds:
- golangci-lint run
docs:
desc: Start docs server
cmds:
- cd docs && mint dev --port 3333

View File

@@ -1,20 +0,0 @@
version: "{build}"
skip_tags: true
clone_folder: c:\gopath\src\github.com\gogits\gogs
clone_depth: 1
environment:
GOPATH: c:\gopath
GOVERSION: 1.7
build: false
deploy: false
install:
- go build -v
notifications:
- provider: Email
to:
- u@gogs.io
on_build_success: false

View File

@@ -1,70 +0,0 @@
// Copyright 2016 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"fmt"
"github.com/urfave/cli"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/pkg/setting"
)
var (
Admin = cli.Command{
Name: "admin",
Usage: "Perform admin operations on command line",
Description: `Allow using internal logic of Gogs without hacking into the source code
to make automatic initialization process more smoothly`,
Subcommands: []cli.Command{
subcmdCreateUser,
},
}
subcmdCreateUser = cli.Command{
Name: "create-user",
Usage: "Create a new user in database",
Action: runCreateUser,
Flags: []cli.Flag{
stringFlag("name", "", "Username"),
stringFlag("password", "", "User password"),
stringFlag("email", "", "User email address"),
boolFlag("admin", "User is an admin"),
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
)
func runCreateUser(c *cli.Context) error {
if !c.IsSet("name") {
return fmt.Errorf("Username is not specified")
} else if !c.IsSet("password") {
return fmt.Errorf("Password is not specified")
} else if !c.IsSet("email") {
return fmt.Errorf("Email is not specified")
}
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setting.NewContext()
models.LoadConfigs()
models.SetEngine()
if err := models.CreateUser(&models.User{
Name: c.String("name"),
Email: c.String("email"),
Passwd: c.String("password"),
IsActive: true,
IsAdmin: c.Bool("admin"),
}); err != nil {
return fmt.Errorf("CreateUser: %v", err)
}
fmt.Printf("New user '%s' has been successfully created!\n", c.String("name"))
return nil
}

View File

@@ -1,136 +0,0 @@
// Copyright 2017 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"fmt"
"io/ioutil"
"os"
"path"
"time"
"github.com/Unknwon/cae/zip"
"github.com/Unknwon/com"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"gopkg.in/ini.v1"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/pkg/setting"
)
var Backup = cli.Command{
Name: "backup",
Usage: "Backup files and database",
Description: `Backup dumps and compresses all related files and database into zip file,
which can be used for migrating Gogs to another server. The output format is meant to be
portable among all supported database engines.`,
Action: runBackup,
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
boolFlag("verbose, v", "Show process details"),
stringFlag("tempdir, t", os.TempDir(), "Temporary directory path"),
stringFlag("target", "./", "Target directory path to save backup archive"),
stringFlag("archive-name", fmt.Sprintf("gogs-backup-%s.zip", time.Now().Format("20060102150405")), "Name of backup archive"),
boolFlag("database-only", "Only dump database"),
boolFlag("exclude-repos", "Exclude repositories"),
},
}
const _ARCHIVE_ROOT_DIR = "gogs-backup"
func runBackup(c *cli.Context) error {
zip.Verbose = c.Bool("verbose")
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setting.NewContext()
models.LoadConfigs()
models.SetEngine()
tmpDir := c.String("tempdir")
if !com.IsExist(tmpDir) {
log.Fatal(0, "'--tempdir' does not exist: %s", tmpDir)
}
rootDir, err := ioutil.TempDir(tmpDir, "gogs-backup-")
if err != nil {
log.Fatal(0, "Fail to create backup root directory '%s': %v", rootDir, err)
}
log.Info("Backup root directory: %s", rootDir)
// Metadata
metaFile := path.Join(rootDir, "metadata.ini")
metadata := ini.Empty()
metadata.Section("").Key("VERSION").SetValue("1")
metadata.Section("").Key("DATE_TIME").SetValue(time.Now().String())
metadata.Section("").Key("GOGS_VERSION").SetValue(setting.AppVer)
if err = metadata.SaveTo(metaFile); err != nil {
log.Fatal(0, "Fail to save metadata '%s': %v", metaFile, err)
}
archiveName := path.Join(c.String("target"), c.String("archive-name"))
log.Info("Packing backup files to: %s", archiveName)
z, err := zip.Create(archiveName)
if err != nil {
log.Fatal(0, "Fail to create backup archive '%s': %v", archiveName, err)
}
if err = z.AddFile(_ARCHIVE_ROOT_DIR+"/metadata.ini", metaFile); err != nil {
log.Fatal(0, "Fail to include 'metadata.ini': %v", err)
}
// Database
dbDir := path.Join(rootDir, "db")
if err = models.DumpDatabase(dbDir); err != nil {
log.Fatal(0, "Fail to dump database: %v", err)
}
if err = z.AddDir(_ARCHIVE_ROOT_DIR+"/db", dbDir); err != nil {
log.Fatal(0, "Fail to include 'db': %v", err)
}
// Custom files
if !c.Bool("database-only") {
if err = z.AddDir(_ARCHIVE_ROOT_DIR+"/custom", setting.CustomPath); err != nil {
log.Fatal(0, "Fail to include 'custom': %v", err)
}
}
// Data files
if !c.Bool("database-only") {
for _, dir := range []string{"attachments", "avatars"} {
dirPath := path.Join(setting.AppDataPath, dir)
if !com.IsDir(dirPath) {
continue
}
if err = z.AddDir(path.Join(_ARCHIVE_ROOT_DIR+"/data", dir), dirPath); err != nil {
log.Fatal(0, "Fail to include 'data': %v", err)
}
}
}
// Repositories
if !c.Bool("exclude-repos") && !c.Bool("database-only") {
reposDump := path.Join(rootDir, "repositories.zip")
log.Info("Dumping repositories in '%s'", setting.RepoRootPath)
if err = zip.PackTo(setting.RepoRootPath, reposDump, true); err != nil {
log.Fatal(0, "Fail to dump repositories: %v", err)
}
log.Info("Repositories dumped to: %s", reposDump)
if err = z.AddFile(_ARCHIVE_ROOT_DIR+"/repositories.zip", reposDump); err != nil {
log.Fatal(0, "Fail to include 'repositories.zip': %v", err)
}
}
if err = z.Close(); err != nil {
log.Fatal(0, "Fail to save backup archive '%s': %v", archiveName, err)
}
os.RemoveAll(rootDir)
log.Info("Backup succeed! Archive is located at: %s", archiveName)
log.Shutdown()
return nil
}

View File

@@ -1,163 +0,0 @@
// +build cert
// Copyright 2009 The Go Authors. All rights reserved.
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"crypto/ecdsa"
"crypto/elliptic"
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"crypto/x509/pkix"
"encoding/pem"
"log"
"math/big"
"net"
"os"
"strings"
"time"
"github.com/urfave/cli"
)
var Cert = cli.Command{
Name: "cert",
Usage: "Generate self-signed certificate",
Description: `Generate a self-signed X.509 certificate for a TLS server.
Outputs to 'cert.pem' and 'key.pem' and will overwrite existing files.`,
Action: runCert,
Flags: []cli.Flag{
stringFlag("host", "", "Comma-separated hostnames and IPs to generate a certificate for"),
stringFlag("ecdsa-curve", "", "ECDSA curve to use to generate a key. Valid values are P224, P256, P384, P521"),
intFlag("rsa-bits", 2048, "Size of RSA key to generate. Ignored if --ecdsa-curve is set"),
stringFlag("start-date", "", "Creation date formatted as Jan 1 15:04:05 2011"),
durationFlag("duration", 365*24*time.Hour, "Duration that certificate is valid for"),
boolFlag("ca", "whether this cert should be its own Certificate Authority"),
},
}
func publicKey(priv interface{}) interface{} {
switch k := priv.(type) {
case *rsa.PrivateKey:
return &k.PublicKey
case *ecdsa.PrivateKey:
return &k.PublicKey
default:
return nil
}
}
func pemBlockForKey(priv interface{}) *pem.Block {
switch k := priv.(type) {
case *rsa.PrivateKey:
return &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(k)}
case *ecdsa.PrivateKey:
b, err := x509.MarshalECPrivateKey(k)
if err != nil {
log.Fatalf("Unable to marshal ECDSA private key: %v\n", err)
}
return &pem.Block{Type: "EC PRIVATE KEY", Bytes: b}
default:
return nil
}
}
func runCert(ctx *cli.Context) error {
if len(ctx.String("host")) == 0 {
log.Fatal("Missing required --host parameter")
}
var priv interface{}
var err error
switch ctx.String("ecdsa-curve") {
case "":
priv, err = rsa.GenerateKey(rand.Reader, ctx.Int("rsa-bits"))
case "P224":
priv, err = ecdsa.GenerateKey(elliptic.P224(), rand.Reader)
case "P256":
priv, err = ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
case "P384":
priv, err = ecdsa.GenerateKey(elliptic.P384(), rand.Reader)
case "P521":
priv, err = ecdsa.GenerateKey(elliptic.P521(), rand.Reader)
default:
log.Fatalf("Unrecognized elliptic curve: %q", ctx.String("ecdsa-curve"))
}
if err != nil {
log.Fatalf("Failed to generate private key: %s", err)
}
var notBefore time.Time
if len(ctx.String("start-date")) == 0 {
notBefore = time.Now()
} else {
notBefore, err = time.Parse("Jan 2 15:04:05 2006", ctx.String("start-date"))
if err != nil {
log.Fatalf("Failed to parse creation date: %s", err)
}
}
notAfter := notBefore.Add(ctx.Duration("duration"))
serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
if err != nil {
log.Fatalf("Failed to generate serial number: %s", err)
}
template := x509.Certificate{
SerialNumber: serialNumber,
Subject: pkix.Name{
Organization: []string{"Acme Co"},
CommonName: "Gogs",
},
NotBefore: notBefore,
NotAfter: notAfter,
KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
BasicConstraintsValid: true,
}
hosts := strings.Split(ctx.String("host"), ",")
for _, h := range hosts {
if ip := net.ParseIP(h); ip != nil {
template.IPAddresses = append(template.IPAddresses, ip)
} else {
template.DNSNames = append(template.DNSNames, h)
}
}
if ctx.Bool("ca") {
template.IsCA = true
template.KeyUsage |= x509.KeyUsageCertSign
}
derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(priv), priv)
if err != nil {
log.Fatalf("Failed to create certificate: %s", err)
}
certOut, err := os.Create("cert.pem")
if err != nil {
log.Fatalf("Failed to open cert.pem for writing: %s", err)
}
pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
certOut.Close()
log.Println("Written cert.pem")
keyOut, err := os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
if err != nil {
log.Fatalf("Failed to open key.pem for writing: %v\n", err)
}
pem.Encode(keyOut, pemBlockForKey(priv))
keyOut.Close()
log.Println("Written key.pem")
return nil
}

View File

@@ -1,28 +0,0 @@
// +build !cert
// Copyright 2009 The Go Authors. All rights reserved.
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"fmt"
"os"
"github.com/urfave/cli"
)
var Cert = cli.Command{
Name: "cert",
Usage: "Generate self-signed certificate",
Description: `Please use build tags "cert" to rebuild Gogs in order to have this ability`,
Action: runCert,
}
func runCert(ctx *cli.Context) error {
fmt.Println("Command cert not available, please use build tags 'cert' to rebuild.")
os.Exit(1)
return nil
}

View File

@@ -1,42 +0,0 @@
// Copyright 2015 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"time"
"github.com/urfave/cli"
)
func stringFlag(name, value, usage string) cli.StringFlag {
return cli.StringFlag{
Name: name,
Value: value,
Usage: usage,
}
}
func boolFlag(name, usage string) cli.BoolFlag {
return cli.BoolFlag{
Name: name,
Usage: usage,
}
}
func intFlag(name string, value int, usage string) cli.IntFlag {
return cli.IntFlag{
Name: name,
Value: value,
Usage: usage,
}
}
func durationFlag(name string, value time.Duration, usage string) cli.DurationFlag {
return cli.DurationFlag{
Name: name,
Value: value,
Usage: usage,
}
}

189
cmd/gogs/admin.go Normal file
View File

@@ -0,0 +1,189 @@
package main
import (
"context"
"fmt"
"reflect"
"runtime"
"github.com/cockroachdb/errors"
"github.com/urfave/cli"
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/database"
)
var (
adminCommand = cli.Command{
Name: "admin",
Usage: "Perform admin operations on command line",
Description: `Allow using internal logic of Gogs without hacking into the source code
to make automatic initialization process more smoothly`,
Subcommands: []cli.Command{
subcmdCreateUser,
subcmdDeleteInactivateUsers,
subcmdDeleteRepositoryArchives,
subcmdDeleteMissingRepositories,
subcmdGitGcRepos,
subcmdRewriteAuthorizedKeys,
subcmdSyncRepositoryHooks,
subcmdReinitMissingRepositories,
},
}
subcmdCreateUser = cli.Command{
Name: "create-user",
Usage: "Create a new user in database",
Action: runCreateUser,
Flags: []cli.Flag{
stringFlag("name", "", "Username"),
stringFlag("password", "", "User password"),
stringFlag("email", "", "User email address"),
boolFlag("admin", "User is an admin"),
stringFlag("config, c", "", "Custom configuration file path"),
},
}
subcmdDeleteInactivateUsers = cli.Command{
Name: "delete-inactive-users",
Usage: "Delete all inactive accounts",
Action: adminDashboardOperation(
func() error { return database.Handle.Users().DeleteInactivated() },
"All inactivated accounts have been deleted successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
},
}
subcmdDeleteRepositoryArchives = cli.Command{
Name: "delete-repository-archives",
Usage: "Delete all repositories archives",
Action: adminDashboardOperation(
database.DeleteRepositoryArchives,
"All repositories archives have been deleted successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
},
}
subcmdDeleteMissingRepositories = cli.Command{
Name: "delete-missing-repositories",
Usage: "Delete all repository records that lost Git files",
Action: adminDashboardOperation(
database.DeleteMissingRepositories,
"All repositories archives have been deleted successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
},
}
subcmdGitGcRepos = cli.Command{
Name: "collect-garbage",
Usage: "Do garbage collection on repositories",
Action: adminDashboardOperation(
database.GitGcRepos,
"All repositories have done garbage collection successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
},
}
subcmdRewriteAuthorizedKeys = cli.Command{
Name: "rewrite-authorized-keys",
Usage: "Rewrite '.ssh/authorized_keys' file (caution: non-Gogs keys will be lost)",
Action: adminDashboardOperation(
database.RewriteAuthorizedKeys,
"All public keys have been rewritten successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
},
}
subcmdSyncRepositoryHooks = cli.Command{
Name: "resync-hooks",
Usage: "Resync pre-receive, update and post-receive hooks",
Action: adminDashboardOperation(
database.SyncRepositoryHooks,
"All repositories' pre-receive, update and post-receive hooks have been resynced successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
},
}
subcmdReinitMissingRepositories = cli.Command{
Name: "reinit-missing-repositories",
Usage: "Reinitialize all repository records that lost Git files",
Action: adminDashboardOperation(
database.ReinitMissingRepositories,
"All repository records that lost Git files have been reinitialized successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
},
}
)
func runCreateUser(c *cli.Context) error {
if !c.IsSet("name") {
return errors.New("Username is not specified")
} else if !c.IsSet("password") {
return errors.New("Password is not specified")
} else if !c.IsSet("email") {
return errors.New("Email is not specified")
}
err := conf.Init(c.String("config"))
if err != nil {
return errors.Wrap(err, "init configuration")
}
conf.InitLogging(true)
if _, err = database.SetEngine(); err != nil {
return errors.Wrap(err, "set engine")
}
user, err := database.Handle.Users().Create(
context.Background(),
c.String("name"),
c.String("email"),
database.CreateUserOptions{
Password: c.String("password"),
Activated: true,
Admin: c.Bool("admin"),
},
)
if err != nil {
return errors.Wrap(err, "create user")
}
fmt.Printf("New user %q has been successfully created!\n", user.Name)
return nil
}
func adminDashboardOperation(operation func() error, successMessage string) func(*cli.Context) error {
return func(c *cli.Context) error {
err := conf.Init(c.String("config"))
if err != nil {
return errors.Wrap(err, "init configuration")
}
conf.InitLogging(true)
if _, err = database.SetEngine(); err != nil {
return errors.Wrap(err, "set engine")
}
if err := operation(); err != nil {
functionName := runtime.FuncForPC(reflect.ValueOf(operation).Pointer()).Name()
return errors.Newf("%s: %v", functionName, err)
}
fmt.Printf("%s\n", successMessage)
return nil
}
}

194
cmd/gogs/backup.go Normal file
View File

@@ -0,0 +1,194 @@
package main
import (
"context"
"fmt"
"os"
"path"
"path/filepath"
"strconv"
"time"
"github.com/cockroachdb/errors"
"github.com/unknwon/cae/zip"
"github.com/urfave/cli"
"gopkg.in/ini.v1"
log "unknwon.dev/clog/v2"
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/database"
"gogs.io/gogs/internal/osutil"
)
var backupCommand = cli.Command{
Name: "backup",
Usage: "Backup files and database",
Description: `Backup dumps and compresses all related files and database into zip file,
which can be used for migrating Gogs to another server. The output format is meant to be
portable among all supported database engines.`,
Action: runBackup,
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
boolFlag("verbose, v", "Show process details"),
stringFlag("tempdir, t", os.TempDir(), "Temporary directory path"),
stringFlag("target", "./", "Target directory path to save backup archive"),
stringFlag("archive-name", fmt.Sprintf("gogs-backup-%s.zip", time.Now().Format("20060102150405")), "Name of backup archive"),
boolFlag("database-only", "Only dump database"),
boolFlag("exclude-mirror-repos", "Exclude mirror repositories"),
boolFlag("exclude-repos", "Exclude repositories"),
},
}
const (
currentBackupFormatVersion = 1
archiveRootDir = "gogs-backup"
)
func runBackup(c *cli.Context) error {
zip.Verbose = c.Bool("verbose")
err := conf.Init(c.String("config"))
if err != nil {
return errors.Wrap(err, "init configuration")
}
conf.InitLogging(true)
conn, err := database.SetEngine()
if err != nil {
return errors.Wrap(err, "set engine")
}
tmpDir := c.String("tempdir")
if !osutil.Exist(tmpDir) {
log.Fatal("'--tempdir' does not exist: %s", tmpDir)
}
rootDir, err := os.MkdirTemp(tmpDir, "gogs-backup-")
if err != nil {
log.Fatal("Failed to create backup root directory '%s': %v", rootDir, err)
}
log.Info("Backup root directory: %s", rootDir)
// Metadata
metaFile := path.Join(rootDir, "metadata.ini")
metadata := ini.Empty()
metadata.Section("").Key("VERSION").SetValue(strconv.Itoa(currentBackupFormatVersion))
metadata.Section("").Key("DATE_TIME").SetValue(time.Now().String())
metadata.Section("").Key("GOGS_VERSION").SetValue(conf.App.Version)
if err = metadata.SaveTo(metaFile); err != nil {
log.Fatal("Failed to save metadata '%s': %v", metaFile, err)
}
archiveName := filepath.Join(c.String("target"), c.String("archive-name"))
log.Info("Packing backup files to: %s", archiveName)
z, err := zip.Create(archiveName)
if err != nil {
log.Fatal("Failed to create backup archive '%s': %v", archiveName, err)
}
if err = z.AddFile(archiveRootDir+"/metadata.ini", metaFile); err != nil {
log.Fatal("Failed to include 'metadata.ini': %v", err)
}
// Database
dbDir := filepath.Join(rootDir, "db")
if err = database.DumpDatabase(context.Background(), conn, dbDir, c.Bool("verbose")); err != nil {
log.Fatal("Failed to dump database: %v", err)
}
if err = z.AddDir(archiveRootDir+"/db", dbDir); err != nil {
log.Fatal("Failed to include 'db': %v", err)
}
if !c.Bool("database-only") {
// Custom files
err = addCustomDirToBackup(z)
if err != nil {
log.Fatal("Failed to add custom directory to backup: %v", err)
}
// Data files
for _, dir := range []string{"ssh", "attachments", "avatars", "repo-avatars"} {
dirPath := filepath.Join(conf.Server.AppDataPath, dir)
if !osutil.IsDir(dirPath) {
continue
}
if err = z.AddDir(path.Join(archiveRootDir+"/data", dir), dirPath); err != nil {
log.Fatal("Failed to include 'data': %v", err)
}
}
}
// Repositories
if !c.Bool("exclude-repos") && !c.Bool("database-only") {
reposDump := filepath.Join(rootDir, "repositories.zip")
log.Info("Dumping repositories in %q", conf.Repository.Root)
if c.Bool("exclude-mirror-repos") {
repos, err := database.GetNonMirrorRepositories()
if err != nil {
log.Fatal("Failed to get non-mirror repositories: %v", err)
}
reposZip, err := zip.Create(reposDump)
if err != nil {
log.Fatal("Failed to create %q: %v", reposDump, err)
}
baseDir := filepath.Base(conf.Repository.Root)
for _, r := range repos {
name := r.FullName() + ".git"
if err := reposZip.AddDir(filepath.Join(baseDir, name), filepath.Join(conf.Repository.Root, name)); err != nil {
log.Fatal("Failed to add %q: %v", name, err)
}
}
if err = reposZip.Close(); err != nil {
log.Fatal("Failed to save %q: %v", reposDump, err)
}
} else {
if err = zip.PackTo(conf.Repository.Root, reposDump, true); err != nil {
log.Fatal("Failed to dump repositories: %v", err)
}
}
log.Info("Repositories dumped to: %s", reposDump)
if err = z.AddFile(archiveRootDir+"/repositories.zip", reposDump); err != nil {
log.Fatal("Failed to include %q: %v", reposDump, err)
}
}
if err = z.Close(); err != nil {
log.Fatal("Failed to save backup archive '%s': %v", archiveName, err)
}
_ = os.RemoveAll(rootDir)
log.Info("Backup succeed! Archive is located at: %s", archiveName)
log.Stop()
return nil
}
func addCustomDirToBackup(z *zip.ZipArchive) error {
customDir := conf.CustomDir()
entries, err := os.ReadDir(customDir)
if err != nil {
return errors.Wrap(err, "list custom directory entries")
}
for _, e := range entries {
if e.Name() == "data" {
// Skip the "data" directory because it lives under the "custom" directory in
// the Docker setup and will be backed up separately.
log.Trace(`Skipping "data" directory in custom directory`)
continue
}
add := z.AddFile
if e.IsDir() {
add = z.AddDir
}
err = add(
fmt.Sprintf("%s/custom/%s", archiveRootDir, e.Name()),
filepath.Join(customDir, e.Name()),
)
if err != nil {
return errors.Wrapf(err, "add %q", e.Name())
}
}
return nil
}

20
cmd/gogs/cmd.go Normal file
View File

@@ -0,0 +1,20 @@
package main
import (
"github.com/urfave/cli"
)
func stringFlag(name, value, usage string) cli.StringFlag {
return cli.StringFlag{
Name: name,
Value: value,
Usage: usage,
}
}
func boolFlag(name, usage string) cli.BoolFlag {
return cli.BoolFlag{
Name: name,
Usage: usage,
}
}

272
cmd/gogs/hook.go Normal file
View File

@@ -0,0 +1,272 @@
package main
import (
"bufio"
"bytes"
"crypto/tls"
"fmt"
"net/url"
"os"
"os/exec"
"path/filepath"
"strconv"
"strings"
"github.com/urfave/cli"
log "unknwon.dev/clog/v2"
"github.com/gogs/git-module"
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/database"
"gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/httplib"
"gogs.io/gogs/internal/osutil"
)
var (
hookCommand = cli.Command{
Name: "hook",
Usage: "Delegate commands to corresponding Git hooks",
Description: "All sub-commands should only be called by Git",
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
},
Subcommands: []cli.Command{
subcmdHookPreReceive,
subcmdHookUpadte,
subcmdHookPostReceive,
},
}
subcmdHookPreReceive = cli.Command{
Name: "pre-receive",
Usage: "Delegate pre-receive Git hook",
Description: "This command should only be called by Git",
Action: runHookPreReceive,
}
subcmdHookUpadte = cli.Command{
Name: "update",
Usage: "Delegate update Git hook",
Description: "This command should only be called by Git",
Action: runHookUpdate,
}
subcmdHookPostReceive = cli.Command{
Name: "post-receive",
Usage: "Delegate post-receive Git hook",
Description: "This command should only be called by Git",
Action: runHookPostReceive,
}
)
func runHookPreReceive(c *cli.Context) error {
if os.Getenv("SSH_ORIGINAL_COMMAND") == "" {
return nil
}
setup(c, "pre-receive.log", true)
isWiki := strings.Contains(os.Getenv(database.EnvRepoCustomHooksPath), ".wiki.git/")
buf := bytes.NewBuffer(nil)
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
buf.Write(scanner.Bytes())
buf.WriteByte('\n')
if isWiki {
continue
}
fields := bytes.Fields(scanner.Bytes())
if len(fields) != 3 {
continue
}
oldCommitID := string(fields[0])
newCommitID := string(fields[1])
branchName := git.RefShortName(string(fields[2]))
// Branch protection
repoID, _ := strconv.ParseInt(os.Getenv(database.EnvRepoID), 10, 64)
protectBranch, err := database.GetProtectBranchOfRepoByName(repoID, branchName)
if err != nil {
if database.IsErrBranchNotExist(err) {
continue
}
fail("Internal error", "GetProtectBranchOfRepoByName [repo_id: %d, branch: %s]: %v", repoID, branchName, err)
}
if !protectBranch.Protected {
continue
}
// Whitelist users can bypass require pull request check
bypassRequirePullRequest := false
// Check if user is in whitelist when enabled
userID, _ := strconv.ParseInt(os.Getenv(database.EnvAuthUserID), 10, 64)
if protectBranch.EnableWhitelist {
if !database.IsUserInProtectBranchWhitelist(repoID, userID, branchName) {
fail(fmt.Sprintf("Branch '%s' is protected and you are not in the push whitelist", branchName), "")
}
bypassRequirePullRequest = true
}
// Check if branch allows direct push
if !bypassRequirePullRequest && protectBranch.RequirePullRequest {
fail(fmt.Sprintf("Branch '%s' is protected and commits must be merged through pull request", branchName), "")
}
// check and deletion
if newCommitID == git.EmptyID {
fail(fmt.Sprintf("Branch '%s' is protected from deletion", branchName), "")
}
// Check force push
output, err := git.NewCommand("rev-list", "--max-count=1", oldCommitID, "^"+newCommitID).
RunInDir(database.RepoPath(os.Getenv(database.EnvRepoOwnerName), os.Getenv(database.EnvRepoName)))
if err != nil {
fail("Internal error", "Failed to detect force push: %v", err)
} else if len(output) > 0 {
fail(fmt.Sprintf("Branch '%s' is protected from force push", branchName), "")
}
}
customHooksPath := filepath.Join(os.Getenv(database.EnvRepoCustomHooksPath), "pre-receive")
if !osutil.IsFile(customHooksPath) {
return nil
}
var hookCmd *exec.Cmd
if conf.IsWindowsRuntime() {
hookCmd = exec.Command("bash.exe", "custom_hooks/pre-receive")
} else {
hookCmd = exec.Command(customHooksPath)
}
hookCmd.Dir = database.RepoPath(os.Getenv(database.EnvRepoOwnerName), os.Getenv(database.EnvRepoName))
hookCmd.Stdout = os.Stdout
hookCmd.Stdin = buf
hookCmd.Stderr = os.Stderr
if err := hookCmd.Run(); err != nil {
fail("Internal error", "Failed to execute custom pre-receive hook: %v", err)
}
return nil
}
func runHookUpdate(c *cli.Context) error {
if os.Getenv("SSH_ORIGINAL_COMMAND") == "" {
return nil
}
setup(c, "update.log", false)
args := c.Args()
if len(args) != 3 {
fail("Arguments received are not equal to three", "Arguments received are not equal to three")
} else if args[0] == "" {
fail("First argument 'refName' is empty", "First argument 'refName' is empty")
}
customHooksPath := filepath.Join(os.Getenv(database.EnvRepoCustomHooksPath), "update")
if !osutil.IsFile(customHooksPath) {
return nil
}
var hookCmd *exec.Cmd
if conf.IsWindowsRuntime() {
hookCmd = exec.Command("bash.exe", append([]string{"custom_hooks/update"}, args...)...)
} else {
hookCmd = exec.Command(customHooksPath, args...)
}
hookCmd.Dir = database.RepoPath(os.Getenv(database.EnvRepoOwnerName), os.Getenv(database.EnvRepoName))
hookCmd.Stdout = os.Stdout
hookCmd.Stdin = os.Stdin
hookCmd.Stderr = os.Stderr
if err := hookCmd.Run(); err != nil {
fail("Internal error", "Failed to execute custom pre-receive hook: %v", err)
}
return nil
}
func runHookPostReceive(c *cli.Context) error {
if os.Getenv("SSH_ORIGINAL_COMMAND") == "" {
return nil
}
setup(c, "post-receive.log", true)
// Post-receive hook does more than just gather Git information,
// so we need to setup additional services for email notifications.
email.NewContext()
isWiki := strings.Contains(os.Getenv(database.EnvRepoCustomHooksPath), ".wiki.git/")
buf := bytes.NewBuffer(nil)
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
buf.Write(scanner.Bytes())
buf.WriteByte('\n')
// TODO: support news feeds for wiki
if isWiki {
continue
}
fields := bytes.Fields(scanner.Bytes())
if len(fields) != 3 {
continue
}
pusherID, _ := strconv.ParseInt(os.Getenv(database.EnvAuthUserID), 10, 64)
options := database.PushUpdateOptions{
OldCommitID: string(fields[0]),
NewCommitID: string(fields[1]),
FullRefspec: string(fields[2]),
PusherID: pusherID,
PusherName: os.Getenv(database.EnvAuthUserName),
RepoUserName: os.Getenv(database.EnvRepoOwnerName),
RepoName: os.Getenv(database.EnvRepoName),
}
if err := database.PushUpdate(options); err != nil {
log.Error("PushUpdate: %v", err)
}
// Ask for running deliver hook and test pull request tasks
q := make(url.Values)
q.Add("branch", git.RefShortName(options.FullRefspec))
q.Add("secret", os.Getenv(database.EnvRepoOwnerSaltMd5))
q.Add("pusher", os.Getenv(database.EnvAuthUserID))
reqURL := fmt.Sprintf("%s%s/%s/tasks/trigger?%s", conf.Server.LocalRootURL, options.RepoUserName, options.RepoName, q.Encode())
log.Trace("Trigger task: %s", reqURL)
resp, err := httplib.Get(reqURL).
SetTLSClientConfig(&tls.Config{
InsecureSkipVerify: true,
}).Response()
if err == nil {
_ = resp.Body.Close()
if resp.StatusCode/100 != 2 {
log.Error("Failed to trigger task: unsuccessful response code %d", resp.StatusCode)
}
} else {
log.Error("Failed to trigger task: %v", err)
}
}
customHooksPath := filepath.Join(os.Getenv(database.EnvRepoCustomHooksPath), "post-receive")
if !osutil.IsFile(customHooksPath) {
return nil
}
var hookCmd *exec.Cmd
if conf.IsWindowsRuntime() {
hookCmd = exec.Command("bash.exe", "custom_hooks/post-receive")
} else {
hookCmd = exec.Command(customHooksPath)
}
hookCmd.Dir = database.RepoPath(os.Getenv(database.EnvRepoOwnerName), os.Getenv(database.EnvRepoName))
hookCmd.Stdout = os.Stdout
hookCmd.Stdin = buf
hookCmd.Stderr = os.Stderr
if err := hookCmd.Run(); err != nil {
fail("Internal error", "Failed to execute custom post-receive hook: %v", err)
}
return nil
}

107
cmd/gogs/import.go Normal file
View File

@@ -0,0 +1,107 @@
package main
import (
"bufio"
"bytes"
"fmt"
"os"
"path/filepath"
"time"
"github.com/cockroachdb/errors"
"github.com/urfave/cli"
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/osutil"
)
var (
importCommand = cli.Command{
Name: "import",
Usage: "Import portable data as local Gogs data",
Description: `Allow user import data from other Gogs installations to local instance
without manually hacking the data files`,
Subcommands: []cli.Command{
subcmdImportLocale,
},
}
subcmdImportLocale = cli.Command{
Name: "locale",
Usage: "Import locale files to local repository",
Action: runImportLocale,
Flags: []cli.Flag{
stringFlag("source", "", "Source directory that stores new locale files"),
stringFlag("target", "", "Target directory that stores old locale files"),
stringFlag("config, c", "", "Custom configuration file path"),
},
}
)
func runImportLocale(c *cli.Context) error {
if !c.IsSet("source") {
return errors.New("source directory is not specified")
} else if !c.IsSet("target") {
return errors.New("target directory is not specified")
}
if !osutil.IsDir(c.String("source")) {
return errors.Newf("source directory %q does not exist or is not a directory", c.String("source"))
} else if !osutil.IsDir(c.String("target")) {
return errors.Newf("target directory %q does not exist or is not a directory", c.String("target"))
}
err := conf.Init(c.String("config"))
if err != nil {
return errors.Wrap(err, "init configuration")
}
now := time.Now()
var line []byte
badChars := []byte(`="`)
escapedQuotes := []byte(`\"`)
regularQuotes := []byte(`"`)
// Cut out en-US.
for _, lang := range conf.I18n.Langs[1:] {
name := fmt.Sprintf("locale_%s.ini", lang)
source := filepath.Join(c.String("source"), name)
target := filepath.Join(c.String("target"), name)
if !osutil.IsFile(source) {
continue
}
// Crowdin surrounds double quotes for strings contain quotes inside,
// this breaks INI parser, we need to fix that.
sr, err := os.Open(source)
if err != nil {
return errors.Newf("open: %v", err)
}
tw, err := os.Create(target)
if err != nil {
return errors.Newf("create: %v", err)
}
scanner := bufio.NewScanner(sr)
for scanner.Scan() {
line = scanner.Bytes()
idx := bytes.Index(line, badChars)
if idx > -1 && line[len(line)-1] == '"' {
// We still want the "=" sign
line = append(line[:idx+1], line[idx+2:len(line)-1]...)
line = bytes.ReplaceAll(line, escapedQuotes, regularQuotes)
}
_, _ = tw.Write(line)
_, _ = tw.WriteString("\n")
}
_ = sr.Close()
_ = tw.Close()
// Modification time of files from Crowdin often ahead of current,
// so we need to set back to current.
_ = os.Chtimes(target, now, now)
}
fmt.Println("Locale files has been successfully imported!")
return nil
}

34
cmd/gogs/main.go Normal file
View File

@@ -0,0 +1,34 @@
// Gogs is a painless self-hosted Git Service.
package main
import (
"os"
"github.com/urfave/cli"
log "unknwon.dev/clog/v2"
"gogs.io/gogs/internal/conf"
)
func init() {
conf.App.Version = "0.15.0+dev"
}
func main() {
app := cli.NewApp()
app.Name = "Gogs"
app.Usage = "A painless self-hosted Git service"
app.Version = conf.App.Version
app.Commands = []cli.Command{
webCommand,
servCommand,
hookCommand,
adminCommand,
importCommand,
backupCommand,
restoreCommand,
}
if err := app.Run(os.Args); err != nil {
log.Fatal("Failed to start application: %v", err)
}
}

161
cmd/gogs/restore.go Normal file
View File

@@ -0,0 +1,161 @@
package main
import (
"context"
"os"
"path"
"path/filepath"
"github.com/cockroachdb/errors"
"github.com/unknwon/cae/zip"
"github.com/urfave/cli"
"gopkg.in/ini.v1"
log "unknwon.dev/clog/v2"
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/database"
"gogs.io/gogs/internal/osutil"
"gogs.io/gogs/internal/semverutil"
)
var restoreCommand = cli.Command{
Name: "restore",
Usage: "Restore files and database from backup",
Description: `Restore imports all related files and database from a backup archive.
The backup version must lower or equal to current Gogs version. You can also import
backup from other database engines, which is useful for database migrating.
If corresponding files or database tables are not presented in the archive, they will
be skipped and remain unchanged.`,
Action: runRestore,
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
boolFlag("verbose, v", "Show process details"),
stringFlag("tempdir, t", os.TempDir(), "Temporary directory path"),
stringFlag("from", "", "Path to backup archive"),
boolFlag("database-only", "Only import database"),
boolFlag("exclude-repos", "Exclude repositories"),
},
}
// lastSupportedVersionOfFormat returns the last supported version of the backup archive
// format that is able to import.
var lastSupportedVersionOfFormat = map[int]string{}
func runRestore(c *cli.Context) error {
zip.Verbose = c.Bool("verbose")
tmpDir := c.String("tempdir")
if !osutil.IsDir(tmpDir) {
log.Fatal("'--tempdir' does not exist: %s", tmpDir)
}
archivePath := path.Join(tmpDir, archiveRootDir)
// Make sure there was no leftover and also clean up afterwards
err := os.RemoveAll(archivePath)
if err != nil {
log.Fatal("Failed to clean up previous leftover in %q: %v", archivePath, err)
}
defer func() { _ = os.RemoveAll(archivePath) }()
log.Info("Restoring backup from: %s", c.String("from"))
err = zip.ExtractTo(c.String("from"), tmpDir)
if err != nil {
log.Fatal("Failed to extract backup archive: %v", err)
}
// Check backup version
metaFile := filepath.Join(archivePath, "metadata.ini")
if !osutil.IsFile(metaFile) {
log.Fatal("File 'metadata.ini' is missing")
}
metadata, err := ini.Load(metaFile)
if err != nil {
log.Fatal("Failed to load metadata '%s': %v", metaFile, err)
}
backupVersion := metadata.Section("").Key("GOGS_VERSION").MustString("999.0")
if semverutil.Compare(conf.App.Version, "<", backupVersion) {
log.Fatal("Current Gogs version is lower than backup version: %s < %s", conf.App.Version, backupVersion)
}
formatVersion := metadata.Section("").Key("VERSION").MustInt()
if formatVersion == 0 {
log.Fatal("Failed to determine the backup format version from metadata '%s': %s", metaFile, "VERSION is not presented")
}
if formatVersion != currentBackupFormatVersion {
log.Fatal("Backup format version found is %d but this binary only supports %d\nThe last known version that is able to import your backup is %s",
formatVersion, currentBackupFormatVersion, lastSupportedVersionOfFormat[formatVersion])
}
// If config file is not present in backup, user must set this file via flag.
// Otherwise, it's optional to set config file flag.
configFile := filepath.Join(archivePath, "custom", "conf", "app.ini")
var customConf string
if c.IsSet("config") {
customConf = c.String("config")
} else if !osutil.IsFile(configFile) {
log.Fatal("'--config' is not specified and custom config file is not found in backup")
} else {
customConf = configFile
}
err = conf.Init(customConf)
if err != nil {
return errors.Wrap(err, "init configuration")
}
conf.InitLogging(true)
conn, err := database.SetEngine()
if err != nil {
return errors.Wrap(err, "set engine")
}
// Database
dbDir := path.Join(archivePath, "db")
if err = database.ImportDatabase(context.Background(), conn, dbDir, c.Bool("verbose")); err != nil {
log.Fatal("Failed to import database: %v", err)
}
if !c.Bool("database-only") {
// Custom files
if osutil.IsDir(conf.CustomDir()) {
if err = os.Rename(conf.CustomDir(), conf.CustomDir()+".bak"); err != nil {
log.Fatal("Failed to backup current 'custom': %v", err)
}
}
if err = os.Rename(filepath.Join(archivePath, "custom"), conf.CustomDir()); err != nil {
log.Fatal("Failed to import 'custom': %v", err)
}
// Data files
_ = os.MkdirAll(conf.Server.AppDataPath, os.ModePerm)
for _, dir := range []string{"attachments", "avatars", "repo-avatars"} {
// Skip if backup archive does not have corresponding data
srcPath := filepath.Join(archivePath, "data", dir)
if !osutil.IsDir(srcPath) {
continue
}
dirPath := filepath.Join(conf.Server.AppDataPath, dir)
if osutil.IsDir(dirPath) {
if err = os.Rename(dirPath, dirPath+".bak"); err != nil {
log.Fatal("Failed to backup current 'data': %v", err)
}
}
if err = os.Rename(srcPath, dirPath); err != nil {
log.Fatal("Failed to import 'data': %v", err)
}
}
}
// Repositories
reposPath := filepath.Join(archivePath, "repositories.zip")
if !c.Bool("exclude-repos") && !c.Bool("database-only") && osutil.IsFile(reposPath) {
if err := zip.ExtractTo(reposPath, filepath.Dir(conf.Repository.Root)); err != nil {
log.Fatal("Failed to extract 'repositories.zip': %v", err)
}
}
log.Info("Restore succeed!")
log.Stop()
return nil
}

280
cmd/gogs/serv.go Normal file
View File

@@ -0,0 +1,280 @@
package main
import (
"context"
"fmt"
"os"
"os/exec"
"path/filepath"
"strconv"
"strings"
"time"
"github.com/urfave/cli"
log "unknwon.dev/clog/v2"
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/database"
)
const (
accessDeniedMessage = "Repository does not exist or you do not have access"
)
var servCommand = cli.Command{
Name: "serv",
Usage: "This command should only be called by SSH shell",
Description: `Serv provide access auth for repositories`,
Action: runServ,
Flags: []cli.Flag{
stringFlag("config, c", "", "Custom configuration file path"),
},
}
// fail prints user message to the Git client (i.e. os.Stderr) and
// logs error message on the server side. When not in "prod" mode,
// error message is also printed to the client for easier debugging.
func fail(userMessage, errMessage string, args ...any) {
_, _ = fmt.Fprintln(os.Stderr, "Gogs:", userMessage)
if len(errMessage) > 0 {
if !conf.IsProdMode() {
fmt.Fprintf(os.Stderr, errMessage+"\n", args...)
}
log.Error(errMessage, args...)
}
log.Stop()
os.Exit(1)
}
func setup(c *cli.Context, logFile string, connectDB bool) {
conf.HookMode = true
var customConf string
if c.IsSet("config") {
customConf = c.String("config")
} else if c.GlobalIsSet("config") {
customConf = c.GlobalString("config")
}
err := conf.Init(customConf)
if err != nil {
fail("Internal error", "Failed to init configuration: %v", err)
}
conf.InitLogging(true)
level := log.LevelTrace
if conf.IsProdMode() {
level = log.LevelError
}
err = log.NewFile(log.FileConfig{
Level: level,
Filename: filepath.Join(conf.Log.RootPath, "hooks", logFile),
FileRotationConfig: log.FileRotationConfig{
Rotate: true,
Daily: true,
MaxDays: 3,
},
})
if err != nil {
fail("Internal error", "Failed to init file logger: %v", err)
}
log.Remove(log.DefaultConsoleName) // Remove the primary logger
if !connectDB {
return
}
if conf.UseSQLite3 {
_ = os.Chdir(conf.WorkDir())
}
if _, err := database.SetEngine(); err != nil {
fail("Internal error", "Failed to set database engine: %v", err)
}
}
func parseSSHCmd(cmd string) (string, string) {
ss := strings.SplitN(cmd, " ", 2)
if len(ss) != 2 {
return "", ""
}
return ss[0], strings.Replace(ss[1], "'/", "'", 1)
}
func checkDeployKey(key *database.PublicKey, repo *database.Repository) {
// Check if this deploy key belongs to current repository.
if !database.HasDeployKey(key.ID, repo.ID) {
fail("Key access denied", "Deploy key access denied: [key_id: %d, repo_id: %d]", key.ID, repo.ID)
}
// Update deploy key activity.
deployKey, err := database.GetDeployKeyByRepo(key.ID, repo.ID)
if err != nil {
fail("Internal error", "GetDeployKey: %v", err)
}
deployKey.Updated = time.Now()
if err = database.UpdateDeployKey(deployKey); err != nil {
fail("Internal error", "UpdateDeployKey: %v", err)
}
}
var allowedCommands = map[string]database.AccessMode{
"git-upload-pack": database.AccessModeRead,
"git-upload-archive": database.AccessModeRead,
"git-receive-pack": database.AccessModeWrite,
}
func runServ(c *cli.Context) error {
ctx := context.Background()
setup(c, "serv.log", true)
if conf.SSH.Disabled {
println("Gogs: SSH has been disabled")
return nil
}
if len(c.Args()) < 1 {
fail("Not enough arguments", "Not enough arguments")
}
sshCmd := os.Getenv("SSH_ORIGINAL_COMMAND")
if sshCmd == "" {
println("Hi there, You've successfully authenticated, but Gogs does not provide shell access.")
println("If this is unexpected, please log in with password and setup Gogs under another user.")
return nil
}
verb, args := parseSSHCmd(sshCmd)
repoFullName := strings.ToLower(strings.Trim(args, "'"))
repoFields := strings.SplitN(repoFullName, "/", 2)
if len(repoFields) != 2 {
fail("Invalid repository path", "Invalid repository path: %v", args)
}
ownerName := strings.ToLower(repoFields[0])
repoName := strings.TrimSuffix(strings.ToLower(repoFields[1]), ".git")
repoName = strings.TrimSuffix(repoName, ".wiki")
owner, err := database.Handle.Users().GetByUsername(ctx, ownerName)
if err != nil {
if database.IsErrUserNotExist(err) {
fail("Repository owner does not exist", "Unregistered owner: %s", ownerName)
}
fail("Internal error", "Failed to get repository owner '%s': %v", ownerName, err)
}
repo, err := database.GetRepositoryByName(owner.ID, repoName)
if err != nil {
if database.IsErrRepoNotExist(err) {
fail(accessDeniedMessage, "Repository does not exist: %s/%s", owner.Name, repoName)
}
fail("Internal error", "Failed to get repository: %v", err)
}
repo.Owner = owner
requestMode, ok := allowedCommands[verb]
if !ok {
fail("Unknown git command", "Unknown git command '%s'", verb)
}
// Prohibit push to mirror repositories.
if requestMode > database.AccessModeRead && repo.IsMirror {
fail("Mirror repository is read-only", "")
}
// Allow anonymous (user is nil) clone for public repositories.
var user *database.User
keyID, _ := strconv.ParseInt(strings.TrimPrefix(c.Args()[0], "key-"), 10, 64)
key, err := database.GetPublicKeyByID(keyID)
if err != nil {
fail("Invalid key ID", "Invalid key ID '%s': %v", c.Args()[0], err)
}
if requestMode == database.AccessModeWrite || repo.IsPrivate {
// Check deploy key or user key.
if key.IsDeployKey() {
if key.Mode < requestMode {
fail("Key permission denied", "Cannot push with deployment key: %d", key.ID)
}
checkDeployKey(key, repo)
} else {
user, err = database.Handle.Users().GetByKeyID(ctx, key.ID)
if err != nil {
fail("Internal error", "Failed to get user by key ID '%d': %v", key.ID, err)
}
mode := database.Handle.Permissions().AccessMode(ctx, user.ID, repo.ID,
database.AccessModeOptions{
OwnerID: repo.OwnerID,
Private: repo.IsPrivate,
},
)
if mode < requestMode {
clientMessage := accessDeniedMessage
if mode >= database.AccessModeRead {
clientMessage = "You do not have sufficient authorization for this action"
}
fail(clientMessage,
"User '%s' does not have level '%v' access to repository '%s'",
user.Name, requestMode, repoFullName)
}
}
} else {
// Check if the key can access to the repository in case of it is a deploy key (a deploy keys != user key).
// A deploy key doesn't represent a signed in user, so in a site with Auth.RequireSignInView enabled,
// we should give read access only in repositories where this deploy key is in use. In other cases,
// a server or system using an active deploy key can get read access to all repositories on a Gogs instance.
if key.IsDeployKey() && conf.Auth.RequireSigninView {
checkDeployKey(key, repo)
}
}
// Update user key activity.
if key.ID > 0 {
key, err := database.GetPublicKeyByID(key.ID)
if err != nil {
fail("Internal error", "GetPublicKeyByID: %v", err)
}
key.Updated = time.Now()
if err = database.UpdatePublicKey(key); err != nil {
fail("Internal error", "UpdatePublicKey: %v", err)
}
}
// Special handle for Windows.
if conf.IsWindowsRuntime() {
verb = strings.Replace(verb, "-", " ", 1)
}
var gitCmd *exec.Cmd
verbs := strings.Split(verb, " ")
if len(verbs) == 2 {
gitCmd = exec.Command(verbs[0], verbs[1], repoFullName)
} else {
gitCmd = exec.Command(verb, repoFullName)
}
if requestMode == database.AccessModeWrite {
gitCmd.Env = append(os.Environ(), database.ComposeHookEnvs(database.ComposeHookEnvsOptions{
AuthUser: user,
OwnerName: owner.Name,
OwnerSalt: owner.Salt,
RepoID: repo.ID,
RepoName: repo.Name,
RepoPath: repo.RepoPath(),
})...)
}
gitCmd.Dir = conf.Repository.Root
gitCmd.Stdout = os.Stdout
gitCmd.Stdin = os.Stdin
gitCmd.Stderr = os.Stderr
if err = gitCmd.Run(); err != nil {
fail("Internal error", "Failed to execute git command: %v", err)
}
return nil
}

781
cmd/gogs/web.go Normal file
View File

@@ -0,0 +1,781 @@
package main
import (
"crypto/tls"
"fmt"
"io"
"net"
"net/http"
"net/http/fcgi"
"os"
"path/filepath"
"strings"
"github.com/go-macaron/binding"
"github.com/go-macaron/cache"
"github.com/go-macaron/captcha"
"github.com/go-macaron/csrf"
"github.com/go-macaron/gzip"
"github.com/go-macaron/i18n"
"github.com/go-macaron/session"
"github.com/go-macaron/toolbox"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/urfave/cli"
"gopkg.in/macaron.v1"
log "unknwon.dev/clog/v2"
embedConf "gogs.io/gogs/conf"
"gogs.io/gogs/internal/app"
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/database"
"gogs.io/gogs/internal/form"
"gogs.io/gogs/internal/osutil"
"gogs.io/gogs/internal/route"
"gogs.io/gogs/internal/route/admin"
apiv1 "gogs.io/gogs/internal/route/api/v1"
"gogs.io/gogs/internal/route/dev"
"gogs.io/gogs/internal/route/lfs"
"gogs.io/gogs/internal/route/org"
"gogs.io/gogs/internal/route/repo"
"gogs.io/gogs/internal/route/user"
"gogs.io/gogs/internal/template"
"gogs.io/gogs/public"
"gogs.io/gogs/templates"
)
var webCommand = cli.Command{
Name: "web",
Usage: "Start web server",
Description: `Gogs web server is the only thing you need to run,
and it takes care of all the other things for you`,
Action: runWeb,
Flags: []cli.Flag{
stringFlag("port, p", "3000", "Temporary port number to prevent conflict"),
stringFlag("config, c", filepath.Join(conf.CustomDir(), "conf", "app.ini"), "Custom configuration file path"),
},
}
// newMacaron initializes Macaron instance.
func newMacaron() *macaron.Macaron {
m := macaron.New()
if !conf.Server.DisableRouterLog {
m.Use(macaron.Logger())
}
m.Use(macaron.Recovery())
if conf.Server.EnableGzip {
m.Use(gzip.Gziper())
}
if conf.Server.Protocol == "fcgi" {
m.SetURLPrefix(conf.Server.Subpath)
}
// Register custom middleware first to make it possible to override files under "public".
m.Use(macaron.Static(
filepath.Join(conf.CustomDir(), "public"),
macaron.StaticOptions{
SkipLogging: conf.Server.DisableRouterLog,
},
))
var publicFs http.FileSystem
if !conf.Server.LoadAssetsFromDisk {
publicFs = http.FS(public.Files)
}
m.Use(macaron.Static(
filepath.Join(conf.WorkDir(), "public"),
macaron.StaticOptions{
ETag: true,
SkipLogging: conf.Server.DisableRouterLog,
FileSystem: publicFs,
},
))
m.Use(macaron.Static(
conf.Picture.AvatarUploadPath,
macaron.StaticOptions{
ETag: true,
Prefix: conf.UsersAvatarPathPrefix,
SkipLogging: conf.Server.DisableRouterLog,
},
))
m.Use(macaron.Static(
conf.Picture.RepositoryAvatarUploadPath,
macaron.StaticOptions{
ETag: true,
Prefix: database.RepoAvatarURLPrefix,
SkipLogging: conf.Server.DisableRouterLog,
},
))
customDir := filepath.Join(conf.CustomDir(), "templates")
renderOpt := macaron.RenderOptions{
Directory: filepath.Join(conf.WorkDir(), "templates"),
AppendDirectories: []string{customDir},
Funcs: template.FuncMap(),
IndentJSON: macaron.Env != macaron.PROD,
}
if !conf.Server.LoadAssetsFromDisk {
renderOpt.TemplateFileSystem = templates.NewTemplateFileSystem("", customDir)
}
m.Use(macaron.Renderer(renderOpt))
localeNames, err := embedConf.FileNames("locale")
if err != nil {
log.Fatal("Failed to list locale files: %v", err)
}
localeFiles := make(map[string][]byte)
for _, name := range localeNames {
localeFiles[name], err = embedConf.Files.ReadFile("locale/" + name)
if err != nil {
log.Fatal("Failed to read locale file %q: %v", name, err)
}
}
m.Use(i18n.I18n(i18n.Options{
SubURL: conf.Server.Subpath,
Files: localeFiles,
CustomDirectory: filepath.Join(conf.CustomDir(), "conf", "locale"),
Langs: conf.I18n.Langs,
Names: conf.I18n.Names,
DefaultLang: "en-US",
Redirect: true,
}))
m.Use(cache.Cacher(cache.Options{
Adapter: conf.Cache.Adapter,
AdapterConfig: conf.Cache.Host,
Interval: conf.Cache.Interval,
}))
m.Use(captcha.Captchaer(captcha.Options{
SubURL: conf.Server.Subpath,
}))
m.Use(toolbox.Toolboxer(m, toolbox.Options{
HealthCheckFuncs: []*toolbox.HealthCheckFuncDesc{
{
Desc: "Database connection",
Func: database.Ping,
},
},
}))
return m
}
func runWeb(c *cli.Context) error {
err := route.GlobalInit(c.String("config"))
if err != nil {
log.Fatal("Failed to initialize application: %v", err)
}
m := newMacaron()
reqSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: true})
ignSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: conf.Auth.RequireSigninView})
reqSignOut := context.Toggle(&context.ToggleOptions{SignOutRequired: true})
bindIgnErr := binding.BindIgnErr
m.SetAutoHead(true)
m.Group("", func() {
m.Get("/", ignSignIn, route.Home)
m.Group("/explore", func() {
m.Get("", func(c *context.Context) {
c.Redirect(conf.Server.Subpath + "/explore/repos")
})
m.Get("/repos", route.ExploreRepos)
m.Get("/users", route.ExploreUsers)
m.Get("/organizations", route.ExploreOrganizations)
}, ignSignIn)
m.Combo("/install", route.InstallInit).Get(route.Install).
Post(bindIgnErr(form.Install{}), route.InstallPost)
m.Get("/^:type(issues|pulls)$", reqSignIn, user.Issues)
// ***** START: User *****
m.Group("/user", func() {
m.Group("/login", func() {
m.Combo("").Get(user.Login).
Post(bindIgnErr(form.SignIn{}), user.LoginPost)
m.Combo("/two_factor").Get(user.LoginTwoFactor).Post(user.LoginTwoFactorPost)
m.Combo("/two_factor_recovery_code").Get(user.LoginTwoFactorRecoveryCode).Post(user.LoginTwoFactorRecoveryCodePost)
})
m.Get("/sign_up", user.SignUp)
m.Post("/sign_up", bindIgnErr(form.Register{}), user.SignUpPost)
m.Get("/reset_password", user.ResetPasswd)
m.Post("/reset_password", user.ResetPasswdPost)
}, reqSignOut)
m.Group("/user/settings", func() {
m.Get("", user.Settings)
m.Post("", bindIgnErr(form.UpdateProfile{}), user.SettingsPost)
m.Combo("/avatar").Get(user.SettingsAvatar).
Post(binding.MultipartForm(form.Avatar{}), user.SettingsAvatarPost)
m.Post("/avatar/delete", user.SettingsDeleteAvatar)
m.Combo("/email").Get(user.SettingsEmails).
Post(bindIgnErr(form.AddEmail{}), user.SettingsEmailPost)
m.Post("/email/delete", user.DeleteEmail)
m.Get("/password", user.SettingsPassword)
m.Post("/password", bindIgnErr(form.ChangePassword{}), user.SettingsPasswordPost)
m.Combo("/ssh").Get(user.SettingsSSHKeys).
Post(bindIgnErr(form.AddSSHKey{}), user.SettingsSSHKeysPost)
m.Post("/ssh/delete", user.DeleteSSHKey)
m.Group("/security", func() {
m.Get("", user.SettingsSecurity)
m.Combo("/two_factor_enable").Get(user.SettingsTwoFactorEnable).
Post(user.SettingsTwoFactorEnablePost)
m.Combo("/two_factor_recovery_codes").Get(user.SettingsTwoFactorRecoveryCodes).
Post(user.SettingsTwoFactorRecoveryCodesPost)
m.Post("/two_factor_disable", user.SettingsTwoFactorDisable)
})
m.Group("/repositories", func() {
m.Get("", user.SettingsRepos)
m.Post("/leave", user.SettingsLeaveRepo)
})
m.Group("/organizations", func() {
m.Get("", user.SettingsOrganizations)
m.Post("/leave", user.SettingsLeaveOrganization)
})
settingsHandler := user.NewSettingsHandler(user.NewSettingsStore())
m.Combo("/applications").Get(settingsHandler.Applications()).
Post(bindIgnErr(form.NewAccessToken{}), settingsHandler.ApplicationsPost())
m.Post("/applications/delete", settingsHandler.DeleteApplication())
m.Route("/delete", "GET,POST", user.SettingsDelete)
}, reqSignIn, func(c *context.Context) {
c.Data["PageIsUserSettings"] = true
})
m.Group("/user", func() {
m.Any("/activate", user.Activate)
m.Any("/activate_email", user.ActivateEmail)
m.Get("/email2user", user.Email2User)
m.Get("/forget_password", user.ForgotPasswd)
m.Post("/forget_password", user.ForgotPasswdPost)
m.Post("/logout", user.SignOut)
})
// ***** END: User *****
reqAdmin := context.Toggle(&context.ToggleOptions{SignInRequired: true, AdminRequired: true})
// ***** START: Admin *****
m.Group("/admin", func() {
m.Combo("").Get(admin.Dashboard).Post(admin.Operation) // "/admin"
m.Get("/config", admin.Config)
m.Post("/config/test_mail", admin.SendTestMail)
m.Get("/monitor", admin.Monitor)
m.Group("/users", func() {
m.Get("", admin.Users)
m.Combo("/new").Get(admin.NewUser).Post(bindIgnErr(form.AdminCrateUser{}), admin.NewUserPost)
m.Combo("/:userid").Get(admin.EditUser).Post(bindIgnErr(form.AdminEditUser{}), admin.EditUserPost)
m.Post("/:userid/delete", admin.DeleteUser)
})
m.Group("/orgs", func() {
m.Get("", admin.Organizations)
})
m.Group("/repos", func() {
m.Get("", admin.Repos)
m.Post("/delete", admin.DeleteRepo)
})
m.Group("/auths", func() {
m.Get("", admin.Authentications)
m.Combo("/new").Get(admin.NewAuthSource).Post(bindIgnErr(form.Authentication{}), admin.NewAuthSourcePost)
m.Combo("/:authid").Get(admin.EditAuthSource).
Post(bindIgnErr(form.Authentication{}), admin.EditAuthSourcePost)
m.Post("/:authid/delete", admin.DeleteAuthSource)
})
m.Group("/notices", func() {
m.Get("", admin.Notices)
m.Post("/delete", admin.DeleteNotices)
m.Get("/empty", admin.EmptyNotices)
})
}, reqAdmin)
// ***** END: Admin *****
m.Group("", func() {
m.Group("/:username", func() {
m.Get("", user.Profile)
m.Get("/followers", user.Followers)
m.Get("/following", user.Following)
m.Get("/stars", user.Stars)
}, context.InjectParamsUser())
m.Get("/attachments/:uuid", func(c *context.Context) {
attach, err := database.GetAttachmentByUUID(c.Params(":uuid"))
if err != nil {
c.NotFoundOrError(err, "get attachment by UUID")
return
} else if !osutil.IsFile(attach.LocalPath()) {
c.NotFound()
return
}
fr, err := os.Open(attach.LocalPath())
if err != nil {
c.Error(err, "open attachment file")
return
}
defer fr.Close()
c.Header().Set("Content-Security-Policy", "default-src 'none'; style-src 'unsafe-inline'; sandbox")
c.Header().Set("Cache-Control", "public,max-age=86400")
c.Header().Set("Content-Disposition", fmt.Sprintf(`inline; filename="%s"`, attach.Name))
if _, err = io.Copy(c.Resp, fr); err != nil {
c.Error(err, "copy from file to response")
return
}
})
}, ignSignIn)
m.Group("", func() {
m.Post("/issues/attachments", repo.UploadIssueAttachment)
m.Post("/releases/attachments", repo.UploadReleaseAttachment)
}, reqSignIn)
m.Group("/:username", func() {
m.Post("/action/:action", user.Action)
}, reqSignIn, context.InjectParamsUser())
if macaron.Env == macaron.DEV {
m.Get("/template/*", dev.TemplatePreview)
}
reqRepoAdmin := context.RequireRepoAdmin()
reqRepoWriter := context.RequireRepoWriter()
webhookRoutes := func() {
m.Group("", func() {
m.Get("", repo.Webhooks)
m.Post("/delete", repo.DeleteWebhook)
m.Get("/:type/new", repo.WebhooksNew)
m.Post("/gogs/new", bindIgnErr(form.NewWebhook{}), repo.WebhooksNewPost)
m.Post("/slack/new", bindIgnErr(form.NewSlackHook{}), repo.WebhooksSlackNewPost)
m.Post("/discord/new", bindIgnErr(form.NewDiscordHook{}), repo.WebhooksDiscordNewPost)
m.Post("/dingtalk/new", bindIgnErr(form.NewDingtalkHook{}), repo.WebhooksDingtalkNewPost)
m.Get("/:id", repo.WebhooksEdit)
m.Post("/gogs/:id", bindIgnErr(form.NewWebhook{}), repo.WebhooksEditPost)
m.Post("/slack/:id", bindIgnErr(form.NewSlackHook{}), repo.WebhooksSlackEditPost)
m.Post("/discord/:id", bindIgnErr(form.NewDiscordHook{}), repo.WebhooksDiscordEditPost)
m.Post("/dingtalk/:id", bindIgnErr(form.NewDingtalkHook{}), repo.WebhooksDingtalkEditPost)
}, repo.InjectOrgRepoContext())
}
// ***** START: Organization *****
m.Group("/org", func() {
m.Group("", func() {
m.Get("/create", org.Create)
m.Post("/create", bindIgnErr(form.CreateOrg{}), org.CreatePost)
}, func(c *context.Context) {
if !c.User.CanCreateOrganization() {
c.NotFound()
}
})
m.Group("/:org", func() {
m.Get("/dashboard", user.Dashboard)
m.Get("/^:type(issues|pulls)$", user.Issues)
m.Get("/members", org.Members)
m.Get("/members/action/:action", org.MembersAction)
m.Get("/teams", org.Teams)
}, context.OrgAssignment(true))
m.Group("/:org", func() {
m.Get("/teams/:team", org.TeamMembers)
m.Get("/teams/:team/repositories", org.TeamRepositories)
m.Route("/teams/:team/action/:action", "GET,POST", org.TeamsAction)
m.Route("/teams/:team/action/repo/:action", "GET,POST", org.TeamsRepoAction)
}, context.OrgAssignment(true, false, true))
m.Group("/:org", func() {
m.Get("/teams/new", org.NewTeam)
m.Post("/teams/new", bindIgnErr(form.CreateTeam{}), org.NewTeamPost)
m.Get("/teams/:team/edit", org.EditTeam)
m.Post("/teams/:team/edit", bindIgnErr(form.CreateTeam{}), org.EditTeamPost)
m.Post("/teams/:team/delete", org.DeleteTeam)
m.Group("/settings", func() {
m.Combo("").Get(org.Settings).
Post(bindIgnErr(form.UpdateOrgSetting{}), org.SettingsPost)
m.Post("/avatar", binding.MultipartForm(form.Avatar{}), org.SettingsAvatar)
m.Post("/avatar/delete", org.SettingsDeleteAvatar)
m.Group("/hooks", webhookRoutes)
m.Route("/delete", "GET,POST", org.SettingsDelete)
})
m.Route("/invitations/new", "GET,POST", org.Invitation)
}, context.OrgAssignment(true, true))
}, reqSignIn)
// ***** END: Organization *****
// ***** START: Repository *****
m.Group("/repo", func() {
m.Get("/create", repo.Create)
m.Post("/create", bindIgnErr(form.CreateRepo{}), repo.CreatePost)
m.Get("/migrate", repo.Migrate)
m.Post("/migrate", bindIgnErr(form.MigrateRepo{}), repo.MigratePost)
m.Combo("/fork/:repoid").Get(repo.Fork).
Post(bindIgnErr(form.CreateRepo{}), repo.ForkPost)
}, reqSignIn)
m.Group("/:username/:reponame", func() {
m.Group("/settings", func() {
m.Combo("").Get(repo.Settings).
Post(bindIgnErr(form.RepoSetting{}), repo.SettingsPost)
m.Combo("/avatar").Get(repo.SettingsAvatar).
Post(binding.MultipartForm(form.Avatar{}), repo.SettingsAvatarPost)
m.Post("/avatar/delete", repo.SettingsDeleteAvatar)
m.Group("/collaboration", func() {
m.Combo("").Get(repo.SettingsCollaboration).Post(repo.SettingsCollaborationPost)
m.Post("/access_mode", repo.ChangeCollaborationAccessMode)
m.Post("/delete", repo.DeleteCollaboration)
})
m.Group("/branches", func() {
m.Get("", repo.SettingsBranches)
m.Post("/default_branch", repo.UpdateDefaultBranch)
m.Combo("/*").Get(repo.SettingsProtectedBranch).
Post(bindIgnErr(form.ProtectBranch{}), repo.SettingsProtectedBranchPost)
}, func(c *context.Context) {
if c.Repo.Repository.IsMirror {
c.NotFound()
return
}
})
m.Group("/hooks", func() {
webhookRoutes()
m.Group("/:id", func() {
m.Post("/test", repo.TestWebhook)
m.Post("/redelivery", repo.RedeliveryWebhook)
})
m.Group("/git", func() {
m.Get("", repo.SettingsGitHooks)
m.Combo("/:name").Get(repo.SettingsGitHooksEdit).
Post(repo.SettingsGitHooksEditPost)
}, context.GitHookService())
})
m.Group("/keys", func() {
m.Combo("").Get(repo.SettingsDeployKeys).
Post(bindIgnErr(form.AddSSHKey{}), repo.SettingsDeployKeysPost)
m.Post("/delete", repo.DeleteDeployKey)
})
}, func(c *context.Context) {
c.Data["PageIsSettings"] = true
})
}, reqSignIn, context.RepoAssignment(), reqRepoAdmin, context.RepoRef())
m.Post("/:username/:reponame/action/:action", reqSignIn, context.RepoAssignment(), repo.Action)
m.Group("/:username/:reponame", func() {
m.Get("/issues", repo.RetrieveLabels, repo.Issues)
m.Get("/issues/:index", repo.ViewIssue)
m.Get("/labels/", repo.RetrieveLabels, repo.Labels)
m.Get("/milestones", repo.Milestones)
}, ignSignIn, context.RepoAssignment(true))
m.Group("/:username/:reponame", func() {
// FIXME: should use different URLs but mostly same logic for comments of issue and pull request.
// So they can apply their own enable/disable logic on routers.
m.Group("/issues", func() {
m.Combo("/new", repo.MustEnableIssues).Get(context.RepoRef(), repo.NewIssue).
Post(bindIgnErr(form.NewIssue{}), repo.NewIssuePost)
m.Group("/:index", func() {
m.Post("/title", repo.UpdateIssueTitle)
m.Post("/content", repo.UpdateIssueContent)
m.Combo("/comments").Post(bindIgnErr(form.CreateComment{}), repo.NewComment)
})
})
m.Group("/comments/:id", func() {
m.Post("", repo.UpdateCommentContent)
m.Post("/delete", repo.DeleteComment)
})
}, reqSignIn, context.RepoAssignment(true))
m.Group("/:username/:reponame", func() {
m.Group("/wiki", func() {
m.Get("/?:page", repo.Wiki)
m.Get("/_pages", repo.WikiPages)
}, repo.MustEnableWiki, context.RepoRef())
}, ignSignIn, context.RepoAssignment(false, true))
m.Group("/:username/:reponame", func() {
// FIXME: should use different URLs but mostly same logic for comments of issue and pull request.
// So they can apply their own enable/disable logic on routers.
m.Group("/issues", func() {
m.Group("/:index", func() {
m.Post("/label", repo.UpdateIssueLabel)
m.Post("/milestone", repo.UpdateIssueMilestone)
m.Post("/assignee", repo.UpdateIssueAssignee)
}, reqRepoWriter)
})
m.Group("/labels", func() {
m.Post("/new", bindIgnErr(form.CreateLabel{}), repo.NewLabel)
m.Post("/edit", bindIgnErr(form.CreateLabel{}), repo.UpdateLabel)
m.Post("/delete", repo.DeleteLabel)
m.Post("/initialize", bindIgnErr(form.InitializeLabels{}), repo.InitializeLabels)
}, reqRepoWriter, context.RepoRef())
m.Group("/milestones", func() {
m.Combo("/new").Get(repo.NewMilestone).
Post(bindIgnErr(form.CreateMilestone{}), repo.NewMilestonePost)
m.Get("/:id/edit", repo.EditMilestone)
m.Post("/:id/edit", bindIgnErr(form.CreateMilestone{}), repo.EditMilestonePost)
m.Get("/:id/:action", repo.ChangeMilestonStatus)
m.Post("/delete", repo.DeleteMilestone)
}, reqRepoWriter, context.RepoRef())
m.Group("/releases", func() {
m.Get("/new", repo.NewRelease)
m.Post("/new", bindIgnErr(form.NewRelease{}), repo.NewReleasePost)
m.Post("/delete", repo.DeleteRelease)
m.Get("/edit/*", repo.EditRelease)
m.Post("/edit/*", bindIgnErr(form.EditRelease{}), repo.EditReleasePost)
}, repo.MustBeNotBare, reqRepoWriter, func(c *context.Context) {
c.Data["PageIsViewFiles"] = true
})
// FIXME: Should use c.Repo.PullRequest to unify template, currently we have inconsistent URL
// for PR in same repository. After select branch on the page, the URL contains redundant head user name.
// e.g. /org1/test-repo/compare/master...org1:develop
// which should be /org1/test-repo/compare/master...develop
m.Combo("/compare/*", repo.MustAllowPulls).Get(repo.CompareAndPullRequest).
Post(bindIgnErr(form.NewIssue{}), repo.CompareAndPullRequestPost)
m.Group("", func() {
m.Combo("/_edit/*").Get(repo.EditFile).
Post(bindIgnErr(form.EditRepoFile{}), repo.EditFilePost)
m.Combo("/_new/*").Get(repo.NewFile).
Post(bindIgnErr(form.EditRepoFile{}), repo.NewFilePost)
m.Post("/_preview/*", bindIgnErr(form.EditPreviewDiff{}), repo.DiffPreviewPost)
m.Combo("/_delete/*").Get(repo.DeleteFile).
Post(bindIgnErr(form.DeleteRepoFile{}), repo.DeleteFilePost)
m.Group("", func() {
m.Combo("/_upload/*").Get(repo.UploadFile).
Post(bindIgnErr(form.UploadRepoFile{}), repo.UploadFilePost)
m.Post("/upload-file", repo.UploadFileToServer)
m.Post("/upload-remove", bindIgnErr(form.RemoveUploadFile{}), repo.RemoveUploadFileFromServer)
}, func(c *context.Context) {
if !conf.Repository.Upload.Enabled {
c.NotFound()
return
}
})
}, repo.MustBeNotBare, reqRepoWriter, context.RepoRef(), func(c *context.Context) {
if !c.Repo.CanEnableEditor() {
c.NotFound()
return
}
c.Data["PageIsViewFiles"] = true
})
}, reqSignIn, context.RepoAssignment())
m.Group("/:username/:reponame", func() {
m.Group("", func() {
m.Get("/releases", repo.MustBeNotBare, repo.Releases)
m.Get("/pulls", repo.RetrieveLabels, repo.Pulls)
m.Get("/pulls/:index", repo.ViewPull)
}, context.RepoRef())
m.Group("/branches", func() {
m.Get("", repo.Branches)
m.Get("/all", repo.AllBranches)
m.Post("/delete/*", reqSignIn, reqRepoWriter, repo.DeleteBranchPost)
}, repo.MustBeNotBare, func(c *context.Context) {
c.Data["PageIsViewFiles"] = true
})
m.Group("/wiki", func() {
m.Group("", func() {
m.Combo("/_new").Get(repo.NewWiki).
Post(bindIgnErr(form.NewWiki{}), repo.NewWikiPost)
m.Combo("/:page/_edit").Get(repo.EditWiki).
Post(bindIgnErr(form.NewWiki{}), repo.EditWikiPost)
m.Post("/:page/delete", repo.DeleteWikiPagePost)
}, reqSignIn, reqRepoWriter)
}, repo.MustEnableWiki, context.RepoRef())
m.Get("/archive/*", repo.MustBeNotBare, repo.Download)
m.Group("/pulls/:index", func() {
m.Get("/commits", context.RepoRef(), repo.ViewPullCommits)
m.Get("/files", context.RepoRef(), repo.ViewPullFiles)
m.Post("/merge", reqRepoWriter, repo.MergePullRequest)
}, repo.MustAllowPulls)
m.Group("", func() {
m.Get("/src/*", repo.Home)
m.Get("/raw/*", repo.SingleDownload)
m.Get("/commits/*", repo.RefCommits)
m.Get("/commit/:sha([a-f0-9]{7,40})$", repo.Diff)
m.Get("/forks", repo.Forks)
}, repo.MustBeNotBare, context.RepoRef())
m.Get("/commit/:sha([a-f0-9]{7,40})\\.:ext(patch|diff)", repo.MustBeNotBare, repo.RawDiff)
m.Get("/compare/:before([a-z0-9]{40})\\.\\.\\.:after([a-z0-9]{40})", repo.MustBeNotBare, context.RepoRef(), repo.CompareDiff)
}, ignSignIn, context.RepoAssignment())
m.Group("/:username/:reponame", func() {
m.Get("", repo.Home)
m.Get("/stars", repo.Stars)
m.Get("/watchers", repo.Watchers)
}, context.ServeGoGet(), ignSignIn, context.RepoAssignment(), context.RepoRef())
// ***** END: Repository *****
// **********************
// ----- API routes -----
// **********************
// TODO: Without session and CSRF
m.Group("/api", func() {
apiv1.RegisterRoutes(m)
}, ignSignIn)
},
session.Sessioner(session.Options{
Provider: conf.Session.Provider,
ProviderConfig: conf.Session.ProviderConfig,
CookieName: conf.Session.CookieName,
CookiePath: conf.Server.Subpath,
Gclifetime: conf.Session.GCInterval,
Maxlifetime: conf.Session.MaxLifeTime,
Secure: conf.Session.CookieSecure,
}),
csrf.Csrfer(csrf.Options{
Secret: conf.Security.SecretKey,
Header: "X-CSRF-Token",
Cookie: conf.Session.CSRFCookieName,
CookieDomain: conf.Server.URL.Hostname(),
CookiePath: conf.Server.Subpath,
CookieHttpOnly: true,
SetCookie: true,
Secure: conf.Server.URL.Scheme == "https",
}),
context.Contexter(context.NewStore()),
)
// ***************************
// ----- HTTP Git routes -----
// ***************************
m.Group("/:username/:reponame", func() {
m.Get("/tasks/trigger", repo.TriggerTask)
m.Group("/info/lfs", func() {
lfs.RegisterRoutes(m.Router)
})
m.Route("/*", "GET,POST,OPTIONS", context.ServeGoGet(), repo.HTTPContexter(repo.NewStore()), repo.HTTP)
})
// ***************************
// ----- Internal routes -----
// ***************************
m.Group("/-", func() {
m.Get("/metrics", app.MetricsFilter(), promhttp.Handler()) // "/-/metrics"
m.Group("/api", func() {
m.Post("/sanitize_ipynb", app.SanitizeIpynb()) // "/-/api/sanitize_ipynb"
})
})
// **********************
// ----- robots.txt -----
// **********************
m.Get("/robots.txt", func(w http.ResponseWriter, r *http.Request) {
if conf.HasRobotsTxt {
http.ServeFile(w, r, filepath.Join(conf.CustomDir(), "robots.txt"))
} else {
w.WriteHeader(http.StatusNotFound)
}
})
m.NotFound(route.NotFound)
// Flag for port number in case first time run conflict.
if c.IsSet("port") {
conf.Server.URL.Host = strings.Replace(conf.Server.URL.Host, ":"+conf.Server.URL.Port(), ":"+c.String("port"), 1)
conf.Server.ExternalURL = conf.Server.URL.String()
conf.Server.HTTPPort = c.String("port")
}
var listenAddr string
if conf.Server.Protocol == "unix" {
listenAddr = conf.Server.HTTPAddr
} else {
listenAddr = fmt.Sprintf("%s:%s", conf.Server.HTTPAddr, conf.Server.HTTPPort)
}
log.Info("Available on %s", conf.Server.ExternalURL)
switch conf.Server.Protocol {
case "http":
err = http.ListenAndServe(listenAddr, m)
case "https":
tlsMinVersion := tls.VersionTLS12
switch conf.Server.TLSMinVersion {
case "TLS13":
tlsMinVersion = tls.VersionTLS13
case "TLS12":
tlsMinVersion = tls.VersionTLS12
case "TLS11":
tlsMinVersion = tls.VersionTLS11
case "TLS10":
tlsMinVersion = tls.VersionTLS10
}
server := &http.Server{
Addr: listenAddr,
TLSConfig: &tls.Config{
MinVersion: uint16(tlsMinVersion),
CurvePreferences: []tls.CurveID{tls.X25519, tls.CurveP256, tls.CurveP384, tls.CurveP521},
PreferServerCipherSuites: true,
CipherSuites: []uint16{
tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,
},
}, Handler: m,
}
err = server.ListenAndServeTLS(conf.Server.CertFile, conf.Server.KeyFile)
case "fcgi":
err = fcgi.Serve(nil, m)
case "unix":
if osutil.Exist(listenAddr) {
err = os.Remove(listenAddr)
if err != nil {
log.Fatal("Failed to remove existing Unix domain socket: %v", err)
}
}
var listener *net.UnixListener
listener, err = net.ListenUnix("unix", &net.UnixAddr{Name: listenAddr, Net: "unix"})
if err != nil {
log.Fatal("Failed to listen on Unix networks: %v", err)
}
// FIXME: add proper implementation of signal capture on all protocols
// execute this on SIGTERM or SIGINT: listener.Close()
if err = os.Chmod(listenAddr, conf.Server.UnixSocketMode); err != nil {
log.Fatal("Failed to change permission of Unix domain socket: %v", err)
}
err = http.Serve(listener, m)
default:
log.Fatal("Unexpected server protocol: %s", conf.Server.Protocol)
}
if err != nil {
log.Fatal("Failed to start server: %v", err)
}
return nil
}

View File

@@ -1,252 +0,0 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"bufio"
"bytes"
"crypto/tls"
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"
"github.com/Unknwon/com"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"github.com/gogits/git-module"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/pkg/httplib"
"github.com/gogits/gogs/pkg/setting"
http "github.com/gogits/gogs/routers/repo"
)
var (
Hook = cli.Command{
Name: "hook",
Usage: "Delegate commands to corresponding Git hooks",
Description: "All sub-commands should only be called by Git",
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
Subcommands: []cli.Command{
subcmdHookPreReceive,
subcmdHookUpadte,
subcmdHookPostReceive,
},
}
subcmdHookPreReceive = cli.Command{
Name: "pre-receive",
Usage: "Delegate pre-receive Git hook",
Description: "This command should only be called by Git",
Action: runHookPreReceive,
}
subcmdHookUpadte = cli.Command{
Name: "update",
Usage: "Delegate update Git hook",
Description: "This command should only be called by Git",
Action: runHookUpdate,
}
subcmdHookPostReceive = cli.Command{
Name: "post-receive",
Usage: "Delegate post-receive Git hook",
Description: "This command should only be called by Git",
Action: runHookPostReceive,
}
)
func runHookPreReceive(c *cli.Context) error {
if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 {
return nil
}
setup(c, "hooks/pre-receive.log", true)
isWiki := strings.Contains(os.Getenv(http.ENV_REPO_CUSTOM_HOOKS_PATH), ".wiki.git/")
buf := bytes.NewBuffer(nil)
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
buf.Write(scanner.Bytes())
buf.WriteByte('\n')
if isWiki {
continue
}
fields := bytes.Fields(scanner.Bytes())
if len(fields) != 3 {
continue
}
oldCommitID := string(fields[0])
newCommitID := string(fields[1])
branchName := strings.TrimPrefix(string(fields[2]), git.BRANCH_PREFIX)
// Branch protection
repoID := com.StrTo(os.Getenv(http.ENV_REPO_ID)).MustInt64()
protectBranch, err := models.GetProtectBranchOfRepoByName(repoID, branchName)
if err != nil {
if models.IsErrBranchNotExist(err) {
continue
}
fail("Internal error", "GetProtectBranchOfRepoByName [repo_id: %d, branch: %s]: %v", repoID, branchName, err)
}
if !protectBranch.Protected {
continue
}
// Whitelist users can bypass require pull request check
bypassRequirePullRequest := false
// Check if user is in whitelist when enabled
userID := com.StrTo(os.Getenv(http.ENV_AUTH_USER_ID)).MustInt64()
if protectBranch.EnableWhitelist {
if !models.IsUserInProtectBranchWhitelist(repoID, userID, branchName) {
fail(fmt.Sprintf("Branch '%s' is protected and you are not in the push whitelist", branchName), "")
}
bypassRequirePullRequest = true
}
// Check if branch allows direct push
if !bypassRequirePullRequest && protectBranch.RequirePullRequest {
fail(fmt.Sprintf("Branch '%s' is protected and commits must be merged through pull request", branchName), "")
}
// check and deletion
if newCommitID == git.EMPTY_SHA {
fail(fmt.Sprintf("Branch '%s' is protected from deletion", branchName), "")
}
// Check force push
output, err := git.NewCommand("rev-list", oldCommitID, "^"+newCommitID).
RunInDir(models.RepoPath(os.Getenv(http.ENV_REPO_OWNER_NAME), os.Getenv(http.ENV_REPO_NAME)))
if err != nil {
fail("Internal error", "Fail to detect force push: %v", err)
} else if len(output) > 0 {
fail(fmt.Sprintf("Branch '%s' is protected from force push", branchName), "")
}
}
customHooksPath := filepath.Join(os.Getenv(http.ENV_REPO_CUSTOM_HOOKS_PATH), "pre-receive")
if !com.IsFile(customHooksPath) {
return nil
}
hookCmd := exec.Command(customHooksPath)
hookCmd.Dir = models.RepoPath(os.Getenv(http.ENV_REPO_OWNER_NAME), os.Getenv(http.ENV_REPO_NAME))
hookCmd.Stdout = os.Stdout
hookCmd.Stdin = buf
hookCmd.Stderr = os.Stderr
if err := hookCmd.Run(); err != nil {
fail("Internal error", "Fail to execute custom pre-receive hook: %v", err)
}
return nil
}
func runHookUpdate(c *cli.Context) error {
if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 {
return nil
}
setup(c, "hooks/update.log", false)
args := c.Args()
if len(args) != 3 {
fail("Arguments received are not equal to three", "Arguments received are not equal to three")
} else if len(args[0]) == 0 {
fail("First argument 'refName' is empty", "First argument 'refName' is empty")
}
customHooksPath := filepath.Join(os.Getenv(http.ENV_REPO_CUSTOM_HOOKS_PATH), "update")
if !com.IsFile(customHooksPath) {
return nil
}
hookCmd := exec.Command(customHooksPath, args...)
hookCmd.Dir = models.RepoPath(os.Getenv(http.ENV_REPO_OWNER_NAME), os.Getenv(http.ENV_REPO_NAME))
hookCmd.Stdout = os.Stdout
hookCmd.Stdin = os.Stdin
hookCmd.Stderr = os.Stderr
if err := hookCmd.Run(); err != nil {
fail("Internal error", "Fail to execute custom pre-receive hook: %v", err)
}
return nil
}
func runHookPostReceive(c *cli.Context) error {
if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 {
return nil
}
setup(c, "hooks/post-receive.log", true)
isWiki := strings.Contains(os.Getenv(http.ENV_REPO_CUSTOM_HOOKS_PATH), ".wiki.git/")
buf := bytes.NewBuffer(nil)
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
buf.Write(scanner.Bytes())
buf.WriteByte('\n')
// TODO: support news feeds for wiki
if isWiki {
continue
}
fields := bytes.Fields(scanner.Bytes())
if len(fields) != 3 {
continue
}
options := models.PushUpdateOptions{
OldCommitID: string(fields[0]),
NewCommitID: string(fields[1]),
RefFullName: string(fields[2]),
PusherID: com.StrTo(os.Getenv(http.ENV_AUTH_USER_ID)).MustInt64(),
PusherName: os.Getenv(http.ENV_AUTH_USER_NAME),
RepoUserName: os.Getenv(http.ENV_REPO_OWNER_NAME),
RepoName: os.Getenv(http.ENV_REPO_NAME),
}
if err := models.PushUpdate(options); err != nil {
log.Error(2, "PushUpdate: %v", err)
}
// Ask for running deliver hook and test pull request tasks.
reqURL := setting.LocalURL + options.RepoUserName + "/" + options.RepoName + "/tasks/trigger?branch=" +
strings.TrimPrefix(options.RefFullName, git.BRANCH_PREFIX) +
"&secret=" + os.Getenv(http.ENV_REPO_OWNER_SALT_MD5) +
"&pusher=" + os.Getenv(http.ENV_AUTH_USER_ID)
log.Trace("Trigger task: %s", reqURL)
resp, err := httplib.Head(reqURL).SetTLSClientConfig(&tls.Config{
InsecureSkipVerify: true,
}).Response()
if err == nil {
resp.Body.Close()
if resp.StatusCode/100 != 2 {
log.Error(2, "Fail to trigger task: not 2xx response code")
}
} else {
log.Error(2, "Fail to trigger task: %v", err)
}
}
customHooksPath := filepath.Join(os.Getenv(http.ENV_REPO_CUSTOM_HOOKS_PATH), "post-receive")
if !com.IsFile(customHooksPath) {
return nil
}
hookCmd := exec.Command(customHooksPath)
hookCmd.Dir = models.RepoPath(os.Getenv(http.ENV_REPO_OWNER_NAME), os.Getenv(http.ENV_REPO_NAME))
hookCmd.Stdout = os.Stdout
hookCmd.Stdin = buf
hookCmd.Stderr = os.Stderr
if err := hookCmd.Run(); err != nil {
fail("Internal error", "Fail to execute custom post-receive hook: %v", err)
}
return nil
}

View File

@@ -1,113 +0,0 @@
// Copyright 2016 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"bufio"
"bytes"
"fmt"
"os"
"path/filepath"
"time"
"github.com/Unknwon/com"
"github.com/urfave/cli"
"github.com/gogits/gogs/pkg/setting"
)
var (
Import = cli.Command{
Name: "import",
Usage: "Import portable data as local Gogs data",
Description: `Allow user import data from other Gogs installations to local instance
without manually hacking the data files`,
Subcommands: []cli.Command{
subcmdImportLocale,
},
}
subcmdImportLocale = cli.Command{
Name: "locale",
Usage: "Import locale files to local repository",
Action: runImportLocale,
Flags: []cli.Flag{
stringFlag("source", "", "Source directory that stores new locale files"),
stringFlag("target", "", "Target directory that stores old locale files"),
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
)
func runImportLocale(c *cli.Context) error {
if !c.IsSet("source") {
return fmt.Errorf("Source directory is not specified")
} else if !c.IsSet("target") {
return fmt.Errorf("Target directory is not specified")
}
if !com.IsDir(c.String("source")) {
return fmt.Errorf("Source directory does not exist or is not a directory")
} else if !com.IsDir(c.String("target")) {
return fmt.Errorf("Target directory does not exist or is not a directory")
}
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setting.NewContext()
now := time.Now()
line := make([]byte, 0, 100)
badChars := []byte(`="`)
escapedQuotes := []byte(`\"`)
regularQuotes := []byte(`"`)
// Cut out en-US.
for _, lang := range setting.Langs[1:] {
name := fmt.Sprintf("locale_%s.ini", lang)
source := filepath.Join(c.String("source"), name)
target := filepath.Join(c.String("target"), name)
if !com.IsFile(source) {
continue
}
// Crowdin surrounds double quotes for strings contain quotes inside,
// this breaks INI parser, we need to fix that.
sr, err := os.Open(source)
if err != nil {
return fmt.Errorf("Open: %v", err)
}
tw, err := os.Create(target)
if err != nil {
if err != nil {
return fmt.Errorf("Open: %v", err)
}
}
scanner := bufio.NewScanner(sr)
for scanner.Scan() {
line = scanner.Bytes()
idx := bytes.Index(line, badChars)
if idx > -1 && line[len(line)-1] == '"' {
// We still want the "=" sign
line = append(line[:idx+1], line[idx+2:len(line)-1]...)
line = bytes.Replace(line, escapedQuotes, regularQuotes, -1)
}
tw.Write(line)
tw.WriteString("\n")
}
sr.Close()
tw.Close()
// Modification time of files from Crowdin often ahead of current,
// so we need to set back to current.
os.Chtimes(target, now, now)
}
fmt.Println("Locale files has been successfully imported!")
return nil
}

View File

@@ -1,130 +0,0 @@
// Copyright 2017 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"os"
"path"
"github.com/Unknwon/cae/zip"
"github.com/Unknwon/com"
"github.com/mcuadros/go-version"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"gopkg.in/ini.v1"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/pkg/setting"
)
var Restore = cli.Command{
Name: "restore",
Usage: "Restore files and database from backup",
Description: `Restore imports all related files and database from a backup archive.
The backup version must lower or equal to current Gogs version. You can also import
backup from other database engines, which is useful for database migrating.
If corresponding files or database tables are not presented in the archive, they will
be skipped and remain unchanged.`,
Action: runRestore,
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
boolFlag("verbose, v", "Show process details"),
stringFlag("tempdir, t", os.TempDir(), "Temporary directory path"),
stringFlag("from", "", "Path to backup archive"),
boolFlag("database-only", "Only import database"),
boolFlag("exclude-repos", "Exclude repositories"),
},
}
func runRestore(c *cli.Context) error {
zip.Verbose = c.Bool("verbose")
tmpDir := c.String("tempdir")
if !com.IsExist(tmpDir) {
log.Fatal(0, "'--tempdir' does not exist: %s", tmpDir)
}
log.Info("Restore backup from: %s", c.String("from"))
if err := zip.ExtractTo(c.String("from"), tmpDir); err != nil {
log.Fatal(0, "Fail to extract backup archive: %v", err)
}
archivePath := path.Join(tmpDir, _ARCHIVE_ROOT_DIR)
// Check backup version
metaFile := path.Join(archivePath, "metadata.ini")
if !com.IsExist(metaFile) {
log.Fatal(0, "File 'metadata.ini' is missing")
}
metadata, err := ini.Load(metaFile)
if err != nil {
log.Fatal(0, "Fail to load metadata '%s': %v", metaFile, err)
}
backupVersion := metadata.Section("").Key("GOGS_VERSION").MustString("999.0")
if version.Compare(setting.AppVer, backupVersion, "<") {
log.Fatal(0, "Current Gogs version is lower than backup version: %s < %s", setting.AppVer, backupVersion)
}
// If config file is not present in backup, user must set this file via flag.
// Otherwise, it's optional to set config file flag.
configFile := path.Join(archivePath, "custom/conf/app.ini")
if c.IsSet("config") {
setting.CustomConf = c.String("config")
} else if !com.IsExist(configFile) {
log.Fatal(0, "'--config' is not specified and custom config file is not found in backup")
} else {
setting.CustomConf = configFile
}
setting.NewContext()
models.LoadConfigs()
models.SetEngine()
// Database
dbDir := path.Join(archivePath, "db")
if err = models.ImportDatabase(dbDir, c.Bool("verbose")); err != nil {
log.Fatal(0, "Fail to import database: %v", err)
}
// Custom files
if !c.Bool("database-only") {
if com.IsExist(setting.CustomPath) {
if err = os.Rename(setting.CustomPath, setting.CustomPath+".bak"); err != nil {
log.Fatal(0, "Fail to backup current 'custom': %v", err)
}
}
if err = os.Rename(path.Join(archivePath, "custom"), setting.CustomPath); err != nil {
log.Fatal(0, "Fail to import 'custom': %v", err)
}
}
// Data files
if !c.Bool("database-only") {
os.MkdirAll(setting.AppDataPath, os.ModePerm)
for _, dir := range []string{"attachments", "avatars"} {
dirPath := path.Join(setting.AppDataPath, dir)
if com.IsExist(dirPath) {
if err = os.Rename(dirPath, dirPath+".bak"); err != nil {
log.Fatal(0, "Fail to backup current 'data': %v", err)
}
}
if err = os.Rename(path.Join(archivePath, "data", dir), dirPath); err != nil {
log.Fatal(0, "Fail to import 'data': %v", err)
}
}
}
// Repositories
reposPath := path.Join(archivePath, "repositories.zip")
if !c.Bool("exclude-repos") && !c.Bool("database-only") && com.IsExist(reposPath) {
if err := zip.ExtractTo(reposPath, path.Dir(setting.RepoRootPath)); err != nil {
log.Fatal(0, "Fail to extract 'repositories.zip': %v", err)
}
}
os.RemoveAll(path.Join(tmpDir, _ARCHIVE_ROOT_DIR))
log.Info("Restore succeed!")
log.Shutdown()
return nil
}

View File

@@ -1,273 +0,0 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"
"time"
"github.com/Unknwon/com"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/models/errors"
"github.com/gogits/gogs/pkg/setting"
http "github.com/gogits/gogs/routers/repo"
)
const (
_ACCESS_DENIED_MESSAGE = "Repository does not exist or you do not have access"
)
var Serv = cli.Command{
Name: "serv",
Usage: "This command should only be called by SSH shell",
Description: `Serv provide access auth for repositories`,
Action: runServ,
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
func fail(userMessage, logMessage string, args ...interface{}) {
fmt.Fprintln(os.Stderr, "Gogs:", userMessage)
if len(logMessage) > 0 {
if !setting.ProdMode {
fmt.Fprintf(os.Stderr, logMessage+"\n", args...)
}
log.Fatal(3, logMessage, args...)
}
os.Exit(1)
}
func setup(c *cli.Context, logPath string, connectDB bool) {
if c.IsSet("config") {
setting.CustomConf = c.String("config")
} else if c.GlobalIsSet("config") {
setting.CustomConf = c.GlobalString("config")
}
setting.NewContext()
level := log.TRACE
if setting.ProdMode {
level = log.ERROR
}
log.New(log.FILE, log.FileConfig{
Level: level,
Filename: filepath.Join(setting.LogRootPath, logPath),
FileRotationConfig: log.FileRotationConfig{
Rotate: true,
Daily: true,
MaxDays: 3,
},
})
log.Delete(log.CONSOLE) // Remove primary logger
if !connectDB {
return
}
models.LoadConfigs()
if setting.UseSQLite3 {
workDir, _ := setting.WorkDir()
os.Chdir(workDir)
}
if err := models.SetEngine(); err != nil {
fail("Internal error", "SetEngine: %v", err)
}
}
func parseSSHCmd(cmd string) (string, string) {
ss := strings.SplitN(cmd, " ", 2)
if len(ss) != 2 {
return "", ""
}
return ss[0], strings.Replace(ss[1], "'/", "'", 1)
}
func checkDeployKey(key *models.PublicKey, repo *models.Repository) {
// Check if this deploy key belongs to current repository.
if !models.HasDeployKey(key.ID, repo.ID) {
fail("Key access denied", "Deploy key access denied: [key_id: %d, repo_id: %d]", key.ID, repo.ID)
}
// Update deploy key activity.
deployKey, err := models.GetDeployKeyByRepo(key.ID, repo.ID)
if err != nil {
fail("Internal error", "GetDeployKey: %v", err)
}
deployKey.Updated = time.Now()
if err = models.UpdateDeployKey(deployKey); err != nil {
fail("Internal error", "UpdateDeployKey: %v", err)
}
}
var (
allowedCommands = map[string]models.AccessMode{
"git-upload-pack": models.ACCESS_MODE_READ,
"git-upload-archive": models.ACCESS_MODE_READ,
"git-receive-pack": models.ACCESS_MODE_WRITE,
}
)
func runServ(c *cli.Context) error {
setup(c, "serv.log", true)
if setting.SSH.Disabled {
println("Gogs: SSH has been disabled")
return nil
}
if len(c.Args()) < 1 {
fail("Not enough arguments", "Not enough arguments")
}
sshCmd := os.Getenv("SSH_ORIGINAL_COMMAND")
if len(sshCmd) == 0 {
println("Hi there, You've successfully authenticated, but Gogs does not provide shell access.")
println("If this is unexpected, please log in with password and setup Gogs under another user.")
return nil
}
verb, args := parseSSHCmd(sshCmd)
repoFullName := strings.ToLower(strings.Trim(args, "'"))
repoFields := strings.SplitN(repoFullName, "/", 2)
if len(repoFields) != 2 {
fail("Invalid repository path", "Invalid repository path: %v", args)
}
ownerName := strings.ToLower(repoFields[0])
repoName := strings.TrimSuffix(strings.ToLower(repoFields[1]), ".git")
repoName = strings.TrimSuffix(repoName, ".wiki")
owner, err := models.GetUserByName(ownerName)
if err != nil {
if errors.IsUserNotExist(err) {
fail("Repository owner does not exist", "Unregistered owner: %s", ownerName)
}
fail("Internal error", "Fail to get repository owner '%s': %v", ownerName, err)
}
repo, err := models.GetRepositoryByName(owner.ID, repoName)
if err != nil {
if errors.IsRepoNotExist(err) {
fail(_ACCESS_DENIED_MESSAGE, "Repository does not exist: %s/%s", owner.Name, repoName)
}
fail("Internal error", "Fail to get repository: %v", err)
}
repo.Owner = owner
requestMode, ok := allowedCommands[verb]
if !ok {
fail("Unknown git command", "Unknown git command '%s'", verb)
}
// Prohibit push to mirror repositories.
if requestMode > models.ACCESS_MODE_READ && repo.IsMirror {
fail("Mirror repository is read-only", "")
}
// Allow anonymous (user is nil) clone for public repositories.
var user *models.User
key, err := models.GetPublicKeyByID(com.StrTo(strings.TrimPrefix(c.Args()[0], "key-")).MustInt64())
if err != nil {
fail("Invalid key ID", "Invalid key ID '%s': %v", c.Args()[0], err)
}
if requestMode == models.ACCESS_MODE_WRITE || repo.IsPrivate {
// Check deploy key or user key.
if key.IsDeployKey() {
if key.Mode < requestMode {
fail("Key permission denied", "Cannot push with deployment key: %d", key.ID)
}
checkDeployKey(key, repo)
} else {
user, err = models.GetUserByKeyID(key.ID)
if err != nil {
fail("Internal error", "Fail to get user by key ID '%d': %v", key.ID, err)
}
mode, err := models.AccessLevel(user.ID, repo)
if err != nil {
fail("Internal error", "Fail to check access: %v", err)
}
if mode < requestMode {
clientMessage := _ACCESS_DENIED_MESSAGE
if mode >= models.ACCESS_MODE_READ {
clientMessage = "You do not have sufficient authorization for this action"
}
fail(clientMessage,
"User '%s' does not have level '%v' access to repository '%s'",
user.Name, requestMode, repoFullName)
}
}
} else {
setting.NewService()
// Check if the key can access to the repository in case of it is a deploy key (a deploy keys != user key).
// A deploy key doesn't represent a signed in user, so in a site with Service.RequireSignInView activated
// we should give read access only in repositories where this deploy key is in use. In other case, a server
// or system using an active deploy key can get read access to all the repositories in a Gogs service.
if key.IsDeployKey() && setting.Service.RequireSignInView {
checkDeployKey(key, repo)
}
}
// Update user key activity.
if key.ID > 0 {
key, err := models.GetPublicKeyByID(key.ID)
if err != nil {
fail("Internal error", "GetPublicKeyByID: %v", err)
}
key.Updated = time.Now()
if err = models.UpdatePublicKey(key); err != nil {
fail("Internal error", "UpdatePublicKey: %v", err)
}
}
// Special handle for Windows.
if setting.IsWindows {
verb = strings.Replace(verb, "-", " ", 1)
}
var gitCmd *exec.Cmd
verbs := strings.Split(verb, " ")
if len(verbs) == 2 {
gitCmd = exec.Command(verbs[0], verbs[1], repoFullName)
} else {
gitCmd = exec.Command(verb, repoFullName)
}
if requestMode == models.ACCESS_MODE_WRITE {
gitCmd.Env = append(os.Environ(), http.ComposeHookEnvs(http.ComposeHookEnvsOptions{
AuthUser: user,
OwnerName: owner.Name,
OwnerSalt: owner.Salt,
RepoID: repo.ID,
RepoName: repo.Name,
RepoPath: repo.RepoPath(),
})...)
}
gitCmd.Dir = setting.RepoRootPath
gitCmd.Stdout = os.Stdout
gitCmd.Stdin = os.Stdin
gitCmd.Stderr = os.Stderr
if err = gitCmd.Run(); err != nil {
fail("Internal error", "Fail to execute git command: %v", err)
}
return nil
}

View File

@@ -1,726 +0,0 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"crypto/tls"
"fmt"
"io/ioutil"
"net"
"net/http"
"net/http/fcgi"
"os"
"path"
"strings"
"github.com/Unknwon/com"
"github.com/go-macaron/binding"
"github.com/go-macaron/cache"
"github.com/go-macaron/captcha"
"github.com/go-macaron/csrf"
"github.com/go-macaron/gzip"
"github.com/go-macaron/i18n"
"github.com/go-macaron/session"
"github.com/go-macaron/toolbox"
"github.com/mcuadros/go-version"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"gopkg.in/macaron.v1"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/pkg/bindata"
"github.com/gogits/gogs/pkg/context"
"github.com/gogits/gogs/pkg/form"
"github.com/gogits/gogs/pkg/mailer"
"github.com/gogits/gogs/pkg/setting"
"github.com/gogits/gogs/pkg/template"
"github.com/gogits/gogs/routers"
"github.com/gogits/gogs/routers/admin"
apiv1 "github.com/gogits/gogs/routers/api/v1"
"github.com/gogits/gogs/routers/dev"
"github.com/gogits/gogs/routers/org"
"github.com/gogits/gogs/routers/repo"
"github.com/gogits/gogs/routers/user"
)
var Web = cli.Command{
Name: "web",
Usage: "Start web server",
Description: `Gogs web server is the only thing you need to run,
and it takes care of all the other things for you`,
Action: runWeb,
Flags: []cli.Flag{
stringFlag("port, p", "3000", "Temporary port number to prevent conflict"),
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
// checkVersion checks if binary matches the version of templates files.
func checkVersion() {
// Templates.
data, err := ioutil.ReadFile(setting.StaticRootPath + "/templates/.VERSION")
if err != nil {
log.Fatal(2, "Fail to read 'templates/.VERSION': %v", err)
}
tplVer := string(data)
if tplVer != setting.AppVer {
if version.Compare(tplVer, setting.AppVer, ">") {
log.Fatal(2, "Binary version is lower than template file version, did you forget to recompile Gogs?")
} else {
log.Fatal(2, "Binary version is higher than template file version, did you forget to update template files?")
}
}
}
// newMacaron initializes Macaron instance.
func newMacaron() *macaron.Macaron {
m := macaron.New()
if !setting.DisableRouterLog {
m.Use(macaron.Logger())
}
m.Use(macaron.Recovery())
if setting.EnableGzip {
m.Use(gzip.Gziper())
}
if setting.Protocol == setting.SCHEME_FCGI {
m.SetURLPrefix(setting.AppSubURL)
}
m.Use(macaron.Static(
path.Join(setting.StaticRootPath, "public"),
macaron.StaticOptions{
SkipLogging: setting.DisableRouterLog,
},
))
m.Use(macaron.Static(
setting.AvatarUploadPath,
macaron.StaticOptions{
Prefix: "avatars",
SkipLogging: setting.DisableRouterLog,
},
))
funcMap := template.NewFuncMap()
m.Use(macaron.Renderer(macaron.RenderOptions{
Directory: path.Join(setting.StaticRootPath, "templates"),
AppendDirectories: []string{path.Join(setting.CustomPath, "templates")},
Funcs: funcMap,
IndentJSON: macaron.Env != macaron.PROD,
}))
mailer.InitMailRender(path.Join(setting.StaticRootPath, "templates/mail"),
path.Join(setting.CustomPath, "templates/mail"), funcMap)
localeNames, err := bindata.AssetDir("conf/locale")
if err != nil {
log.Fatal(4, "Fail to list locale files: %v", err)
}
localFiles := make(map[string][]byte)
for _, name := range localeNames {
localFiles[name] = bindata.MustAsset("conf/locale/" + name)
}
m.Use(i18n.I18n(i18n.Options{
SubURL: setting.AppSubURL,
Files: localFiles,
CustomDirectory: path.Join(setting.CustomPath, "conf/locale"),
Langs: setting.Langs,
Names: setting.Names,
DefaultLang: "en-US",
Redirect: true,
}))
m.Use(cache.Cacher(cache.Options{
Adapter: setting.CacheAdapter,
AdapterConfig: setting.CacheConn,
Interval: setting.CacheInterval,
}))
m.Use(captcha.Captchaer(captcha.Options{
SubURL: setting.AppSubURL,
}))
m.Use(session.Sessioner(setting.SessionConfig))
m.Use(csrf.Csrfer(csrf.Options{
Secret: setting.SecretKey,
Cookie: setting.CSRFCookieName,
SetCookie: true,
Header: "X-Csrf-Token",
CookiePath: setting.AppSubURL,
}))
m.Use(toolbox.Toolboxer(m, toolbox.Options{
HealthCheckFuncs: []*toolbox.HealthCheckFuncDesc{
&toolbox.HealthCheckFuncDesc{
Desc: "Database connection",
Func: models.Ping,
},
},
}))
m.Use(context.Contexter())
return m
}
func runWeb(c *cli.Context) error {
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
routers.GlobalInit()
checkVersion()
m := newMacaron()
reqSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: true})
ignSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: setting.Service.RequireSignInView})
ignSignInAndCsrf := context.Toggle(&context.ToggleOptions{DisableCSRF: true})
reqSignOut := context.Toggle(&context.ToggleOptions{SignOutRequired: true})
bindIgnErr := binding.BindIgnErr
// FIXME: not all routes need go through same middlewares.
// Especially some AJAX requests, we can reduce middleware number to improve performance.
// Routers.
m.Get("/", ignSignIn, routers.Home)
m.Group("/explore", func() {
m.Get("", func(c *context.Context) {
c.Redirect(setting.AppSubURL + "/explore/repos")
})
m.Get("/repos", routers.ExploreRepos)
m.Get("/users", routers.ExploreUsers)
m.Get("/organizations", routers.ExploreOrganizations)
}, ignSignIn)
m.Combo("/install", routers.InstallInit).Get(routers.Install).
Post(bindIgnErr(form.Install{}), routers.InstallPost)
m.Get("/^:type(issues|pulls)$", reqSignIn, user.Issues)
// ***** START: User *****
m.Group("/user", func() {
m.Group("/login", func() {
m.Combo("").Get(user.Login).
Post(bindIgnErr(form.SignIn{}), user.LoginPost)
m.Combo("/two_factor").Get(user.LoginTwoFactor).Post(user.LoginTwoFactorPost)
m.Combo("/two_factor_recovery_code").Get(user.LoginTwoFactorRecoveryCode).Post(user.LoginTwoFactorRecoveryCodePost)
})
m.Get("/sign_up", user.SignUp)
m.Post("/sign_up", bindIgnErr(form.Register{}), user.SignUpPost)
m.Get("/reset_password", user.ResetPasswd)
m.Post("/reset_password", user.ResetPasswdPost)
}, reqSignOut)
m.Group("/user/settings", func() {
m.Get("", user.Settings)
m.Post("", bindIgnErr(form.UpdateProfile{}), user.SettingsPost)
m.Combo("/avatar").Get(user.SettingsAvatar).
Post(binding.MultipartForm(form.Avatar{}), user.SettingsAvatarPost)
m.Post("/avatar/delete", user.SettingsDeleteAvatar)
m.Combo("/email").Get(user.SettingsEmails).
Post(bindIgnErr(form.AddEmail{}), user.SettingsEmailPost)
m.Post("/email/delete", user.DeleteEmail)
m.Get("/password", user.SettingsPassword)
m.Post("/password", bindIgnErr(form.ChangePassword{}), user.SettingsPasswordPost)
m.Combo("/ssh").Get(user.SettingsSSHKeys).
Post(bindIgnErr(form.AddSSHKey{}), user.SettingsSSHKeysPost)
m.Post("/ssh/delete", user.DeleteSSHKey)
m.Group("/security", func() {
m.Get("", user.SettingsSecurity)
m.Combo("/two_factor_enable").Get(user.SettingsTwoFactorEnable).
Post(user.SettingsTwoFactorEnablePost)
m.Combo("/two_factor_recovery_codes").Get(user.SettingsTwoFactorRecoveryCodes).
Post(user.SettingsTwoFactorRecoveryCodesPost)
m.Post("/two_factor_disable", user.SettingsTwoFactorDisable)
})
m.Group("/repositories", func() {
m.Get("", user.SettingsRepos)
m.Post("/leave", user.SettingsLeaveRepo)
})
m.Group("/organizations", func() {
m.Get("", user.SettingsOrganizations)
m.Post("/leave", user.SettingsLeaveOrganization)
})
m.Combo("/applications").Get(user.SettingsApplications).
Post(bindIgnErr(form.NewAccessToken{}), user.SettingsApplicationsPost)
m.Post("/applications/delete", user.SettingsDeleteApplication)
m.Route("/delete", "GET,POST", user.SettingsDelete)
}, reqSignIn, func(c *context.Context) {
c.Data["PageIsUserSettings"] = true
})
m.Group("/user", func() {
m.Any("/activate", user.Activate)
m.Any("/activate_email", user.ActivateEmail)
m.Get("/email2user", user.Email2User)
m.Get("/forget_password", user.ForgotPasswd)
m.Post("/forget_password", user.ForgotPasswdPost)
m.Get("/logout", user.SignOut)
})
// ***** END: User *****
adminReq := context.Toggle(&context.ToggleOptions{SignInRequired: true, AdminRequired: true})
// ***** START: Admin *****
m.Group("/admin", func() {
m.Get("", adminReq, admin.Dashboard)
m.Get("/config", admin.Config)
m.Post("/config/test_mail", admin.SendTestMail)
m.Get("/monitor", admin.Monitor)
m.Group("/users", func() {
m.Get("", admin.Users)
m.Combo("/new").Get(admin.NewUser).Post(bindIgnErr(form.AdminCrateUser{}), admin.NewUserPost)
m.Combo("/:userid").Get(admin.EditUser).Post(bindIgnErr(form.AdminEditUser{}), admin.EditUserPost)
m.Post("/:userid/delete", admin.DeleteUser)
})
m.Group("/orgs", func() {
m.Get("", admin.Organizations)
})
m.Group("/repos", func() {
m.Get("", admin.Repos)
m.Post("/delete", admin.DeleteRepo)
})
m.Group("/auths", func() {
m.Get("", admin.Authentications)
m.Combo("/new").Get(admin.NewAuthSource).Post(bindIgnErr(form.Authentication{}), admin.NewAuthSourcePost)
m.Combo("/:authid").Get(admin.EditAuthSource).
Post(bindIgnErr(form.Authentication{}), admin.EditAuthSourcePost)
m.Post("/:authid/delete", admin.DeleteAuthSource)
})
m.Group("/notices", func() {
m.Get("", admin.Notices)
m.Post("/delete", admin.DeleteNotices)
m.Get("/empty", admin.EmptyNotices)
})
}, adminReq)
// ***** END: Admin *****
m.Group("", func() {
m.Group("/:username", func() {
m.Get("", user.Profile)
m.Get("/followers", user.Followers)
m.Get("/following", user.Following)
m.Get("/stars", user.Stars)
})
m.Get("/attachments/:uuid", func(c *context.Context) {
attach, err := models.GetAttachmentByUUID(c.Params(":uuid"))
if err != nil {
c.NotFoundOrServerError("GetAttachmentByUUID", models.IsErrAttachmentNotExist, err)
return
} else if !com.IsFile(attach.LocalPath()) {
c.NotFound()
return
}
fr, err := os.Open(attach.LocalPath())
if err != nil {
c.Handle(500, "Open", err)
return
}
defer fr.Close()
c.Header().Set("Cache-Control", "public,max-age=86400")
fmt.Println("attach.Name:", attach.Name)
c.Header().Set("Content-Disposition", fmt.Sprintf(`inline; filename="%s"`, attach.Name))
if err = repo.ServeData(c, attach.Name, fr); err != nil {
c.Handle(500, "ServeData", err)
return
}
})
m.Post("/issues/attachments", repo.UploadIssueAttachment)
m.Post("/releases/attachments", repo.UploadReleaseAttachment)
}, ignSignIn)
m.Group("/:username", func() {
m.Get("/action/:action", user.Action)
}, reqSignIn)
if macaron.Env == macaron.DEV {
m.Get("/template/*", dev.TemplatePreview)
}
reqRepoAdmin := context.RequireRepoAdmin()
reqRepoWriter := context.RequireRepoWriter()
// ***** START: Organization *****
m.Group("/org", func() {
m.Group("", func() {
m.Get("/create", org.Create)
m.Post("/create", bindIgnErr(form.CreateOrg{}), org.CreatePost)
}, func(c *context.Context) {
if !c.User.CanCreateOrganization() {
c.NotFound()
}
})
m.Group("/:org", func() {
m.Get("/dashboard", user.Dashboard)
m.Get("/^:type(issues|pulls)$", user.Issues)
m.Get("/members", org.Members)
m.Get("/members/action/:action", org.MembersAction)
m.Get("/teams", org.Teams)
}, context.OrgAssignment(true))
m.Group("/:org", func() {
m.Get("/teams/:team", org.TeamMembers)
m.Get("/teams/:team/repositories", org.TeamRepositories)
m.Route("/teams/:team/action/:action", "GET,POST", org.TeamsAction)
m.Route("/teams/:team/action/repo/:action", "GET,POST", org.TeamsRepoAction)
}, context.OrgAssignment(true, false, true))
m.Group("/:org", func() {
m.Get("/teams/new", org.NewTeam)
m.Post("/teams/new", bindIgnErr(form.CreateTeam{}), org.NewTeamPost)
m.Get("/teams/:team/edit", org.EditTeam)
m.Post("/teams/:team/edit", bindIgnErr(form.CreateTeam{}), org.EditTeamPost)
m.Post("/teams/:team/delete", org.DeleteTeam)
m.Group("/settings", func() {
m.Combo("").Get(org.Settings).
Post(bindIgnErr(form.UpdateOrgSetting{}), org.SettingsPost)
m.Post("/avatar", binding.MultipartForm(form.Avatar{}), org.SettingsAvatar)
m.Post("/avatar/delete", org.SettingsDeleteAvatar)
m.Group("/hooks", func() {
m.Get("", org.Webhooks)
m.Post("/delete", org.DeleteWebhook)
m.Get("/:type/new", repo.WebhooksNew)
m.Post("/gogs/new", bindIgnErr(form.NewWebhook{}), repo.WebHooksNewPost)
m.Post("/slack/new", bindIgnErr(form.NewSlackHook{}), repo.SlackHooksNewPost)
m.Post("/discord/new", bindIgnErr(form.NewDiscordHook{}), repo.DiscordHooksNewPost)
m.Get("/:id", repo.WebHooksEdit)
m.Post("/gogs/:id", bindIgnErr(form.NewWebhook{}), repo.WebHooksEditPost)
m.Post("/slack/:id", bindIgnErr(form.NewSlackHook{}), repo.SlackHooksEditPost)
m.Post("/discord/:id", bindIgnErr(form.NewDiscordHook{}), repo.DiscordHooksEditPost)
})
m.Route("/delete", "GET,POST", org.SettingsDelete)
})
m.Route("/invitations/new", "GET,POST", org.Invitation)
}, context.OrgAssignment(true, true))
}, reqSignIn)
// ***** END: Organization *****
// ***** START: Repository *****
m.Group("/repo", func() {
m.Get("/create", repo.Create)
m.Post("/create", bindIgnErr(form.CreateRepo{}), repo.CreatePost)
m.Get("/migrate", repo.Migrate)
m.Post("/migrate", bindIgnErr(form.MigrateRepo{}), repo.MigratePost)
m.Combo("/fork/:repoid").Get(repo.Fork).
Post(bindIgnErr(form.CreateRepo{}), repo.ForkPost)
}, reqSignIn)
m.Group("/:username/:reponame", func() {
m.Group("/settings", func() {
m.Combo("").Get(repo.Settings).
Post(bindIgnErr(form.RepoSetting{}), repo.SettingsPost)
m.Group("/collaboration", func() {
m.Combo("").Get(repo.SettingsCollaboration).Post(repo.SettingsCollaborationPost)
m.Post("/access_mode", repo.ChangeCollaborationAccessMode)
m.Post("/delete", repo.DeleteCollaboration)
})
m.Group("/branches", func() {
m.Get("", repo.SettingsBranches)
m.Post("/default_branch", repo.UpdateDefaultBranch)
m.Combo("/*").Get(repo.SettingsProtectedBranch).
Post(bindIgnErr(form.ProtectBranch{}), repo.SettingsProtectedBranchPost)
}, func(c *context.Context) {
if c.Repo.Repository.IsMirror {
c.NotFound()
return
}
})
m.Group("/hooks", func() {
m.Get("", repo.Webhooks)
m.Post("/delete", repo.DeleteWebhook)
m.Get("/:type/new", repo.WebhooksNew)
m.Post("/gogs/new", bindIgnErr(form.NewWebhook{}), repo.WebHooksNewPost)
m.Post("/slack/new", bindIgnErr(form.NewSlackHook{}), repo.SlackHooksNewPost)
m.Post("/discord/new", bindIgnErr(form.NewDiscordHook{}), repo.DiscordHooksNewPost)
m.Post("/gogs/:id", bindIgnErr(form.NewWebhook{}), repo.WebHooksEditPost)
m.Post("/slack/:id", bindIgnErr(form.NewSlackHook{}), repo.SlackHooksEditPost)
m.Post("/discord/:id", bindIgnErr(form.NewDiscordHook{}), repo.DiscordHooksEditPost)
m.Group("/:id", func() {
m.Get("", repo.WebHooksEdit)
m.Post("/test", repo.TestWebhook)
m.Post("/redelivery", repo.RedeliveryWebhook)
})
m.Group("/git", func() {
m.Get("", repo.SettingsGitHooks)
m.Combo("/:name").Get(repo.SettingsGitHooksEdit).
Post(repo.SettingsGitHooksEditPost)
}, context.GitHookService())
})
m.Group("/keys", func() {
m.Combo("").Get(repo.SettingsDeployKeys).
Post(bindIgnErr(form.AddSSHKey{}), repo.SettingsDeployKeysPost)
m.Post("/delete", repo.DeleteDeployKey)
})
}, func(c *context.Context) {
c.Data["PageIsSettings"] = true
})
}, reqSignIn, context.RepoAssignment(), reqRepoAdmin, context.RepoRef())
m.Get("/:username/:reponame/action/:action", reqSignIn, context.RepoAssignment(), repo.Action)
m.Group("/:username/:reponame", func() {
m.Get("/issues", repo.RetrieveLabels, repo.Issues)
m.Get("/issues/:index", repo.ViewIssue)
m.Get("/labels/", repo.RetrieveLabels, repo.Labels)
m.Get("/milestones", repo.Milestones)
}, ignSignIn, context.RepoAssignment(true))
m.Group("/:username/:reponame", func() {
// FIXME: should use different URLs but mostly same logic for comments of issue and pull reuqest.
// So they can apply their own enable/disable logic on routers.
m.Group("/issues", func() {
m.Combo("/new", repo.MustEnableIssues).Get(context.RepoRef(), repo.NewIssue).
Post(bindIgnErr(form.NewIssue{}), repo.NewIssuePost)
m.Group("/:index", func() {
m.Post("/title", repo.UpdateIssueTitle)
m.Post("/content", repo.UpdateIssueContent)
m.Combo("/comments").Post(bindIgnErr(form.CreateComment{}), repo.NewComment)
})
})
m.Group("/comments/:id", func() {
m.Post("", repo.UpdateCommentContent)
m.Post("/delete", repo.DeleteComment)
})
}, reqSignIn, context.RepoAssignment(true))
m.Group("/:username/:reponame", func() {
m.Group("/wiki", func() {
m.Get("/?:page", repo.Wiki)
m.Get("/_pages", repo.WikiPages)
}, repo.MustEnableWiki, context.RepoRef())
}, ignSignIn, context.RepoAssignment(false, true))
m.Group("/:username/:reponame", func() {
// FIXME: should use different URLs but mostly same logic for comments of issue and pull reuqest.
// So they can apply their own enable/disable logic on routers.
m.Group("/issues", func() {
m.Group("/:index", func() {
m.Post("/label", repo.UpdateIssueLabel)
m.Post("/milestone", repo.UpdateIssueMilestone)
m.Post("/assignee", repo.UpdateIssueAssignee)
}, reqRepoWriter)
})
m.Group("/labels", func() {
m.Post("/new", bindIgnErr(form.CreateLabel{}), repo.NewLabel)
m.Post("/edit", bindIgnErr(form.CreateLabel{}), repo.UpdateLabel)
m.Post("/delete", repo.DeleteLabel)
m.Post("/initialize", bindIgnErr(form.InitializeLabels{}), repo.InitializeLabels)
}, reqRepoWriter, context.RepoRef())
m.Group("/milestones", func() {
m.Combo("/new").Get(repo.NewMilestone).
Post(bindIgnErr(form.CreateMilestone{}), repo.NewMilestonePost)
m.Get("/:id/edit", repo.EditMilestone)
m.Post("/:id/edit", bindIgnErr(form.CreateMilestone{}), repo.EditMilestonePost)
m.Get("/:id/:action", repo.ChangeMilestonStatus)
m.Post("/delete", repo.DeleteMilestone)
}, reqRepoWriter, context.RepoRef())
m.Group("/releases", func() {
m.Get("/new", repo.NewRelease)
m.Post("/new", bindIgnErr(form.NewRelease{}), repo.NewReleasePost)
m.Post("/delete", repo.DeleteRelease)
m.Get("/edit/*", repo.EditRelease)
m.Post("/edit/*", bindIgnErr(form.EditRelease{}), repo.EditReleasePost)
}, repo.MustBeNotBare, reqRepoWriter, func(c *context.Context) {
c.Data["PageIsViewFiles"] = true
})
// FIXME: Should use c.Repo.PullRequest to unify template, currently we have inconsistent URL
// for PR in same repository. After select branch on the page, the URL contains redundant head user name.
// e.g. /org1/test-repo/compare/master...org1:develop
// which should be /org1/test-repo/compare/master...develop
m.Combo("/compare/*", repo.MustAllowPulls).Get(repo.CompareAndPullRequest).
Post(bindIgnErr(form.NewIssue{}), repo.CompareAndPullRequestPost)
m.Group("", func() {
m.Combo("/_edit/*").Get(repo.EditFile).
Post(bindIgnErr(form.EditRepoFile{}), repo.EditFilePost)
m.Combo("/_new/*").Get(repo.NewFile).
Post(bindIgnErr(form.EditRepoFile{}), repo.NewFilePost)
m.Post("/_preview/*", bindIgnErr(form.EditPreviewDiff{}), repo.DiffPreviewPost)
m.Combo("/_delete/*").Get(repo.DeleteFile).
Post(bindIgnErr(form.DeleteRepoFile{}), repo.DeleteFilePost)
m.Group("", func() {
m.Combo("/_upload/*").Get(repo.UploadFile).
Post(bindIgnErr(form.UploadRepoFile{}), repo.UploadFilePost)
m.Post("/upload-file", repo.UploadFileToServer)
m.Post("/upload-remove", bindIgnErr(form.RemoveUploadFile{}), repo.RemoveUploadFileFromServer)
}, func(c *context.Context) {
if !setting.Repository.Upload.Enabled {
c.NotFound()
return
}
})
}, repo.MustBeNotBare, reqRepoWriter, context.RepoRef(), func(c *context.Context) {
if !c.Repo.CanEnableEditor() {
c.NotFound()
return
}
c.Data["PageIsViewFiles"] = true
})
}, reqSignIn, context.RepoAssignment())
m.Group("/:username/:reponame", func() {
m.Group("", func() {
m.Get("/releases", repo.MustBeNotBare, repo.Releases)
m.Get("/pulls", repo.RetrieveLabels, repo.Pulls)
m.Get("/pulls/:index", repo.ViewPull)
}, context.RepoRef())
m.Group("/branches", func() {
m.Get("", repo.Branches)
m.Get("/all", repo.AllBranches)
m.Post("/delete/*", reqSignIn, reqRepoWriter, repo.DeleteBranchPost)
}, repo.MustBeNotBare, func(c *context.Context) {
c.Data["PageIsViewFiles"] = true
})
m.Group("/wiki", func() {
m.Group("", func() {
m.Combo("/_new").Get(repo.NewWiki).
Post(bindIgnErr(form.NewWiki{}), repo.NewWikiPost)
m.Combo("/:page/_edit").Get(repo.EditWiki).
Post(bindIgnErr(form.NewWiki{}), repo.EditWikiPost)
m.Post("/:page/delete", repo.DeleteWikiPagePost)
}, reqSignIn, reqRepoWriter)
}, repo.MustEnableWiki, context.RepoRef())
m.Get("/archive/*", repo.MustBeNotBare, repo.Download)
m.Group("/pulls/:index", func() {
m.Get("/commits", context.RepoRef(), repo.ViewPullCommits)
m.Get("/files", context.RepoRef(), repo.ViewPullFiles)
m.Post("/merge", reqRepoWriter, repo.MergePullRequest)
}, repo.MustAllowPulls)
m.Group("", func() {
m.Get("/src/*", repo.Home)
m.Get("/raw/*", repo.SingleDownload)
m.Get("/commits/*", repo.RefCommits)
m.Get("/commit/:sha([a-f0-9]{7,40})$", repo.Diff)
m.Get("/forks", repo.Forks)
}, repo.MustBeNotBare, context.RepoRef())
m.Get("/commit/:sha([a-f0-9]{7,40})\\.:ext(patch|diff)", repo.MustBeNotBare, repo.RawDiff)
m.Get("/compare/:before([a-z0-9]{40})\\.\\.\\.:after([a-z0-9]{40})", repo.MustBeNotBare, context.RepoRef(), repo.CompareDiff)
}, ignSignIn, context.RepoAssignment())
m.Group("/:username/:reponame", func() {
m.Get("/stars", repo.Stars)
m.Get("/watchers", repo.Watchers)
}, ignSignIn, context.RepoAssignment(), context.RepoRef())
m.Group("/:username", func() {
m.Get("/:reponame", ignSignIn, context.RepoAssignment(), context.RepoRef(), repo.Home)
m.Group("/:reponame", func() {
m.Head("/tasks/trigger", repo.TriggerTask)
})
// Use the regexp to match the repository name
// Duplicated routes to enable different ways of accessing same set of URLs,
// e.g. with or without ".git" suffix.
m.Group("/:reponame([\\d\\w-_\\.]+\\.git$)", func() {
m.Get("", ignSignIn, context.RepoAssignment(), context.RepoRef(), repo.Home)
m.Route("/*", "GET,POST", ignSignInAndCsrf, repo.HTTPContexter(), repo.HTTP)
})
m.Route("/:reponame/*", "GET,POST", ignSignInAndCsrf, repo.HTTPContexter(), repo.HTTP)
})
// ***** END: Repository *****
m.Group("/api", func() {
apiv1.RegisterRoutes(m)
}, ignSignIn)
// robots.txt
m.Get("/robots.txt", func(c *context.Context) {
if setting.HasRobotsTxt {
c.ServeFileContent(path.Join(setting.CustomPath, "robots.txt"))
} else {
c.NotFound()
}
})
// Not found handler.
m.NotFound(routers.NotFound)
// Flag for port number in case first time run conflict.
if c.IsSet("port") {
setting.AppURL = strings.Replace(setting.AppURL, setting.HTTPPort, c.String("port"), 1)
setting.HTTPPort = c.String("port")
}
var listenAddr string
if setting.Protocol == setting.SCHEME_UNIX_SOCKET {
listenAddr = fmt.Sprintf("%s", setting.HTTPAddr)
} else {
listenAddr = fmt.Sprintf("%s:%s", setting.HTTPAddr, setting.HTTPPort)
}
log.Info("Listen: %v://%s%s", setting.Protocol, listenAddr, setting.AppSubURL)
var err error
switch setting.Protocol {
case setting.SCHEME_HTTP:
err = http.ListenAndServe(listenAddr, m)
case setting.SCHEME_HTTPS:
var tlsMinVersion uint16
switch setting.TLSMinVersion {
case "SSL30":
tlsMinVersion = tls.VersionSSL30
case "TLS12":
tlsMinVersion = tls.VersionTLS12
case "TLS11":
tlsMinVersion = tls.VersionTLS11
case "TLS10":
fallthrough
default:
tlsMinVersion = tls.VersionTLS10
}
server := &http.Server{Addr: listenAddr, TLSConfig: &tls.Config{
MinVersion: tlsMinVersion,
CurvePreferences: []tls.CurveID{tls.CurveP521, tls.CurveP384, tls.CurveP256},
PreferServerCipherSuites: true,
CipherSuites: []uint16{
tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, // Required for HTTP/2 support.
tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
tls.TLS_RSA_WITH_AES_256_CBC_SHA,
},
}, Handler: m}
err = server.ListenAndServeTLS(setting.CertFile, setting.KeyFile)
case setting.SCHEME_FCGI:
err = fcgi.Serve(nil, m)
case setting.SCHEME_UNIX_SOCKET:
os.Remove(listenAddr)
var listener *net.UnixListener
listener, err = net.ListenUnix("unix", &net.UnixAddr{listenAddr, "unix"})
if err != nil {
break // Handle error after switch
}
// FIXME: add proper implementation of signal capture on all protocols
// execute this on SIGTERM or SIGINT: listener.Close()
if err = os.Chmod(listenAddr, os.FileMode(setting.UnixSocketPermission)); err != nil {
log.Fatal(4, "Failed to set permission of unix socket: %v", err)
}
err = http.Serve(listener, m)
default:
log.Fatal(4, "Invalid protocol: %s", setting.Protocol)
}
if err != nil {
log.Fatal(4, "Fail to start server: %v", err)
}
return nil
}

View File

@@ -1,3 +0,0 @@
Execute following command in ROOT directory when anything is changed:
$ make bindata

View File

@@ -2,51 +2,26 @@
# !!! PLEASE MAKE CHANGES ON CORRESPONDING CUSTOM CONFIG FILE !!!
# !!! IF YOU ARE PACKAGING PROVIDER, PLEASE MAKE OWN COPY OF IT !!!
; App name that shows on every page title
APP_NAME = Gogs
; The name of the system user that runs Gogs
; The brand name of the application, can be your company or team name.
BRAND_NAME = Gogs
; The system user who should be running the applications. It has no effect on Windows,
; otherwise, it should match the value of $USER environment variable.
RUN_USER = git
; Either "dev", "prod" or "test"
; The running mode of the application, can be either "dev", "prod" or "test".
RUN_MODE = dev
[server]
PROTOCOL = http
; The public-facing URL for the application.
EXTERNAL_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
; The public-facing domain name for the application.
DOMAIN = localhost
ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
; The protocol that is used to serve direct traffic to the application.
; Currently supports "http", "https", "fcgi" and "unix".
PROTOCOL = http
; The address to be listened by the application.
HTTP_ADDR = 0.0.0.0
; The port number to be listened by the application.
HTTP_PORT = 3000
; Permission for unix socket
UNIX_SOCKET_PERMISSION = 666
; Local (DMZ) URL for Gogs workers (such as SSH update) accessing web service.
; In most cases you do not need to change the default value.
; Alter it only if your SSH server node is not the same as HTTP node.
LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
; Disable SSH feature when not available
DISABLE_SSH = false
; Whether use builtin SSH server or not.
START_SSH_SERVER = false
; Domain name to be exposed in SSH clone URL
SSH_DOMAIN = %(DOMAIN)s
; Port number to be exposed in SSH clone URL
SSH_PORT = 22
; Network interface builtin SSH server listens on
SSH_LISTEN_HOST = 0.0.0.0
; Port number builtin SSH server listens on
SSH_LISTEN_PORT = %(SSH_PORT)s
; Root path of SSH directory, default is '~/.ssh', but you have to use '/home/git/.ssh'.
SSH_ROOT_PATH =
; Choose the ciphers to support for SSH connections
SSH_SERVER_CIPHERS = aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, arcfour256, arcfour128
; Directory to create temporary files when test publick key using ssh-keygen,
; default is system temporary directory.
SSH_KEY_TEST_PATH =
; Path to ssh-keygen, default is 'ssh-keygen' and let shell find out which one to call.
SSH_KEYGEN_PATH = ssh-keygen
; Indicate whether to check minimum key size with corresponding type
MINIMUM_KEY_SIZE_CHECK = false
; Disable CDN even in "prod" mode
OFFLINE_MODE = false
DISABLE_ROUTER_LOG = false
; Generate steps:
; $ ./gogs cert -ca=true -duration=8760h0m0s -host=myhost.example.com
;
@@ -56,267 +31,335 @@ DISABLE_ROUTER_LOG = false
; $ openssl pkcs12 -in cert.pfx -out key.pem -nocerts -nodes
CERT_FILE = custom/https/cert.pem
KEY_FILE = custom/https/key.pem
; Allowed TLS version values: SSL30, TLS10, TLS11, TLS12
TLS_MIN_VERSION = TLS10
; The minimum allowed TLS version, currently supports "TLS10", "TLS11", "TLS12", and "TLS13".
TLS_MIN_VERSION = TLS12
; File permission when serve traffic via Unix domain socket.
UNIX_SOCKET_PERMISSION = 666
; Local (DMZ) URL for workers (e.g. SSH update) accessing web service.
; In most cases you do not need to change the default value.
; Alter it only if your SSH server node is not the same as HTTP node.
LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
; Upper level of template and static file path
; default is the path where Gogs is executed
STATIC_ROOT_PATH =
; Default path for App data
APP_DATA_PATH = data
; Application level GZIP support
; Whether to disable using CDN for static files regardless.
OFFLINE_MODE = false
; Whether to disable logging in router.
DISABLE_ROUTER_LOG = true
; Whether to enable application level GZIP compression.
ENABLE_GZIP = false
; Landing page for non-logged users, can be "home" or "explore"
LANDING_PAGE = home
[repository]
; Root path for storing repositories's data, default is "~/<username>/gogs-repositories"
ROOT =
; The script type server supports, sometimes could be "sh"
SCRIPT_TYPE = bash
; Default ANSI charset for an unrecognized charset
ANSI_CHARSET =
; Force every new repository to be private
FORCE_PRIVATE = false
; Global maximum creation limit of repository per user, -1 means no limit
MAX_CREATION_LIMIT = -1
; Mirror sync queue length, increase if mirror syncing starts hanging
MIRROR_QUEUE_LENGTH = 1000
; Patch test queue length, increase if pull request patch testing starts hanging
PULL_REQUEST_QUEUE_LENGTH = 1000
; Preferred Licenses to place at the top of the list
; Name must match file name in conf/license or custom/conf/license
PREFERRED_LICENSES = Apache License 2.0,MIT License
; Disable ability to interact with repositories by HTTP protocol
DISABLE_HTTP_GIT = false
; Enable ability to migrate repository by local path
ENABLE_LOCAL_PATH_MIGRATION = false
; Concurrency is used to retrieve commits information. This variable define
; the maximum number of tasks that can be run at the same time. Usually, the
; value depend of how many CPUs (cores) you have. If the value is set to zero
; or under, GOGS will automatically detect the number of CPUs your system have
COMMITS_FETCH_CONCURRENCY = 0
; Enable render mode for raw file
ENABLE_RAW_FILE_RENDER_MODE = false
; The path for storing application specific data.
APP_DATA_PATH = data
; Whether to enable to load assets (i.e. "conf", "templates", "public") from disk instead of embedded bindata.
LOAD_ASSETS_FROM_DISK = false
[repository.editor]
; List of file extensions that should have line wraps in the CodeMirror editor.
; Separate extensions with a comma. To line wrap files without extension, just put a comma
LINE_WRAP_EXTENSIONS = .txt,.md,.markdown,.mdown,.mkd,
; Valid file modes that have a preview API associated with them, such as api/v1/markdown.
; Separate values by commas. Preview tab in edit mode won't show if the file extension doesn't match
PREVIEWABLE_FILE_MODES = markdown
; The landing page URL for anonymous users, the value should not include
; subpath that is handled by the reverse proxy.
LANDING_URL = /
[repository.upload]
; Enable repository file uploads.
ENABLED = true
; Path to temporarily store uploads (default path gets cleaned by Gogs in every start)
TEMP_PATH = data/tmp/uploads
; File types that are allowed to be uploaded, e.g. image/jpeg|image/png. Leave empty means allow any file type
ALLOWED_TYPES =
; Maximum size of each file in MB
FILE_MAX_SIZE = 3
; Maximum number of files per upload
MAX_FILES = 5
; Whether to disable SSH access to the application entirely.
DISABLE_SSH = false
; The domain name to be exposed in SSH clone URL.
SSH_DOMAIN = %(DOMAIN)s
; The port number to be exposed in SSH clone URL.
SSH_PORT = 22
; The path of SSH root directory, default is "$HOME/.ssh".
SSH_ROOT_PATH =
; The path to ssh-keygen, default is "ssh-keygen" and let shell find out which one to call.
SSH_KEYGEN_PATH = ssh-keygen
; The directory to create temporary files when test a public key using ssh-keygen,
; default is the system temporary directory.
SSH_KEY_TEST_PATH =
; Whether to check minimum public key size with corresponding type.
MINIMUM_KEY_SIZE_CHECK = false
; Whether to rewrite "~/.ssh/authorized_keys" file at start, ignored when use builtin SSH server.
REWRITE_AUTHORIZED_KEYS_AT_START = false
; Whether to start a builtin SSH server.
START_SSH_SERVER = false
; The network interface for builtin SSH server to listen on.
SSH_LISTEN_HOST = 0.0.0.0
; The port number for builtin SSH server to listen on.
SSH_LISTEN_PORT = %(SSH_PORT)s
; The list of accepted ciphers for connections to builtin SSH server.
SSH_SERVER_CIPHERS = aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, arcfour256, arcfour128
; The list of accepted MACs for connections to builtin SSH server.
SSH_SERVER_MACS = hmac-sha2-256-etm@openssh.com, hmac-sha2-256, hmac-sha1
; The list of accepted key exchange algorithms for connections to builtin SSH server.
SSH_SERVER_ALGORITHMS = rsa, ecdsa, ed25519
; Attachment settings for releases
[release.attachment]
; Whether attachments are enabled. Defaults to `true`
ENABLED = true
; Path for attachments. Defaults to `data/attachments`
PATH = data/attachments
; One or more allowed types, e.g. image/jpeg|image/png
ALLOWED_TYPES = */*
; Max size of each file. Defaults to 32MB
MAX_SIZE = 32
; Max number of files per upload. Defaults to 10
MAX_FILES = 10
[markdown]
; Enable hard line break extension
ENABLE_HARD_LINE_BREAK = false
; List of custom URL-Schemes that are allowed as links when rendering Markdown
; for example git,magnet
CUSTOM_URL_SCHEMES =
; List of file extensions that should be rendered/edited as Markdown
; Separate extensions with a comma. To render files w/o extension as markdown, just put a comma
FILE_EXTENSIONS = .md,.markdown,.mdown,.mkd
[smartypants]
ENABLED = false
FRACTIONS = true
DASHES = true
LATEX_DASHES = true
ANGLED_QUOTES = true
[http]
; Value for Access-Control-Allow-Origin header, default is not to present
ACCESS_CONTROL_ALLOW_ORIGIN =
; Define allowed algorithms and their minimum key length (use -1 to disable a type)
; Define allowed algorithms and their minimum key length (use -1 to disable a type).
[ssh.minimum_key_sizes]
ED25519 = 256
ECDSA = 256
RSA = 2048
DSA = 1024
[database]
; Either "mysql", "postgres" or "sqlite3", you can connect to TiDB with MySQL protocol
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs
USER = root
PASSWD =
; For "postgres" only, either "disable", "require" or "verify-full"
SSL_MODE = disable
; For "sqlite3" and "tidb", use absolute path when you start as service
PATH = data/gogs.db
[repository]
; The root path for storing managed repositories, default is "~/gogs-repositories"
ROOT =
; The script type server supports, sometimes could be "sh".
SCRIPT_TYPE = bash
; Default ANSI charset for an unrecognized charset.
ANSI_CHARSET =
; Whether to force every new repository to be private.
FORCE_PRIVATE = false
; The global limit of number of repositories a user can create, -1 means no limit.
MAX_CREATION_LIMIT = -1
; Preferred Licenses to place at the top of the list.
; Name must match file name in "conf/license" or "custom/conf/license".
PREFERRED_LICENSES = Apache License 2.0, MIT License
; Whether to disable Git interaction with repositories via HTTP/HTTPS protocol.
DISABLE_HTTP_GIT = false
; Whether to enable ability to migrate repository by server local path.
ENABLE_LOCAL_PATH_MIGRATION = false
; Whether to enable render mode for raw file. There are potential security risks.
ENABLE_RAW_FILE_RENDER_MODE = false
; The maximum number of goroutines that can be run at the same time for a single
; fetch request. Usually, the value depend of how many CPU (cores) you have. If
; the value is non-positive, it matches the number of CPUs available to the application.
COMMITS_FETCH_CONCURRENCY = 0
; Default branch name when creating new repositories.
DEFAULT_BRANCH = master
[admin]
; Disable regular (non-admin) users to create organizations
DISABLE_REGULAR_ORG_CREATION = false
[repository.editor]
; List of file extensions that should have line wraps in the CodeMirror editor.
; Separate extensions with a comma.
LINE_WRAP_EXTENSIONS = .txt,.md,.markdown,.mdown,.mkd
; Valid file modes that have a preview API associated with them, such as "/api/v1/markdown".
; Separate values by commas. Preview tab in edit mode won't show if the file extension doesn't match.
PREVIEWABLE_FILE_MODES = markdown
[security]
INSTALL_LOCK = false
; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!!
SECRET_KEY = !#@FDEWREWR&*(
; Auto-login remember days
LOGIN_REMEMBER_DAYS = 7
COOKIE_USERNAME = gogs_awesome
COOKIE_REMEMBER_NAME = gogs_incredible
COOKIE_SECURE = false
; Reverse proxy authentication header name of user name
REVERSE_PROXY_AUTHENTICATION_USER = X-WEBAUTH-USER
; Enable to set cookie to indicate user login status
ENABLE_LOGIN_STATUS_COOKIE = false
LOGIN_STATUS_COOKIE_NAME = login_status
[service]
ACTIVE_CODE_LIVE_MINUTES = 180
RESET_PASSWD_CODE_LIVE_MINUTES = 180
; User need to confirm e-mail for registration
REGISTER_EMAIL_CONFIRM = false
; Does not allow register and admin create account only
DISABLE_REGISTRATION = false
; User must sign in to view anything.
REQUIRE_SIGNIN_VIEW = false
; Mail notification
ENABLE_NOTIFY_MAIL = false
; More detail: https://github.com/gogits/gogs/issues/165
ENABLE_REVERSE_PROXY_AUTHENTICATION = false
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false
; Enable captcha validation for registration
ENABLE_CAPTCHA = true
[webhook]
; Types are enabled for users to use, can be "gogs", "slack", "discord"
TYPES = gogs, slack, discord
; Hook task queue length, increase if webhook shooting starts hanging
QUEUE_LENGTH = 1000
; Deliver timeout in seconds
DELIVER_TIMEOUT = 15
; Allow insecure certification
SKIP_TLS_VERIFY = false
; Number of history information in each page
PAGING_NUM = 10
[mailer]
ENABLED = false
; Buffer length of channel, keep it as it is if you don't know what it is.
SEND_BUFFER_LEN = 100
; Name displayed in mail title
SUBJECT = %(APP_NAME)s
; Mail server
; Gmail: smtp.gmail.com:587
; QQ: smtp.qq.com:465
; Note, if the port ends with "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409. If the server supports STARTTLS it will always be used.
HOST =
; Disable HELO operation when hostname are different.
DISABLE_HELO =
; Custom hostname for HELO operation, default is from system.
HELO_HOSTNAME =
; Do not verify the certificate of the server. Only use this for self-signed certificates
SKIP_VERIFY =
; Use client certificate
USE_CERTIFICATE = false
CERT_FILE = custom/mailer/cert.pem
KEY_FILE = custom/mailer/key.pem
; Mail from address, RFC 5322. This can be just an email address, or the `"Name" <email@example.com>` format
FROM =
; Mailer user name and password
USER =
PASSWD =
; Use text/plain as format of content
USE_PLAIN_TEXT = false
[cache]
; Either "memory", "redis", or "memcache", default is "memory"
ADAPTER = memory
; For "memory" only, GC interval in seconds, default is 60
INTERVAL = 60
; For "redis" and "memcache", connection host address
; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
; memcache: `127.0.0.1:11211`
HOST =
[session]
; Either "memory", "file", or "redis", default is "memory"
PROVIDER = memory
; Provider config options
; memory: not have any config yet
; file: session file path, e.g. `data/sessions`
; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table`
PROVIDER_CONFIG = data/sessions
; Session cookie name
COOKIE_NAME = i_like_gogits
; If you use session in https only, default is false
COOKIE_SECURE = false
; Enable set cookie, default is true
ENABLE_SET_COOKIE = true
; Session GC time interval, default is 3600
GC_INTERVAL_TIME = 3600
; Session life time, default is 86400
SESSION_LIFE_TIME = 86400
; Cookie name for CSRF
CSRF_COOKIE_NAME = _csrf
[picture]
; Path to store user uploaded avatars
AVATAR_UPLOAD_PATH = data/avatars
; Chinese users can choose "duoshuo"
; or a custom avatar source, like: http://cn.gravatar.com/avatar/
GRAVATAR_SOURCE = gravatar
; This value will be forced to be true in offline mode.
DISABLE_GRAVATAR = false
; Federated avatar lookup uses DNS to discover avatar associated
; with emails, see https://www.libravatar.org
; This value will be forced to be false in offline mode or Gravatar is disbaled.
ENABLE_FEDERATED_AVATAR = true
; Attachment settings for issues
[attachment]
; Whether attachments are enabled. Defaults to `true`
[repository.upload]
; Whether to enable repository file uploads.
ENABLED = true
; Path for attachments. Defaults to `data/attachments`
PATH = data/attachments
; One or more allowed types, e.g. image/jpeg|image/png
ALLOWED_TYPES = image/jpeg|image/png
; Max size of each file. Defaults to 4MB
MAX_SIZE = 4
; Max number of files per upload. Defaults to 5
; The path to temporarily store uploads (content under this path gets wiped out on every start).
TEMP_PATH = data/tmp/uploads
; File types that are allowed to be uploaded, e.g. "image/jpeg|image/png". Leave empty to allow any file type.
ALLOWED_TYPES =
; The maximum size of each file in MB.
FILE_MAX_SIZE = 3
; The maximum number of files per upload.
MAX_FILES = 5
[time]
; Specifies the format for fully outputed dates. Defaults to RFC1123
; Special supported values are ANSIC, UnixDate, RubyDate, RFC822, RFC822Z, RFC850, RFC1123, RFC1123Z, RFC3339, RFC3339Nano, Kitchen, Stamp, StampMilli, StampMicro and StampNano
; For more information about the format see http://golang.org/pkg/time/#pkg-constants
FORMAT =
[database]
; The database backend, either "postgres", "mysql" "sqlite3" or "mssql".
; You can connect to TiDB with MySQL protocol.
TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gogs
USER = gogs
PASSWORD =
; For "postgres" only
SCHEMA = public
; For "postgres" only, either "disable", "require" or "verify-full".
SSL_MODE = disable
; For "sqlite3" only, make sure to use absolute path.
PATH = data/gogs.db
; The maximum open connections of the pool.
MAX_OPEN_CONNS = 30
; The maximum idle connections of the pool.
MAX_IDLE_CONNS = 30
; General settings of loggers
[security]
; Whether to show the install page, set this to "true" to bypass it.
INSTALL_LOCK = false
; The secret to encrypt cookie values, 2FA code, etc.
; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!!
SECRET_KEY = !#@FDEWREWR&*(
; The days remembered for auto-login.
LOGIN_REMEMBER_DAYS = 7
; The cookie name to store auto-login information.
COOKIE_REMEMBER_NAME = gogs_incredible
; The cookie name to store logged in username.
COOKIE_USERNAME = gogs_awesome
; Whether to set secure cookie.
COOKIE_SECURE = false
; Whether to set cookie to indicate user login status.
ENABLE_LOGIN_STATUS_COOKIE = false
; The cookie name to store user login status.
LOGIN_STATUS_COOKIE_NAME = login_status
; A comma separated list of hostnames that are explicitly allowed to be accessed within the local network.
; Use "*" to allow all hostnames.
LOCAL_NETWORK_ALLOWLIST =
[email]
; Whether to enable the email service.
ENABLED = false
; The prefix prepended to the subject line.
SUBJECT_PREFIX = `[%(BRAND_NAME)s] `
; The SMTP server with its port, e.g. smtp.mailgun.org:587, smtp.gmail.com:587, smtp.qq.com:465
; If the port ends is "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409.
; If the server supports STARTTLS it will always be used.
HOST = smtp.mailgun.org:587
; The email from address (RFC 5322). This can be just an email address, or the `"Name" <email@example.com>` format.
FROM = noreply@gogs.localhost
; The login user.
USER = noreply@gogs.localhost
; The login password.
PASSWORD =
; Whether to disable HELO operation when the hostname is different.
DISABLE_HELO =
; The custom hostname for HELO operation, default is from system.
HELO_HOSTNAME =
; Whether to skip verifying the certificate of the server. Only use this for self-signed certificates.
SKIP_VERIFY = false
; Whether to use client certificates.
USE_CERTIFICATE = false
CERT_FILE = custom/email/cert.pem
KEY_FILE = custom/email/key.pem
; Whether to use "text/plain" as content format.
USE_PLAIN_TEXT = false
; Whether to attach a plaintext alternative to the MIME message while sending HTML emails.
; It is used to support older mail clients and make spam filters happier.
ADD_PLAIN_TEXT_ALT = false
[auth]
; The valid duration of activate code in minutes.
ACTIVATE_CODE_LIVES = 180
; The valid duration of reset password code in minutes.
RESET_PASSWORD_CODE_LIVES = 180
; Whether to require email confirmation for adding new email addresses.
; Enable this option will also require user to confirm the email for registration.
REQUIRE_EMAIL_CONFIRMATION = false
; Whether to disallow anonymous users visiting the site.
REQUIRE_SIGNIN_VIEW = false
; Whether to disable self-registration. When disabled, accounts would have to be created by admins.
DISABLE_REGISTRATION = false
; Whether to enable captcha validation for registration
ENABLE_REGISTRATION_CAPTCHA = true
; Whether to enable reverse proxy authentication via HTTP header.
ENABLE_REVERSE_PROXY_AUTHENTICATION = false
; Whether to automatically create new users for reverse proxy authentication.
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false
; The HTTP header used as username for reverse proxy authentication.
REVERSE_PROXY_AUTHENTICATION_HEADER = X-WEBAUTH-USER
[user]
; Whether to enable email notifications for users.
ENABLE_EMAIL_NOTIFICATION = false
[session]
; The session provider, either "memory", "file", or "redis".
PROVIDER = memory
; The configuration for respective provider:
; - memory: does not need any config yet
; - file: session file path, e.g. `data/sessions`
; - redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180,tls=true
PROVIDER_CONFIG = data/sessions
; The cookie name to store the session identifier.
COOKIE_NAME = i_like_gogs
; Whether to set cookie in HTTPS only.
COOKIE_SECURE = false
; The GC interval in seconds for session data.
GC_INTERVAL = 3600
; The maximum life time in seconds for a session.
MAX_LIFE_TIME = 86400
; The cookie name for CSRF token.
CSRF_COOKIE_NAME = _csrf
[cache]
; The cache adapter, either "memory", "redis", or "memcache".
ADAPTER = memory
; For "memory" only, GC interval in seconds.
INTERVAL = 60
; For "redis" and "memcache", connection host address:
; - redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
; - memcache: `127.0.0.1:11211`
HOST =
[http]
; The value for "Access-Control-Allow-Origin" header, default is not to present.
ACCESS_CONTROL_ALLOW_ORIGIN =
[lfs]
; The storage backend for uploading new objects.
STORAGE = local
; The root path to store LFS objects on local file system.
OBJECTS_PATH = data/lfs-objects
[attachment]
; Whether to enabled upload attachments in general.
ENABLED = true
; The path to store attachments on the file system.
PATH = data/attachments
; File types that are allowed to be uploaded, e.g. "image/jpeg|image/png". Leave empty to allow any file type.
ALLOWED_TYPES = image/jpeg|image/png
; The maximum size of each file in MB.
MAX_SIZE = 4
; The maximum number of files per upload.
MAX_FILES = 5
[release.attachment]
; Whether to enabled upload attachments for releases.
ENABLED = true
; File types that are allowed to be uploaded, e.g. "image/jpeg|image/png". Leave empty to allow any file type.
ALLOWED_TYPES = */*
; The maximum size of each file in MB.
MAX_SIZE = 32
; The maximum number of files per upload.
MAX_FILES = 10
[time]
; Specifies the format for fully outputed dates.
; Values should be one of the following:
; ANSIC, UnixDate, RubyDate, RFC822, RFC822Z, RFC850, RFC1123, RFC1123Z, RFC3339, RFC3339Nano, Kitchen, Stamp, StampMilli, StampMicro and StampNano.
; For more information about the format see http://golang.org/pkg/time/#pkg-constants.
FORMAT = RFC1123
[picture]
; The path to store user avatars on the file system.
AVATAR_UPLOAD_PATH = data/avatars
; The path to store repository avatars on the file system.
REPOSITORY_AVATAR_UPLOAD_PATH = data/repo-avatars
; Chinese users can use a custom avatar source, such as http://cn.gravatar.com/avatar/.
GRAVATAR_SOURCE = gravatar
; Whether to disable Gravatar, this value will be forced to be true in offline mode.
DISABLE_GRAVATAR = false
; Whether to enable federated avatar lookup uses DNS to discover avatar associated
; with emails, see https://www.libravatar.org for details.
; This value will be forced to be false in offline mode or when Gravatar is disabled.
ENABLE_FEDERATED_AVATAR = false
[markdown]
; Whether to enable hard line break extension.
ENABLE_HARD_LINE_BREAK = false
; The list of custom URL schemes that are allowed as links when rendering Markdown.
; For example, "git" (for "git://") and "magnet" (for "magnet://").
CUSTOM_URL_SCHEMES =
; The list of file extensions that should be rendered/edited as Markdown.
; Separate extensions with a comma. To render files with no extension as markdown, just put a comma.
FILE_EXTENSIONS = .md,.markdown,.mdown,.mkd
[smartypants]
; Whether to enable the Smartypants extension.
ENABLED = false
FRACTIONS = true
DASHES = true
LATEX_DASHES = true
ANGLED_QUOTES = true
[admin]
; Whether to disable regular (non-admin) users to create organizations.
DISABLE_REGULAR_ORG_CREATION = false
[webhook]
; The list of enabled types for users to use, can be "gogs", "slack", "discord", "dingtalk".
TYPES = gogs, slack, discord, dingtalk
; Deliver timeout in seconds.
DELIVER_TIMEOUT = 15
; Whether to allow insecure certification.
SKIP_TLS_VERIFY = false
; The number of history information in each page.
PAGING_NUM = 10
; General settings of loggers.
[log]
; The root path for all log files, default is "log/" subdirectory.
ROOT_PATH =
; Can be "console" and "file", default is "console"
; Can be "console", "file", "slack" and "discord".
; Use comma to separate multiple modes, e.g. "console, file"
MODE = console
; Buffer length of channel, keep it as it is if you don't know what it is.
@@ -326,31 +369,39 @@ LEVEL = Trace
; For "console" mode only
[log.console]
; leave empty to inherit
LEVEL =
; Comment out to inherit
; LEVEL =
; For "file" mode only
[log.file]
; leave empty to inherit
LEVEL =
; This enables automated log rotate (switch of following options)
; Comment out to inherit
; LEVEL =
; Whether to enable automated log rotate (switch of following options).
LOG_ROTATE = true
; Segment log daily
; Whether to segment log files daily.
DAILY_ROTATE = true
; Max size shift of single file, default is 28 means 1 << 28, 256MB
; The maximum size shift of single file, default is 28 means 1 << 28 = 256MB.
MAX_SIZE_SHIFT = 28
; Max line number of single file
; The maximum number of lines of single file.
MAX_LINES = 1000000
; Expired days of log file (delete after max days)
; The expired days of log file (delete after max days).
MAX_DAYS = 7
; For "slack" mode only
[log.slack]
; leave empty to inherit
LEVEL =
; Comment out to inherit
; LEVEL =
; Webhook URL
URL =
[log.discord]
; Comment out to inherit
; LEVEL =
; Webhook URL
URL =
; The username to be displayed in notification.
USERNAME = %(BRAND_NAME)s
[log.xorm]
; Enable file rotation
ROTATE = true
@@ -361,14 +412,24 @@ MAX_SIZE = 100
; Maximum days to keep logger files
MAX_DAYS = 3
[log.gorm]
; Whether to enable file rotation.
ROTATE = true
; Whether to rotate file every day.
ROTATE_DAILY = true
; The maximum file size in MB before next rotate.
MAX_SIZE = 100
; The maximum days to keep files.
MAX_DAYS = 3
[cron]
; Enable running cron tasks periodically.
ENABLED = true
; Run cron tasks when Gogs starts.
RUN_AT_START = false
; Update mirrors
[cron.update_mirrors]
; Defines how often the mirror syncer checks if any mirror needs to be synchronized (based on the mirror update interval).
SCHEDULE = @every 10m
; Repository health check
@@ -394,12 +455,12 @@ OLDER_THAN = 24h
[git]
; Disables highlight of added and removed changes
DISABLE_DIFF_HIGHLIGHT = false
; Max number of files shown in diff view
MAX_GIT_DIFF_FILES = 100
; Max number of lines allowed of a single file in diff view
MAX_GIT_DIFF_LINES = 1000
; Max number of characters of a line allowed in diff view
MAX_GIT_DIFF_LINE_CHARACTERS = 500
; Max number of files shown in diff view
MAX_GIT_DIFF_FILES = 100
MAX_GIT_DIFF_LINE_CHARACTERS = 2000
; Arguments for command 'git gc', e.g. "--aggressive --auto"
; see more on http://git-scm.com/docs/git-gc/1.7.5
GC_ARGS =
@@ -410,10 +471,12 @@ MIGRATE = 600
MIRROR = 300
CLONE = 300
PULL = 300
DIFF = 60
GC = 60
[mirror]
; Default interval in hours between each check
; Defines the default interval (in hours) until the next sync for a mirror (after a successful mirror sync).
; It can be overridden individually for each mirror repository in the settings.
DEFAULT_INTERVAL = 8
[api]
@@ -452,11 +515,26 @@ NEWS_FEED_PAGING_NUM = 20
; Number of commits that are showed in one page
COMMITS_PAGING_NUM = 30
[i18n]
LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE,ko-KR,gl-ES,uk-UA,en-GB,hu-HU
NAMES = English,简体中文,繁體中文(香港),繁體中文(台湾),Deutsch,français,Nederlands,latviešu,русский,日本語,español,português do Brasil,polski,български,italiano,suomi,Türkçe,čeština,српски,svenska,한국어,galego,українська,English (United Kingdom),Magyar
[prometheus]
; Whether to enable Prometheus metrics.
ENABLED = true
; Whether to enable HTTP Basic Authentication to protect metrics data.
ENABLE_BASIC_AUTH = false
; The username for HTTP Basic Authentication.
BASIC_AUTH_USERNAME =
; The password for HTTP Basic Authentication.
BASIC_AUTH_PASSWORD =
; Used for datetimepicker
; Extension mapping to highlight class
; e.g. .toml=ini
[highlight.mapping]
[i18n]
LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE,ko-KR,gl-ES,uk-UA,en-GB,hu-HU,sk-SK,id-ID,fa-IR,vi-VN,pt-PT,mn-MN,ro-RO
NAMES = English,简体中文,繁體中文(香港),繁體中文(臺灣),Deutsch,français,Nederlands,latviešu,русский,日本語,español,português do Brasil,polski,български,italiano,suomi,Türkçe,čeština,српски,svenska,한국어,galego,українська,English (United Kingdom),Magyar,Slovenčina,Indonesian,Persian,Vietnamese,Português,Монгол,Română
; Used for jQuery DateTimePicker,
; list of supported languages in https://xdsoft.net/jqplugins/datetimepicker/#lang
[i18n.datelang]
en-US = en
zh-CN = zh
@@ -481,14 +559,17 @@ sv-SE = sv
ko-KR = ko
gl-ES = gl
uk-UA = uk
; Extension mapping to highlight class
; e.g. .toml=ini
[highlight.mapping]
en-GB = en-GB
hu-HU = hu
sk-SK = sk
id-ID = id
fa-IR = fa
vi-VN = vi
pt-PT = pt
mn-MN = mn
ro-RO = ro
[other]
SHOW_FOOTER_BRANDING = false
; Show version information about Gogs and Go in the footer
SHOW_FOOTER_VERSION = true
; Show time of template execution in the footer
SHOW_FOOTER_TEMPLATE_LOAD_TIME = true

View File

@@ -0,0 +1,10 @@
# This is an example of GitHub authentication
#
id = 105
type = github
name = GitHub
is_activated = true
[config]
api_endpoint = https://api.github.com/

View File

@@ -0,0 +1,29 @@
# This is an example of LDAP (BindDN) authentication
#
id = 101
type = ldap_bind_dn
name = LDAP BindDN
is_activated = true
[config]
host = mydomain.com
port = 636
# 0 - Unencrypted, 1 - LDAPS, 2 - StartTLS
security_protocol = 0
skip_verify = false
bind_dn =
bind_password =
user_base = ou=Users,dc=mydomain,dc=com
attribute_username =
attribute_name =
attribute_surname =
attribute_mail = mail
attributes_in_bind = false
filter = (&(objectClass=posixAccount)(cn=%s))
admin_filter =
group_enabled = false
group_dn =
group_filter =
group_member_uid =
user_uid =

View File

@@ -0,0 +1,30 @@
# This is an example of LDAP (simple auth) authentication
#
id = 102
type = ldap_simple_auth
name = LDAP Simple Auth
is_activated = true
[config]
host = mydomain.com
port = 636
# 0 - Unencrypted, 1 - LDAPS, 2 - StartTLS
security_protocol = 0
skip_verify = false
bind_dn =
bind_password =
user_base =
user_dn = cn=%s,ou=Users,dc=mydomain,dc=com
attribute_username =
attribute_name =
attribute_surname =
attribute_mail = mail
attributes_in_bind = false
filter = (&(objectClass=posixAccount)(cn=%s))
admin_filter =
group_enabled = false
group_dn =
group_filter =
group_member_uid =
user_uid =

View File

@@ -0,0 +1,10 @@
# This is an example of PAM authentication
#
id = 104
type = pam
name = System Auth
is_activated = true
[config]
service_name = system-auth

View File

@@ -0,0 +1,16 @@
# This is an example of SMTP authentication
#
id = 103
type = smtp
name = GMail
is_activated = true
[config]
# Either "PLAIN" or "LOGIN"
auth = PLAIN
host = smtp.gmail.com
port = 587
allowed_domains =
tls = true
skip_verify = false

23
conf/embed.go Normal file
View File

@@ -0,0 +1,23 @@
package conf
import (
"embed"
)
//go:embed app.ini **/*
var Files embed.FS
// FileNames returns a list of filenames exists in the given direction within
// Files. The list includes names of subdirectories.
func FileNames(dir string) ([]string, error) {
entries, err := Files.ReadDir(dir)
if err != nil {
return nil, err
}
fileNames := make([]string, 0, len(entries))
for _, entry := range entries {
fileNames = append(fileNames, entry.Name())
}
return fileNames, nil
}

16
conf/embed_test.go Normal file
View File

@@ -0,0 +1,16 @@
package conf
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestFileNames(t *testing.T) {
names, err := FileNames(".")
require.NoError(t, err)
want := []string{"app.ini", "auth.d", "gitignore", "label", "license", "locale", "readme"}
assert.Equal(t, want, names)
}

63
conf/gitignore/PhpStorm vendored Normal file
View File

@@ -0,0 +1,63 @@
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
.idea/**/gradle.xml
.idea/**/libraries
# CMake
cmake-build-debug/
# Mongo Explorer plugin:
.idea/**/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Ruby plugin and RubyMine
/.rakeTasks
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
### PhpStorm Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
.idea/sonarlint

76
conf/gitignore/UnrealEngine vendored Normal file
View File

@@ -0,0 +1,76 @@
# Visual Studio 2015 user specific files
.vs/
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
*.ipa
# These project files can be generated by the engine
*.xcodeproj
*.xcworkspace
*.sln
*.suo
*.opensdf
*.sdf
*.VC.db
*.VC.opendb
# Precompiled Assets
SourceArt/**/*.png
SourceArt/**/*.tga
# Binary Files
Binaries/*
Plugins/*/Binaries/*
# Builds
Build/*
# Whitelist PakBlacklist-<BuildConfiguration>.txt files
!Build/*/
Build/*/**
!Build/*/PakBlacklist*.txt
# Don't ignore icon files in Build
!Build/**/*.ico
# Built data for maps
*_BuiltData.uasset
# Configuration files generated by the Editor
Saved/*
# Compiled source files for the engine to use
Intermediate/*
Plugins/*/Intermediate/*
# Cache files for the editor to use
DerivedDataCache/*

63
conf/gitignore/WebStorm vendored Normal file
View File

@@ -0,0 +1,63 @@
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
.idea/**/gradle.xml
.idea/**/libraries
# CMake
cmake-build-debug/
# Mongo Explorer plugin:
.idea/**/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Ruby plugin and RubyMine
/.rakeTasks
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
### WebStorm Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
.idea/sonarlint

View File

@@ -21,6 +21,7 @@ Barış Arda Yılmaz <ardayilmazgamer AT gmail DOT com>
Bo-Yi Wu <appleboy DOT tw AT gmail DOT com>
Breton Corentin <contact AT neodarz DOT net>
Camille Baronnet <gogs AT camillebaronnet DOT fr>
Changwoo Ryu <cwryu AT debian DOT org>
Christoph Kisfeld <christoph DOT kisfeld AT gmail DOT com>
Cysioland
Damaris Padieu <damizx AT hotmail DOT fr>
@@ -31,6 +32,7 @@ Dmitriy Nogay <me AT catwhocode DOT ga>
Enrico Testori hypertesto AT gmail DOT com
Ezequiel Gonzalez Rial <gonrial AT gmail DOT com>
Farhan Naysee <wpmagic70 AT gmail DOT com>
Flávio Monteiro <flaviomonteiro2013 AT gmail DOT com>
Gabriel Dugny <gabriel DOT dugny AT gmail DOT com>
Ganesha <reekoheek AT gmail DOT com>
Gregor Santner <gdev AT live DOT de>
@@ -54,9 +56,11 @@ Luc Stepniewski <luc AT stepniewski DOT fr>
Łukasz Jan Niemier <lukasz AT niemier DOT pl>
Marc Schiller <marc AT schiller DOT im>
Marvin Menzerath <github AT marvin-menzerath DOT de>
Mathias Rangel Wulff <m AT rawu DOT dk>
Michael Härtl <haertl DOT mike AT gmail DOT com>
Miguel de la Cruz <miguel AT mcrx DOT me>
Mikhail Burdin <xdshot9000 AT gmail DOT com>
Mohammad Gholami <gholami DOT mohammad DOT mgh AT gmail DOT com>
Morten Sørensen <klim8d AT gmail DOT com>
Muhammad Fawwaz Orabi <mfawwaz93 AT gmail DOT com>
Nakao Takamasa <at.mattenn AT gmail DOT com>
@@ -72,9 +76,11 @@ Robin Hübner <profan AT prfn DOT se>
Rste Risafov <risafov AT lazy DOT com>
SeongJae Park <sj38 DOT park AT gmail DOT com>
Sergey Stepanov <sergystepanov AT gmail DOT com>
Simona Iacob <s AT zp1 DOT net>
Thomas Fanninger <gogs DOT thomas AT fanninger DOT at>
Tilmann Bach <tilmann AT outlook DOT com>
Toni Villena Jiménez <tonivj5 AT gmail DOT com>
Vincent AMSTOUTZ <vincent DOT amstoutz AT outlook DOT fr>
Vladimir Jigulin mogaika AT yandex DOT ru
Vladimir Vissoultchev <wqweto AT gmail DOT com>
Vongola <me AT vongola DOT tw>

View File

@@ -9,7 +9,6 @@ sign_out=Изход
sign_up=Регистрирайте се
register=Регистрация
website=Уебсайт
version=Версия
page=Страница
template=Шаблон
language=Език
@@ -44,22 +43,27 @@ issues=Задачи
cancel=Отказ
[status]
page_not_found=Страницата не е намерена
internal_server_error=Вътрешна грешка в сървър
[install]
install=Инсталация
title=Стъпки за инсталиране при първоначално стартиране
docker_helper=Ако Gogs е стартиран в Docker контейнер, моля прочетете <a target="_blank" href="%s">нашите указания</a> внимателно, преди да правите промени по настройките на тази страница!
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3, MSSQL or TiDB.
requite_db_desc=Gogs изисква MySQL, PostgreSQL, SQLite3 или TiDB (през MySQL протокол).
db_title=Настройки на базата данни
db_type=Тип на база данни
host=Сървър
user=Потребител
password=Парола
db_name=Име на база данни
db_schema=Схема
db_helper=Моля, използвайте INNODB engine с utf8_general_ci кодиране на знаци за MySQL.
ssl_mode=Режим SSL
path=Път
sqlite_helper=The file path of SQLite3 database. <br>Please use absolute path when you start as service.
err_empty_db_path=SQLite3 database path cannot be empty.
sqlite_helper=Път към файл на SQLite3 база от данни. <br>Моля използвайте абсолютен път, когато стартирате gogs като услуга.
err_empty_db_path=Пътят към SQLite3 базата от данни не може да бъде празен.
no_admin_and_disable_registration=Невъзможно изключване на регистрациите без предварително да е създаден поне един административен профил.
err_empty_admin_password=Паролата на администратор не може да е празна.
@@ -74,16 +78,17 @@ domain=Домейн
domain_helper=Тази настройка влияе на URL адреса за клониране чрез SSH.
ssh_port=SSH порт
ssh_port_helper=Номер на порт на SSH сървъра. Оставете празно за да изключите достъп през SSH.
use_builtin_ssh_server=Use Builtin SSH Server
use_builtin_ssh_server_popup=Start builtin SSH server for Git operations to distinguish from system SSH daemon.
use_builtin_ssh_server=Използване на вграден SSH сървър
use_builtin_ssh_server_popup=Стартиране на вграден SSH сървър за Git операции, различен от системния SSH демон.
http_port=HTTP порт
http_port_helper=Порт, на който приложението ще слуша.
app_url=URL адрес на приложението
app_url_helper=Този настройка променя HTTP/HTTPS адреса за клониране, а понякога и адреса на ел. поща.
log_root_path=Път към журналите
log_root_path_helper=Директория в която се записват журналите.
enable_console_mode=Enable Console Mode
enable_console_mode_popup=In addition to file mode, also print logs to console.
enable_console_mode=Включване на конзолен режим
enable_console_mode_popup=Изписване на логовете в конзолата, в допълнение към файловият режим.
default_branch=Клон по подразбиране
optional_title=Опционални настройки
email_title=Настройки на пощенска услуга
@@ -107,7 +112,7 @@ enable_captcha=Включи Captcha
enable_captcha_popup=Изисква валидиране с captcha при саморегистрация на потребители.
require_sign_in_view=Включи задължително вписване за преглед на страници
require_sign_in_view_popup=Само вписани потребители могат да виждат страниците, анонимните посетители виждат само страниците за регистрация и вход.
admin_setting_desc=Няма нужда от създаване на администраторски профил в момента, защото потребителят с първо ID в базата автоматично получава администраторски достъп.
admin_setting_desc=Няма нужда да създавате администраторски профил в момента, защото потребителят с първо ID в базата автоматично получава администраторски достъп.
admin_title=Настройки на профил на администратора
admin_name=Потребителско име
admin_password=Парола
@@ -119,9 +124,10 @@ sqlite3_not_available=Вашата версия не поддържа SQLite3,
invalid_db_setting=Настройките на базата данни са некоректни: %v
invalid_repo_path=Основният път към хранилищата е невалиден: %v
run_user_not_match=Потребителският контекст на приложението не е на текущия потребител: %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
smtp_host_missing_port=Липсва порт в зададения SMTP адрес.
invalid_smtp_from=Невалидно поле От: %v
save_config_failed=Неуспешно запазване на конфигурация: %v
init_failed=Грешка при инициализация на приложение: %v
invalid_admin_setting=Настройките на профил на администратора са невалидни: %v
install_success=Добре дошли! Радваме се, че избрахте Gogs, и Ви пожелаваме приятна работа и сърдечни поздрави!
invalid_log_root_path=Основният път към журналите е невалиден: %v
@@ -151,6 +157,8 @@ register_hepler_msg=Вече имате профил? Впишете се сег
social_register_hepler_msg=Вече имате профил? Свържете се сега!
disable_register_prompt=За съжаление създаването на нови регистрации е изключено. Обърнете се към администратора на сайта.
disable_register_mail=За съжаление потвърждението на регистрации е изключено.
auth_source=Източник за удостоверяване
local=Локален
remember_me=Запомни ме
forgot_password=Забравена парола
forget_password=Забравена парола?
@@ -169,13 +177,13 @@ reset_password_helper=Щракнете тук, за да нулирате пар
password_too_short=Размерът на паролата не може да бъде по-малък от 6 знака.
non_local_account=Нелокални потребители не могат да сменят паролата си през Gogs.
login_two_factor=Two-factor Authentication
login_two_factor_passcode=Authentication Passcode
login_two_factor_enter_recovery_code=Enter a two-factor recovery code
login_two_factor_recovery=Two-factor Recovery
login_two_factor_recovery_code=Recovery Code
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
login_two_factor=Двуфакторно удостоверяване
login_two_factor_passcode=Парола за удостоверяване
login_two_factor_enter_recovery_code=Въведете двуфакторен код за възстановяване
login_two_factor_recovery=Двуфакторно възстановяване
login_two_factor_recovery_code=Код за възстановяване
login_two_factor_enter_passcode=Въведете двуфакторен код
login_two_factor_invalid_recovery_code=Този код за възстановяване вече е бил използван или не е валиден.
[mail]
activate_account=Моля активирайте Вашия профил
@@ -212,7 +220,7 @@ Content=Съдържание
require_error=` не може да бъде празен.`
alpha_dash_error=` трябва да e валидна буква, число или тире(-_).`
alpha_dash_dot_error=` трябва да e валидна буква, число, тире(-_) или точка.`
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
alpha_dash_dot_slash_error=` must be alphanumeric, dash (-_), dot or slash characters.`
size_error=` трябва да е с размер %s.`
min_size_error=` трябва да съдържа поне %s знака.`
max_size_error=` трябва да съдържа най-много %s знака.`
@@ -229,6 +237,7 @@ org_name_been_taken=Името на организацията вече се п
team_name_been_taken=Името на екипа вече се ползва.
email_been_used=Този адрес на ел. поща вече се ползва.
username_password_incorrect=Потребителското име или паролата не са верни.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Моля уверете се, че въведеното име на хранилище е вярно.
enterred_invalid_owner_name=Моля уверете се, че въведеното име на притежател е вярно.
enterred_invalid_password=Моля уверете се, че въведената парола е вярна.
@@ -246,7 +255,7 @@ org_still_own_repo=Тази организация все още притежа
target_branch_not_exist=Целевият клон не съществува.
[user]
change_avatar=Проми своя аватар
change_avatar=Промени своя аватар
join_on=Регистриран
repositories=Хранилища
activity=Публична дейност
@@ -256,16 +265,15 @@ following=Следване
follow=Следване
unfollow=Не следвай
form.name_reserved=Потребителското име '%s' е запазено.
form.name_pattern_not_allowed=Потребителското име '%s' не е допустимо.
form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Профил
password=Парола
avatar=Аватар
ssh_keys=SSH ключове
security=Security
repos=Repositories
security=Сигурност
repos=Хранилища
orgs=Организации
applications=Приложения
delete=Изтрий профил
@@ -309,6 +317,7 @@ delete_email=Изтрий
email_deletion=Изтрий ел. поща
email_deletion_desc=При изтриване на тази ел. поща ще се премахне свързаната информация от Вашия профил. Желаете ли да продължите?
email_deletion_success=Ел. пощата беше изтрита успешно!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Добавяне на нов адрес на ел. поща
add_email=Добави ел. поща
add_email_confirmation_sent=Ново писмо за потвърждение е изпратено до '%s'. Моля проверете пощенската си кутия в рамките на следващите %d часа, за да завършите процеса на регистрация.
@@ -335,25 +344,26 @@ key_state_desc=Този ключ е използван през последни
token_state_desc=Този API ключ е използван през последните 7 дни
two_factor=Two-factor Authentication
two_factor_status=Status:
two_factor_on=On
two_factor_off=Off
two_factor_enable=Enable
two_factor_disable=Disable
two_factor_status=Статус:
two_factor_on=Вкл.
two_factor_off=Изкл.
two_factor_enable=Активиране
two_factor_disable=Деактивиране
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title=Enable Two-factor Authentication
two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=Or enter the secret:
two_factor_then_enter_passcode=Then enter passcode:
two_factor_verify=Verify
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_then_enter_passcode=След това въведете паролата:
two_factor_verify=Потвърждаване
two_factor_invalid_passcode=Въведената парола е невалидна! Моля опитайте отново.
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes=Ново генериране на кодове за възстановяване
two_factor_regenerate_recovery_codes_error=Неуспешно генериране на кодове за възстановяване: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_disable_title=Disable Two-factor Authentication
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
@@ -362,6 +372,7 @@ two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Управление на индивидуални API ключове за достъп
generate_new_token=Генериране на нов API ключ
tokens_desc=Генерирани API ключове, които могат да се използват за достъп до API на Gogs.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Всеки API ключ ще има пълен достъп до Вашия профил.
token_name=Име на API ключ
generate_token=Генериране на API ключ
@@ -370,15 +381,16 @@ delete_token=Изтрий
access_token_deletion=Изтрий индивидуален API ключ за достъп
access_token_deletion_desc=При изтриване на този индивидуален API ключ за достъп ще се премахнат всички свързани права на приложението. Желаете ли да продължите?
delete_token_success=Индивидуалният API ключ за достъп е изтрит успешно! Не забравяйте да преконфигурирате приложението също.
token_name_exists=Token with same name already exists.
orgs.none=Не сте член на никоя организация.
orgs.leave_title=Напусни организация
orgs.leave_desc=Ще загубите достъп до всички хранилища и екипи, след като напуснете организацията. Желаете ли да продължите?
repos.leave=Leave
repos.leave_title=Leave repository
repos.leave=Напускане
repos.leave_title=Напускане на хранилище
repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
repos.leave_success=You have left repository '%s' successfully!
repos.leave_success=Вие успешно напуснахте хранилище "%s"!
delete_account=Изтриване на собствения профил
delete_prompt=Тази операция ще изтрие Вашия профил завинаги и тя <strong>НЕ МОЖЕ</strong> да бъде отменена в последствие!
@@ -391,7 +403,9 @@ owner=Притежател
repo_name=Име на хранилището
repo_name_helper=Добро име на хранилище е име, състоящо от кратки, запомнящи се и уникални ключови думи.
visibility=Видимост
unlisted=Unlisted
visiblity_helper=Това хранилище е <span class="ui red text">Частно</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=Административна настройка задължава всички нови хранилища да бъдат <span class="ui red text">Частни</span>
visiblity_fork_helper=(Промяна на тази стойност ще се отрази на всички разклонения)
clone_helper=Нуждаете се от помощ при клониране? Посетете <a target="_blank" href="%s">Помощ</a>!
@@ -417,10 +431,11 @@ mirror_last_synced=Последна синхр.
watchers=Наблюдаващи
stargazers=Харесващи
forks=Разклонения
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=Притежателят е достигнал настроения лимит от %d брой хранилища.
form.name_reserved=Името на хранилището '%s' е запазено.
form.name_pattern_not_allowed=Име на хранилището от вида '%s' не е позволено.
form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Изисква потребител и парола
migrate_type=Тип мигриране
@@ -431,6 +446,7 @@ migrate.clone_address_desc=Може да използвате HTTP/HTTPS/GIT а
migrate.clone_address_desc_import_local=Можете да мигрирате хранилище от локален път на сървъра.
migrate.permission_denied=Недостатъчни права за импорт на локални хранилища.
migrate.invalid_local_path=Невалиден път - не съществува или не е директория.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Грешка при миграция: %v
mirror_from=огледало от
@@ -450,7 +466,7 @@ quick_guide=Бърз справочник
clone_this_repo=Клонирай хранилището
create_new_repo_command=Създай ново хранилище чрез командния ред
push_exist_repo=Предай съществуващо хранилище през командния ред
bare_message=This repository does not have any content yet.
bare_message=Това хранилище все още не съдържа нищо.
files=Файлове
branch=Клон
@@ -463,7 +479,7 @@ pulls=Заявки за сливане
labels=Етикети
milestones=Етапи
commits=Ревизии
git_branches=Branches
git_branches=Клонове
releases=Версии
file_raw=Директен файл
file_history=История
@@ -472,12 +488,14 @@ file_permalink=Постоянна връзка
file_too_large=Този файл е твърде голям за да се визуализира
video_not_supported_in_browser=Вашият браузър не поддържа HTML5 видео тагове.
branches.overview=Overview
branches.active_branches=Active Branches
branches.stale_branches=Stale Branches
branches.all=All Branches
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Change Default Branch
branches.overview=Преглед
branches.active_branches=Активни клонове
branches.stale_branches=Застинали клонове
branches.all=Всички клонове
branches.updated_by=Актуализирани %[1]s от %[2]s
branches.change_default_branch=Промяна на клон по подразбиране
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Нов файл
editor.upload_file=Качи файл
@@ -514,6 +532,7 @@ editor.file_changed_while_editing=Съдържанието на файла е б
editor.file_already_exists=Файл с име '%s' вече съществува в това хранилище.
editor.no_changes_to_show=Няма промени.
editor.fail_to_update_file=Невъзможно модифициране/създаване на файл '%s' заради грешка: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Добави поддиректория...
editor.unable_to_upload_files=Невъзможно качване на файлове в '%s' заради грешка: %v
editor.upload_files_to_dir=Качи файлове в '%s'
@@ -616,6 +635,7 @@ pulls.compare_compare=сравни
pulls.filter_branch=Филтър по клон
pulls.no_results=Няма резултати.
pulls.nothing_to_compare=Няма нищо за сравняване, защото родителският клон и върхът са еднакви.
pulls.nothing_merge_base=Няма нищо за сравняване, защото двата клона имат напълно различна история.
pulls.has_pull_request=`Вече има заявка за сливане между тези две цели: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Създай заявка за сливане
pulls.title_desc=заяви обединяване на %[1]d ревизии от <code>%[2]s</code> във <code>%[3]s</code>
@@ -631,6 +651,9 @@ pulls.is_checking=Проверката за конфликт все още е в
pulls.can_auto_merge_desc=Може да се извърши обединяване на тази заявка за сливане.
pulls.cannot_auto_merge_desc=Не може да се извърши обединяване, защото съществуват конфликти между ревизиите.
pulls.cannot_auto_merge_helper=Моля, използвайте инструменти на командния ред за да разрешите конфликтите.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=Обедини заявка за сливане
pulls.open_unmerged_pull_exists=`Невъзможно повторно отваряне, защото вече съществува заявка за сливане (#%d) от същото хранилище със същата информация за обединяване, която чака да бъде извършена`
pulls.delete_branch=Изтрий клон
@@ -685,28 +708,28 @@ settings.collaboration.admin=За администрация
settings.collaboration.write=За писане
settings.collaboration.read=За четене
settings.collaboration.undefined=Недефинирано
settings.branches=Branches
settings.branches=Клонове
settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
settings.default_branch=Default Branch
settings.default_branch=Клон по подразбиране
settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
settings.update=Update
settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
settings.update_default_branch_unsupported=Промяна на клон по подразбиране не се поддържа от тази версия на Git сървъра.
settings.update_default_branch_success=Default branch of this repository has been updated successfully!
settings.protected_branches=Protected Branches
settings.protected_branches=Защитени клонове
settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
settings.choose_a_branch=Choose a branch...
settings.branch_protection=Branch Protection
settings.choose_a_branch=Избор на клон...
settings.branch_protection=Защита на клон
settings.branch_protection_desc=Please choose protect options for branch <b>%s</b>.
settings.protect_this_branch=Protect this branch
settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
settings.protect_require_pull_request=Require pull request instead direct pushing
settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
settings.protect_whitelist_committers=Whitelist who can push to this branch
settings.protect_whitelist_committers=Списък на всички, които могат да изпращат към този клон
settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_users=Users who can push to this branch
settings.protect_whitelist_search_users=Search users
settings.protect_whitelist_users=Потребители, които могат да изпращат към този клон
settings.protect_whitelist_search_users=Търсене на потребители
settings.protect_whitelist_teams=Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams=Search teams
settings.protect_whitelist_search_teams=Търсене на екипи
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Уеб-куки
settings.githooks=Git куки
@@ -735,7 +758,9 @@ settings.tracker_issue_style=Стил на именуване на външна
settings.tracker_issue_style.numeric=Цифров
settings.tracker_issue_style.alphanumeric=Символен
settings.tracker_url_format_desc=Можете да използвате текстови маркери <code>{user} {repo} {index}</code> за потребителско име, име на хранилище и индекс на задача съответно.
settings.pulls_desc=Включва заявки за сливане за да може да се приемат външни доработки
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Опасна зона
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Новият притежател вече има хранилище със същото име. Изберете друго име.
@@ -756,7 +781,7 @@ settings.wiki_deletion_success=Данните за уики на това хра
settings.delete=Изтрий това хранилище
settings.delete_desc=След като изтриете хранилището, няма връщане назад. Моля, бъдете сигурни.
settings.delete_notices_1=- Тази операция <strong>НЕ МОЖЕ</strong> да бъде отменена в последствие.
settings.delete_notices_2=- Тази операция ще изтрие всичко от това хранилище, включително Git данни, задачи, коментари и достъпа на сътрудници.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- Всички разклонения ще станат независими след изтриването.
settings.deletion_success=Хранилището е изтрито успешно!
settings.update_settings_success=Настройките на хранилището са запазени успешно.
@@ -772,8 +797,10 @@ settings.collaborator_deletion_desc=Този потребител няма да
settings.remove_collaborator_success=Сътрудникът е премахнат.
settings.search_user_placeholder=Име на потребител...
settings.org_not_allowed_to_be_collaborator=Невъзможно добавяне на организация като сътрудник.
settings.add_webhook=Добави уеб-кука
settings.hooks_desc=Уеб-куките много приличат на обикновен HTTP POST тригер. Когато нещо се случи в Gogs, ние ще изпратим уведомление до сървъра, който посочите. Научете повече в <a target="_blank" href="%s">Ръководство за уеб-куки</a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Choose a type...
settings.add_webhook=Добави уеб-кука
settings.webhook_deletion=Изтрий уеб-кука
settings.webhook_deletion_desc=При изтриване на тази уеб-кука ще се премахне информацията за нея и цялата хронология на нейното изпращане. Желаете ли да продължите?
settings.webhook_deletion_success=Уеб-куката е изтрита успешно!
@@ -787,6 +814,8 @@ settings.webhook.response=Отговор
settings.webhook.headers=Заглавки
settings.webhook.payload=Съдържание
settings.webhook.body=Тяло
settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git куките се изпълняват от Git. Вие може да промените файловете с поддържаните куки в списъка по-долу, за да изпълните външни операции.
settings.githook_edit_desc=Ако куката е неактивна, ще бъде представено примерно съдържание. Ако оставите съдържанието празно, то тази кука ще бъде изключена.
settings.githook_name=Име на куката
@@ -806,18 +835,18 @@ settings.event_send_everything=При <strong>всички</strong> събити
settings.event_choose=Нека избера от какво имам нужда.
settings.event_create=Създаване
settings.event_create_desc=Създаване на клон или маркер
settings.event_delete=Delete
settings.event_delete_desc=Branch or tag deleted
settings.event_delete=Изтриване
settings.event_delete_desc=Изтрит клон или етикет
settings.event_fork=Fork
settings.event_fork_desc=Repository forked
settings.event_push=Предаване
settings.event_push_desc=Git предаване към хранилището
settings.event_issues=Issues
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_pull_request=Заявка за сливане
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Release
settings.event_release_desc=Release published in a repository.
settings.active=Активна
@@ -829,7 +858,8 @@ settings.delete_webhook=Изтрий уеб-куката
settings.recent_deliveries=Последни изпращания
settings.hook_type=Тип на куката
settings.add_slack_hook_desc=Добавяне на интеграция със <a href="%s">Slack</a> във Вашето хранилище.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_discord_hook_desc=Добавяне на интеграция с <a href="%s">Discord</a> към хранилището.
settings.add_dingtalk_hook_desc=Добавяне на интеграция с <a href="%s">Dingtalk</a> към хранилището.
settings.slack_token=API ключ
settings.slack_domain=Домейн
settings.slack_channel=Канал
@@ -846,6 +876,8 @@ settings.add_key_success=Новият ключ за внедряване '%s' е
settings.deploy_key_deletion=Изтрий ключ за внедряване
settings.deploy_key_deletion_desc=При изтриването на този ключ за внедряване ще се премахнат свързаните права за достъп до това хранилище. Желаете ли да продължите?
settings.deploy_key_deletion_success=Ключът за внедряване е изтрит успешно!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Преглед на файлове
diff.parent=родител
@@ -910,9 +942,8 @@ team_name_helper=Ще използвате това име при спомена
team_desc_helper=Каква е целта на този екип?
team_permission_desc=Какво ниво на достъп трябва да има този екип?
form.name_reserved=Името на организацията '%s' е запазено.
form.name_pattern_not_allowed=Име на организацията от вида '%s' не е разрешено.
form.team_name_reserved=Team name '%s' is reserved.
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Настройки
settings.options=Опции
@@ -984,12 +1015,19 @@ first_page=Първа
last_page=Последна
total=Общо: %d
dashboard.build_info=Build Information
dashboard.app_ver=Application version
dashboard.git_version=Git version
dashboard.go_version=Go version
dashboard.build_time=Build time
dashboard.build_commit=Build commit
dashboard.statistic=Статистика
dashboard.operations=Операции
dashboard.system_status=Наблюдение на системния статус
dashboard.statistic_info=Gogs базата данни има <b>%d</b> потребители, <b>%d</b> организации, <b>%d</b> публични ключове, <b>%d</b> хранилища, <b>%d</b> наблюдавания, <b>%d</b> харесвания, <b>%d</b> действия, <b>%d</b> достъпи, <b>%d</b> задачи, <b>%d</b> коментари, <b>%d</b> социални регистрации, <b>%d</b> последователи, <b>%d</b> огледала, <b>%d</b> версии, <b>%d</b> начини на удостоверяване, <b>%d</b> уеб-куки, <b>%d</b> етапи, <b>%d</b> етикети, <b>%d</b> задачи на куки, <b>%d</b> екипи, <b>%d</b> задачи при актуализация, <b>%d</b> прикачени файлове.
dashboard.operation_name=Име на операцията
dashboard.operation_switch=Превключи
dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Изпълни
dashboard.clean_unbind_oauth=Почисти несвързани OAuthes
dashboard.clean_unbind_oauth_success=Всички несвързани OAuthes са изтрити успешно.
@@ -1079,13 +1117,14 @@ repos.private=Частно
repos.watches=Наблюдавания
repos.stars=Харесвания
repos.issues=Задачи
repos.size=Size
repos.size=Размер
auths.auth_manage_panel=Управление на удостоверявания
auths.auth_sources=Authentication Sources
auths.new=Добави нов начин на удостоверяване
auths.name=Име
auths.type=Тип
auths.enabled=Активно
auths.default=Default
auths.updated=Последна модификация
auths.auth_type=Тип на удостоверяване
auths.auth_name=Име на удостоверяване
@@ -1094,6 +1133,7 @@ auths.domain=Домейн
auths.host=Сървър
auths.port=Порт
auths.bind_dn=Име (DN) за свръзка
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Парола за свръзка
auths.bind_password_helper=Внимание: Тази парола се запазва некриптирана. Моля използвайте потребител, който няма административен достъп.
auths.user_base=Базов OU за търсене
@@ -1121,9 +1161,9 @@ auths.enable_tls=Включи TLS криптиране
auths.skip_tls_verify=Пропусни проверка на TLS сертификат
auths.pam_service_name=Име на PAM услуга
auths.enable_auto_register=Включи автоматична регистрация
auths.tips=Съвети
auths.edit=Редактирай настройки за удостоверяване
auths.activated=Това удостоверяване е активно
auths.default_auth=This authentication is default login source
auths.new_success=Новото удостоверяване '%s' е добавено успешно.
auths.update_success=Настройките за удостоверяване са запазени успешно.
auths.update=Запази настройки за удостоверяване
@@ -1133,117 +1173,188 @@ auths.delete_auth_desc=Това удостоверяване ще бъде из
auths.still_in_used=Това удостоверяване все още се използва от някои потребители. Моля изтрийте ги или ги конвертирайте до друг тип на влизане първо.
auths.deletion_success=Удостоверяването е изтрито успешно!
auths.login_source_exist=Източник за валидация на потребители "%s" вече съществува.
auths.github_api_endpoint=API Endpoint
config.not_set=(not set)
config.server_config=Сървърни настройки
config.app_name=Име на приложението
config.app_ver=Версия на приложението
config.app_url=URL адрес на приложението
config.domain=Домейн
config.offline_mode=Офлайн режим
config.disable_router_log=Изключи журнал на маршрутизатора
config.brand_name=Brand name
config.run_user=Потребителски контекст
config.run_mode=Режим на изпълнение
config.git_version=Git версия
config.static_file_root_path=Път към статични файлове
config.log_file_root_path=Път към журнал
config.reverse_auth_user=Потребителско име при обратно удостоверяване
config.server.external_url=External URL
config.server.domain=Domain
config.server.protocol=Protocol
config.server.http_addr=HTTP address
config.server.http_port=HTTP port
config.server.cert_file=Certificate file
config.server.key_file=Key file
config.server.tls_min_version=Minimum TLS version
config.server.unix_socket_permission=Unix socket permission
config.server.local_root_url=Local root URL
config.server.offline_mode=Offline mode
config.server.disable_router_log=Disable router log
config.server.enable_gzip=Enable Gzip
config.server.app_data_path=Application data path
config.server.load_assets_from_disk=Load assets from disk
config.server.landing_url=Landing URL
config.ssh_config=SSH конфигурация
config.ssh_enabled=Активен
config.ssh_start_builtin_server=Стартирай вграден сървър
config.ssh_domain=Домейн
config.ssh_port=Порт
config.ssh_listen_port=Порт за слушане
config.ssh_root_path=Основен път
config.ssh_key_test_path=Път до ключове
config.ssh_keygen_path=Път до генератор ('ssh-keygen')
config.ssh_minimum_key_size_check=Проверка за минимален размер на ключове
config.ssh_minimum_key_sizes=Минимален размер на ключове
config.ssh.enabled=Enabled
config.ssh.domain=Exposed domain
config.ssh.port=Exposed port
config.ssh.root_path=Root path
config.ssh.keygen_path=Keygen path
config.ssh.key_test_path=Key test path
config.ssh.minimum_key_size_check=Minimum key size check
config.ssh.minimum_key_sizes=Minimum key sizes
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=Start builtin server
config.ssh.listen_host=Listen host
config.ssh.listen_port=Listen port
config.ssh.server_ciphers=Server ciphers
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Repository Configuration
config.repo_root_path=Основен път към хранилища
config.script_type=Тип на скрипта
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Disable HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.repo_config=Конфигурация на хранилище
config.repo.root_path=Root path
config.repo.script_type=Script type
config.repo.ansi_chatset=ANSI charset
config.repo.force_private=Force private
config.repo.max_creation_limit=Max creation limit
config.repo.preferred_licenses=Preferred licenses
config.repo.disable_http_git=Disable HTTP Git
config.repo.enable_local_path_migration=Enable local path migration
config.repo.enable_raw_file_render_mode=Enable raw file render mode
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Upload enabled
config.repo.upload.temp_path=Upload temporary path
config.repo.upload.allowed_types=Upload allowed types
config.repo.upload.file_max_size=Upload file size limit
config.repo.upload.max_files=Upload files limit
config.db_config=Настройки на базата данни
config.db_type=Тип
config.db_host=Сървър
config.db_name=Име
config.db_user=Потребител
config.db_ssl_mode=SSL режим
config.db_ssl_mode_helper=(само за postgres)
config.db_path=Път
config.db_path_helper=(за "sqlite3" и "tidb")
config.db.type=Type
config.db.host=Host
config.db.name=Name
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=User
config.db.ssl_mode=SSL mode
config.db.ssl_mode_helper=(for "postgres" only)
config.db.path=Path
config.db.path_helper=(for "sqlite3"only)
config.db.max_open_conns=Maximum open connections
config.db.max_idle_conns=Maximum idle connections
config.service_config=Настройка на услугата
config.register_email_confirm=Изисквай потвърждение на адреси на ел. поща
config.disable_register=Изключи нови регистрации
config.show_registration_button=Покажи бутон за регистрация
config.require_sign_in_view=Изисквай вписване за преглед
config.mail_notify=Уведомяване по ел. поща
config.disable_key_size_check=Изключи проверка минимален размер на ключ
config.enable_captcha=Включи Captcha
config.active_code_lives=Кодове за активиране
config.reset_password_code_lives=Кодове за изчистване на парола
config.security_config=Security configuration
config.security.login_remember_days=Login remember days
config.security.cookie_remember_name=Remember cookie
config.security.cookie_username=Username cookie
config.security.cookie_secure=Enable secure cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Enable login status cookie
config.security.login_status_cookie_name=Login status cookie
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Конфигурация на уеб-куки
config.queue_length=Дължина на опашка
config.deliver_timeout=Време за отказ при изпращане
config.skip_tls_verify=Пропусни проверка на TLS
config.email_config=Email configuration
config.email.enabled=Enabled
config.email.subject_prefix=Subject prefix
config.email.host=Host
config.email.from=From
config.email.user=User
config.email.disable_helo=Disable HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Skip certificate verify
config.email.use_certificate=Use custom certificate
config.email.cert_file=Certificate file
config.email.key_file=Key file
config.email.use_plain_text=Use plain text
config.email.add_plain_text_alt=Add plain text alternative
config.email.send_test_mail=Send test email
config.email.test_mail_failed=Failed to send test email to '%s': %v
config.email.test_mail_sent=Test email has been sent to '%s'.
config.mailer_config=Конфигурация на мейлър
config.mailer_enabled=Активен
config.mailer_disable_helo=Изключи HELO
config.mailer_name=Име
config.mailer_host=Сървър
config.mailer_user=Потребител
config.send_test_mail=Изпрати тестово писмо
config.test_mail_failed=Невъзможно изпращане на тестово писмо до '%s': %v
config.test_mail_sent=Тестово писмо беше изпратено до '%s'.
config.auth_config=Authentication configuration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=Require email confirmation
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Disable registration
config.auth.enable_registration_captcha=Enable registration captcha
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=OAuth конфигурация
config.oauth_enabled=Активна
config.cache_config=Конфигурация на кеша
config.cache_adapter=Кеш адаптер
config.cache_interval=Кеш интервал
config.cache_conn=Кеш на връзката
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=Конфигурация на сесии
config.session_provider=Доставчик на сесии
config.provider_config=Конфигурация на доставчик
config.cookie_name=Име на бисквитката
config.enable_set_cookie=Включи използване на бисквитки
config.gc_interval_time=GC през интервал
config.session_life_time=Период на валидност на сесиите
config.https_only=HTTPS само
config.cookie_life_time=Период на валидност на бисквитките
config.session.provider=Provider
config.session.provider_config=Provider config
config.session.cookie_name=Cookie
config.session.https_only=HTTPS only
config.session.gc_interval=GC interval
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Конфигурация на кеша
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=Конфигуриране на HTTP
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Enabled
config.attachment.path=Path
config.attachment.allowed_types=Allowed types
config.attachment.max_size=Size limit
config.attachment.max_files=Files limit
config.release_config=Release configuration
config.release.attachment.enabled=Attachment enabled
config.release.attachment.allowed_types=Attachment allowed types
config.release.attachment.max_size=Attachment size limit
config.release.attachment.max_files=Attachment files limit
config.picture_config=Конфигурация на изображения
config.picture_service=Услуги за снимки
config.disable_gravatar=Изключи Gravatar
config.enable_federated_avatar=Включи външни аватари
config.picture.avatar_upload_path=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatar source
config.picture.disable_gravatar=Disable Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Mirror configuration
config.mirror.default_interval=Default interval
config.webhook_config=Конфигурация на уеб-куки
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Конфигурация на git
config.git_disable_diff_highlight=Забрани оцветяване на синтаксис при преглед на разлики
config.git_max_diff_lines=Максимален брой различни редове (за файл)
config.git_max_diff_line_characters=Максимален брой различни символи (на ред)
config.git_max_diff_files=Максимален брой променени файлове (при показване)
config.git_gc_args=Аргументи на GC
config.git_migrate_timeout=Време за отказ при миграция
config.git_mirror_timeout=Време за отказ при синхр. на огледало
config.git_clone_timeout=Време за отказ при клониране
config.git_pull_timeout=Време за отказ при сливане
config.git_gc_timeout=Време за отказ при GC
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC arguments
config.git.migrate_timeout=Migration timeout
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=Clone timeout
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=LFS configuration
config.lfs.storage=Storage
config.lfs.objects_path=Objects path
config.log_config=Конфигурация на журнал
config.log_mode=Mode
config.log_options=Options
config.log_file_root_path=Път към журнал
config.log_mode=Режим
config.log_options=Настройки
monitor.cron=Cron задачи
monitor.name=Име
@@ -1272,7 +1383,6 @@ notices.delete_success=Системните съобщения са изтрит
[action]
create_repo=създаде хранилище <a href="%s"> %s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
rename_repo=преименува хранилище от <code>%[1]s</code> на <a href="%[2]s">%[3]s</a>
commit_repo=предаде към <a href="%[1]s/src/%[2]s">%[3]s</a> в <a href="%[1]s">%[4]s</a>
compare_commits=Сравнение между тези %d ревизии
@@ -1285,10 +1395,14 @@ create_pull_request=`създаде заявка за сливане <a href="%s
close_pull_request=`затвори заявка за сливане <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`повторно отвори заявка за сливане <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`обедини заявка за сливане <a href="%s/pulls/%s">%s#%[2]s</a>`
create_branch=created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
delete_branch=deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
create_branch=създаде клон <a href="%[1]s/src/%[2]s"> %[3]s</a> % <a href="%[1]s">[4]s</a>
delete_branch=изтри клон <code>%[2]s</code> % <a href="%[1]s">[3]s</a>
push_tag=предаде маркер <a href="%s/src/%s">%[2]s</a> към <a href="%[1]s">[3]s</a>
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
delete_tag=изтри етикет <code>%[2]s</code> % <a href="%[1]s">[3]s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=преди
@@ -1310,6 +1424,7 @@ months=%[2]s %[1]d месеца
years=%[2]s %[1]d години
raw_seconds=секунди
raw_minutes=минути
raw_hours=hours
[dropzone]
default_message=Тук пуснете файлове с влачене или просто щракнете за избор на файл за качване.

View File

@@ -9,7 +9,6 @@ sign_out=Odhlásit se
sign_up=Registrovat se
register=Registrovat se
website=Webové stránky
version=Verze
page=Strana
template=Šablona
language=Jazyk
@@ -23,10 +22,10 @@ password=Heslo
re_type=Znovu zadat
captcha=CAPTCHA
repository=Repositář
repository=Repozitář
organization=Organizace
mirror=Zrcadlo
new_repo=Nový repositář
new_repo=Nový repozitář
new_migrate=Nové přenesení
new_mirror=Nové zrcadlo
new_fork=Nový repositář rozštěpení
@@ -44,19 +43,24 @@ issues=Úkoly
cancel=Zrušit
[status]
page_not_found=Page Not Found
internal_server_error=Internal Server Error
[install]
install=Instalace
title=Kroky instalace pro první spuštění
docker_helper=Spouštíte-li Gogs uvnitř Dockeru, přečtěte si prosím pečlivě <a target="_blank" href="%s">návod</a>, než něco změníte na této stránce!
requite_db_desc=Gogs vyžaduje MySQL, PostgreSQL, SQLite3, MSSQL nebo TiDB.
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Nastavení databáze
db_type=Typ databáze
host=Server
user=Uživatel
password=Heslo
db_name=Název databáze
db_schema=Schema
db_helper=Prosím, pro MySQL použijte INNODB engine se znakovou sadou utf8_general_ci.
ssl_mode=SSL Mód
ssl_mode=SSL režim
path=Cesta
sqlite_helper=Cesta k SQLite3 databázi. <br>Prosím, použijte absolutní cestu, pokud startujete Gogs jako službu.
err_empty_db_path=Cesta k SQLite3 databázi nemůže být prázdná.
@@ -84,6 +88,7 @@ log_root_path=Adresář systémových záznamů
log_root_path_helper=Adresář, kam se budou zapisovat soubory se systémovými záznamy.
enable_console_mode=Povolit režim konzole
enable_console_mode_popup=Mimo zápisu do souboru vytisknout systémové záznamy i do konzole.
default_branch=Default Branch
optional_title=Dodatečná nastavení
email_title=Nastavení e-mailové služby
@@ -122,6 +127,7 @@ run_user_not_match=Uživatel pro spuštění není aktuální uživatel: %s -> %
smtp_host_missing_port=V adrese SMTP serveru chybí číslo portu.
invalid_smtp_from=Hodnota položky SMTP Od: není zadána správně: %v
save_config_failed=Uložení konfigurace se nezdařilo: %v
init_failed=Nepodařilo se inicializovat aplikaci: %v
invalid_admin_setting=Nastavení účtu správce není správné: %v
install_success=Vítejte! Jsme rádi, že jste si vybrali Gogs. Bavte se a opatrujte se.
invalid_log_root_path=Kořenový adresář souborů systémových záznamů není správný: %v
@@ -149,22 +155,24 @@ search=Vyhledat
create_new_account=Vytvořit nový účet
register_hepler_msg=Již máte účet? Přihlašte se!
social_register_hepler_msg=Již máte účet? Připojte se!
disable_register_prompt=Omlouvám se, ale registrace jsou vypnuty. Prosím, spojte se správcem systému.
disable_register_mail=Omlouvám se, e-mailové služby byly vypnuty. Prosím, spojte se správce serveru.
disable_register_prompt=Omlouváme se, ale registrace jsou vypnuty. Kontaktujte správce systému.
disable_register_mail=Omlouváme se, ale e-mailové služby jsou vypnuté. Kontaktujte správce systému.
auth_source=Zdroj ověření
local=Lokální
remember_me=Zapamatovat si mne
forgot_password=Zapomenuté heslo
forget_password=Zapomněli jste heslo?
sign_up_now=Potřebujete účet? Zaregistrujte se.
confirmation_mail_sent_prompt=Nový potvrzovací e-mail byl zaslán na <b>%s</b>, prosím, zkontrolujte si vaši doručenou poštu během následující %d hodin pro dokončení registračního procesu.
confirmation_mail_sent_prompt=Na adresu <b>%s</b> byl zaslán nový potvrzovací e-mail. Zkontrolujte prosím vaši doručenou poštu během následujících %d hodin pro dokončení registračního procesu.
active_your_account=Aktivujte si váš účet
prohibit_login=Přihlášení zakázáno
prohibit_login_desc=Vašemu účtu je zakázáno se přihlásit, kontaktujte prosím správce serveru.
resent_limit_prompt=Omlouvám se, ale před chvílí jste požádal o aktivační e-mail. Prosím, počkejte 3 minuty a pak to zkuste znovu.
resent_limit_prompt=Omlouváme se, ale před chvílí jste požádal o zaslání aktivačního e-mailu. Počkejte prosím 3 minuty a pak to zkuste znovu.
has_unconfirmed_mail=Zdravím, %s, máte nepotvrzenou e-mailovou adresu (<b>%s</b>). Pokud jste nedostali potvrzovací e-mail nebo potřebujete zaslat nový, klikněte prosím na tlačítko níže.
resend_mail=Klikněte zde pro odeslání aktivačního e-mailu
send_reset_mail=Klikněte zde pro (znovu)poslání e-mailu pro změnu vašeho hesla
resend_mail=Klikněte zde pro opakované odeslání aktivačního e-mailu
send_reset_mail=Klikněte zde pro (opakované) odeslání e-mailu pro obnovu vašeho hesla
reset_password=Obnova vašeho hesla
invalid_code=Omlouvám se, ale kód potvrzení vašeho e-mailu vypršel nebo není správný.
invalid_code=Omlouváme se, ale kód z vašeho potvrzovacího e-mailu vypršel nebo není správný.
reset_password_helper=Klikněte zde pro obnovu vašeho hesla
password_too_short=Délka hesla musí být minimálně 6 znaků.
non_local_account=Externí účty nemohou měnit hesla přes Gogs.
@@ -175,7 +183,7 @@ login_two_factor_enter_recovery_code=Zadejte obnovovací kód dvoufaktorového o
login_two_factor_recovery=Obnovení dvoufaktorového ověření
login_two_factor_recovery_code=Obnovovací kód
login_two_factor_enter_passcode=Zadejte přístupový kód dvoufaktorového ověření
login_two_factor_invalid_recovery_code=Obnovovací kód byl již použit nebo není platný.
login_two_factor_invalid_recovery_code=Obnovovací kód již byl použit nebo není platný.
[mail]
activate_account=Prosím, aktivujte si váš účet
@@ -195,7 +203,7 @@ RepoName=Název repositáře
Email=E-mailová adresa
Password=Heslo
Retype=Zadejte znovu heslo
SSHTitle=Název klíče SSH
SSHTitle=Název SSH klíče
HttpsUrl=HTTPS URL
PayloadUrl=URL nákladu
TeamName=Název týmu
@@ -210,18 +218,18 @@ TreeName=Cesta k souboru
Content=Obsah
require_error=` nemůže být prázdný.`
alpha_dash_error=` musí být pouze písmena, číslice či znaky - a _ .`
alpha_dash_dot_error=` musí být pouze písmena, číslice, tečka, čárka či znaky - a _ .`
alpha_dash_dot_slash_error=` musí být validní písmena, čísla nebo pomlčka, podtržítko či tečka, čárka a nebo lomítka.`
size_error=` musí být minimálně velikosti %s.`
alpha_dash_error=` smí obsahovat pouze písmena, číslice, pomlčku a podtržítko.`
alpha_dash_dot_error=` smí obsahovat pouze písmena, číslice, tečku, čárku, pomlčku a podtržítko.`
alpha_dash_dot_slash_error=` smí obsahovat pouze písmena, číslice, tečku, čárku, pomlčku, podtržítko a lomítko.`
size_error=` musí mít velikost %s.`
min_size_error=` musí obsahovat nejméně %s znaků.`
max_size_error=` musí obsahovat maximálně %s znaků.`
email_error=` není správná e-mailová adresa.`
url_error=` není správná URL.`
email_error=` není platná e-mailová adresa.`
url_error=` není platná URL.`
include_error=` musí obsahovat řetězec '%s'.`
unknown_error=Neznámá chyba:
captcha_incorrect=Zadaná CAPTCHA se neshoduje.
password_not_match=Heslo a heslo pro potvrzení nejsou shod.
password_not_match=Heslo a jeho potvrzení se neshodují.
username_been_taken=Uživatelské jméno je již obsazeno.
repo_name_been_taken=Název repositáře je již obsazen.
@@ -229,26 +237,27 @@ org_name_been_taken=Název organizace je již obsazen.
team_name_been_taken=Název týmu je již obsazen.
email_been_used=E-mailová adresa je již použita.
username_password_incorrect=Chybné uživatelské jméno nebo heslo.
auth_source_mismatch=Vybraný zdroj ověření není propojen s uživatelem.
enterred_invalid_repo_name=Ujistěte se, prosím, že zadaný název repositáře je správný.
enterred_invalid_owner_name=Ujistěte se, prosím, že jméno vlastníka je zadáno správně.
enterred_invalid_password=Ujistěte se, prosím, že zadané heslo je správné.
user_not_exist=Zadaný uživatel neexistuje.
last_org_owner=Odstranění posledního uživatele z týmu vlastníka není dovoleno, neboť vždy musí v každé organizaci existovat jeden vlastník.
last_org_owner=Odstranění posledního uživatele z týmu vlastníků není dovoleno, protože každá organizace musí mít alespoň jednoho vlastníka.
invalid_ssh_key=Omlouvám se, ale není možné ověřit váš klíč SSH: %s
unable_verify_ssh_key=Gogs nemohl ověřit váš klíč SSH, ale předpokládáme, že je platný, nicméně zkontrolujte jej prosím.
invalid_ssh_key=Omlouváme se, ale váš SSH klíč není možné ověřit: %s
unable_verify_ssh_key=Gogs nemohl ověřit váš SSH klíč, ale budeme předpokládat, že je platný. Přesto ho prosím zkontrolujte.
auth_failed=Ověření selhalo: %v
still_own_repo=Váš účet stále vlastní minimálně jeden repositář. Musíte je nejdříve smazat nebo předat.
still_has_org=Váš účet je stále členem minimálně jedné organizace. Je nutné ji nejdříve opustit nebo smazat vaše členství.
still_own_repo=Váš účet stále vlastní nějaké repositáře. Nejdříve je musíte smazat nebo někomu předat.
still_has_org=Váš účet je stále členem nějaké organizace. Je nutné ji nejdříve opustit nebo se vzdát členství.
org_still_own_repo=Tato organizace stále vlastní repositáře, musíte je nejdříve smazat nebo předat.
target_branch_not_exist=Cílová větev neexistuje.
[user]
change_avatar=Změnit vaši uživatelskou ikonu
join_on=Připojil se dne
repositories=Repositáře
join_on=Zaregistroval se dne
repositories=Repozitáře
activity=Veřejná aktivita
followers=Sledující
starred=Oblíbené repositáře
@@ -256,14 +265,13 @@ following=Sledovaní
follow=Sledovat
unfollow=Přestat sledovat
form.name_reserved=Uživatelské jméno '%s' je rezervováno.
form.name_pattern_not_allowed=Vzor uživatelského jména '%s' není povolen.
form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Profil
password=Heslo
avatar=Uživatelská ikona
ssh_keys=Klíče SSH
ssh_keys=SSH klíče
security=Bezpečnost
repos=Repositáře
orgs=Organizace
@@ -309,25 +317,26 @@ delete_email=Smazat
email_deletion=Smazání e-mailové adresy
email_deletion_desc=Smazání této e-mailové adresy odstraní návazné informace z vašeho účtu. Chcete pokračovat?
email_deletion_success=E-mailová adresa byla smazána!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Přidat novou e-mailovou adresu
add_email=Přidat e-mailovou adresu
add_email_confirmation_sent=Nový potvrzovací e-mail byl odeslán na adresu '%s', prosím zkontrolujte si vaši doručenou poštu během následujících %d hodin pro dokončení procesu potvrzení.
add_email_success=Vaše nová e-mailová adresa byla přidána.
manage_ssh_keys=Správa klíčů SSH
manage_ssh_keys=Správa SSH klíčů
add_key=Přidat klíč
ssh_desc=Toto je seznam klíčů SSH vašeho účtu. Jelikož tyto samotné klíče umožňují přístup k vašim repositářům, je velmi důležité, abyste je rozpoznal.
ssh_helper=<strong>Nevíte jak?</strong> Podívejte se do příručky GitHubu na to <a href="%s">vytvoření vlastních klíčů SSH</a> nebo vyřešte <a href="%s">bežné problémy</a>, se kterými se můžete potkat při použití SSH.
add_new_key=Přidat klíč SSH
ssh_desc=Toto je seznam SSH klíčů vašeho účtu. Jelikož SSH klíče umožňují komukoliv plný přístup k vašim repositářům, je velmi důležité, abyste si byli jistí, že jsou skutečně vaše.
ssh_helper=<strong>Nevíte jak?</strong> Podívejte se do příručky GitHubu jak si <a href="%s">vytvořit vlastní SSH klíč</a>, nebo na <a href="%s">řešení častých problémů</a>, na které můžete narazit při používání SSH.
add_new_key=Přidat SSH klíč
ssh_key_been_used=Obsah veřejného klíče byl použit.
ssh_key_name_used=Veřejný klíč se stejným jménem již existuje.
key_name=Název klíče
key_content=Obsah
add_key_success=Nový klíč SSH '%s' byl přidán!
add_key_success=Byl přidán nový SSH klíč '%s'!
delete_key=Smazat
ssh_key_deletion=Smazání klíče SSH
ssh_key_deletion=Smazání SSH klíče
ssh_key_deletion_desc=Smazání tohoto klíče SSH odstraní všechny související přístupy k vašemu účtu. Chcete pokračovat?
ssh_key_deletion_success=Klíč SSH byl smazán!
ssh_key_deletion_success=SSH klíč byl úspěšně smazán!
add_on=Přidán dne
last_used=Naposledy použit dne
no_activity=Žádná aktuální aktivita
@@ -348,6 +357,7 @@ two_factor_or_enter_secret=Nebo zadejte tajný kód:
two_factor_then_enter_passcode=Pak zadejte přístupový kód:
two_factor_verify=Ověřit
two_factor_invalid_passcode=Zadaný přístupový kód není platný, prosím, zkuste to znova!
two_factor_reused_passcode=Kód, který jste zadali už byl použit. Prosím, zkuste jiný!
two_factor_enable_error=Povolení dvoufaktorového ověření selhalo: %v
two_factor_enable_success=Dvoufaktorové ověření bylo pro váš účet povoleno!
two_factor_recovery_codes_title=Obnovovací kódy dvoufaktorového ověření
@@ -362,6 +372,7 @@ two_factor_disable_success=Dvoufaktorové ověření bylo zakázáno!
manage_access_token=Správa osobních přístupových poukázek
generate_new_token=Vygenerovat novou poukázku
tokens_desc=Poukázky, které jste vygeneroval, mohou být použity pro přístup k Gogs API.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Každá poukázka má úplný přístup k vašemu účtu.
token_name=Název poukázky
generate_token=Vygenerovat poukázku
@@ -370,6 +381,7 @@ delete_token=Smazat
access_token_deletion=Smazání osobní přístupové poukázky
access_token_deletion_desc=Smazáním této osobní přístupové poukázky odstraní všechen související přístup aplikace. Chcete pokračovat?
delete_token_success=Osobní přístupová poukázka byla odstraněna! Nezapomeňte také změnit nastavení vaší aplikace.
token_name_exists=Poukázka se stejným jménem již existtuje.
orgs.none=Nejste členem žádné organizace.
orgs.leave_title=Opustit organizaci
@@ -391,7 +403,9 @@ owner=Vlastník
repo_name=Název repositáře
repo_name_helper=Dobrý název repositáře se většinou skládá z krátkých, zapamatovatelných a unikátních klíčových slov.
visibility=Viditelnost
unlisted=Unlisted
visiblity_helper=Tento repositář je <span class="ui red text">soukromý</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=Správce vynutil na všech nových repositářích, aby byly <span class="ui red text">soukromé</span>
visiblity_fork_helper=(Změna této hodnoty ovlivní všechny repositáře rozštěpení)
clone_helper=Potřebujete pomoci s klonováním? Navštivte <a target="_blank" href="%s">nápovědu</a>!
@@ -417,10 +431,11 @@ mirror_last_synced=Naposledy synchronizováno
watchers=Sledující
stargazers=Sledující
forks=Rozštěpení
repo_description_helper=Popis repozitáře. Maximální délka 512 znaků.
repo_description_length=Dostupné znaky
form.reach_limit_of_creation=Vlastník dosáhl maximálního počtu %d vytvořených repositořů.
form.name_reserved=Název repositáře '%s' je rezervován.
form.name_pattern_not_allowed=Vzor názvu repositáře '%s' není povolen.
form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Ověření je vyžadováno
migrate_type=Typ přenesení
@@ -431,6 +446,7 @@ migrate.clone_address_desc=Toto může být HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local=Máte povoleno přenést repositář pomocí lokální cesty na serveru.
migrate.permission_denied=Není vám dovoleno importovat místní repositáře.
migrate.invalid_local_path=Neplatná místní cesta, buď neexistuje nebo není adresářem.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Přenesení selhalo: %v
mirror_from=zrcadlo
@@ -459,7 +475,7 @@ filter_branch_and_tag=Filtr pro větev nebo značku
branches=Větve
tags=Značky
issues=Úkoly
pulls=Požadavky na natažení
pulls=Pull Requesty
labels=Štítky
milestones=Milníky
commits=Revize
@@ -478,6 +494,8 @@ branches.stale_branches=Zastaralé větve
branches.all=Všechny větve
branches.updated_by=%[2]s změnil %[1]s
branches.change_default_branch=Změnit výchozí větev
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nový soubor
editor.upload_file=Nahrát soubor
@@ -514,6 +532,7 @@ editor.file_changed_while_editing=Obsah souboru se změnil od začátku úprav.
editor.file_already_exists=Soubor '%s' již v tomto repositáři existuje.
editor.no_changes_to_show=Žádné změny k zobrazení.
editor.fail_to_update_file=Vytvoření nebo změna souboru '%s' skončila chybou: %v
editor.fail_to_delete_file=Nepodařilo se smazat soubor '%s' kvůli chybě: %v
editor.add_subdir=Přidat podadresář...
editor.unable_to_upload_files=Nepodařilo se nahrát soubor do '%s'. Chyba: %v
editor.upload_files_to_dir=Nahrát soubory do '%s'
@@ -616,6 +635,7 @@ pulls.compare_compare=porovnat
pulls.filter_branch=Filtrovat větev
pulls.no_results=Nebyly nalezeny žádné výsledky.
pulls.nothing_to_compare=Není co porovnávat, protože základ a hlavní větve jsou shodné.
pulls.nothing_merge_base=Není co porovnávat, protože tyto dvě větve mají úplně jinou historii.
pulls.has_pull_request=`Požadavek na natažení mezi těmito větvemi již existuje: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Vytvořit požadavek na natažení
pulls.title_desc=chce sloučit %[1]d revizí z větve <code>%[2]s</code> do větve <code>%[3]s</code>
@@ -631,6 +651,9 @@ pulls.is_checking=Kontrola rozporů stále pokračuje, prosím obnovte za někol
pulls.can_auto_merge_desc=Tento požadavek na natažení může být automaticky sloučen.
pulls.cannot_auto_merge_desc=Tento požadavek na natažení nemůže být automaticky sloučen, neboť se v něm nachází rozpory.
pulls.cannot_auto_merge_helper=Prosím proveďte sloučení ručně, aby byly vyřešeny rozpory.
pulls.create_merge_commit=Vytvořit slučovací commit
pulls.rebase_before_merging=Rebase před slučováním
pulls.commit_description=Popis Commitu
pulls.merge_pull_request=Sloučit požadavek na natažení
pulls.open_unmerged_pull_exists=`Nemůžete znovuotevřít požadavek na natažení, neboť požadavek na natažení ze stejného repositáře se stejnými informacemi pro sloučení již existuje (#%d) a čeká na sloučení.`
pulls.delete_branch=Smazat větev
@@ -735,7 +758,9 @@ settings.tracker_issue_style=Styl pojmenování úkolů v externím systému úk
settings.tracker_issue_style.numeric=Číselný
settings.tracker_issue_style.alphanumeric=Alfanumerický
settings.tracker_url_format_desc=Můžete použít zástupné výrazy <code>{user} {repo} {index}</code> pro uživatelské jméno, název repositáře a číslo úkolu.
settings.pulls_desc=Povolit požadavky na natažení, aby mohly být příspěvky veřejnosti akceptovány
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignorovat změny v netisknutelných znacích
settings.pulls.allow_rebase_merge=Povolit použití rebase pro sloučení revizí
settings.danger_zone=Nebezpečná zóna
settings.cannot_fork_to_same_owner=Nemůžete rozštěpit repositář jejímu vlastníkovi.
settings.new_owner_has_same_repo=Nový vlastník již repositář se stejným názvem má. Vyberte, prosím, jiné jméno.
@@ -772,8 +797,10 @@ settings.collaborator_deletion_desc=Tento uživatel po tom, co bude smazán, ji
settings.remove_collaborator_success=Spolupracovník byl smazán.
settings.search_user_placeholder=Hledat uživatele...
settings.org_not_allowed_to_be_collaborator=Není dovoleno přidat organizaci jako spolupracovníka.
settings.add_webhook=Přidat webový háček
settings.hooks_desc=Webové háčky jsou podobné základním spouštím HTTP POST událostí. Kdykoliv se něco stane v Gogs, bude postaráno o oznámení specifikovanému cílovému serveru. Více se o daném dozvíte v <a target="_blank" href="%s">příručce webových háčků</a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Choose a type...
settings.add_webhook=Přidat webový háček
settings.webhook_deletion=Smazat webový háček
settings.webhook_deletion_desc=Smazáním tohoto webového háčku dojte také ke smazání veškerých informací o něm a také historie volání. Chcete pokračovat?
settings.webhook_deletion_success=Webový háček byl smazán!
@@ -787,6 +814,8 @@ settings.webhook.response=Odpověď
settings.webhook.headers=Hlavičky
settings.webhook.payload=Datová část
settings.webhook.body=Tělo zprávy
settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Jelikož háčky Gitu jsou spravovány Gitem samotným, můžete v seznamu níže upravit soubory podporovaných háčku k provádění uživatelských operací.
settings.githook_edit_desc=Je-li háček neaktivní, bude zobrazen vzorový obsah. Nebude-li zadán žádný obsah, háček bude vypnut.
settings.githook_name=Název háčku
@@ -814,10 +843,10 @@ settings.event_push=Odeslat
settings.event_push_desc=Odeslání pomocí Gitu do repositáře
settings.event_issues=Úkoly
settings.event_issues_desc=Úkol, který je otevřen, uzavřen, znovuotevřen, změněn, přiřazen, nepřiřazen, mající změněn štítek, smazán štítek, mající přiřazen milník, nemající přiřazen milník.
settings.event_issue_comment=Komentář k úkolu
settings.event_issue_comment_desc=Komentář k úkolu vytvořen, upraven nebo smazán.
settings.event_pull_request=Požadavek na natažení
settings.event_pull_request_desc=Požadavek na natažení otevřen, uzavřen, znovuotevřen, změněn, přiřazen, nepřiřazen, změněn štítek, smazán štítek, mající nastaven štítek, zrušeno nastavení štítku nebo synchronizován.
settings.event_issue_comment=Komentář k úkolu
settings.event_issue_comment_desc=Komentář k úkolu vytvořen, upraven nebo smazán.
settings.event_release=Vydání
settings.event_release_desc=Vydání vystaveno v repositáři.
settings.active=Aktivní
@@ -830,13 +859,14 @@ settings.recent_deliveries=Nedávné dodávky
settings.hook_type=Typ háčku
settings.add_slack_hook_desc=Přidat integraci <a href="%s">Slacku</a> do vašeho repositáře.
settings.add_discord_hook_desc=Přidat integraci <a href="%s">Discord</a> do vašeho repositáře.
settings.add_dingtalk_hook_desc=Přidat integraci <a href="%s">Dingtalk</a> do vašeho repositáře.
settings.slack_token=Poukázka
settings.slack_domain=Doména
settings.slack_channel=Kanál
settings.deploy_keys=Klíče pro nasazení
settings.deploy_keys_helper=<b>Přichycen při činu!</b> Pokud chcete přidat osobní veřejné klíče, zadejte je prosím v <a href="%s%s">nastavení vašeho účtu</a>.
settings.add_deploy_key=Přidat klíč pro nasazení
settings.deploy_key_desc=Klíče pro nasazení mají pouze přístup ke čtení. Nejsou stejné jako osobní klíče SSH.
settings.deploy_key_desc=Klíče pro nasazení mají pouze přístup ke čtení. Nejsou stejné jako SSH klíče osobního účtu.
settings.no_deploy_keys=Žádné klíče pro nasazení nebyly ještě přidány.
settings.title=Název
settings.deploy_key_content=Obsah
@@ -846,6 +876,8 @@ settings.add_key_success=Nový klíč pro nasazení '%s' byl přidán!
settings.deploy_key_deletion=Smazat klíč pro nasazení
settings.deploy_key_deletion_desc=Smazání toho klíče pro nasazení smaže také veškerý k němu svázaný přístup do tohoto repositáře. Chcete pokračovat?
settings.deploy_key_deletion_success=Klíč pro nasazení byl smazán!
settings.description_desc=Popis repozitáře. Maximální délka 512 znaků.
settings.description_length=Dostupné znaky
diff.browse_source=Procházet zdrojové kódy
diff.parent=rodič
@@ -901,7 +933,7 @@ people=Lidé
invite_someone=Přizvěte někoho
teams=Týmy
lower_members=členové
lower_repositories=repositáře
lower_repositories=repozitáře
create_new_team=Vytvořit nový tým
org_desc=Popis
team_name=Název týmu
@@ -910,9 +942,8 @@ team_name_helper=Tento název budete používat při zmiňovaní týmu v konverz
team_desc_helper=Popište prosím tento tým
team_permission_desc=Jakou úroveň přístupu má mít tento tým?
form.name_reserved=Název organizace '%s' je již rezervován.
form.name_pattern_not_allowed=Vzor názvu organizace '%s' není povolen.
form.team_name_reserved=Název týmu '%s' je vyhrazen.
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Nastavení
settings.options=Možnosti
@@ -965,9 +996,9 @@ teams.delete_team_success=Daný tým byl smazán.
teams.read_permission_desc=Členství v tom týmu poskytuje právo <strong>čtení</strong>: členové mohou číst z a vytvářet klony repositářů týmu.
teams.write_permission_desc=Členství v tom týmu poskytuje právo <strong>zápisu</strong>: členové mohou číst z a odesílat do repositářů týmu.
teams.admin_permission_desc=Členství v tom týmu poskytuje právo <strong>správce</strong>: členové mohou číst z, odesílat do a přidávat spolupracovníky do repositářů týmu.
teams.repositories=Repositáře týmu
teams.repositories=Repozitáře týmu
teams.search_repo_placeholder=Hledat repositář...
teams.add_team_repository=Přidat repositář týmu
teams.add_team_repository=Přidat repozitář týmu
teams.remove_repo=Odstranit
teams.add_nonexistent_repo=Repositář, který se snažíte přidat, neexistuje. Nejdříve jej vytvořte, prosím.
@@ -975,7 +1006,7 @@ teams.add_nonexistent_repo=Repositář, který se snažíte přidat, neexistuje.
dashboard=Přehled
users=Uživatelé
organizations=Organizace
repositories=Repositáře
repositories=Repozitáře
authentication=Způsoby ověření
config=Nastavení
notices=Systémová oznámení
@@ -984,12 +1015,19 @@ first_page=První
last_page=Poslední
total=Celkem: %d
dashboard.build_info=Informace o sestavení
dashboard.app_ver=Verze aplikace
dashboard.git_version=Git verze
dashboard.go_version=Go verze
dashboard.build_time=Čas sestavení
dashboard.build_commit=Commit sestavení
dashboard.statistic=Statistika
dashboard.operations=Operace
dashboard.system_status=Stav sledování systému
dashboard.statistic_info=Databáze Gogs obsahuje <b>%d</b> uživatelů, <b>%d</b> organizací, <b>%d</b> veřejných klíčů, <b>%d</b> repositářů, <b>%d</b> hlídání, <b>%d</b> oblíbení, <b>%d</b> akcí, <b>%d</b> přístupů, <b>%d</b> úkolů, <b>%d</b> komentářů, <b>%d</b> sociálních účtů, <b>%d</b> sledování, <b>%d</b> zrcadel, <b>%d</b> vydání, <b>%d</b> zdrojů přihlášení, <b>%d</b> webových háčků, <b>%d</b> milníků, <b>%d</b> štítků, <b>%d</b> háčků, <b>%d</b> týmů, <b>%d</b> úkolů změn, <b>%d</b> příloh.
dashboard.operation_name=Název operace
dashboard.operation_switch=Přepnout
dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Spustit
dashboard.clean_unbind_oauth=Smazat odpojené asociace OAuth2
dashboard.clean_unbind_oauth_success=Všechny odpojené asociace OAuth2 byly smazány.
@@ -1081,11 +1119,12 @@ repos.stars=Oblíbení
repos.issues=Úkoly
repos.size=Velikost
auths.auth_manage_panel=Panel správy způsobů ověřová
auths.auth_sources=Zdroje ověře
auths.new=Přidat nový zdroj
auths.name=Název
auths.type=Typ
auths.enabled=Povolený
auths.default=Výchozí
auths.updated=Změněné
auths.auth_type=Typ ověření
auths.auth_name=Název ověření
@@ -1094,20 +1133,21 @@ auths.domain=Doména
auths.host=Server
auths.port=Port
auths.bind_dn=Připojení DN
auths.bind_dn_helper=Můžete použít '%s' jako zástupný znak pro uživatelské jméno, například DOM\%s
auths.bind_password=Heslo připojení
auths.bind_password_helper=Upozornění: Toto heslo je ukládáno nešifrované. Nepoužívejte pro správcovské účty.
auths.user_base=Výchozí místo hledání uživatelů
auths.user_dn=DN uživatele
auths.attribute_username=Uživatelské jméno
auths.attribute_username=Atribut uživatelského jména
auths.attribute_username_placeholder=Nechte toto pole prázdné pro použití hodnoty pole uživatelského jména z přihlašovacího formuláře.
auths.attribute_name=First Name Attribute
auths.attribute_surname=Příjmení
auths.attribute_mail=E-mailová adresa
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attribute_name=Atribut křestního jména
auths.attribute_surname=Atribut příjmení
auths.attribute_mail=Atribut e-mailové adresy
auths.verify_group_membership=Ověřovat členství ve skupině
auths.group_search_base_dn=Základní DN pro vyhledávání skupin
auths.group_filter=Skupinový filtr
auths.group_attribute_contain_user_list=Skupinový atribut, který obsahuje seznam uživatelů
auths.user_attribute_listed_in_group=Atribut uživatele (ve skupině)
auths.attributes_in_bind=Vyzvednout atributy v kontextu Bind DN
auths.filter=Uživatelský filtr
auths.admin_filter=Správcovský filtr
@@ -1121,9 +1161,9 @@ auths.enable_tls=Povolit šifrování TLS
auths.skip_tls_verify=Přeskočit ověření TLS
auths.pam_service_name=Název služby PAM
auths.enable_auto_register=Povolit zaregistrování se
auths.tips=Tipy
auths.edit=Upravit nastavení ověřování
auths.activated=Tento způsob ověřování je aktivní
auths.default_auth=Toto ověření je výchozí zdroj přihlášení
auths.new_success=Nový způsob ověřování '%s' byl přidán.
auths.update_success=Nastavení ověřování bylo změněno.
auths.update=Změnit nastavení ověřování
@@ -1133,115 +1173,186 @@ auths.delete_auth_desc=Tento způsob ověřování bude smazán, chcete pokračo
auths.still_in_used=Tento způsob ověřování je stále používán některými uživateli. Prosím, nejdříve změňte u těchto uživatelů typ ověřování na jiný.
auths.deletion_success=Způsob ověřování byl smazán!
auths.login_source_exist=Zdroj přihlášení '%s' již existuje.
auths.github_api_endpoint=Koncový bod API
config.not_set=(není nastaveno)
config.server_config=Nastavení serveru
config.app_name=Název aplikace
config.app_ver=Verze aplikace
config.app_url=URL aplikace
config.domain=Doména
config.offline_mode=Režim off-line
config.disable_router_log=Vypnout systémové záznamy směrovače
config.brand_name=Název značky
config.run_user=Účet pro spouštění
config.run_mode=Režim spouštění
config.git_version=Verze Gitu
config.static_file_root_path=Kořenový adresář statického souboru
config.log_file_root_path=Kořenový adresář souboru systémových záznamů
config.reverse_auth_user=Uživatel obráceného ověření
config.server.external_url=Externí URL
config.server.domain=Doména
config.server.protocol=Protokol
config.server.http_addr=HTTP adresa
config.server.http_port=HTTP port
config.server.cert_file=Soubor certifikátu
config.server.key_file=Soubor klíče
config.server.tls_min_version=Minimální verze TLS
config.server.unix_socket_permission=Oprávnění Unix socket
config.server.local_root_url=Místní URL kořenového adresáře
config.server.offline_mode=Offline režim
config.server.disable_router_log=Disable router log
config.server.enable_gzip=Povolit Gzip
config.server.app_data_path=Cesta dat aplikace
config.server.load_assets_from_disk=Load assets from disk
config.server.landing_url=Landing URL
config.ssh_config=Nastavení SSH
config.ssh_enabled=Povolený
config.ssh_start_builtin_server=Spustit vestavěný server
config.ssh_domain=Doména
config.ssh_port=Port
config.ssh_listen_port=Port pro naslouchání
config.ssh_root_path=Kořenová cesta
config.ssh_key_test_path=Cesta testu klíčů
config.ssh_keygen_path=Cesta ke generátoru klíčů ('ssh-keygen')
config.ssh_minimum_key_size_check=Kontrola minimální velikosti klíčů
config.ssh_minimum_key_sizes=Minimální velikost klíčů
config.ssh.enabled=Povoleno
config.ssh.domain=Vystavená doména
config.ssh.port=Vystavený port
config.ssh.root_path=Kořenová cesta
config.ssh.keygen_path=Keygen path
config.ssh.key_test_path=Key test path
config.ssh.minimum_key_size_check=Kontrola minimální velikosti klíčů
config.ssh.minimum_key_sizes=Minimální velikost klíčů
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=Start builtin server
config.ssh.listen_host=Listen host
config.ssh.listen_port=Listen port
config.ssh.server_ciphers=Serverové šifry
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Nastavení repositáře
config.repo_root_path=Kořenový adresář repositářů
config.script_type=Typ skriptu
config.repo_force_private=Vynutit soukromé
config.max_creation_limit=Maximální lhůta pro vytvoření
config.preferred_licenses=Upřednostňované licence
config.disable_http_git=Vypnout HTTP Git
config.enable_local_path_migration=Povolit migraci z místní cesty
config.commits_fetch_concurrency=Souběžnost vyzvednutí revizí
config.repo.root_path=Kořenová cesta
config.repo.script_type=Typ skriptu
config.repo.ansi_chatset=ANSI charset
config.repo.force_private=Force private
config.repo.max_creation_limit=Max creation limit
config.repo.preferred_licenses=Upřednostňované licence
config.repo.disable_http_git=Disable HTTP Git
config.repo.enable_local_path_migration=Enable local path migration
config.repo.enable_raw_file_render_mode=Enable raw file render mode
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Upload enabled
config.repo.upload.temp_path=Upload temporary path
config.repo.upload.allowed_types=Upload allowed types
config.repo.upload.file_max_size=Upload file size limit
config.repo.upload.max_files=Upload files limit
config.db_config=Nastavení databáze
config.db_type=Typ
config.db_host=Server
config.db_name=Název
config.db_user=Uživatel
config.db_ssl_mode=Režim SSL
config.db_ssl_mode_helper=(pouze pro 'postgres')
config.db_path=Cesta
config.db_path_helper=(pro "sqlite3" a "tidb")
config.db.type=Type
config.db.host=Host
config.db.name=Name
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=User
config.db.ssl_mode=SSL mode
config.db.ssl_mode_helper=(for "postgres" only)
config.db.path=Path
config.db.path_helper=(for "sqlite3"only)
config.db.max_open_conns=Maximum open connections
config.db.max_idle_conns=Maximum idle connections
config.service_config=Nastavení služby
config.register_email_confirm=Vyžadovat potvrzení e-mailu
config.disable_register=Vypnout registraci
config.show_registration_button=Ukázat tlačítko registrace
config.require_sign_in_view=Vyžadovat zobrazení přihlášení
config.mail_notify=Upozornění e-mailem
config.disable_key_size_check=Vypnout kontrolu minimální velikosti klíčů
config.enable_captcha=Povolit službu CAPTCHA
config.active_code_lives=Doba života aktivního kódu
config.reset_password_code_lives=Lhůta kódu pro obnovu hesla
config.security_config=Security configuration
config.security.login_remember_days=Login remember days
config.security.cookie_remember_name=Remember cookie
config.security.cookie_username=Username cookie
config.security.cookie_secure=Enable secure cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Enable login status cookie
config.security.login_status_cookie_name=Login status cookie
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Nastavení webových háčků
config.queue_length=Délka fronty
config.deliver_timeout=Časový limit doručení
config.skip_tls_verify=Přeskočit ověření TLS
config.email_config=Email configuration
config.email.enabled=Enabled
config.email.subject_prefix=Subject prefix
config.email.host=Host
config.email.from=From
config.email.user=User
config.email.disable_helo=Disable HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Skip certificate verify
config.email.use_certificate=Use custom certificate
config.email.cert_file=Certificate file
config.email.key_file=Key file
config.email.use_plain_text=Use plain text
config.email.add_plain_text_alt=Add plain text alternative
config.email.send_test_mail=Send test email
config.email.test_mail_failed=Failed to send test email to '%s': %v
config.email.test_mail_sent=Test email has been sent to '%s'.
config.mailer_config=Nastavení odesílání e-mailů
config.mailer_enabled=Povolený
config.mailer_disable_helo=Vypnout HELO
config.mailer_name=Název
config.mailer_host=Server
config.mailer_user=Uživatel
config.send_test_mail=Odeslat zkušební E-mail
config.test_mail_failed=Odeslání testovacího e-mailu na '%s' selhalo: %v
config.test_mail_sent=Zkušební e-mail byl odeslán na '%s'.
config.auth_config=Authentication configuration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=Require email confirmation
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Disable registration
config.auth.enable_registration_captcha=Enable registration captcha
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=Nastavení ověření OAuth
config.oauth_enabled=Povolený
config.cache_config=Nastavení mezipaměti
config.cache_adapter=Adaptér mezipaměti
config.cache_interval=Interval mezipaměti
config.cache_conn=Připojení mezipaměti
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=Nastavení relace
config.session_provider=Poskytovatel relace
config.provider_config=Nastavení poskytovatele
config.cookie_name=Název souboru cookie
config.enable_set_cookie=Povolit nastavení cookie
config.gc_interval_time=Čas intervalu GC
config.session_life_time=Doba trvání relace
config.https_only=Pouze protokol HTTPS
config.cookie_life_time=Doba života souboru cookie
config.session.provider=Provider
config.session.provider_config=Provider config
config.session.cookie_name=Cookie
config.session.https_only=HTTPS only
config.session.gc_interval=GC interval
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Nastavení mezipaměti
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=Nastavení HTTP
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Enabled
config.attachment.path=Path
config.attachment.allowed_types=Allowed types
config.attachment.max_size=Size limit
config.attachment.max_files=Files limit
config.release_config=Release configuration
config.release.attachment.enabled=Attachment enabled
config.release.attachment.allowed_types=Attachment allowed types
config.release.attachment.max_size=Attachment size limit
config.release.attachment.max_files=Attachment files limit
config.picture_config=Nastavení ikony uživatele
config.picture_service=Služba ikon uživatelů
config.disable_gravatar=Vypnout službu Gravatar
config.enable_federated_avatar=Povolit jednotné ikony uživatelů
config.picture.avatar_upload_path=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatar source
config.picture.disable_gravatar=Disable Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Mirror configuration
config.mirror.default_interval=Default interval
config.webhook_config=Nastavení webových háčků
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Konfigurace Gitu
config.git_disable_diff_highlight=Vypnout zvýraznění syntaxe v rozdílovém zobrazení
config.git_max_diff_lines=Maximální počet rozdílných řádků jednoho souboru
config.git_max_diff_line_characters=Maximální počet zobrazených rozdílných znaků jedné řádky
config.git_max_diff_files=Maximální počet zobrazených rozdílných souborů
config.git_gc_args=Parametry GC
config.git_migrate_timeout=Časová lhůta přenesení
config.git_mirror_timeout=Časový limit aktualizace zrcadla
config.git_clone_timeout=Časový limit operace naklonování
config.git_pull_timeout=Časový limit operace stažení
config.git_gc_timeout=Časový limit operace GC
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC arguments
config.git.migrate_timeout=Migration timeout
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=Clone timeout
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=LFS configuration
config.lfs.storage=Storage
config.lfs.objects_path=Objects path
config.log_config=Nastavení systémových záznamů
config.log_file_root_path=Kořenový adresář souboru systémových záznamů
config.log_mode=Režim
config.log_options=Možnosti
@@ -1272,7 +1383,6 @@ notices.delete_success=Systémová upozornění byla smazána.
[action]
create_repo=vytvořil repositář <a href="%s">%s</a>
fork_repo=rozštěpil repositář do <a href="%s">%s</a>
rename_repo=přejmenoval repositář z <code>%[1]s</code> na <a href="%[2]s">%[3]s</a>
commit_repo=odeslal do větve <a href="%[1]s/src/%[2]s">%[3]s</a> v repositáři <a href="%[1]s">%[4]s</a>
compare_commits=Zobrazit porovnání pro tyto %d revize
@@ -1289,6 +1399,10 @@ create_branch=vytvořil novou větev <a href="%[1]s/src/%[2]s">%[3]s</a> v <a hr
delete_branch=smazal větev <code>%[2]s</code> v <a href="%[1]s">%[3]s</a>
push_tag=odeslal značku <a href="%s/src/%s">%[2]s</a> do repositáře <a href="%[1]s">%[3]s</a>
delete_tag=smazána značka <code>%[2]s</code> v <a href="%[1]s">%[3]s</a>
fork_repo=rozštěpil repositář do <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synchronizoval/a novou referenci <a href="%s/src/%s">%[2]s</a> do <a href="%[1]s">%[3]s</a> ze zrcadla
mirror_sync_delete=synchronizoval/a a smazal/a referenci <code>%[2]s</code> v <a href="%[1]s">%[3]s</a> ze zrcadla
[tool]
ago=před
@@ -1310,6 +1424,7 @@ months=%[2]s %[1]d měsíci
years=%[2]s %[1]d roky
raw_seconds=sekundy
raw_minutes=minuty
raw_hours=hours
[dropzone]
default_message=Přetáhněte soubory sem nebo stiskněte Nahrát.

View File

@@ -9,7 +9,6 @@ sign_out=Abmelden
sign_up=Registrieren
register=Registrieren
website=Webseite
version=Version
page=Seite
template=Vorlage
language=Sprache
@@ -44,17 +43,22 @@ issues=Issues
cancel=Abbrechen
[status]
page_not_found=Seite nicht gefunden
internal_server_error=Interner Serverfehler
[install]
install=Installation
title=Installationsschritte für den ersten Start
docker_helper=Wenn Gogs innerhalb von Docker läuft, lesen Sie sich bitte den <a target="_blank" href="%s">Leitfaden</a> genau durch, bevor Sie irgendwas auf dieser Seite ändern!
requite_db_desc=Gogs benötigt MySQL, PostgreSQL, SQLite3, MSSQL oder TiDB.
docker_helper=Wenn Gogs innerhalb von Docker läuft, lesen Sie sich bitte den <a target="_blank" href="%s">Leitfaden</a> genau durch, bevor Sie etwas auf dieser Seite ändern!
requite_db_desc=Gogs benötigt MySQL, PostgreSQL, SQLite3 oder TiDB (mit MySQL-Protokoll)
db_title=Datenbankeinstellungen
db_type=Datenbanktyp
host=Host
user=Benutzer
password=Passwort
db_name=Datenbankname
db_schema=Schema
db_helper=Bitte verwenden Sie in MySQL die InnoDB-Engine mit dem Zeichensatz utf8_general_ci.
ssl_mode=SSL-Modus
path=Pfad
@@ -84,6 +88,7 @@ log_root_path=Logdateipfad
log_root_path_helper=Verzeichnis in das Logdateien geschrieben werden.
enable_console_mode=Konsolen-Modus einschalten
enable_console_mode_popup=Zusätzlich zum Datei-Modus, zeige Logs auch in der Konsole.
default_branch=Standard Branch
optional_title=Optionale Einstellungen
email_title=E-Mail-Service Einstellungen
@@ -122,6 +127,7 @@ run_user_not_match=Der ausführende Benutzer ist nicht der aktuelle Benutzer: %s
smtp_host_missing_port=In der Adresse des SMTP Host fehlt die Portnummer.
invalid_smtp_from=SMTP Absender Feld ist nicht gültig: %v
save_config_failed=Fehler beim Speichern der Konfiguration: %v
init_failed=Fehler beim Initialisieren der Anwendung: %v
invalid_admin_setting=Admin-Konto Einstellungen sind ungültig: %v
install_success=Herzlich Willkommen! Wir sind froh, dass Sie sich für Gogs entschieden haben. Wir wünschen viel Vergnügen damit.
invalid_log_root_path=Pfad zum Log-Verzeichnis ist ungültig: %v
@@ -151,6 +157,8 @@ register_hepler_msg=Haben Sie bereits ein Konto? Jetzt anmelden!
social_register_hepler_msg=Haben Sie bereits ein Konto? Jetzt verknüpfen!
disable_register_prompt=Es tut uns leid, die Registrierung wurde deaktiviert. Bitte wenden Sie sich an den Administrator.
disable_register_mail=Es tut uns leid, die Bestätigung der Registrierungs-E-Mail wurde deaktiviert.
auth_source=Authentifizierungsquelle
local=Lokal
remember_me=Angemeldet bleiben
forgot_password=Passwort vergessen
forget_password=Passwort vergessen?
@@ -229,6 +237,7 @@ org_name_been_taken=Organisationsname ist bereits vergeben.
team_name_been_taken=Teamname ist bereits vergeben.
email_been_used=E-Mail-Adresse wird bereits verwendet.
username_password_incorrect=Benutzername oder Passwort ist nicht korrekt.
auth_source_mismatch=Die ausgewählte Authentifizierungsquelle ist dem Benutzer nicht zugeordnet.
enterred_invalid_repo_name=Bitte achten Sie darauf, dass der von Ihnen eingegebene Repository-Name korrekt ist.
enterred_invalid_owner_name=Bitte achten Sie darauf, dass der eingegebene Name des Besitzers korrekt ist.
enterred_invalid_password=Bitte achten Sie darauf, dass das eingegebene Passwort richtig ist.
@@ -256,8 +265,7 @@ following=Folge ich
follow=Folgen
unfollow=Nicht mehr folgen
form.name_reserved=Der Benutzername '%s' ist reserviert.
form.name_pattern_not_allowed=Benutzernamen der Form '%s' sind nicht erlaubt.
form.name_not_allowed=Benutzername oder Muster %q ist nicht erlaubt.
[settings]
profile=Profil
@@ -309,6 +317,7 @@ delete_email=Löschen
email_deletion=E-Mail löschen
email_deletion_desc=Das Löschen dieser E-Mail Adresse wird alle Informationen entfernen, die mit dieser E-Mail Adresse verknüpft sind. Wollen Sie fortfahren?
email_deletion_success=E-Mail-Adresse wurde erfolgreich gelöscht!
email_deletion_primary=Die primäre E-Mail-Adresse kann nicht gelöscht werden.
add_new_email=Neue E-Mail-Adresse hinzufügen
add_email=E-Mail-Adresse hinzufügen
add_email_confirmation_sent=Eine neue Bestätigungsmail wurde an '%s' gesendet, bitte überprüfen Sie Ihren Posteingang innerhalb von %d Stunden um die Bestätigung abzuschließen.
@@ -319,7 +328,7 @@ add_key=Schlüssel hinzufügen
ssh_desc=Dies ist eine Liste aller SSH-Schlüssel, die Ihrem Konto zugeordnet sind. Bitte entfernen Sie alle Schlüssel, die Ihnen nicht bekannt sind.
ssh_helper=<strong>Brauchen Sie Hilfe?</strong> Hier ist eine Anleitung zum <a href="%s">Erzeugen von SSH-Schlüsseln</a> oder <a href="%s">Lösen einfacher SSH-Probleme</a>.
add_new_key=SSH-Schlüssel hinzufügen
ssh_key_been_used=Inhalt des öffentlichen Schlüssels wurde verwendet.
ssh_key_been_used=Inhalt des öffentlichen Schlüssels wurde bereits verwendet.
ssh_key_name_used=Ein öffentlicher Schlüssel mit diesem Namen existiert bereits.
key_name=Schlüsselname
key_content=Inhalt
@@ -348,6 +357,7 @@ two_factor_or_enter_secret=Oder geben Sie Ihren Geheim-Code ein:
two_factor_then_enter_passcode=Geben Sie die PIN ein:
two_factor_verify=Bestätigen
two_factor_invalid_passcode=Die eingegebene PIN ist ungültig. Bitte versuchen Sie es erneut!
two_factor_reused_passcode=Der von dir eingegebene Passcode wurde bereits verwendet, bitte probiere einen anderen!
two_factor_enable_error=Einschalten der Zwei-Faktor-Authentifizierung ist fehlgeschlagen: %v
two_factor_enable_success=Die Zwei-Faktor-Authentifizierung wurde für Ihr Konto erfolgreich aktiviert!
two_factor_recovery_codes_title=Zwei-Faktor-Authentifizierung-Wiederherstellungscodes
@@ -362,6 +372,7 @@ two_factor_disable_success=Die Zwei-Faktor-Authentifizierung wurde erfolgreich d
manage_access_token=Verwaltung persönlicher Zugangs-Token
generate_new_token=Neues Token erzeugen
tokens_desc=Die von Ihnen erzeugten Token können zum Zugriff auf die Gogs-API verwendet werden.
access_token_tips=Der persönliche Zugangs-Token kann entweder als Benutzername oder als Passwort verwendet werden. Es wird empfohlen den "x-access-token" als Benutzernamen und den persönlichen Zugangs-Token als Passwort für Git-Anwendungen zu verwenden.
new_token_desc=Jeder Token erlaubt vollen Zugriff auf ihr Konto.
token_name=Token-Name
generate_token=Token generieren
@@ -370,6 +381,7 @@ delete_token=Löschen
access_token_deletion=Persönlichen Token entfernen
access_token_deletion_desc=Das Löschen dieses persönlichen Zugangs-Tokens wird alle zugehörigen Zugriffe der Anwendung entfernen. Möchten Sie fortfahren?
delete_token_success=Persönlicher Zugriffs-Token wurde erfolgreich entfernt! Vergessen Sie nicht Ihre Anwendung zu aktualisieren.
token_name_exists=Token mit dem gleichen Namen existiert bereits.
orgs.none=Sie sind kein Mitglied einer Organisation.
orgs.leave_title=Organisation verlassen
@@ -391,7 +403,9 @@ owner=Besitzer
repo_name=Repository-Name
repo_name_helper=Ein guter Repository-Name besteht gewöhnlich aus kurzen, leicht zu merkenden und eindeutigen Schlüsselworten.
visibility=Sichtbarkeit
unlisted=Ungelistet
visiblity_helper=Dieses Repository ist <span class="ui red text">privat</span>
unlisted_helper=Dieses Repository ist <span class="ui red text">nicht gelistet</span>
visiblity_helper_forced=Der Administrator hat festgelegt, dass alle neuen Repositories <span class="ui red text">privat</span> sein müssen
visiblity_fork_helper=(Eine Änderung dieses Wertes wirkt sich auf alle Forks aus)
clone_helper=Brauchen Sie Hilfe beim Klonen? Hier gibt es <a target="_blank" href="%s">Hilfe</a>!
@@ -417,10 +431,11 @@ mirror_last_synced=Zuletzt synchronisiert
watchers=Beobachter
stargazers=In Favoriten von
forks=Forks
repo_description_helper=Beschreibung des Repository. Maximal 512 Zeichen.
repo_description_length=Verfügbare Zeichen
form.reach_limit_of_creation=Der Besitzer hat die maximale Anzahl von %d erstellbaren Repositories erreicht.
form.name_reserved=Repository-Name '%s' ist reserviert.
form.name_pattern_not_allowed=Repository-Namen der Form '%s' sind nicht erlaubt.
form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Authorisierung benötigt
migrate_type=Migrationstyp
@@ -431,6 +446,7 @@ migrate.clone_address_desc=Dies kann eine HTTP/HTTPS/GIT-URL sein.
migrate.clone_address_desc_import_local=Sie dürfen auch ein Repository vom lokalen Serverpfad migrieren.
migrate.permission_denied=Ihnen fehlen die Rechte zum Importieren lokaler Repositories.
migrate.invalid_local_path=Der lokale Pfad ist ungültig, existiert nicht oder ist kein Ordner.
migrate.clone_address_resolved_to_blocked_local_address=Klonadresse in eine lokale Netzwerkadresse aufgelöst, die implizit blockiert ist.
migrate.failed=Fehler bei Migration: %v
mirror_from=Mirror von
@@ -450,7 +466,7 @@ quick_guide=Kurzanleitung
clone_this_repo=Dieses Repository klonen
create_new_repo_command=Erstellen Sie ein neues Repository mittels der Kommandozeile
push_exist_repo=Bestehendes Repository von der Kommandozeile pushen
bare_message=Dies Repository hat noch keinen Inhalt.
bare_message=Dieses Repository hat noch keinen Inhalt.
files=Dateien
branch=Branch
@@ -478,6 +494,8 @@ branches.stale_branches=Alte Branches
branches.all=Alle Branches
branches.updated_by=Aktualisiert %[1]s von %[2]s
branches.change_default_branch=Ändere Standard-Branch
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Neue Datei
editor.upload_file=Datei hochladen
@@ -514,6 +532,7 @@ editor.file_changed_while_editing=Seit dem Start der Bearbeitung hat sich die Da
editor.file_already_exists=Eine Datei mit dem Namen '%s' existiert bereits in diesem Repository.
editor.no_changes_to_show=Keine Änderungen vorhanden.
editor.fail_to_update_file=Fehler beim Ändern/Erstellen der Datei '%s'. Fehler: %v
editor.fail_to_delete_file=Fehler beim Löschen der Datei '%s'. Fehler: %v
editor.add_subdir=Unterverzeichnis erstellen...
editor.unable_to_upload_files=Fehler beim Hochladen der Dateien zu '%s'. Fehler: %v
editor.upload_files_to_dir=Dateien hochladen nach '%s'
@@ -616,6 +635,7 @@ pulls.compare_compare=vergleichen
pulls.filter_branch=Branch filtern
pulls.no_results=Keine Ergebnisse verfügbar.
pulls.nothing_to_compare=Es gibt nichts zu vergleichen, da Base- und Head-Branch gleich sind.
pulls.nothing_merge_base=Es gibt nichts zu vergleichen, da beide Zweige eine komplett unterschiedliche Historie haben.
pulls.has_pull_request=`Es existiert bereits ein Pull-Request zwischen diesen beiden Zielen: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Pull-Request erstellen
pulls.title_desc=möchte %[1]d Commits von <code>%[2]s</code> nach <code>%[3]s</code> zusammenführen
@@ -631,6 +651,9 @@ pulls.is_checking=Die Konfliktprüfung läuft noch. Bitte aktualisieren Sie die
pulls.can_auto_merge_desc=Dieser Pull-Request kann automatisch zusammengeführt werden.
pulls.cannot_auto_merge_desc=Dieser Pull-Request kann nicht automatisch zusammengeführt werden, da es Konflikte gibt.
pulls.cannot_auto_merge_helper=Bitte manuell zusammenführen, um die Konflikte zu lösen.
pulls.create_merge_commit=Erstelle einen Merge-Commit
pulls.rebase_before_merging=Rebase vor dem Zusammenführen
pulls.commit_description=Commit Beschreibung
pulls.merge_pull_request=Pull-Request zusammenführen
pulls.open_unmerged_pull_exists=`Sie können diesen Pull-Request nicht wieder öffnen, da bereits ein offener Pull-Request (#%d) aus dem selben Repository mit den gleichen Merge-Informationen existiert und auf das Zusammenführen wartet.`
pulls.delete_branch=Zweig löschen
@@ -641,8 +664,8 @@ milestones.open_tab=%d offen
milestones.close_tab=%d geschlossen
milestones.closed=Geschlossen %s
milestones.no_due_date=Kein Fälligkeitsdatum
milestones.open=Offen
milestones.close=Geschlossen
milestones.open=Öffnen
milestones.close=Schließen
milestones.new_subheader=Erstellen Sie Meilensteine, um ihre Issues zu organisieren.
milestones.create=Meilenstein erstellen
milestones.title=Titel
@@ -735,7 +758,9 @@ settings.tracker_issue_style=Namenskonvention des externen Issue-Trackers:
settings.tracker_issue_style.numeric=Numerisch
settings.tracker_issue_style.alphanumeric=Alphanumerisch
settings.tracker_url_format_desc=Sie können die Platzhalter <code>{user} {repo} {index}</code> für den Benutzernamen, den Namen des Repositories und die Issue-Nummer verwenden.
settings.pulls_desc=Pull-Requests aktivieren, um öffentliche Mitwirkung zu ermöglichen
settings.pulls_desc=Erlaube Pull-Requests zur Zusammenarbeit von Repositories und Branches
settings.pulls.ignore_whitespace=Ignoriere whitespace Änderungen
settings.pulls.allow_rebase_merge=Die Verwendung von Rebase erlauben, um Commits zu mergen
settings.danger_zone=Gefahrenzone
settings.cannot_fork_to_same_owner=Besitzer kann das Repository nicht forken.
settings.new_owner_has_same_repo=Der neue Eigentümer hat bereits ein Repository mit dem gleichen Namen. Bitte wählen Sie einen anderen Namen.
@@ -745,12 +770,12 @@ settings.convert_notices_1=- Dieser Vorgang wandelt das Mirror-Repository in ein
settings.convert_confirm=Umwandlung bestätigen
settings.convert_succeed=Das Repository wurde erfolgreich in ein normales Repository umgewandelt.
settings.transfer=Besitz übertragen
settings.transfer_desc=Dieses Repository auf einen anderen Benutzer bzw. eine Organisation in der Sie Admin-Rechte haben übertragen.
settings.transfer_desc=Dieses Repository auf einen anderen Benutzer oder eine Organisation, in der Sie Admin-Rechte haben, übertragen.
settings.transfer_notices_1=- Sie werden keinen Zugriff mehr haben, wenn der neue Besitzer ein individueller Benutzer ist.
settings.transfer_notices_2=- Sie werden weiterhin Zugriff haben, wenn der neue Besitzer eine Organisation ist und Sie einer der Besitzer sind.
settings.transfer_form_title=Bitte geben Sie die folgenden Informationen ein, um die Operation zu bestätigen:
settings.wiki_delete=Wiki-Daten löschen
settings.wiki_delete_desc=Das Löschen von Wiki Daten kann nicht rückgängig gemacht werden. Bitte seien Sie vorsichtig.
settings.wiki_delete_desc=Das Löschen von Wiki-Daten kann nicht rückgängig gemacht werden. Bitte seien Sie vorsichtig.
settings.wiki_delete_notices_1=- Dies löscht und deaktiviert das Wiki für %s
settings.wiki_deletion_success=Repository Wiki Daten erfolgreich gelöscht.
settings.delete=Dieses Repository löschen
@@ -772,8 +797,10 @@ settings.collaborator_deletion_desc=Nach dem Löschen wird dieser Benutzer keine
settings.remove_collaborator_success=Mitarbeiter wurde entfernt.
settings.search_user_placeholder=Benutzer suchen...
settings.org_not_allowed_to_be_collaborator=Eine Organisation kann nicht als Mitarbeiter hinzugefügt werden.
settings.add_webhook=Webhook hinzufügen
settings.hooks_desc=Webhooks erlauben es Ihnen, externe Dienste zu informieren, wenn etwas Bestimmtes in Ihrem Repository passiert. Gogs sendet dann einen POST-Request an alle angegebenen URLs. Erfahren Sie mehr in unserem <a target="_blank" href="%s">Webhooks Guide</a>.
settings.webhooks.add_new=Einen neuen Webhook hinzufügen:
settings.webhooks.choose_a_type=Typ auswählen...
settings.add_webhook=Webhook hinzufügen
settings.webhook_deletion=Webhook entfernen
settings.webhook_deletion_desc=Das Löschen dieses Webhooks wird alle zugehörigen Informationen und den Übertragungsverlauf entfernen. Wirklich fortfahren?
settings.webhook_deletion_success=Webhook wurde erfolgreich entfernt!
@@ -787,6 +814,8 @@ settings.webhook.response=Antwort
settings.webhook.headers=Kopfzeilen
settings.webhook.payload=Nutzdaten
settings.webhook.body=Inhalt
settings.webhook.err_cannot_parse_payload_url=Payload URL kann nicht analysiert werden: %v
settings.webhook.url_resolved_to_blocked_local_address=Die Payload-URL wurde in eine lokale Netzwerkadresse aufgelöst, die implizit blockiert ist.
settings.githooks_desc=Git-Hooks werden von Git selbst bereitgestellt. Sie können die Dateien der unterstützten Hooks in der Liste unten bearbeiten, um eigene Operationen einzubinden.
settings.githook_edit_desc=Wenn ein Hook inaktiv ist, wird der Standardinhalt benutzt. Lassen Sie den Inhalt leer, um den Hook zu deaktivieren.
settings.githook_name=Hook-Name
@@ -814,10 +843,10 @@ settings.event_push=Push
settings.event_push_desc=Git push auf ein Repository
settings.event_issues=Issues
settings.event_issues_desc=Issue geöffnet, geschlossen, wieder geöffnet, bearbeitet, zugewiesen, nicht zugewiesen, Label aktualisiert, Label gelöscht, einem Meilenstein zugewiesen oder davon entfernt.
settings.event_issue_comment=Issue-Kommentar
settings.event_issue_comment_desc=Issue-Kommentar angelegt, geändert oder gelöscht.
settings.event_pull_request=Pull-Request
settings.event_pull_request_desc=Pull-Request geöffnet, geschlossen, wieder geöffnet, bearbeitet, zugewiesen, nicht zugewiesen, Label aktualisiert, Label gelöscht, einem Meilenstein zugewiesen, davon entfernt oder synchronisiert.
settings.event_issue_comment=Issue-Kommentar
settings.event_issue_comment_desc=Issue-Kommentar angelegt, geändert oder gelöscht.
settings.event_release=Release
settings.event_release_desc=Release in Repository veröffentlicht.
settings.active=Aktiv
@@ -830,6 +859,7 @@ settings.recent_deliveries=Letzte Zustellungen
settings.hook_type=Hook Typ
settings.add_slack_hook_desc=Fügen Sie <a href="%s">Slack</a>-Integration zu Ihrem Repository hinzu.
settings.add_discord_hook_desc=Fügen Sie <a href="%s">Discord</a>-Integration zu Ihrem Repository hinzu.
settings.add_dingtalk_hook_desc=<a href="%s">Dingtalk</a>-Integration zu deinem Repository hinzufügen.
settings.slack_token=Token
settings.slack_domain=Domain
settings.slack_channel=Kanal
@@ -846,6 +876,8 @@ settings.add_key_success=Der Deploy-Schlüssel '%s' wurde erfolgreich hinzugefü
settings.deploy_key_deletion=Deploy-Schlüssel löschen
settings.deploy_key_deletion_desc=Nach dem Löschen dieses Deploy-Schlüssels werden entsprechende Zugriffe auf dieses Repository nicht mehr möglich sein. Möchten Sie wirklich fortfahren?
settings.deploy_key_deletion_success=Deploy-Schlüssel wurde erfolgreich gelöscht!
settings.description_desc=Beschreibung des Repository. Maximal 512 Zeichen.
settings.description_length=Verfügbare Zeichen
diff.browse_source=Quellcode durchsuchen
diff.parent=Ursprung
@@ -910,9 +942,8 @@ team_name_helper=Unter diesem Namen können Sie in Diskussionen auf das Team ver
team_desc_helper=Worum geht es bei diesem Team?
team_permission_desc=Welche Berechtigungsstufe soll das Team haben?
form.name_reserved=Organisationsname '%s' ist bereits vergeben.
form.name_pattern_not_allowed=Organisationsnamen der Form '%s' sind nicht erlaubt.
form.team_name_reserved=Der Teamname '%s' ist reserviert.
form.name_not_allowed=Organisationsname oder Muster %q ist nicht zulässig.
form.team_name_not_allowed=Benutzername oder Muster %q ist nicht erlaubt.
settings=Einstellungen
settings.options=Optionen
@@ -984,12 +1015,19 @@ first_page=Erste
last_page=Letzte
total=Gesamt: %d
dashboard.build_info=Build-Informationen
dashboard.app_ver=Anwendungsversion
dashboard.git_version=Git-Version
dashboard.go_version=Go-Version
dashboard.build_time=Build-Zeit
dashboard.build_commit=Build-Commit
dashboard.statistic=Statistik
dashboard.operations=Operationen
dashboard.system_status=Systemmonitor-Status
dashboard.statistic_info=Gogs Datenbank hat <b>%d</b> Benutzer, <b>%d</b> Organisationen, <b>%d</b> öffentliche Schlüssel, <b>%d</b> Repositories, <b>%d</b> Beobachtet, <b>%d</b> Favoriten, <b>%d</b> Aktionen, <b>%d</b> Zugriffe, <b>%d</b> Issues, <b>%d</b> Kommentare, <b>%d</b> Konten sozialer Medien, <b>%d</b> Folgende, <b>%d</b> Mirror, <b>%d</b> Releases, <b>%d</b> Login-Quellen, <b>%d</b> Webhooks, <b>%d</b> Meilensteine, <b>%d</b> Label, <b>%d</b> Hook-Tasks, <b>%d</b> Teams, <b>%d</b> Aktualisierungs-Tasks, <b>%d</b> Anhänge.
dashboard.operation_name=Name der Operation
dashboard.operation_switch=Wechseln
dashboard.select_operation_to_run=Bitte wählen Sie den auszuführenden Vorgang aus
dashboard.operation_run=Ausführen
dashboard.clean_unbind_oauth=Nicht verbundene OAuths bereinigen
dashboard.clean_unbind_oauth_success=Alle nicht verbundenen OAuth-Tokens wurden gelöscht.
@@ -1003,7 +1041,7 @@ dashboard.git_gc_repos=Garbage Collection auf Repositories ausführen
dashboard.git_gc_repos_success=Garbage Collection wurde auf allen Repositories erfolgreich ausgeführt.
dashboard.resync_all_sshkeys=Datei '.ssh/authorized_keys' neu anlegen (Achtung: Schlüssel, die nicht zu Gogs gehören gehen verloren)
dashboard.resync_all_sshkeys_success=Alle öffentlichen Keys wurden erfolgreich neu geschrieben.
dashboard.resync_all_hooks=Synchronisiere pre-receive, update und post-receive Hooks für alle Repositorien
dashboard.resync_all_hooks=Synchronisiere pre-receive, update und post-receive Hooks für alle Repositories
dashboard.resync_all_hooks_success=Pre-receive, update und post-receive Hooks aller Repositorien wurden erfolgreich synchronisiert.
dashboard.reinit_missing_repos=Alle Repository-Datensätze mit verloren gegangenen Git-Dateien neu initialisieren
dashboard.reinit_missing_repos_success=Alle Repository-Datensätze, die Git-Dateien verloren haben wurden erfolgreich neu initialisiert.
@@ -1081,11 +1119,12 @@ repos.stars=Favoriten
repos.issues=Issues
repos.size=Größe
auths.auth_manage_panel=Authentifizierung
auths.auth_sources=Authentifizierungsquelle
auths.new=Neue Quelle hinzufügen
auths.name=Name
auths.type=Typ
auths.enabled=Aktiviert
auths.default=Standard
auths.updated=Aktualisiert
auths.auth_type=Authentifizierungstyp
auths.auth_name=Authentifizierungsname
@@ -1094,6 +1133,7 @@ auths.domain=Domain
auths.host=Host
auths.port=Port
auths.bind_dn=DN binden
auths.bind_dn_helper=Sie können "%s" als Platzhalter für den Benutzernamen einsetzen, z.B. DOM\%s
auths.bind_password=Passwort binden
auths.bind_password_helper=Achtung: Das Passwort wird im Klartext gespeichert. Benutzen Sie kein Konto mit hoher Berechtigungsstufe.
auths.user_base=Basis für Benutzersuche
@@ -1121,9 +1161,9 @@ auths.enable_tls=TLS-Verschlüsselung aktivieren
auths.skip_tls_verify=TLS-Prüfung überspringen
auths.pam_service_name=PAM Dienstname
auths.enable_auto_register=Automatische Registrierung aktivieren
auths.tips=Tipps
auths.edit=Authentifizierungseinstellungen bearbeiten
auths.activated=Diese Authentifizierung ist aktiv
auths.default_auth=Diese Authentifizierungsmethode ist die Vorgabe
auths.new_success=Neue Authentifizierung '%s' wurde erfolgreich hinzugefügt.
auths.update_success=Die Authentifizierungseinstellungen wurden erfolgreich aktualisiert.
auths.update=Authentifizierungseinstellungen aktualisieren
@@ -1133,115 +1173,186 @@ auths.delete_auth_desc=Diese Authentifizierung wird gelöscht. Möchten Sie fort
auths.still_in_used=Diese Authentifizierung wird noch von einigen Benutzern verwendet. Bitte löschen Sie diese Benutzer oder ändern Sie deren Anmeldetyp.
auths.deletion_success=Authentifizierung wurde erfolgreich gelöscht!
auths.login_source_exist=Login-Quelle '%s' ist bereits vorhanden.
auths.github_api_endpoint=API Endpunkt
config.not_set=(nicht festgelegt)
config.server_config=Serverkonfiguration
config.app_name=Name der Anwendung
config.app_ver=Anwendungsversion
config.app_url=Anwendungs-URL
config.domain=Domain
config.offline_mode=Offline-Modus
config.disable_router_log=Router-Log deaktivieren
config.brand_name=Markenname
config.run_user=Ausführender Benutzer
config.run_mode=Laufzeit-Modus
config.git_version=Git Version
config.static_file_root_path=Verzeichnis für statische Dateien
config.log_file_root_path=Log-Verzeichnis
config.reverse_auth_user=Nutzer bei Reverse-Authentifizierung
config.server.external_url=Externe URL
config.server.domain=Domäne
config.server.protocol=Protokoll
config.server.http_addr=HTTP-Adresse
config.server.http_port=HTTP-Port
config.server.cert_file=Zertifikatsdatei
config.server.key_file=Schlüsseldatei
config.server.tls_min_version=Minimale TLS-Version
config.server.unix_socket_permission=Unix-Socket-Berechtigung
config.server.local_root_url=Lokale Root-URL
config.server.offline_mode=Offline-Modus
config.server.disable_router_log=Router-Log deaktivieren
config.server.enable_gzip=Gzip aktivieren
config.server.app_data_path=Anwendungsdatenpfad
config.server.load_assets_from_disk=Assets von Festplatte laden
config.server.landing_url=Startseite
config.ssh_config=SSH Konfiguration
config.ssh_enabled=Aktiviert
config.ssh_start_builtin_server=Eingebauten Server starten
config.ssh_domain=Domain
config.ssh_port=Port
config.ssh_listen_port=Listen Port
config.ssh_root_path=Verzeichnis
config.ssh_key_test_path=Schlüssel-Test-Pfad
config.ssh_keygen_path=Keygen ('ssh-keygen') Pfad
config.ssh_minimum_key_size_check=Prüfung der Mindestschlüssellänge
config.ssh_minimum_key_sizes=Minimale Schlüssellängen
config.ssh.enabled=Aktiviert
config.ssh.domain=Exponierte Domain
config.ssh.port=Exponierter Port
config.ssh.root_path=Wurzelpfad
config.ssh.keygen_path=Keygenpfad
config.ssh.key_test_path=Schlüsseltestpfad
config.ssh.minimum_key_size_check=Prüfung der Mindestschlüssellänge
config.ssh.minimum_key_sizes=Mindestschlüssellängen
config.ssh.rewrite_authorized_keys_at_start=Beim Start "authorized_keys" umschreiben
config.ssh.start_builtin_server=Eingebauten Server starten
config.ssh.listen_host=Listen-Host
config.ssh.listen_port=Listen-Port
config.ssh.server_ciphers=Serverchiffren
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server-Algorithmen
config.repo_config=Repository-Konfiguration
config.repo_root_path=Repository-Verzeichnis
config.script_type=Skript-Typ
config.repo_force_private=Erzwinge privat
config.max_creation_limit=Maximal erstellbare Anzahl
config.preferred_licenses=Bevorzugte Lizenzen
config.disable_http_git=Deaktiviere HTTP-Git
config.enable_local_path_migration=Erlaube Migration von lokalem Pfad
config.commits_fetch_concurrency=Anzahl gleichzeitiger Commit-/Fetch-Prozesse
config.repo.root_path=Wurzelpfad
config.repo.script_type=Skript-Typ
config.repo.ansi_chatset=ANSI-Zeichensatz
config.repo.force_private=Privat erzwingen
config.repo.max_creation_limit=Maximales Erstellungslimit
config.repo.preferred_licenses=Bevorzugte Lizenzen
config.repo.disable_http_git=HTTP-Git deaktivieren
config.repo.enable_local_path_migration=Lokale Pfadmigration aktivieren
config.repo.enable_raw_file_render_mode=Darstellen von Roh-Dateien aktivieren
config.repo.commits_fetch_concurrency=Anzahl gleichzeitiger Commit-/Fetch-Prozesse
config.repo.editor.line_wrap_extensions=Editor Erweiterungen für Zeilenumbrüche
config.repo.editor.previewable_file_modes=Vorschau der Dateimodi des Editors
config.repo.upload.enabled=Upload aktiviert
config.repo.upload.temp_path=Temporärer Pfad für Uploads
config.repo.upload.allowed_types=Erlaubte Upload-Typen
config.repo.upload.file_max_size=Upload-Dateigrößenlimit
config.repo.upload.max_files=Upload-Dateilimit
config.db_config=Datenbankkonfiguration
config.db_type=Typ
config.db_host=Host
config.db_name=Name
config.db_user=Benutzer
config.db_ssl_mode=SSL-Modus
config.db_ssl_mode_helper=(nur für "postgres")
config.db_path=Verzeichnis
config.db_path_helper=(für "sqlite3" und "tidb")
config.db.type=Typ
config.db.host=Host
config.db.name=Name
config.db.schema=Schema
config.db.schema_helper=(nur für "postgres")
config.db.user=Benutzer
config.db.ssl_mode=SSL-Modus
config.db.ssl_mode_helper=(nur für "postgres")
config.db.path=Pfad
config.db.path_helper=(nur für "sqlite3")
config.db.max_open_conns=Maximale Anzahl offener Verbindungen
config.db.max_idle_conns=Maximale Leerlaufverbindungen
config.service_config=Service-Konfiguration
config.register_email_confirm=E-Mail-Bestätigung bei Registrierung
config.disable_register=Registrierung deaktivieren
config.show_registration_button=Schaltfläche Registrieren anzeigen
config.require_sign_in_view=Ansehen erfordert Anmeldung
config.mail_notify=E-Mail-Benachrichtigung
config.disable_key_size_check=Prüfung der Mindestschlüssellänge deaktiveren
config.enable_captcha=Captcha aktivieren
config.active_code_lives=Aktivierungscode Lebensdauer
config.reset_password_code_lives=Passwortcode Lebensdauer
config.security_config=Sicherheitskonfiguration
config.security.login_remember_days=Anzahl Tage zum Speichern des Logins
config.security.cookie_remember_name=Cookie merken
config.security.cookie_username=Benutzernamen-Cookie
config.security.cookie_secure=Sicheres Cookie aktivieren
config.security.reverse_proxy_auth_user=Reverse-Proxy-Authentifizierungs-Header
config.security.enable_login_status_cookie=Login-Status-Cookie aktivieren
config.security.login_status_cookie_name=Login-Status-Cookie
config.security.local_network_allowlist=Zulassungsliste für lokale Netzwerke
config.webhook_config=Webhook-Konfiguration
config.queue_length=Warteschlangenlänge
config.deliver_timeout=Zeitlimit für Zustellung
config.skip_tls_verify=TLS verifikation überspringen
config.email_config=E-Mail-Konfiguration
config.email.enabled=Aktiviert
config.email.subject_prefix=Betreff-Präfix
config.email.host=Host
config.email.from=Von
config.email.user=Benutzer
config.email.disable_helo=HELO deaktivieren
config.email.helo_hostname=HELO Hostname
config.email.skip_verify=Zertifikatsüberprüfung überspringen
config.email.use_certificate=Benutzerdefiniertes Zertifikat verwenden
config.email.cert_file=Zertifikatsdatei
config.email.key_file=Schlüsseldatei
config.email.use_plain_text=Klartext verwenden
config.email.add_plain_text_alt=Klartext-Alternative hinzufügen
config.email.send_test_mail=Test-E-Mail senden
config.email.test_mail_failed=Fehler beim Senden der Test-E-Mail an '%s': %v
config.email.test_mail_sent=Test-E-Mail wurde an '%s ' gesendet.
config.mailer_config=Mailer-Konfiguration
config.mailer_enabled=Aktiviert
config.mailer_disable_helo=HELO Deaktivieren
config.mailer_name=Name
config.mailer_host=Host
config.mailer_user=Benutzer
config.send_test_mail=Test-E-Mail senden
config.test_mail_failed=Das Senden der Test-E-Mail an '%s': %v ist fehlgeschlagen
config.test_mail_sent=Test-E-Mail wurde an '%s' gesendet.
config.auth_config=Authentifizierungskonfiguration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Aktivierungscode Lebensdauer
config.auth.reset_password_code_lives=Gültigkeitsdauer Zurücksetzungs-Code
config.auth.require_email_confirm=E-Mail-Bestätigung erforderlich
config.auth.require_sign_in_view=Anmeldung erforderlich
config.auth.disable_registration=Registrierung deaktivieren
config.auth.enable_registration_captcha=Registrierungs-Captcha aktivieren
config.auth.enable_reverse_proxy_authentication=Reverse-Proxy-Authentifizierung aktivieren
config.auth.enable_reverse_proxy_auto_registration=Automatische Reverse-Proxy-Registrierung aktivieren
config.auth.reverse_proxy_authentication_header=Reverse-Proxy-Authentifizierungs-Header
config.oauth_config=OAuth-Konfiguration
config.oauth_enabled=Aktiviert
config.cache_config=Cache-Konfiguration
config.cache_adapter=Cache-Adapter
config.cache_interval=Cache-Intervall
config.cache_conn=Cache-Anbindung
config.user_config=Benutzerkonfiguration
config.user.enable_email_notify=E-Mail-Benachrichtigung aktivieren
config.session_config=Session-Konfiguration
config.session_provider=Session-Provider
config.provider_config=Provider-Einstellungen
config.cookie_name=Cookie-Name
config.enable_set_cookie=Cookies verwenden
config.gc_interval_time=GC-Intervall
config.session_life_time=Session-Lebensdauer
config.https_only=Nur HTTPS
config.cookie_life_time=Cookie-Lebensdauer
config.session.provider=Anbieter
config.session.provider_config=Anbieter-Konfiguration
config.session.cookie_name=Cookie
config.session.https_only=Nur HTTPS
config.session.gc_interval=GC-Intervall
config.session.max_life_time=Maximale Lebensdauer
config.session.csrf_cookie_name=CSRF-Cookie
config.cache_config=Cache-Konfiguration
config.cache.adapter=Adapter
config.cache.interval=GC-Intervall
config.cache.host=Host
config.http_config=HTTP-Konfiguration
config.http.access_control_allow_origin=Access-Control-Allow-Origin
config.attachment_config=Anhang-Konfiguration
config.attachment.enabled=Aktiviert
config.attachment.path=Pfad
config.attachment.allowed_types=Erlaubte Typen
config.attachment.max_size=Größenlimit
config.attachment.max_files=Dateilimit
config.release_config=Release-Konfiguration
config.release.attachment.enabled=Anhang aktiviert
config.release.attachment.allowed_types=Erlaubte Anhang-Typen
config.release.attachment.max_size=Größenlimit für Anhang
config.release.attachment.max_files=Dateilimit für Anhang
config.picture_config=Konfiguration der Profilbilder
config.picture_service=Bildservice
config.disable_gravatar=Gravatar deaktivieren
config.enable_federated_avatar=Föderierte Profilbilder einschalten
config.picture.avatar_upload_path=Benutzer-Avatar Upload-Pfad
config.picture.repo_avatar_upload_path=Repository-Avatar Upload-Pfad
config.picture.gravatar_source=Gravatar-Quelle
config.picture.disable_gravatar=Gravatar deaktivieren
config.picture.enable_federated_avatar=Föderierte Avatare aktivieren
config.mirror_config=Mirror-Konfiguration
config.mirror.default_interval=Standardintervall
config.webhook_config=Webhook-Konfiguration
config.webhook.types=Typen
config.webhook.deliver_timeout=Zeitlimit für Zustellung
config.webhook.skip_tls_verify=TLS-Prüfung überspringen
config.git_config=Git Konfiguration
config.git_disable_diff_highlight=Diff Syntaxhervorhebung ausschalten
config.git_max_diff_lines=Max Diff Zeilen (in einer Datei)
config.git_max_diff_line_characters=Max Diff Zeichen (in einer Zeile)
config.git_max_diff_files=Max Diff Dateien (Anzeige)
config.git_gc_args=GC-Argumente
config.git_migrate_timeout=Zeitlimit für Migration
config.git_mirror_timeout=Zeitlimit für Mirror-Aktualisierung
config.git_clone_timeout=Zeitlimit für Clone
config.git_pull_timeout=Zeitlimit für Pull
config.git_gc_timeout=Zeitlimit für GC
config.git.disable_diff_highlight=Diff-Syntaxhervorhebung ausschalten
config.git.max_diff_lines=Zeilenlimit für Diff (für eine einzelne Datei)
config.git.max_diff_line_characters=Zeichenlimit für Diff (für eine einzelne Datei)
config.git.max_diff_files=Dateilimit für Diff (für einen einzelnen Diff)
config.git.gc_args=GC-Argumente
config.git.migrate_timeout=Zeitlimit für Migration
config.git.mirror_timeout=Zeitlimit zum Spiegeln
config.git.clone_timeout=Clone-Timeout
config.git.pull_timeout=Pull-Timeout
config.git.gc_timeout=GC-Timeout
config.lfs_config=LFS-Konfiguration
config.lfs.storage=Speicher
config.lfs.objects_path=Objektpfad
config.log_config=Konfiguration des Loggings
config.log_file_root_path=Log-Verzeichnis
config.log_mode=Modus
config.log_options=Optionen
@@ -1272,7 +1383,6 @@ notices.delete_success=Systemmitteilungen wurden erfolgreich gelöscht.
[action]
create_repo=hat das Repository <a href="%s">%s</a> erstellt
fork_repo=hat das Repository nach <a href="%s">%s</a> geforkt
rename_repo=hat das Repository von <code>%[1]s</code> zu <a href="%[2]s">%[3]s</a> umbenannt
commit_repo=hat auf <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a> gepusht
compare_commits=Zeige Vergleich für diese %d Commits
@@ -1284,11 +1394,15 @@ comment_issue=`hat Issue <a href="%s/issues/%s">%s#%[2]s</a> kommentiert`
create_pull_request=`hat Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> erstellt`
close_pull_request=`hat Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> geschlossen`
reopen_pull_request=`hat den Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> wieder geöffnet`
merge_pull_request=`hat Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> zuammengeführt`
merge_pull_request=`hat Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> zusammengeführt`
create_branch=hat neuen Branch <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a> angelegt
delete_branch=hat Branch <code>%[2]s</code> in <a href="%[1]s">%[3]s</a> gelöscht
push_tag=hat Tag <a href="%s/src/%s">%[2]s</a> auf <a href="%[1]s">%[3]s</a> gepusht
delete_tag=hat Tag <code>%[2]s</code> in <a href="%[1]s">%[3]s</a> gelöscht
fork_repo=hat das Repository nach <a href="%s">%s</a> geforkt
mirror_sync_push=hat auf <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a> gepusht
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=vor
@@ -1310,6 +1424,7 @@ months=%[2]s %[1]d Monaten
years=%[2]s %[1]d Jahren
raw_seconds=Sekunden
raw_minutes=Minuten
raw_hours=Stunden
[dropzone]
default_message=Zum Hochladen hier klicken oder Datei hier ablegen.

View File

@@ -9,7 +9,6 @@ sign_out=Sign Out
sign_up=Sign Up
register=Register
website=Website
version=Version
page=Page
template=Template
language=Language
@@ -44,17 +43,22 @@ issues=Issues
cancel=Cancel
[status]
page_not_found=Page Not Found
internal_server_error=Internal Server Error
[install]
install=Installation
title=Install Steps For First-time Run
docker_helper=If you're running Gogs inside Docker, please read <a target="_blank" href="%s">Guidelines</a> carefully before you change anything in this page!
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB.
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Database Settings
db_type=Database Type
host=Host
user=User
password=Password
db_name=Database Name
db_schema=Schema
db_helper=Please use INNODB engine with utf8_general_ci charset for MySQL.
ssl_mode=SSL Mode
path=Path
@@ -84,6 +88,7 @@ log_root_path=Log Path
log_root_path_helper=Directory to write log files to.
enable_console_mode=Enable Console Mode
enable_console_mode_popup=In addition to file mode, also print logs to console.
default_branch=Default Branch
optional_title=Optional Settings
email_title=Email Service Settings
@@ -122,6 +127,7 @@ run_user_not_match=Run user isn't the current user: %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
invalid_smtp_from=SMTP From field is not valid: %v
save_config_failed=Fail to save configuration: %v
init_failed=Failed to initialize application: %v
invalid_admin_setting=Admin account setting is invalid: %v
install_success=Welcome! We're glad that you chose Gogs, have fun and take care.
invalid_log_root_path=Log root path is invalid: %v
@@ -151,6 +157,8 @@ register_hepler_msg=Already have an account? Sign in now!
social_register_hepler_msg=Already have an account? Bind now!
disable_register_prompt=Sorry, registration has been disabled. Please contact the site administrator.
disable_register_mail=Sorry, Register Mail Confirmation has been disabled.
auth_source=Authentication Source
local=Local
remember_me=Remember Me
forgot_password=Forgot Password
forget_password=Forgot password?
@@ -229,6 +237,8 @@ org_name_been_taken=Organisation name has already been taken.
team_name_been_taken=Team name has already been taken.
email_been_used=Email address has already been used.
username_password_incorrect=Username or password is not correct.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Please make sure that the repository name you have entered is correct.
enterred_invalid_owner_name=Please make sure that the owner name you have entered is correct.
enterred_invalid_password=Please make sure the that password you have entered is correct.
@@ -256,8 +266,8 @@ following=Following
follow=Follow
unfollow=Unfollow
form.name_reserved=Username '%s' is reserved.
form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
form.name_not_allowed=Username or pattern %q is not allowed.
[settings]
profile=Profile
@@ -309,6 +319,7 @@ delete_email=Delete
email_deletion=Email Deletion
email_deletion_desc=Deleting this email address will remove related information from your account. Do you want to continue?
email_deletion_success=Email has been deleted successfully!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Add new email address
add_email=Add email
add_email_confirmation_sent=A new confirmation email has been sent to '%s', please check your inbox within the next %d hours to complete the confirmation process.
@@ -348,6 +359,8 @@ two_factor_or_enter_secret=Or enter the secret:
two_factor_then_enter_passcode=Then enter passcode:
two_factor_verify=Verify
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
@@ -362,6 +375,7 @@ two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Manage Personal Access Tokens
generate_new_token=Generate New Token
tokens_desc=Tokens you have generated that can be used to access the Gogs APIs.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Each token will have full access to your account.
token_name=Token Name
generate_token=Generate Token
@@ -370,6 +384,8 @@ delete_token=Delete
access_token_deletion=Personal Access Token Deletion
access_token_deletion_desc=Delete this personal access token will remove all related accesses of application. Do you want to continue?
delete_token_success=Personal access token has been removed successfully! Don't forget to update your application as well.
token_name_exists=Token with same name already exists.
orgs.none=You are not a member of any organisations.
orgs.leave_title=Leave organisation
@@ -391,7 +407,9 @@ owner=Owner
repo_name=Repository Name
repo_name_helper=A good repository name is usually composed of short, memorable and unique keywords.
visibility=Visibility
unlisted=Unlisted
visiblity_helper=This repository is <span class="ui red text">Private</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=Site admin has forced all new repositories to be <span class="ui red text">Private</span>
visiblity_fork_helper=(Change of this value will affect all forks)
clone_helper=Need help cloning? Visit <a target="_blank" href="%s">Help</a>!
@@ -417,10 +435,14 @@ mirror_last_synced=Last Synced
watchers=Watchers
stargazers=Stargazers
forks=Forks
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=The owner has reached maximum creation limit of %d repositories.
form.name_reserved=Repository name '%s' is reserved.
form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Need Authorisation
migrate_type=Migration Type
@@ -431,6 +453,7 @@ migrate.clone_address_desc=This can be a HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=You are not allowed to import local repositories.
migrate.invalid_local_path=Invalid local path, it does not exist or not a directory.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migration failed: %v
mirror_from=mirror of
@@ -478,6 +501,8 @@ branches.stale_branches=Stale Branches
branches.all=All Branches
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Change Default Branch
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=New file
editor.upload_file=Upload file
@@ -514,6 +539,8 @@ editor.file_changed_while_editing=File content has been changed since you starte
editor.file_already_exists=A file with name '%s' already exists in this repository.
editor.no_changes_to_show=There are no changes to show.
editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Add subdirectory...
editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
editor.upload_files_to_dir=Upload files to '%s'
@@ -616,6 +643,7 @@ pulls.compare_compare=compare
pulls.filter_branch=Filter branch
pulls.no_results=No results found.
pulls.nothing_to_compare=There is nothing to compare because base and head branches are even.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`There is already a pull request between these two targets: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Create Pull Request
pulls.title_desc=wants to merge %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code>
@@ -631,6 +659,10 @@ pulls.is_checking=The conflict checking is still in progress, please refresh pag
pulls.can_auto_merge_desc=This pull request can be merged automatically.
pulls.cannot_auto_merge_desc=This pull request can't be merged automatically because there are conflicts.
pulls.cannot_auto_merge_helper=Please merge manually in order to resolve the conflicts.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=Merge Pull Request
pulls.open_unmerged_pull_exists=`You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
pulls.delete_branch=Delete Branch
@@ -735,7 +767,12 @@ settings.tracker_issue_style=External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric=Numeric
settings.tracker_issue_style.alphanumeric=Alphanumeric
settings.tracker_url_format_desc=You can use placeholder <code>{user} {repo} {index}</code> for user name, repository name and issue index.
settings.pulls_desc=Enable pull requests to accept public contributions
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Danger Zone
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=The new owner already has a repository with same name. Please choose another name.
@@ -756,7 +793,8 @@ settings.wiki_deletion_success=Repository wiki data have been erased successfull
settings.delete=Delete This Repository
settings.delete_desc=Once you delete a repository, there is no going back. Please be certain.
settings.delete_notices_1=- This operation <strong>CANNOT</strong> be undone.
settings.delete_notices_2=- This operation will permanently delete the everything of this repository, including Git data, issues, comments and accesses of collaborators.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.deletion_success=Repository has been deleted successfully!
settings.update_settings_success=Repository options has been updated successfully.
@@ -772,8 +810,12 @@ settings.collaborator_deletion_desc=This user will no longer have collaboration
settings.remove_collaborator_success=Collaborator has been removed.
settings.search_user_placeholder=Search user...
settings.org_not_allowed_to_be_collaborator=Organisation is not allowed to be added as a collaborator.
settings.add_webhook=Add Webhook
settings.hooks_desc=Webhooks are much like basic HTTP POST event triggers. Whenever something occurs in Gogs, we will handle the notification to the target host you specify. Learn more in this <a target="_blank" href="%s">Webhooks Guide</a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Choose a type...
settings.add_webhook=Add Webhook
settings.webhook_deletion=Delete Webhook
settings.webhook_deletion_desc=Delete this webhook will remove its information and all delivery history. Do you want to continue?
settings.webhook_deletion_success=Webhook has been deleted successfully!
@@ -787,6 +829,9 @@ settings.webhook.response=Response
settings.webhook.headers=Headers
settings.webhook.payload=Payload
settings.webhook.body=Body
settings.webhook.err_cannot_parse_payload_url=Cannot parse the payload URL: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git Hooks are powered by Git itself, you can edit files of supported hooks in the list below to perform custom operations.
settings.githook_edit_desc=If the hook is inactive, sample content will be presented. Leaving content to an empty value will disable this hook.
settings.githook_name=Hook Name
@@ -814,10 +859,10 @@ settings.event_push=Push
settings.event_push_desc=Git push to a repository
settings.event_issues=Issues
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Release
settings.event_release_desc=Release published in a repository.
settings.active=Active
@@ -830,6 +875,7 @@ settings.recent_deliveries=Recent Deliveries
settings.hook_type=Hook Type
settings.add_slack_hook_desc=Add <a href="%s">Slack</a> integration to your repository.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=Token
settings.slack_domain=Domain
settings.slack_channel=Channel
@@ -846,6 +892,10 @@ settings.add_key_success=New deploy key '%s' has been added successfully!
settings.deploy_key_deletion=Delete Deploy Key
settings.deploy_key_deletion_desc=Deleting this deploy key will remove all related accesses for this repository. Do you want to continue?
settings.deploy_key_deletion_success=Deploy key has been deleted successfully!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Browse Source
diff.parent=parent
@@ -910,9 +960,10 @@ team_name_helper=You'll use this name to mention this team in conversations.
team_desc_helper=What is this team all about?
team_permission_desc=What permission level should this team have?
form.name_reserved=Organisation name '%s' is reserved.
form.name_pattern_not_allowed=Organisation name pattern '%s' is not allowed.
form.team_name_reserved=Team name '%s' is reserved.
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Settings
settings.options=Options
@@ -984,12 +1035,26 @@ first_page=First
last_page=Last
total=Total: %d
dashboard.build_info=Build Information
dashboard.app_ver=Application version
dashboard.git_version=Git version
dashboard.go_version=Go version
dashboard.build_time=Build time
dashboard.build_commit=Build commit
dashboard.statistic=Statistics
dashboard.operations=Operations
dashboard.system_status=System Monitor Status
dashboard.statistic_info=Gogs database has <b>%d</b> users, <b>%d</b> organisations, <b>%d</b> public keys, <b>%d</b> repositories, <b>%d</b> watches, <b>%d</b> stars, <b>%d</b> actions, <b>%d</b> accesses, <b>%d</b> issues, <b>%d</b> comments, <b>%d</b> social accounts, <b>%d</b> follows, <b>%d</b> mirrors, <b>%d</b> releases, <b>%d</b> login sources, <b>%d</b> webhooks, <b>%d</b> milestones, <b>%d</b> labels, <b>%d</b> hook tasks, <b>%d</b> teams, <b>%d</b> update tasks, <b>%d</b> attachments.
dashboard.operation_name=Operation Name
dashboard.operation_switch=Switch
dashboard.select_operation_to_run=Please select an operation to run
dashboard.operation_run=Run
dashboard.clean_unbind_oauth=Clean unbound OAuthes
dashboard.clean_unbind_oauth_success=All unbind OAuthes have been deleted successfully.
@@ -1081,11 +1146,12 @@ repos.stars=Stars
repos.issues=Issues
repos.size=Size
auths.auth_manage_panel=Authentication Manage Panel
auths.auth_sources=Authentication Sources
auths.new=Add New Source
auths.name=Name
auths.type=Type
auths.enabled=Enabled
auths.default=Default
auths.updated=Updated
auths.auth_type=Authentication Type
auths.auth_name=Authentication Name
@@ -1094,6 +1160,8 @@ auths.domain=Domain
auths.host=Host
auths.port=Port
auths.bind_dn=Bind DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Bind Password
auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account.
auths.user_base=User Search Base
@@ -1121,9 +1189,10 @@ auths.enable_tls=Enable TLS Encryption
auths.skip_tls_verify=Skip TLS Verify
auths.pam_service_name=PAM Service Name
auths.enable_auto_register=Enable Auto Registration
auths.tips=Tips
auths.edit=Edit Authentication Setting
auths.activated=This authentication is activated
auths.default_auth=This authentication is the default login page
auths.new_success=New authentication '%s' has been added successfully.
auths.update_success=Authentication setting has been updated successfully.
auths.update=Update Authentication Setting
@@ -1133,115 +1202,234 @@ auths.delete_auth_desc=This authentication is going to be deleted, do you want t
auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success=Authentication has been deleted successfully!
auths.login_source_exist=Login source '%s' already exists.
auths.github_api_endpoint=API Endpoint
config.not_set=(not set)
config.server_config=Server Configuration
config.app_name=Application Name
config.app_ver=Application Version
config.app_url=Application URL
config.domain=Domain
config.offline_mode=Offline Mode
config.disable_router_log=Disable Router Log
config.brand_name=Brand name
config.run_user=Run User
config.run_mode=Run Mode
config.git_version=Git Version
config.static_file_root_path=Static File Root Path
config.log_file_root_path=Log File Root Path
config.reverse_auth_user=Reverse Authentication User
config.server.external_url=External URL
config.server.domain=Domain
config.server.protocol=Protocol
config.server.http_addr=HTTP address
config.server.http_port=HTTP port
config.server.cert_file=Certificate file
config.server.key_file=Key file
config.server.tls_min_version=Minimum TLS version
config.server.unix_socket_permission=Unix socket permission
config.server.local_root_url=Local root URL
config.server.offline_mode=Offline mode
config.server.disable_router_log=Disable router log
config.server.enable_gzip=Enable Gzip
config.server.app_data_path=Application data path
config.server.load_assets_from_disk=Load assets from disk
config.server.landing_url=Landing URL
config.ssh_config=SSH Configuration
config.ssh_enabled=Enabled
config.ssh_start_builtin_server=Start Builtin Server
config.ssh_domain=Domain
config.ssh_port=Port
config.ssh_listen_port=Listen Port
config.ssh_root_path=Root Path
config.ssh_key_test_path=Key Test Path
config.ssh_keygen_path=Keygen ('ssh-keygen') Path
config.ssh_minimum_key_size_check=Minimum Key Size Check
config.ssh_minimum_key_sizes=Minimum Key Sizes
config.ssh.enabled=Enabled
config.ssh.domain=Exposed domain
config.ssh.port=Exposed port
config.ssh.root_path=Root path
config.ssh.keygen_path=Keygen path
config.ssh.key_test_path=Key test path
config.ssh.minimum_key_size_check=Minimum key size check
config.ssh.minimum_key_sizes=Minimum key sizes
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=Start builtin server
config.ssh.listen_host=Listen host
config.ssh.listen_port=Listen port
config.ssh.server_ciphers=Server ciphers
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Repository Configuration
config.repo_root_path=Repository Root Path
config.script_type=Script Type
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licences
config.disable_http_git=Disable HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.repo.root_path=Root path
config.repo.script_type=Script type
config.repo.ansi_chatset=ANSI charset
config.repo.force_private=Force private
config.repo.max_creation_limit=Max creation limit
config.repo.preferred_licenses=Preferred licenses
config.repo.disable_http_git=Disable HTTP Git
config.repo.enable_local_path_migration=Enable local path migration
config.repo.enable_raw_file_render_mode=Enable raw file render mode
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Upload enabled
config.repo.upload.temp_path=Upload temporary path
config.repo.upload.allowed_types=Upload allowed types
config.repo.upload.file_max_size=Upload file size limit
config.repo.upload.max_files=Upload files limit
config.db_config=Database Configuration
config.db_type=Type
config.db_host=Host
config.db_name=Name
config.db_user=User
config.db_ssl_mode=SSL Mode
config.db_ssl_mode_helper=(for "postgres" only)
config.db_path=Path
config.db_path_helper=(for "sqlite3" and "tidb")
config.db.type=Type
config.db.host=Host
config.db.name=Name
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=User
config.db.ssl_mode=SSL mode
config.db.ssl_mode_helper=(for "postgres" only)
config.db.path=Path
config.db.path_helper=(for "sqlite3"only)
config.db.max_open_conns=Maximum open connections
config.db.max_idle_conns=Maximum idle connections
config.service_config=Service Configuration
config.register_email_confirm=Require Email Confirmation
config.disable_register=Disable Registration
config.show_registration_button=Show Register Button
config.require_sign_in_view=Require Sign In View
config.mail_notify=Mail Notification
config.disable_key_size_check=Disable Minimum Key Size Check
config.enable_captcha=Enable Captcha
config.active_code_lives=Active Code Lives
config.reset_password_code_lives=Reset Password Code Lives
config.security_config=Security configuration
config.security.login_remember_days=Login remember days
config.security.cookie_remember_name=Remember cookie
config.security.cookie_username=Username cookie
config.security.cookie_secure=Enable secure cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Enable login status cookie
config.security.login_status_cookie_name=Login status cookie
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Webhook Configuration
config.queue_length=Queue Length
config.deliver_timeout=Deliver Timeout
config.skip_tls_verify=Skip TLS Verify
config.email_config=Email configuration
config.email.enabled=Enabled
config.mailer_config=Mailer Configuration
config.mailer_enabled=Enabled
config.mailer_disable_helo=Disable HELO
config.mailer_name=Name
config.mailer_host=Host
config.mailer_user=User
config.send_test_mail=Send Test Email
config.test_mail_failed=Fail to send test email to '%s': %v
config.test_mail_sent=Test email has been sent to '%s'.
config.email.subject_prefix=Subject prefix
config.oauth_config=OAuth Configuration
config.oauth_enabled=Enabled
config.email.host=Host
config.cache_config=Cache Configuration
config.cache_adapter=Cache Adapter
config.cache_interval=Cache Interval
config.cache_conn=Cache Connection
config.email.from=From
config.email.user=User
config.email.disable_helo=Disable HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Skip certificate verify
config.email.use_certificate=Use custom certificate
config.email.cert_file=Certificate file
config.email.key_file=Key file
config.email.use_plain_text=Use plain text
config.email.add_plain_text_alt=Add plain text alternative
config.email.send_test_mail=Send test email
config.email.test_mail_failed=Failed to send test email to '%s': %v
config.email.test_mail_sent=Test email has been sent to '%s'.
config.auth_config=Authentication configuration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=Require email confirmation
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Disable registration
config.auth.enable_registration_captcha=Enable registration captcha
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=Session Configuration
config.session_provider=Session Provider
config.provider_config=Provider Config
config.cookie_name=Cookie Name
config.enable_set_cookie=Enable Set Cookie
config.gc_interval_time=GC Interval Time
config.session_life_time=Session Life Time
config.https_only=HTTPS Only
config.cookie_life_time=Cookie Life Time
config.session.provider=Provider
config.session.provider_config=Provider config
config.session.cookie_name=Cookie
config.session.https_only=HTTPS only
config.session.gc_interval=GC interval
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Cache Configuration
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=HTTP Configuration
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Enabled
config.attachment.path=Path
config.attachment.allowed_types=Allowed types
config.attachment.max_size=Size limit
config.attachment.max_files=Files limit
config.release_config=Release configuration
config.release.attachment.enabled=Attachment enabled
config.release.attachment.allowed_types=Attachment allowed types
config.release.attachment.max_size=Attachment size limit
config.release.attachment.max_files=Attachment files limit
config.picture_config=Picture Configuration
config.picture_service=Picture Service
config.disable_gravatar=Disable Gravatar
config.enable_federated_avatar=Enable Federated Avatars
config.picture.avatar_upload_path=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatar source
config.picture.disable_gravatar=Disable Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Mirror configuration
config.mirror.default_interval=Default interval
config.webhook_config=Webhook Configuration
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Git Configuration
config.git_disable_diff_highlight=Disable Diff Syntax Highlight
config.git_max_diff_lines=Max Diff Lines (for a single file)
config.git_max_diff_line_characters=Max Diff Characters (for a single line)
config.git_max_diff_files=Max Diff Files (to be shown)
config.git_gc_args=GC Arguments
config.git_migrate_timeout=Migration Timeout
config.git_mirror_timeout=Mirror Update Timeout
config.git_clone_timeout=Clone Operation Timeout
config.git_pull_timeout=Pull Operation Timeout
config.git_gc_timeout=GC Operation Timeout
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC arguments
config.git.migrate_timeout=Migration timeout
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=Clone timeout
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=LFS configuration
config.lfs.storage=Storage
config.lfs.objects_path=Objects path
config.log_config=Log Configuration
config.log_file_root_path=Log File Root Path
config.log_mode=Mode
config.log_options=Options
@@ -1272,7 +1460,6 @@ notices.delete_success=System notices have been deleted successfully.
[action]
create_repo=created repository <a href="%s">%s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
rename_repo=renamed repository from <code>%[1]s</code> to <a href="%[2]s">%[3]s</a>
commit_repo=pushed to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
compare_commits=View comparison for these %d commits
@@ -1289,6 +1476,10 @@ create_branch=created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href=
delete_branch=deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=pushed tag <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a>
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=ago
@@ -1310,6 +1501,7 @@ months=%d months %s
years=%d years %s
raw_seconds=seconds
raw_minutes=minutes
raw_hours=hours
[dropzone]
default_message=Drop files here or click to upload.

View File

@@ -9,7 +9,6 @@ sign_out = Sign Out
sign_up = Sign Up
register = Register
website = Website
version = Version
page = Page
template = Template
language = Language
@@ -44,17 +43,22 @@ issues = Issues
cancel = Cancel
[status]
page_not_found = Page Not Found
internal_server_error = Internal Server Error
[install]
install = Installation
title = Install Steps For First-time Run
docker_helper = If you're running Gogs inside Docker, please read <a target="_blank" href="%s">Guidelines</a> carefully before you change anything in this page!
requite_db_desc = Gogs requires MySQL, PostgreSQL, SQLite3, MSSQL or TiDB.
requite_db_desc = Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title = Database Settings
db_type = Database Type
host = Host
user = User
password = Password
db_name = Database Name
db_schema = Schema
db_helper = Please use INNODB engine with utf8_general_ci charset for MySQL.
ssl_mode = SSL Mode
path = Path
@@ -84,6 +88,7 @@ log_root_path = Log Path
log_root_path_helper = Directory to write log files to.
enable_console_mode = Enable Console Mode
enable_console_mode_popup = In addition to file mode, also print logs to console.
default_branch = Default Branch
optional_title = Optional Settings
email_title = Email Service Settings
@@ -107,21 +112,22 @@ enable_captcha = Enable Captcha
enable_captcha_popup = Require validate captcha for user self-registration.
require_sign_in_view = Enable Require Sign In to View Pages
require_sign_in_view_popup = Only signed in users can view pages, visitors will only be able to see sign in/up pages.
admin_setting_desc = You do not have to create an admin account right now, user whoever ID=1 will gain admin access automatically.
admin_setting_desc = You don't need to create an admin account right now. The first user in the users table will be automatically granted admin access.
admin_title = Admin Account Settings
admin_name = Username
admin_password = Password
confirm_password = Confirm Password
admin_email = Admin Email
install_gogs = Install Gogs
test_git_failed = Fail to test 'git' command: %v
test_git_failed = Failed to test 'git' command: %v
sqlite3_not_available = Your release version does not support SQLite3, please download the official binary version from %s, NOT the gobuild version.
invalid_db_setting = Database setting is not correct: %v
invalid_repo_path = Repository root path is invalid: %v
run_user_not_match = Run user isn't the current user: %s -> %s
smtp_host_missing_port = SMTP Host is missing port in address.
invalid_smtp_from = SMTP From field is not valid: %v
save_config_failed = Fail to save configuration: %v
smtp_host_missing_port = SMTP Host port missing from address.
invalid_smtp_from = SMTP From field is invalid: %v
save_config_failed = Failed to save configuration: %v
init_failed = Failed to initialize application: %v
invalid_admin_setting = Admin account setting is invalid: %v
install_success = Welcome! We're glad that you chose Gogs, have fun and take care.
invalid_log_root_path = Log root path is invalid: %v
@@ -151,6 +157,8 @@ register_hepler_msg = Already have an account? Sign in now!
social_register_hepler_msg = Already have an account? Bind now!
disable_register_prompt = Sorry, registration has been disabled. Please contact the site administrator.
disable_register_mail = Sorry, email services are disabled. Please contact the site administrator.
auth_source = Authentication Source
local = Local
remember_me = Remember Me
forgot_password= Forgot Password
forget_password = Forgot password?
@@ -158,15 +166,15 @@ sign_up_now = Need an account? Sign up now.
confirmation_mail_sent_prompt = A new confirmation email has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the registration process.
active_your_account = Activate Your Account
prohibit_login = Login Prohibited
prohibit_login_desc = Your account is prohibited to login, please contact site admin.
prohibit_login_desc = Your account is prohibited from logging in. Please contact the site admin.
resent_limit_prompt = Sorry, you already requested an activation email recently. Please wait 3 minutes then try again.
has_unconfirmed_mail = Hi %s, you have an unconfirmed email address (<b>%s</b>). If you haven't received a confirmation email or need to resend a new one, please click on the button below.
has_unconfirmed_mail = Hi %s, you have an unconfirmed email address (<b>%s</b>). If you haven't received a confirmation email or need to receive a new one, please click the button below.
resend_mail = Click here to resend your activation email
send_reset_mail = Click here to (re)send your password reset email
reset_password = Reset Your Password
invalid_code = Sorry, your confirmation code has expired or not valid.
reset_password_helper = Click here to reset your password
password_too_short = Password length cannot be less then 6.
password_too_short = Password length must be at least 6 characters.
non_local_account = Non-local accounts cannot change passwords through Gogs.
login_two_factor = Two-factor Authentication
@@ -175,7 +183,7 @@ login_two_factor_enter_recovery_code = Enter a two-factor recovery code
login_two_factor_recovery = Two-factor Recovery
login_two_factor_recovery_code = Recovery Code
login_two_factor_enter_passcode = Enter a two-factor passcode
login_two_factor_invalid_recovery_code = Recovery code has been used or does not valid.
login_two_factor_invalid_recovery_code = Recovery code already used or invalid.
[mail]
activate_account = Please activate your account
@@ -210,10 +218,10 @@ TreeName = File path
Content = Content
require_error = ` cannot be empty.`
alpha_dash_error = ` must be valid alpha or numeric or dash(-_) characters.`
alpha_dash_dot_error = ` must be valid alpha or numeric or dash(-_) or dot characters.`
alpha_dash_dot_slash_error = ` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
size_error = ` must be size %s.`
alpha_dash_error = ` must be alphanumeric or dash(-_) characters.`
alpha_dash_dot_error = ` must be alphanumeric or dash(-_) or dot characters.`
alpha_dash_dot_slash_error = ` must be alphanumeric, dash (-_), dot or slash characters.`
size_error = ` size must be %s.`
min_size_error = ` must contain at least %s characters.`
max_size_error = ` must contain at most %s characters.`
email_error = ` is not a valid email address.`
@@ -229,14 +237,15 @@ org_name_been_taken = Organization name has already been taken.
team_name_been_taken = Team name has already been taken.
email_been_used = Email address has already been used.
username_password_incorrect = Username or password is not correct.
auth_source_mismatch = The authentication source selected is not associated with the user.
enterred_invalid_repo_name = Please make sure that the repository name you entered is correct.
enterred_invalid_owner_name = Please make sure that the owner name you entered is correct.
enterred_invalid_password = Please make sure the that password you entered is correct.
user_not_exist = Given user does not exist.
last_org_owner = Removing the last user from a owner team isn't allowed, as there must always be at least one owner in any given organization.
last_org_owner = Removing the last remaining user from an owner team is not allowed, as an organization must always have at least one owner.
invalid_ssh_key = Sorry, we're not able to verify your SSH key: %s
unable_verify_ssh_key = Gogs cannot verify your SSH key, but we assume that it is valid, please double-check it.
invalid_ssh_key = Sorry, verification of your SSH key failed: %s
unable_verify_ssh_key = Gogs cannot verify your SSH key, but it's assumed to be valid. Please double-check it.
auth_failed = Authentication failed: %v
still_own_repo = Your account still has ownership over at least one repository, you have to delete or transfer them first.
@@ -256,8 +265,7 @@ following = Following
follow = Follow
unfollow = Unfollow
form.name_reserved = Username '%s' is reserved.
form.name_pattern_not_allowed = Username pattern '%s' is not allowed.
form.name_not_allowed = User name or pattern %q is not allowed.
[settings]
profile = Profile
@@ -297,7 +305,7 @@ old_password = Current Password
new_password = New Password
retype_new_password = Retype New Password
password_incorrect = Current password is not correct.
change_password_success = Your password was successfully changed. You can now sign using this new password.
change_password_success = Your password was successfully changed and can now be used for logging in.
password_change_disabled = Non-local type users are not allowed to change their password.
emails = Email Addresses
@@ -309,6 +317,7 @@ delete_email = Delete
email_deletion = Email Deletion
email_deletion_desc = Deleting this email address will remove related information from your account. Do you want to continue?
email_deletion_success = Email has been deleted successfully!
email_deletion_primary = Cannot delete primary email address.
add_new_email = Add new email address
add_email = Add Email
add_email_confirmation_sent = A new confirmation email has been sent to '%s', please check your inbox within the next %d hours to complete the confirmation process.
@@ -348,6 +357,7 @@ two_factor_or_enter_secret = Or enter the secret:
two_factor_then_enter_passcode = Then enter passcode:
two_factor_verify = Verify
two_factor_invalid_passcode = The passcode you entered is not valid, please try again!
two_factor_reused_passcode = The passcode you entered has already been used, please try another one!
two_factor_enable_error = Enable Two-factor authentication failed: %v
two_factor_enable_success = Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title = Two-factor Authentication Recovery Codes
@@ -362,6 +372,7 @@ two_factor_disable_success = Two-factor authentication has disabled successfully
manage_access_token = Manage Personal Access Tokens
generate_new_token = Generate New Token
tokens_desc = Tokens you have generated that can be used to access the Gogs APIs.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc = Each token will have full access to your account.
token_name = Token Name
generate_token = Generate Token
@@ -370,6 +381,7 @@ delete_token = Delete
access_token_deletion = Personal Access Token Deletion
access_token_deletion_desc = Delete this personal access token will remove all related accesses of application. Do you want to continue?
delete_token_success = Personal access token has been removed successfully! Don't forget to update your application as well.
token_name_exists = Token with same name already exists.
orgs.none = You are not a member of any organizations.
orgs.leave_title = Leave organization
@@ -391,7 +403,9 @@ owner = Owner
repo_name = Repository Name
repo_name_helper = A good repository name is usually composed of short, memorable and unique keywords.
visibility = Visibility
unlisted = Unlisted
visiblity_helper = This repository is <span class="ui red text">Private</span>
unlisted_helper = This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced = Site admin has forced all new repositories to be <span class="ui red text">Private</span>
visiblity_fork_helper = (Change of this value will affect all forks)
clone_helper = Need help cloning? Visit <a target="_blank" href="%s">Help</a>!
@@ -417,10 +431,11 @@ mirror_last_synced = Last Synced
watchers = Watchers
stargazers = Stargazers
forks = Forks
repo_description_helper = Description of repository. Maximum 512 characters length.
repo_description_length = Available characters
form.reach_limit_of_creation = The owner has reached maximum creation limit of %d repositories.
form.name_reserved = Repository name '%s' is reserved.
form.name_pattern_not_allowed = Repository name pattern '%s' is not allowed.
form.name_not_allowed = Repository name or pattern %q is not allowed.
need_auth = Need Authorization
migrate_type = Migration Type
@@ -431,6 +446,7 @@ migrate.clone_address_desc = This can be a HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local = You're also allowed to migrate a repository by local server path.
migrate.permission_denied = You are not allowed to import local repositories.
migrate.invalid_local_path = Invalid local path, it does not exist or not a directory.
migrate.clone_address_resolved_to_blocked_local_address = Clone address resolved to a local network address that is implicitly blocked.
migrate.failed = Migration failed: %v
mirror_from = mirror of
@@ -478,6 +494,8 @@ branches.stale_branches = Stale Branches
branches.all = All Branches
branches.updated_by = Updated %[1]s by %[2]s
branches.change_default_branch = Change Default Branch
branches.default_deletion_not_allowed = Cannot delete the default branch.
branches.protected_deletion_not_allowed = Cannot delete a protected branch.
editor.new_file = New file
editor.upload_file = Upload file
@@ -514,6 +532,7 @@ editor.file_changed_while_editing = File content has been changed since you star
editor.file_already_exists = A file with name '%s' already exists in this repository.
editor.no_changes_to_show = There are no changes to show.
editor.fail_to_update_file = Failed to update/create file '%s' with error: %v
editor.fail_to_delete_file = Failed to delete file '%s' with error: %v
editor.add_subdir = Add subdirectory...
editor.unable_to_upload_files = Failed to upload files to '%s' with error: %v
editor.upload_files_to_dir = Upload files to '%s'
@@ -632,6 +651,9 @@ pulls.is_checking = The conflict checking is still in progress, please refresh p
pulls.can_auto_merge_desc = This pull request can be merged automatically.
pulls.cannot_auto_merge_desc = This pull request can't be merged automatically because there are conflicts.
pulls.cannot_auto_merge_helper = Please merge manually in order to resolve the conflicts.
pulls.create_merge_commit = Create a merge commit
pulls.rebase_before_merging = Rebase before merging
pulls.commit_description = Commit Description
pulls.merge_pull_request = Merge Pull Request
pulls.open_unmerged_pull_exists = `You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
pulls.delete_branch = Delete Branch
@@ -736,7 +758,9 @@ settings.tracker_issue_style = External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric = Numeric
settings.tracker_issue_style.alphanumeric = Alphanumeric
settings.tracker_url_format_desc = You can use placeholder <code>{user} {repo} {index}</code> for user name, repository name and issue index.
settings.pulls_desc = Enable pull requests to accept public contributions
settings.pulls_desc = Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace = Ignore changes in whitespace
settings.pulls.allow_rebase_merge = Allow use rebase to merge commits
settings.danger_zone = Danger Zone
settings.cannot_fork_to_same_owner = You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo = The new owner already has a repository with same name. Please choose another name.
@@ -757,7 +781,7 @@ settings.wiki_deletion_success = Repository wiki data have been erased successfu
settings.delete = Delete This Repository
settings.delete_desc = Once you delete a repository, there is no going back. Please be certain.
settings.delete_notices_1 = - This operation <strong>CANNOT</strong> be undone.
settings.delete_notices_2 = - This operation will permanently delete the everything of this repository, including Git data, issues, comments and accesses of collaborators.
settings.delete_notices_2 = - This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1 = - All forks will become independent after deletion.
settings.deletion_success = Repository has been deleted successfully!
settings.update_settings_success = Repository options has been updated successfully.
@@ -773,8 +797,10 @@ settings.collaborator_deletion_desc = This user will no longer have collaboratio
settings.remove_collaborator_success = Collaborator has been removed.
settings.search_user_placeholder = Search user...
settings.org_not_allowed_to_be_collaborator = Organization is not allowed to be added as a collaborator.
settings.add_webhook = Add Webhook
settings.hooks_desc = Webhooks are much like basic HTTP POST event triggers. Whenever something occurs in Gogs, we will handle the notification to the target host you specify. Learn more in this <a target="_blank" href="%s">Webhooks Guide</a>.
settings.hooks_desc = Webhooks are much like basic HTTP POST event triggers. Whenever something occurs in Gogs, we will handle the notification to the target host you specify.
settings.webhooks.add_new = Add a new webhook:
settings.webhooks.choose_a_type = Choose a type...
settings.add_webhook = Add webhook
settings.webhook_deletion = Delete Webhook
settings.webhook_deletion_desc = Delete this webhook will remove its information and all delivery history. Do you want to continue?
settings.webhook_deletion_success = Webhook has been deleted successfully!
@@ -788,6 +814,8 @@ settings.webhook.response = Response
settings.webhook.headers = Headers
settings.webhook.payload = Payload
settings.webhook.body = Body
settings.webhook.err_cannot_parse_payload_url = Cannot parse payload URL: %v
settings.webhook.url_resolved_to_blocked_local_address = Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc = Git Hooks are powered by Git itself, you can edit files of supported hooks in the list below to perform custom operations.
settings.githook_edit_desc = If the hook is inactive, sample content will be presented. Leaving content to an empty value will disable this hook.
settings.githook_name = Hook Name
@@ -802,9 +830,9 @@ settings.slack_username = Username
settings.slack_icon_url = Icon URL
settings.slack_color = Color
settings.event_desc = When should this webhook be triggered?
settings.event_push_only = Just the <code>push</code> event.
settings.event_send_everything = I need <strong>everything</strong>.
settings.event_choose = Let me choose what I need.
settings.event_push_only = Just the <code>push</code> event
settings.event_send_everything = I need <strong>everything</strong>
settings.event_choose = Let me choose what I need
settings.event_create = Create
settings.event_create_desc = Branch or tag created
settings.event_delete = Delete
@@ -815,10 +843,10 @@ settings.event_push = Push
settings.event_push_desc = Git push to a repository
settings.event_issues = Issues
settings.event_issues_desc = Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_issue_comment = Issue Comment
settings.event_issue_comment_desc = Issue comment created, edited, or deleted.
settings.event_pull_request = Pull Request
settings.event_pull_request_desc = Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment = Issue Comment
settings.event_issue_comment_desc = Issue comment created, edited, or deleted.
settings.event_release = Release
settings.event_release_desc = Release published in a repository.
settings.active = Active
@@ -831,6 +859,7 @@ settings.recent_deliveries = Recent Deliveries
settings.hook_type = Hook Type
settings.add_slack_hook_desc = Add <a href="%s">Slack</a> integration to your repository.
settings.add_discord_hook_desc = Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc = Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token = Token
settings.slack_domain = Domain
settings.slack_channel = Channel
@@ -847,6 +876,8 @@ settings.add_key_success = New deploy key '%s' has been added successfully!
settings.deploy_key_deletion = Delete Deploy Key
settings.deploy_key_deletion_desc = Deleting this deploy key will remove all related accesses for this repository. Do you want to continue?
settings.deploy_key_deletion_success = Deploy key has been deleted successfully!
settings.description_desc = Description of repository. Maximum 512 characters length.
settings.description_length = Available characters
diff.browse_source = Browse Source
diff.parent = parent
@@ -911,9 +942,8 @@ team_name_helper = You'll use this name to mention this team in conversations.
team_desc_helper = What is this team all about?
team_permission_desc = What permission level should this team have?
form.name_reserved = Organization name '%s' is reserved.
form.name_pattern_not_allowed = Organization name pattern '%s' is not allowed.
form.team_name_reserved = Team name '%s' is reserved.
form.name_not_allowed = Organization name or pattern %q is not allowed.
form.team_name_not_allowed = Team name or pattern %q is not allowed.
settings = Settings
settings.options = Options
@@ -985,12 +1015,19 @@ first_page = First
last_page = Last
total = Total: %d
dashboard.build_info = Build Information
dashboard.app_ver = Application version
dashboard.git_version = Git version
dashboard.go_version = Go version
dashboard.build_time = Build time
dashboard.build_commit = Build commit
dashboard.statistic = Statistics
dashboard.operations = Operations
dashboard.system_status = System Monitor Status
dashboard.statistic_info = Gogs database has <b>%d</b> users, <b>%d</b> organizations, <b>%d</b> public keys, <b>%d</b> repositories, <b>%d</b> watches, <b>%d</b> stars, <b>%d</b> actions, <b>%d</b> accesses, <b>%d</b> issues, <b>%d</b> comments, <b>%d</b> social accounts, <b>%d</b> follows, <b>%d</b> mirrors, <b>%d</b> releases, <b>%d</b> login sources, <b>%d</b> webhooks, <b>%d</b> milestones, <b>%d</b> labels, <b>%d</b> hook tasks, <b>%d</b> teams, <b>%d</b> update tasks, <b>%d</b> attachments.
dashboard.operation_name = Operation Name
dashboard.operation_switch = Switch
dashboard.select_operation_to_run = Please select operation to run
dashboard.operation_run = Run
dashboard.clean_unbind_oauth = Clean unbound OAuthes
dashboard.clean_unbind_oauth_success = All unbind OAuthes have been deleted successfully.
@@ -1082,11 +1119,12 @@ repos.stars = Stars
repos.issues = Issues
repos.size = Size
auths.auth_manage_panel = Authentication Manage Panel
auths.auth_sources = Authentication Sources
auths.new = Add New Source
auths.name = Name
auths.type = Type
auths.enabled = Enabled
auths.default = Default
auths.updated = Updated
auths.auth_type = Authentication Type
auths.auth_name = Authentication Name
@@ -1095,6 +1133,7 @@ auths.domain = Domain
auths.host = Host
auths.port = Port
auths.bind_dn = Bind DN
auths.bind_dn_helper = You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password = Bind Password
auths.bind_password_helper = Warning: This password is stored in plain text. Do not use a high privileged account.
auths.user_base = User Search Base
@@ -1122,9 +1161,9 @@ auths.enable_tls = Enable TLS Encryption
auths.skip_tls_verify = Skip TLS Verify
auths.pam_service_name = PAM Service Name
auths.enable_auto_register = Enable Auto Registration
auths.tips = Tips
auths.edit = Edit Authentication Setting
auths.activated = This authentication is activated
auths.default_auth = This authentication is default login source
auths.new_success = New authentication '%s' has been added successfully.
auths.update_success = Authentication setting has been updated successfully.
auths.update = Update Authentication Setting
@@ -1134,115 +1173,186 @@ auths.delete_auth_desc = This authentication is going to be deleted, do you want
auths.still_in_used = This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success = Authentication has been deleted successfully!
auths.login_source_exist = Login source '%s' already exists.
auths.github_api_endpoint = API Endpoint
config.server_config = Server Configuration
config.app_name = Application Name
config.app_ver = Application Version
config.app_url = Application URL
config.domain = Domain
config.offline_mode = Offline Mode
config.disable_router_log = Disable Router Log
config.run_user = Run User
config.run_mode = Run Mode
config.git_version = Git Version
config.static_file_root_path = Static File Root Path
config.log_file_root_path = Log File Root Path
config.reverse_auth_user = Reverse Authentication User
config.not_set = (not set)
config.server_config = Server configuration
config.brand_name = Brand name
config.run_user = Run user
config.run_mode = Run mode
config.server.external_url = External URL
config.server.domain = Domain
config.server.protocol = Protocol
config.server.http_addr = HTTP address
config.server.http_port = HTTP port
config.server.cert_file = Certificate file
config.server.key_file = Key file
config.server.tls_min_version = Minimum TLS version
config.server.unix_socket_permission = Unix socket permission
config.server.local_root_url = Local root URL
config.server.offline_mode = Offline mode
config.server.disable_router_log = Disable router log
config.server.enable_gzip = Enable Gzip
config.server.app_data_path = Application data path
config.server.load_assets_from_disk = Load assets from disk
config.server.landing_url = Landing URL
config.ssh_config = SSH Configuration
config.ssh_enabled = Enabled
config.ssh_start_builtin_server = Start Builtin Server
config.ssh_domain = Domain
config.ssh_port = Port
config.ssh_listen_port = Listen Port
config.ssh_root_path = Root Path
config.ssh_key_test_path = Key Test Path
config.ssh_keygen_path = Keygen ('ssh-keygen') Path
config.ssh_minimum_key_size_check = Minimum Key Size Check
config.ssh_minimum_key_sizes = Minimum Key Sizes
config.ssh_config = SSH configuration
config.ssh.enabled = Enabled
config.ssh.domain = Exposed domain
config.ssh.port = Exposed port
config.ssh.root_path = Root path
config.ssh.keygen_path = Keygen path
config.ssh.key_test_path = Key test path
config.ssh.minimum_key_size_check = Minimum key size check
config.ssh.minimum_key_sizes = Minimum key sizes
config.ssh.rewrite_authorized_keys_at_start = Rewrite "authorized_keys" at start
config.ssh.start_builtin_server = Start builtin server
config.ssh.listen_host = Listen host
config.ssh.listen_port = Listen port
config.ssh.server_ciphers = Server ciphers
config.ssh.server_macs = Server MACs
config.ssh.server_algorithms = Server algorithms
config.repo_config = Repository Configuration
config.repo_root_path = Repository Root Path
config.script_type = Script Type
config.repo_force_private = Force Private
config.max_creation_limit = Max Creation Limit
config.preferred_licenses = Preferred Licenses
config.disable_http_git = Disable HTTP Git
config.enable_local_path_migration = Enable Local Path Migration
config.commits_fetch_concurrency = Commits Fetch Concurrency
config.repo_config = Repository configuration
config.repo.root_path = Root path
config.repo.script_type = Script type
config.repo.ansi_chatset = ANSI charset
config.repo.force_private = Force private
config.repo.max_creation_limit = Max creation limit
config.repo.preferred_licenses = Preferred licenses
config.repo.disable_http_git = Disable HTTP Git
config.repo.enable_local_path_migration = Enable local path migration
config.repo.enable_raw_file_render_mode = Enable raw file render mode
config.repo.commits_fetch_concurrency = Commits fetch concurrency
config.repo.editor.line_wrap_extensions = Editor line wrap extensions
config.repo.editor.previewable_file_modes = Editor previewable file modes
config.repo.upload.enabled = Upload enabled
config.repo.upload.temp_path = Upload temporary path
config.repo.upload.allowed_types = Upload allowed types
config.repo.upload.file_max_size = Upload file size limit
config.repo.upload.max_files = Upload files limit
config.db_config = Database Configuration
config.db_type = Type
config.db_host = Host
config.db_name = Name
config.db_user = User
config.db_ssl_mode = SSL Mode
config.db_ssl_mode_helper = (for "postgres" only)
config.db_path = Path
config.db_path_helper = (for "sqlite3" and "tidb")
config.db_config = Database configuration
config.db.type = Type
config.db.host = Host
config.db.name = Name
config.db.schema = Schema
config.db.schema_helper = (for "postgres" only)
config.db.user = User
config.db.ssl_mode = SSL mode
config.db.ssl_mode_helper = (for "postgres" only)
config.db.path = Path
config.db.path_helper = (for "sqlite3"only)
config.db.max_open_conns = Maximum open connections
config.db.max_idle_conns = Maximum idle connections
config.service_config = Service Configuration
config.register_email_confirm = Require Email Confirmation
config.disable_register = Disable Registration
config.show_registration_button = Show Register Button
config.require_sign_in_view = Require Sign In View
config.mail_notify = Mail Notification
config.disable_key_size_check = Disable Minimum Key Size Check
config.enable_captcha = Enable Captcha
config.active_code_lives = Active Code Lives
config.reset_password_code_lives = Reset Password Code Lives
config.security_config = Security configuration
config.security.login_remember_days = Login remember days
config.security.cookie_remember_name = Remember cookie
config.security.cookie_username = Username cookie
config.security.cookie_secure = Enable secure cookie
config.security.reverse_proxy_auth_user = Reverse proxy authentication header
config.security.enable_login_status_cookie = Enable login status cookie
config.security.login_status_cookie_name = Login status cookie
config.security.local_network_allowlist = Local network allowlist
config.webhook_config = Webhook Configuration
config.queue_length = Queue Length
config.deliver_timeout = Deliver Timeout
config.skip_tls_verify = Skip TLS Verify
config.email_config = Email configuration
config.email.enabled = Enabled
config.email.subject_prefix = Subject prefix
config.email.host = Host
config.email.from = From
config.email.user = User
config.email.disable_helo = Disable HELO
config.email.helo_hostname = HELO hostname
config.email.skip_verify = Skip certificate verify
config.email.use_certificate = Use custom certificate
config.email.cert_file = Certificate file
config.email.key_file = Key file
config.email.use_plain_text = Use plain text
config.email.add_plain_text_alt = Add plain text alternative
config.email.send_test_mail = Send test email
config.email.test_mail_failed = Failed to send test email to '%s': %v
config.email.test_mail_sent = Test email has been sent to '%s'.
config.mailer_config = Mailer Configuration
config.mailer_enabled = Enabled
config.mailer_disable_helo = Disable HELO
config.mailer_name = Name
config.mailer_host = Host
config.mailer_user = User
config.send_test_mail = Send Test Email
config.test_mail_failed = Fail to send test email to '%s': %v
config.test_mail_sent = Test email has been sent to '%s'.
config.auth_config = Authentication configuration
config.auth_custom_logout_url = Custom logout URL
config.auth.activate_code_lives = Activate code lives
config.auth.reset_password_code_lives = Reset password code lives
config.auth.require_email_confirm = Require email confirmation
config.auth.require_sign_in_view = Require sign in view
config.auth.disable_registration = Disable registration
config.auth.enable_registration_captcha = Enable registration captcha
config.auth.enable_reverse_proxy_authentication = Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration = Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header = Reverse proxy authentication header
config.oauth_config = OAuth Configuration
config.oauth_enabled = Enabled
config.user_config = User configuration
config.user.enable_email_notify = Enable email notification
config.cache_config = Cache Configuration
config.cache_adapter = Cache Adapter
config.cache_interval = Cache Interval
config.cache_conn = Cache Connection
config.session_config = Session configuration
config.session.provider = Provider
config.session.provider_config = Provider config
config.session.cookie_name = Cookie
config.session.https_only = HTTPS only
config.session.gc_interval = GC interval
config.session.max_life_time = Max life time
config.session.csrf_cookie_name = CSRF cookie
config.session_config = Session Configuration
config.session_provider = Session Provider
config.provider_config = Provider Config
config.cookie_name = Cookie Name
config.enable_set_cookie = Enable Set Cookie
config.gc_interval_time = GC Interval Time
config.session_life_time = Session Life Time
config.https_only = HTTPS Only
config.cookie_life_time = Cookie Life Time
config.cache_config = Cache configuration
config.cache.adapter = Adapter
config.cache.interval = GC interval
config.cache.host = Host
config.picture_config = Picture Configuration
config.picture_service = Picture Service
config.disable_gravatar = Disable Gravatar
config.enable_federated_avatar = Enable Federated Avatars
config.http_config = HTTP configuration
config.http.access_control_allow_origin = Access control allow origin
config.git_config = Git Configuration
config.git_disable_diff_highlight = Disable Diff Syntax Highlight
config.git_max_diff_lines = Max Diff Lines (for a single file)
config.git_max_diff_line_characters = Max Diff Characters (for a single line)
config.git_max_diff_files = Max Diff Files (to be shown)
config.git_gc_args = GC Arguments
config.git_migrate_timeout = Migration Timeout
config.git_mirror_timeout = Mirror Update Timeout
config.git_clone_timeout = Clone Operation Timeout
config.git_pull_timeout = Pull Operation Timeout
config.git_gc_timeout = GC Operation Timeout
config.attachment_config = Attachment configuration
config.attachment.enabled = Enabled
config.attachment.path = Path
config.attachment.allowed_types = Allowed types
config.attachment.max_size = Size limit
config.attachment.max_files = Files limit
config.log_config = Log Configuration
config.release_config = Release configuration
config.release.attachment.enabled = Attachment enabled
config.release.attachment.allowed_types = Attachment allowed types
config.release.attachment.max_size = Attachment size limit
config.release.attachment.max_files = Attachment files limit
config.picture_config = Picture configuration
config.picture.avatar_upload_path = User avatar upload path
config.picture.repo_avatar_upload_path = Repository avatar upload path
config.picture.gravatar_source = Gravatar source
config.picture.disable_gravatar = Disable Gravatar
config.picture.enable_federated_avatar = Enable federated avatars
config.mirror_config = Mirror configuration
config.mirror.default_interval = Default interval
config.webhook_config = Webhook configuration
config.webhook.types = Types
config.webhook.deliver_timeout = Deliver timeout
config.webhook.skip_tls_verify = Skip TLS verify
config.git_config = Git configuration
config.git.disable_diff_highlight = Disable diff syntax highlight
config.git.max_diff_lines = Diff lines limit (for a single file)
config.git.max_diff_line_characters = Diff characters limit (for a single line)
config.git.max_diff_files = Diff files limit (for a single diff)
config.git.gc_args = GC arguments
config.git.migrate_timeout = Migration timeout
config.git.mirror_timeout = Mirror fetch timeout
config.git.clone_timeout = Clone timeout
config.git.pull_timeout = Pull timeout
config.git.gc_timeout = GC timeout
config.lfs_config = LFS configuration
config.lfs.storage = Storage
config.lfs.objects_path = Objects path
config.log_config = Log configuration
config.log_file_root_path = Log file root path
config.log_mode = Mode
config.log_options = Options
@@ -1273,7 +1383,6 @@ notices.delete_success = System notices have been deleted successfully.
[action]
create_repo = created repository <a href="%s">%s</a>
fork_repo = forked a repository to <a href="%s">%s</a>
rename_repo = renamed repository from <code>%[1]s</code> to <a href="%[2]s">%[3]s</a>
commit_repo = pushed to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
compare_commits = View comparison for these %d commits
@@ -1290,6 +1399,10 @@ create_branch = created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a hre
delete_branch = deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag = pushed tag <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a>
delete_tag = deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo = forked a repository to <a href="%s">%s</a>
mirror_sync_push = synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create = synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete = synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago = ago
@@ -1311,6 +1424,7 @@ months = %d months %s
years = %d years %s
raw_seconds = seconds
raw_minutes = minutes
raw_hours = hours
[dropzone]
default_message = Drop files here or click to upload.

View File

@@ -9,7 +9,6 @@ sign_out=Cerrar sesión
sign_up=Registro
register=Registro
website=Página web
version=Versión
page=Página
template=Plantilla
language=Idioma
@@ -44,17 +43,22 @@ issues=Incidencias
cancel=Cancelar
[status]
page_not_found=Página no encontrada
internal_server_error=Error Interno del Servidor
[install]
install=Instalación
title=Pasos de la instalación por primera vez
docker_helper=Si está ejecutando Gogs usando Docker, ¡por favor lea <a target="_blank" href="%s"> estas pautas</a> antes de cambiar nada en esta página!
requite_db_desc=Gogs requiere un SGBD como MySQL, PostgreSQL, SQLite3 o TiDB.
requite_db_desc=Gogs requiere MySQL, PostgreSQL, SQLite3 o TiDB (a través del protocolo MySQL).
db_title=Configuración de base de datos
db_type=Tipo de base de datos
host=Host
user=Usuario
password=Contraseña
db_name=Nombre de la base de datos
db_schema=Esquema
db_helper=Por favor utilice el motor INNODB con la configuración de caracteres utf8_general_ci para MySQL.
ssl_mode=Modo SSL
path=Ruta
@@ -84,6 +88,7 @@ log_root_path=Ruta del registro
log_root_path_helper=Directorio donde almacenar los registros.
enable_console_mode=Activar Modo Consola
enable_console_mode_popup=Además del modo archivo, también imprime los registros en consola.
default_branch=Rama por defecto
optional_title=Configuración opcional
email_title=Configuración del servicio de correo
@@ -114,14 +119,15 @@ admin_password=Contraseña
confirm_password=Confirmar Contraseña
admin_email=Correo electrónico del administrador
install_gogs=Instalar Gogs
test_git_failed=Fallo al probar el comando 'git': %v
test_git_failed=Error al probar el comando 'git': %v
sqlite3_not_available=Tu versión no soporta SQLite3, por favor descarga el binario oficial desde %s, NO la versión de gobuild.
invalid_db_setting=La configuración de la base de datos no es correcta: %v
invalid_repo_path=La ruta de la raíz del repositorio es inválida: %v
run_user_not_match=El usuario que está ejecutando la aplicación no es el usuario actual: %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
smtp_host_missing_port=No se ha definido el puerto para el host SMTP.
invalid_smtp_from=El campo SMTP no es válido: %v
save_config_failed=Error al guardar la configuración: %v
init_failed=Error al inicializar la aplicación: %v
invalid_admin_setting=La configuración de la cuenta de administración es inválida: %v
install_success=Bienvenido! Estamos encantados de que hayas escogido Gogs, diviértete y cuídate.
invalid_log_root_path=La ruta para los registros es inválida: %v
@@ -151,6 +157,8 @@ register_hepler_msg=¿Ya tienes una cuenta? ¡Inicia sesión!
social_register_hepler_msg=¿Ya tienes una cuenta? ¡Enlázala!
disable_register_prompt=Lo sentimos, el registro está deshabilitado. Por favor, contacta con el administrador del sitio.
disable_register_mail=Lo sentimos. Los correos de Confirmación de Registro están deshabilitados.
auth_source=Authentication Source
local=Local
remember_me=Recuérdame
forgot_password=He olvidado mi contraseña
forget_password=¿Has olvidado tu contraseña?
@@ -160,22 +168,22 @@ active_your_account=Activa tu cuenta
prohibit_login=Ingreso prohibido
prohibit_login_desc=Su cuenta tiene prohibido ingresar al sistema, fovor contactar al administrador del sistema.
resent_limit_prompt=Lo sentimos, estás solicitando el reenvío del mail de activación con demasiada frecuencia. Por favor, espera 3 minutos.
has_unconfirmed_mail=Hola %s, tu correo electrónico (<b>%s</b>) no está confirmado. Si no has recibido un correo de confirmación o necesitas que lo enviemos de nuevo, por favor, haz click en el siguiente botón.
has_unconfirmed_mail=Hola %s, tu correo electrónico (<b>%s</b>) no está confirmado. Si no has recibido un correo de confirmación o necesitas que te lo enviemos de nuevo, por favor haz click en el siguiente botón.
resend_mail=Haz click aquí para reenviar tu correo electrónico de activación
send_reset_mail=Haga clic aquí para (re)enviar el correo para el restablecimiento de la contraseña
reset_password=Restablecer su contraseña
invalid_code=Lo sentimos, su código de confirmación ha expirado o no es valido.
reset_password_helper=Haga Clic aquí para restablecer su contraseña
password_too_short=La longitud de la contraseña no puede ser menor a 6.
password_too_short=La longitud de la contraseña no puede ser menor de 6 caracteres.
non_local_account=Cuentas que no son locales no pueden cambiar las contraseñas a través de Gogs.
login_two_factor=Autenticación en dos pasos
login_two_factor_passcode=Authentication Passcode
login_two_factor_enter_recovery_code=Enter a two-factor recovery code
login_two_factor_recovery=Two-factor Recovery
login_two_factor_recovery_code=Recovery Code
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
login_two_factor_passcode=Pin de autenticación
login_two_factor_enter_recovery_code=Introduce un código de recuperación de autenticación en dos pasos
login_two_factor_recovery=Recuperación de autenticación en dos pasos
login_two_factor_recovery_code=Código de recuperación
login_two_factor_enter_passcode=Introduce un Pin de autenticación a dos pasos
login_two_factor_invalid_recovery_code=El código de recuperación ya se ha utilizado o no es válido.
[mail]
activate_account=Por favor, active su cuenta
@@ -210,8 +218,8 @@ TreeName=Ruta del archivo
Content=Contenido
require_error=` no puede estar vacío.`
alpha_dash_error=` los caracteres deben ser Alfanumericos o dash(-_).`
alpha_dash_dot_error=` debe ser un caracter alfanumérivo válido, un guión alto o bajo (-_) o un signo de puntuación.`
alpha_dash_error=` los caracteres deben ser alfanuméricos o un guión (-_).`
alpha_dash_dot_error=` debe ser un carácter alfanumérico válido, un guión (-_) o un signo de puntuación.`
alpha_dash_dot_slash_error=` deben ser caracteres alfanuméricos, guiones(-_), puntos o barras.`
size_error=` debe ser de tamaño %s.`
min_size_error=` debe contener al menos %s caracteres.`
@@ -229,6 +237,7 @@ org_name_been_taken=Ya existe una organización con este nombre.
team_name_been_taken=Ya existe un equipo con este nombre.
email_been_used=Esta dirección de correo electrónico ya está en uso.
username_password_incorrect=Nombre de usuario o contraseña incorrectos.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Por favor, asegúrate de que has introducido correctamente el nombre del repositorio.
enterred_invalid_owner_name=Por favor, asegúrate de que has introducido correctamente el nombre del propietario.
enterred_invalid_password=Por favor, asegúrate de que has introducido correctamente tu contraseña.
@@ -256,8 +265,7 @@ following=Siguiendo
follow=Seguir
unfollow=Dejar de seguir
form.name_reserved=El usuario '%s' está reservado.
form.name_pattern_not_allowed=El patrón de nombre de usuario '%s' no está permitido.
form.name_not_allowed=El nombre de usuario o patrón %q no está permitido.
[settings]
profile=Perfil
@@ -309,6 +317,7 @@ delete_email=Eliminar
email_deletion=Eliminar correo electrónico
email_deletion_desc=Al eliminar esta dirección de correo electrónico se eliminará toda la información asociada a esta. ¿Deseas continuar?
email_deletion_success=¡El correo electrónico ha sido eliminado correctamente!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Añadir nueva dirección de correo electrónico
add_email=Añadir correo electrónico
add_email_confirmation_sent=Un nuevo correo de confirmación ha sido enviado a '%s'. Por favor, comprueba tu bandeja de entrada en las próximas %d horas para completar el proceso.
@@ -340,28 +349,30 @@ two_factor_on=Activado
two_factor_off=Desactivado
two_factor_enable=Activar
two_factor_disable=Desactivar
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_view_recovery_codes=Guarda <a href="%s%s"> tus códigos de recuperación</a> en un lugar seguro. Podrás usarlos como código de acceso si pierdes el acceso a tu aplicación de autenticación.
two_factor_http=Para las operaciones sobre HTTP/HTTPS, no puedes usar un usuario y contraseña. Por favor, cree y utilice <a href="%[1]s%[2]s"> un token de acceso personal</a> como su credencial de acceso, por ejemplo, <code>%[3]s</code>.
two_factor_enable_title=Habilitar autenticaciñon en dos pasos
two_factor_enable_title=Habilitar autenticación en dos pasos
two_factor_scan_qr=Por favor, use su aplicación de autenticación para escanear la imagen:
two_factor_or_enter_secret=Or enter the secret:
two_factor_then_enter_passcode=Then enter passcode:
two_factor_or_enter_secret=O introduzca el secreto:
two_factor_then_enter_passcode=Introduce el Pin:
two_factor_verify=Verificar
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_invalid_passcode=¡El Pin que has introducido no es válido, por favor, inténtalo de nuevo!
two_factor_reused_passcode=¡El pin de autenticación que has introducido ya ha sido usado, por favor intenta con otro!
two_factor_enable_error=Ha fallado la activación de la autenticación en dos pasos: %v
two_factor_enable_success=¡La autenticación en dos pasos se ha activado en tu cuenta correctamente!
two_factor_recovery_codes_title=Códigos de recuperación para la autenticación en dos pasos
two_factor_recovery_codes_desc=Los códigos de recuperación se usan cuando pierdes temporalmente el acceso a tu aplicación de autenticación. Cada código de recuperación solo puede utilizarse en una ocasión, <b>por favor, mantén estos códigos en lugar seguro</b>.
two_factor_regenerate_recovery_codes=Regenerar códigos de recuperación
two_factor_regenerate_recovery_codes_error=Ha fallado la regeneración de códigos de recuperación: %v
two_factor_regenerate_recovery_codes_success=¡Nuevos códigos de recuperación han sido generados con éxito!
two_factor_disable_title=Deshabilitar autenticación en dos pasos
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_desc=El nivel de seguridad de tu cuenta se verá reducido después de desactivar la autenticación en dos pasos. ¿Deseas continuar?
two_factor_disable_success=¡La autenticación en dos pasos ha sido deshabilitada satisfactoriamente!
manage_access_token=Gestionar los Tokens de Acceso personales
generate_new_token=Generar nuevo Token
tokens_desc=Tokens usados para acceder al API de Gogs.
access_token_tips=El token de acceso personal puede utilizarse como nombre de usuario o como contraseña. Se recomienda utilizar el "x-access-token" como nombre de usuario y el token de acceso personal como contraseña para las aplicaciones Git.
new_token_desc=Desde ahora, todos los tokens tendrán acceso completo a tu cuenta.
token_name=Nombre del Token
generate_token=Generar Token
@@ -370,6 +381,7 @@ delete_token=Eliminar
access_token_deletion=Borrado de Token de Acceso Personal
access_token_deletion_desc=Si elimina este token de acceso personal la aplicación asociada perderá el permiso de acceso. ¿Desea continuar?
delete_token_success=¡El token de acceso personal ha sido eliminado con éxito! No se olvide de actualizar también las aplicaciones asociadas.
token_name_exists=Ya existe un token con el mismo nombre.
orgs.none=No eres un miembro de ninguna organización.
orgs.leave_title=Salir de una organización
@@ -391,7 +403,9 @@ owner=Propietario
repo_name=Nombre del repositorio
repo_name_helper=Los grandes nombres de repositorios son cortos, memorables y <strong>únicos</strong>.
visibility=Visibilidad
unlisted=Sin listar
visiblity_helper=Este repositorio es <span class="ui red text">privado</span>
unlisted_helper=Este repositorio <span class="ui red text">no está en la lista</span>
visiblity_helper_forced=El administrador web ha obligado a todos los repositorios nuevos a ser <span class="ui red text"> privados</span>
visiblity_fork_helper=(Este cambio afectará a todos los forks)
clone_helper=¿Necesitas ayuda con el clone? ¡Consulta la <a target="_blank" href="%s">Ayuda</a>!
@@ -409,7 +423,7 @@ auto_init=Inicializar los archivos seleccionados y plantillas de este repositori
create_repo=Crear repositorio
default_branch=Rama por defecto
mirror_prune=Purgar
mirror_prune_desc=Remover referencias remotas que no existan remotamente
mirror_prune_desc=Elimina cualquier referencia de seguimiento remoto que ya no exista en el remoto
mirror_interval=Intervalo de la réplica (en horas)
mirror_address=Dirección de la réplica
mirror_address_desc=Por favor, incluya las credenciales de usuario necesarias en la dirección.
@@ -417,10 +431,11 @@ mirror_last_synced=Última sincronización
watchers=Seguidores
stargazers=Fans
forks=Forks
repo_description_helper=Descripción del repositorio. Longitud máxima de 512 caracteres.
repo_description_length=Caracteres disponibles
form.reach_limit_of_creation=El propietario ha alcanzado el límite máximo de %d repositorios creados.
form.name_reserved=El nombre del repositorio '%s' está reservado.
form.name_pattern_not_allowed=El patrón del nombre del repositorio '%s' no está permitido.
form.name_not_allowed=El nombre de repositorio o patrón %q no está permitido.
need_auth=Requiere autorización
migrate_type=Tipo de migración
@@ -431,6 +446,7 @@ migrate.clone_address_desc=Esto puede ser una dirección URL HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=También se le permite migrar un repositorio por la ruta del servidor local.
migrate.permission_denied=No te está permitido importar repositorios locales.
migrate.invalid_local_path=Rutal local inválida, no existe o no es un directorio.
migrate.clone_address_resolved_to_blocked_local_address=La dirección de clonado se ha resuelto a una dirección de red local que está implícitamente bloqueada.
migrate.failed=Migración fallida: %v
mirror_from=espejo de
@@ -478,6 +494,8 @@ branches.stale_branches=Ramas Viejas
branches.all=Todas las Ramas
branches.updated_by=%[1]s actualizado por %[2]s
branches.change_default_branch=Cambiar la Rama por Defecto
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nuevo archivo
editor.upload_file=Subir archivo
@@ -514,6 +532,7 @@ editor.file_changed_while_editing=El contenido del archivo ha sido modificado de
editor.file_already_exists=Ya existe un archivo con nombre '%s' en este repositorio.
editor.no_changes_to_show=No existen cambios para mostrar.
editor.fail_to_update_file=Error al actualizar/crear el archivo '%s', error: %v
editor.fail_to_delete_file=Error al borrar el fichero '%s', error: %v
editor.add_subdir=Añadir subdirectorio...
editor.unable_to_upload_files=Error al subir archivos a '%s', error: %v
editor.upload_files_to_dir=Subir archivos a '%s'
@@ -616,6 +635,7 @@ pulls.compare_compare=comparar con
pulls.filter_branch=Filtrar rama
pulls.no_results=Sin resultados.
pulls.nothing_to_compare=Nada que comparar. Las dos ramas coinciden.
pulls.nothing_merge_base=No hay nada que comparar porque las dos ramas tienen una historia completamente distinta.
pulls.has_pull_request=`Ya existe un pull request entre estas dos ramas: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Crear Pull Request
pulls.title_desc=desea fusionar %[1]d commits de <code>%[2]s</code> en <code>%[3]s</code>
@@ -631,6 +651,9 @@ pulls.is_checking=Se está procediendo a la búsqueda de conflictos, por favor a
pulls.can_auto_merge_desc=Este Pull Request puede ser fusionado automáticamente.
pulls.cannot_auto_merge_desc=Este Pull Request no puede ser fusionado automáticamente porque hay conflictos.
pulls.cannot_auto_merge_helper=Por favor, fusiona manualmente para resolver los conflictos.
pulls.create_merge_commit=Crear un commit del fusionado
pulls.rebase_before_merging=Hacer rebase antes de fusionar
pulls.commit_description=Descripción del commit
pulls.merge_pull_request=Fusionar Pull Request
pulls.open_unmerged_pull_exists=`Usted no puede realizar la operación de reapertura porque en estos momentos existe una solicitud de pull request (#%d) para el mismo repositorio con la misma información que se encuentra a la espera de aprobación`
pulls.delete_branch=Eliminar la rama
@@ -690,7 +713,7 @@ settings.branches_bare=No puedes gestionar ramas en un repositorio vacío. Por f
settings.default_branch=Rama predeterminada
settings.default_branch_desc=Se considera la rama «base» como la rama por defecto para commits de código, las solicitudes pull y edición en línea.
settings.update=Actualizar
settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
settings.update_default_branch_unsupported=El cambio de rama por defecto no esta soportado por la versión de Git en el servidor.
settings.update_default_branch_success=¡La Rama por defecto de este repositorio ha sido actualizado con éxito!
settings.protected_branches=Ramas protegidas
settings.protected_branches_desc=Proteger ramas force pushing, de eliminación accidental y lista blanca de committers de código.
@@ -707,7 +730,7 @@ settings.protect_whitelist_users=Usuarios que pueden hacer push a esta rama
settings.protect_whitelist_search_users=Buscar usuarios
settings.protect_whitelist_teams=Equipos cuyos miembros pueden hacer push a esta rama
settings.protect_whitelist_search_teams=Buscar equipos
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.update_protect_branch_success=¡Las opciones de protección para esta rama se han actualizado con éxito!
settings.hooks=Webhooks
settings.githooks=Git Hooks
settings.basic_settings=Configuración Básica
@@ -720,7 +743,7 @@ settings.change_reponame_prompt=Este cambio afectará a los enlaces al repositor
settings.advanced_settings=Ajustes avanzados
settings.wiki_desc=Activar sistema de wiki
settings.use_internal_wiki=Usar wiki integrada
settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.allow_public_wiki_desc=Permitir acceso público a la wiki cuando el repositorio es privado
settings.use_external_wiki=Usar Wiki externa
settings.external_wiki_url=URL externa de la Wiki
settings.external_wiki_url_desc=Los visitantes serán redireccionados a la URL cuando hagan click en la barra.
@@ -735,9 +758,11 @@ settings.tracker_issue_style=Estilo de etiquetado del tracker externo de inciden
settings.tracker_issue_style.numeric=Numérico
settings.tracker_issue_style.alphanumeric=Alfanumérico
settings.tracker_url_format_desc=Puedes usar las plantillas <code>{user} {repo} {index}</code> para el nombre de usuario, nombre del repositorio e índice de la incidencia.
settings.pulls_desc=Habilitar Pull Requests para aceptar contribuciones públicas
settings.pulls_desc=Permitir pull requests para aceptar contribuciones entre repositorios y ramas
settings.pulls.ignore_whitespace=Ignorar los cambios en el espacio en blanco
settings.pulls.allow_rebase_merge=Permite usar rebase para fusionar los commits
settings.danger_zone=Zona de Peligro
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.cannot_fork_to_same_owner=No puedes hacer fork del repositorio a su propietario original.
settings.new_owner_has_same_repo=El nuevo propietario tiene un repositorio con el mismo nombre.
settings.convert=Convertir en un repositorio normal
settings.convert_desc=Puedes convertir este repositorio en un repositorio normal. Este cambio no se puede deshacer.
@@ -756,7 +781,7 @@ settings.wiki_deletion_success=Los datos de la wiki del repositorio han sido bor
settings.delete=Eliminar este repositorio
settings.delete_desc=Una vez has eliminado un repositorio, no hay vuelta atrás. Por favor, asegúrate de que es lo que quieres.
settings.delete_notices_1=- Esta operación <strong>NO PUEDE</strong> revertirse.
settings.delete_notices_2=- Esta operación eliminará de manera permanente todo el contenido de este repositorio, incluyendo los datos de git, las incidencias, los comentarios y los permisos de acceso de los colaboradores.
settings.delete_notices_2=- Esta operación eliminará de manera permanente todo el contenido de este repositorio, incluyendo los datos de Git, las incidencias, los comentarios y los permisos de acceso de los colaboradores.
settings.delete_notices_fork_1=- Todos los forks se convertirán en independientes tras el borrado.
settings.deletion_success=¡El respositorio ha sido eliminado satisfactoriamente!
settings.update_settings_success=Las opciones del repositorio se han actualizado correctamente.
@@ -772,21 +797,25 @@ settings.collaborator_deletion_desc=Este usuario no podrá colaborar en este rep
settings.remove_collaborator_success=El colaborador ha sido eliminado.
settings.search_user_placeholder=Buscar usuario...
settings.org_not_allowed_to_be_collaborator=Las organizaciones no tiene permitido ser añadidas como colaboradores.
settings.add_webhook=Añadir Webhook
settings.hooks_desc=Los Webhooks permiten a servicios externos recibir notificaciones cuando sucedan ciertos eventos en Gogs. Cuando sucedan los eventos especificados, enviaremos una petición POST a cada una de las URLs indicadas. Para obtener más información, consulta nuestra <a target="_blank" href="%s">Guía de Webhooks</a>.
settings.webhooks.add_new=Añadir un nuevo webhook:
settings.webhooks.choose_a_type=Elige un tipo...
settings.add_webhook=Añadir Webhook
settings.webhook_deletion=Eliminar Webhook
settings.webhook_deletion_desc=Al borrar este webhook se eliminará su información y todo su historial. ¿Desea continuar?
settings.webhook_deletion_success=¡Webhook eliminado con éxito!
settings.webhook.test_delivery=Test de entrega
settings.webhook.test_delivery_desc=Enviar un falso evento Push de entrega para probar tus ajustes de webhook
settings.webhook.test_delivery_success=Probar que los webhook han sido añadidos a la cola de entrega. Esto puede tomar algunos segundos antes de aparecer en el historial de entregas.
settings.webhook.redelivery=Redelivery
settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.redelivery=Reenviar
settings.webhook.redelivery_success=La tarea del Hook '%s' ha sido reañadida en la cola de entrega. Puede tardar unos segundos en actualizarse el historial de estado de la cola.
settings.webhook.request=Petición
settings.webhook.response=Respuesta
settings.webhook.headers=Encabezado
settings.webhook.payload=Payload
settings.webhook.body=Cuerpo del mensaje
settings.webhook.err_cannot_parse_payload_url=No se puede analizar la URL de payload: %v
settings.webhook.url_resolved_to_blocked_local_address=La URL de payload se ha resuelto a una dirección de red local que está implícitamente bloqueada.
settings.githooks_desc=Los Git Hooks son una funcionalidad del propio Git, puedes editar los ficheros de los hooks soportados en la siguiente lista para aplicar operaciones personalizadas.
settings.githook_edit_desc=Si el hook no está activo, se mostrará contenido de ejemplo. Dejar el contenido vacío deshabilitará este hook.
settings.githook_name=Nombre del Hook
@@ -796,7 +825,7 @@ settings.add_webhook_desc=Enviaremos una petición <code>POST</code> a la siguie
settings.payload_url=URL de Payload
settings.content_type=Tipo de contenido
settings.secret=Secreto
settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via <code>X-Gogs-Signature</code> header.
settings.secret_desc=El secreto será enviado como un payload SHA256 HMAC hex digest vía cabecera <code>X-Gogs-Signature</code>.
settings.slack_username=Nombre de usuario
settings.slack_icon_url=URL de icono
settings.slack_color=Color
@@ -814,10 +843,10 @@ settings.event_push=Push
settings.event_push_desc=Git push a un repositorio
settings.event_issues=Incidencias
settings.event_issues_desc=Incidencia abierta, cerrada, reabierta, editada, asignada, desasignada, etiqueta actualizada, etiqueta limpiada, hito marcado, o desmarcado,.
settings.event_issue_comment=Comentario de incidencia
settings.event_issue_comment_desc=Comentario de incidencias creado, editado o borrado.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull request abierto, cerrado, reabierto, editado, asignado, desasignado, etiqueta actualizada, etiqueta limpiada, hito marcado, hito desmarcado, o sincronizado.
settings.event_issue_comment=Comentario de incidencia
settings.event_issue_comment_desc=Comentario de incidencias creado, editado o borrado.
settings.event_release=Lanzamiento
settings.event_release_desc=Lanzamiento publicado en un repositorio.
settings.active=Activo
@@ -829,7 +858,8 @@ settings.delete_webhook=Borrar Webhook
settings.recent_deliveries=Envíos Recientes
settings.hook_type=Tipo de Hook
settings.add_slack_hook_desc=Añade integración con <a href="%s">Slack</a> a tu repositorio.
settings.add_discord_hook_desc=Añade integración con <a href="%s">Slack</a> a tu repositorio.
settings.add_discord_hook_desc=Añade integración con <a href="%s">Discord</a> a tu repositorio.
settings.add_dingtalk_hook_desc=Añade integración con <a href="%s">Dingtalk</a> a tu repositorio.
settings.slack_token=Token
settings.slack_domain=Dominio
settings.slack_channel=Canal
@@ -846,6 +876,8 @@ settings.add_key_success=¡La nueva clave de desplieque '%s' ha sido creada con
settings.deploy_key_deletion=Eliminar Clave de Despliegue
settings.deploy_key_deletion_desc=Al eliminar esta clave de despliegue se perderán el permiso de acceso a este repositorio con dicha clave. ¿Deseas continuar?
settings.deploy_key_deletion_success=¡Clave de despliegue eliminada con éxito!
settings.description_desc=Descripción del repositorio. Longitud máxima de 512 caracteres.
settings.description_length=Caracteres disponibles
diff.browse_source=Explorar el Código
diff.parent=padre
@@ -910,9 +942,8 @@ team_name_helper=Utiliza este nombre para mencionar a este equipo en las convers
team_desc_helper=¿En qué consiste este equipo?
team_permission_desc=¿Qué nivel de permisos debería tener este equipo?
form.name_reserved=El nombre de la organización '%s' está reservado.
form.name_pattern_not_allowed=El patrón de nombre de la organización '%s' no está permitido.
form.team_name_reserved=El nombre de equipo '%s' está reservado.
form.name_not_allowed=El nombre de la organización o patrón %q no está permitido.
form.team_name_not_allowed=El nombre del equipo o patrón %q no está permitido.
settings=Configuración
settings.options=Opciones
@@ -984,12 +1015,19 @@ first_page=Primera
last_page=Última
total=Total: %d
dashboard.build_info=Build Information
dashboard.app_ver=Versión de la aplicación
dashboard.git_version=Versión de Git
dashboard.go_version=Versión de Go
dashboard.build_time=Tiempo de compilación
dashboard.build_commit=Build commit
dashboard.statistic=Estadísticas
dashboard.operations=Operaciones
dashboard.system_status=Estado del Monitor del Sistema
dashboard.statistic_info=La base de datos de Gogs contiene <b>%d</b> usuarios, <b>%d</b> organizaciones, <b>%d</b> claves públicas, <b>%d</b> repositorios, <b>%d</b> vigilados, <b>%d</b> destacados, <b>%d</b> acciones, <b>%d</b> accesos, <b>%d</b> incidencias, <b>%d</b> comentarios, <b>%d</b> cuentas de redes sociales, <b>%d</b> seguidores, <b>%d</b> mirrors, <b>%d</b> releases, <b>%d</b> fuentes de login, <b>%d</b> webhooks, <b>%d</b> milestones, <b>%d</b> etiquetas, <b>%d</b> hooks, <b>%d</b> equipos, <b>%d</b> tareas actualizadas, <b>%d</b> adjuntos.
dashboard.operation_name=Nombre de la operación
dashboard.operation_switch=Interruptor
dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Ejecutar
dashboard.clean_unbind_oauth=Limpiar solicitudes de OAuth sin confirmar
dashboard.clean_unbind_oauth_success=Las solicitudes de OAuth sin confirmar se han eliminado correctamente.
@@ -1003,8 +1041,8 @@ dashboard.git_gc_repos=Ejecutar la recolección de basura en los repositorios
dashboard.git_gc_repos_success=Todos los repositorios han ejecutado correctamente el recolector de basuras.
dashboard.resync_all_sshkeys=Reescribir el fichero '.ssh/authorized_keys'(atención: se perderán las claves que no pertenezcan a Gogs)
dashboard.resync_all_sshkeys_success=Todas las claves públicas se han reescrito correctamente.
dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.resync_all_hooks=Resincroniza los "hooks" de pre-recepción, actualización y post-recepción en todos los repositorios
dashboard.resync_all_hooks_success=Se han vuelto a sincronizar todos los "hooks" de pre-recepción, actualización y post-recepción de los repositorios con éxito.
dashboard.reinit_missing_repos=Reinicializar todos los registros del repositorio que tienen archivos Git eliminados
dashboard.reinit_missing_repos_success=Todos los registros del repositorio con archivos Git eliminados han sido reinicializados con éxito.
@@ -1081,11 +1119,12 @@ repos.stars=Estrellas
repos.issues=Incidencias
repos.size=Tamaño
auths.auth_manage_panel=Panel de administración de autenticación
auths.auth_sources=Fuentes de autentificación
auths.new=Añadir nuevo origen
auths.name=Nombre
auths.type=Tipo
auths.enabled=Activo
auths.default=Por defecto
auths.updated=Actualizado
auths.auth_type=Tipo de autenticación
auths.auth_name=Nombre de autenticación
@@ -1094,20 +1133,21 @@ auths.domain=Dominio
auths.host=Host
auths.port=Puerto
auths.bind_dn=Bind DN
auths.bind_dn_helper=Puedes usar '%s' como marcador de posición para el nombre de usuario, ej. DOM\%s
auths.bind_password=Contraseña Bind
auths.bind_password_helper=Advertencia: La contraseña se almacena como texto plano. No utilice una cuenta con privilegios elevados.
auths.user_base=Base de búsqueda de usuarios
auths.user_dn=DN de Usuario
auths.attribute_username=Atributo de nombre de usuario
auths.attribute_username_placeholder=Dejar vacío para usar el campo de inicio de sesión como nombre de usuario.
auths.attribute_name=First Name Attribute
auths.attribute_name=Atributo nombre
auths.attribute_surname=Atributo apellido
auths.attribute_mail=Atributo correo electrónico
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.verify_group_membership=Verificar pertenencia a grupo
auths.group_search_base_dn=Base DN para la búsqueda de grupos
auths.group_filter=Filtro de grupo
auths.group_attribute_contain_user_list=Atributo de grupo que contiene la lista de usuarios
auths.user_attribute_listed_in_group=Atributo de usuario listado en grupo
auths.attributes_in_bind=Buscar atributos en el contexto del Bind DN
auths.filter=Filtro de usuario
auths.admin_filter=Filtro de aministrador
@@ -1121,9 +1161,9 @@ auths.enable_tls=Habilitar cifrado TLS
auths.skip_tls_verify=Omitir la verificación TLS
auths.pam_service_name=Nombre del Servicio PAM
auths.enable_auto_register=Hablilitar Auto-Registro
auths.tips=Consejos
auths.edit=Editar la Configuración de Autenticación
auths.activated=Esta autenticación ha sido activada
auths.default_auth=Esta autenticación es la fuente de inicio de sesión predeterminada
auths.new_success=¡La autenticación '%s' ha sido añadida con éxito!
auths.update_success=La configuración de autenticación ha sido actualizada con éxito.
auths.update=Actualizar la configuración de autenticación
@@ -1133,115 +1173,186 @@ auths.delete_auth_desc=Esta autenticación será eliminada. ¿Deseas continuar?
auths.still_in_used=Este método de autentificación aún es utilizado por algunos usuarios, por favor elimine o convierta estos usuarios a otro tipo de autentificación.
auths.deletion_success=¡La autenticación ha sido eliminada con éxito!
auths.login_source_exist=El origen de autenticación '%s' ya existe.
auths.github_api_endpoint=Endpoint de la API
config.not_set=(sin definir)
config.server_config=Configuración del servidor
config.app_name=Nombre de la Aplicación
config.app_ver=Versión de la Aplicación
config.app_url=URL de la Aplicación
config.domain=Dominio
config.offline_mode=Modo Sin Conexión
config.disable_router_log=Deshabilitar Log del Router
config.brand_name=Nombre de la marca
config.run_user=Ejecutada como Usuario
config.run_mode=Modo de ejecución
config.git_version=Versión de Git
config.static_file_root_path=Ruta de los Ficheros Estáticos
config.log_file_root_path=Ruta de los Ficheros de Log
config.reverse_auth_user=Autenticación Inversa de Usuario
config.server.external_url=URL externa
config.server.domain=Dominio
config.server.protocol=Protocolo
config.server.http_addr=Dirección HTTP
config.server.http_port=Puerto HTTP
config.server.cert_file=Archivo de certificado
config.server.key_file=Archivo de claves
config.server.tls_min_version=Versión mínima de TLS
config.server.unix_socket_permission=Unix socket permission
config.server.local_root_url=Local root URL
config.server.offline_mode=Offline mode
config.server.disable_router_log=Disable router log
config.server.enable_gzip=Enable Gzip
config.server.app_data_path=Application data path
config.server.load_assets_from_disk=Load assets from disk
config.server.landing_url=Landing URL
config.ssh_config=Configuración SSH
config.ssh_enabled=Habilitado
config.ssh_start_builtin_server=Iniciar servidor integrado
config.ssh_domain=Dominio
config.ssh_port=Puerto
config.ssh_listen_port=Puerto de escucha
config.ssh_root_path=Ruta raíz
config.ssh_key_test_path=Ruta de la clave de prueba
config.ssh_keygen_path=Ruta del generador de claves ('ssh-keygen')
config.ssh_minimum_key_size_check=Tamaño mínimo de la clave de verificación
config.ssh_minimum_key_sizes=Tamaños de clave mínimos
config.ssh.enabled=Activado
config.ssh.domain=Dominio expuesto
config.ssh.port=Puerto expuesto
config.ssh.root_path=Root path
config.ssh.keygen_path=Ruta del generador de claves
config.ssh.key_test_path=Ruta de la clave de prueba
config.ssh.minimum_key_size_check=Comprobación del tamaño mínimo de la clave
config.ssh.minimum_key_sizes=Tamaño mínimo de las claves
config.ssh.rewrite_authorized_keys_at_start=Reescribir "authorized_keys" al inicio
config.ssh.start_builtin_server=Iniciar servidor integrado
config.ssh.listen_host=Host de escucha
config.ssh.listen_port=Puerto de escucha
config.ssh.server_ciphers=Cifrados del servidor
config.ssh.server_macs=MACs del servidor
config.ssh.server_algorithms=Algoritmos del servidor
config.repo_config=Configuración del repositorio
config.repo_root_path=Ruta del Repositorio
config.script_type=Tipo de Script
config.repo_force_private=Forzar Privado
config.max_creation_limit=Limite máximo de creación
config.preferred_licenses=Licencias Preferidas
config.disable_http_git=Desactivar HTTP Git
config.enable_local_path_migration=Activar la migración de la ruta de acceso Local
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.repo.root_path=Ruta raíz
config.repo.script_type=Script type
config.repo.ansi_chatset=ANSI charset
config.repo.force_private=Force private
config.repo.max_creation_limit=Max creation limit
config.repo.preferred_licenses=Licencias preferidas
config.repo.disable_http_git=Disable HTTP Git
config.repo.enable_local_path_migration=Enable local path migration
config.repo.enable_raw_file_render_mode=Enable raw file render mode
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Upload enabled
config.repo.upload.temp_path=Upload temporary path
config.repo.upload.allowed_types=Upload allowed types
config.repo.upload.file_max_size=Upload file size limit
config.repo.upload.max_files=Upload files limit
config.db_config=Configuración de la Base de Datos
config.db_type=Tipo
config.db_host=Host
config.db_name=Nombre
config.db_user=Usuario
config.db_ssl_mode=Modo SSL
config.db_ssl_mode_helper=(sólo para "postgres")
config.db_path=Ruta
config.db_path_helper=(para "sqlite3" y "tidb")
config.db.type=Tipo
config.db.host=Host
config.db.name=Nombre
config.db.schema=Esquema
config.db.schema_helper=(sólo para "postgres")
config.db.user=Usuario
config.db.ssl_mode=SSL mode
config.db.ssl_mode_helper=(sólo para "postgres")
config.db.path=Ruta
config.db.path_helper=(sólo para "sqlite3")
config.db.max_open_conns=Número máximo de conexiones abiertas
config.db.max_idle_conns=Número máximo de conexiones inactivas
config.service_config=Configuración del servicio
config.register_email_confirm=Solicitar Confirmación por Correo Electrónico
config.disable_register=Deshabilitar el Registro
config.show_registration_button=Mostrar Botón de Registro
config.require_sign_in_view=Solicitar la Vista de Inicio de Sesión
config.mail_notify=Notificación por Correo Electrónico
config.disable_key_size_check=Deshabilitar la comprobación de Tamaño Mínimo de Clave
config.enable_captcha=Activar Captcha
config.active_code_lives=Habilitar Vida del Código
config.reset_password_code_lives=Restablecer Contraseña de Vida del Código
config.security_config=Security configuration
config.security.login_remember_days=Login remember days
config.security.cookie_remember_name=Remember cookie
config.security.cookie_username=Username cookie
config.security.cookie_secure=Enable secure cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Enable login status cookie
config.security.login_status_cookie_name=Login status cookie
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Configuración de Webhooks
config.queue_length=Tamaño de Cola de Envío
config.deliver_timeout=Timeout de Entrega
config.skip_tls_verify=Omitir la Verificación TLS
config.email_config=Email configuration
config.email.enabled=Enabled
config.email.subject_prefix=Subject prefix
config.email.host=Host
config.email.from=From
config.email.user=User
config.email.disable_helo=Disable HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Skip certificate verify
config.email.use_certificate=Use custom certificate
config.email.cert_file=Certificate file
config.email.key_file=Archivo de claves
config.email.use_plain_text=Use plain text
config.email.add_plain_text_alt=Add plain text alternative
config.email.send_test_mail=Enviar correo de prueba
config.email.test_mail_failed=Error al enviar correo electrónico de prueba a '%s': %v
config.email.test_mail_sent=Test email has been sent to '%s'.
config.mailer_config=Configuración del servidor de correo
config.mailer_enabled=Activado
config.mailer_disable_helo=Desactivar HELO
config.mailer_name=Nombre
config.mailer_host=Host
config.mailer_user=Usuario
config.send_test_mail=Enviar email de prueba
config.test_mail_failed=Fallo al enviar el email de prueba a '%s': %v
config.test_mail_sent=El email de prueba ha sido enviado a '%s'.
config.auth_config=Authentication configuration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=Require email confirmation
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Disable registration
config.auth.enable_registration_captcha=Enable registration captcha
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=Configuración OAuth
config.oauth_enabled=Activado
config.cache_config=Configuración de la Caché
config.cache_adapter=Adaptador de la Caché
config.cache_interval=Intervalo de la Caché
config.cache_conn=Conexión de la Caché
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=Configuración de la Sesión
config.session_provider=Proveedor de la Sesión
config.provider_config=Configuración del Proveedor
config.cookie_name=Nombre de la Cookie
config.enable_set_cookie=Activar Establecimiento de Cookie
config.gc_interval_time=Intervalo de tiempo del GC
config.session_life_time=Tiempo de Vida de la Sesión
config.https_only=Sólo HTTPS
config.cookie_life_time=Tiempo de Vida de la Cookie
config.session.provider=Provider
config.session.provider_config=Provider config
config.session.cookie_name=Cookie
config.session.https_only=HTTPS only
config.session.gc_interval=GC interval
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Configuración de la Caché
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=Configuración HTTP
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Enabled
config.attachment.path=Path
config.attachment.allowed_types=Allowed types
config.attachment.max_size=Size limit
config.attachment.max_files=Files limit
config.release_config=Release configuration
config.release.attachment.enabled=Attachment enabled
config.release.attachment.allowed_types=Attachment allowed types
config.release.attachment.max_size=Attachment size limit
config.release.attachment.max_files=Attachment files limit
config.picture_config=Configuración de Imagen
config.picture_service=Servicio de Imágen
config.disable_gravatar=Desactivar Gravatar
config.enable_federated_avatar=Habilitar Avatares Federados
config.picture.avatar_upload_path=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatar source
config.picture.disable_gravatar=Disable Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Mirror configuration
config.mirror.default_interval=Intervalo por defecto
config.webhook_config=Configuración de Webhooks
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Configuración de Git
config.git_disable_diff_highlight=Desactivar resaltado de sintaxis del Diff
config.git_max_diff_lines=Líneas de Diff máximas (por un solo archivo)
config.git_max_diff_line_characters=Carácteres de Diff máximos (para una sola línea)
config.git_max_diff_files=Máximo de archivos de Diff (que se mostrarán)
config.git_gc_args=Argumentos de GC
config.git_migrate_timeout=Tiempo de espera de migración
config.git_mirror_timeout=Tiempo de espera de actualización de réplicas
config.git_clone_timeout=Tiempo de espera de operación de clones
config.git_pull_timeout=Tiempo de espera de operación de pull
config.git_gc_timeout=Tiempo de espera de operación de GC
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC arguments
config.git.migrate_timeout=Migration timeout
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=Clone timeout
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=LFS configuration
config.lfs.storage=Storage
config.lfs.objects_path=Objects path
config.log_config=Configuración del Log
config.log_file_root_path=Ruta de los Ficheros de Log
config.log_mode=Modo
config.log_options=Opciones
@@ -1272,7 +1383,6 @@ notices.delete_success=Las notificaciones del sistema han sido eliminadas satisf
[action]
create_repo=creó el repositorio <a href="%s">%s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
rename_repo=repositorio renombrado de <code>%[1]s</code> a <a href="%[2]s">%[3]s</a>
commit_repo=hizo push a <a href="%[1]s/src/%[2]s">%[3]s</a> en <a href="%[1]s">%[4]s</a>
compare_commits=Ver comparación de estos %d commits
@@ -1284,11 +1394,15 @@ comment_issue=`comentó en la incidencia <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`creado pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`cerró el pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`reabrió el pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`fusionado pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`fusionó el pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
create_branch=nueva rama <a href="%[1]s/src/%[2]s">%[3]s</a> creada en <a href="%[1]s">%[4]s</a>
delete_branch=borrada rama <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=hizo push del tag <a href="%s/src/%s">%[2]s</a> a <a href="%[1]s">%[3]s</a>
delete_tag=borrada etiqueta <code>%[2]s</code> en <a href="%[1]s">%[3]s</a>
fork_repo=ha hecho un Fork en <a href="%s">%s</a>
mirror_sync_push=sincronizados commits a <a href="%[1]s/src/%[2]s">%[3]s</a> en <a href="%[1]s">%[4]s</a> desde la réplica
mirror_sync_create=sincronizada nueva referencia <a href="%s/src/%s">%[2]s</a> a <a href="%[1]s">%[3]s</a> desde la réplica
mirror_sync_delete=sincronizada y eliminada referencia <code>%[2]s</code> en <a href="%[1]s">%[3]s</a> desde la réplica
[tool]
ago=hace
@@ -1310,6 +1424,7 @@ months=%[2]s %[1]d meses
years=%[2]s %[1]d años
raw_seconds=segundos
raw_minutes=minutos
raw_hours=hours
[dropzone]
default_message=Suéltelos aquí o pulse para cargar archivos.

1436
conf/locale/locale_fa-IR.ini Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
app_desc=Un service Git auto-hébergé sans prise de tête
app_desc=Un service Git auto-hébergé et indolore.
home=Accueil
dashboard=Tableau de bord
@@ -9,7 +9,6 @@ sign_out=Déconnexion
sign_up=Inscription
register=S'inscrire
website=Site web
version=Version
page=Page
template=Modèle
language=Langue
@@ -29,7 +28,7 @@ mirror=Miroir
new_repo=Nouveau dépôt
new_migrate=Nouvelle migration
new_mirror=Nouveau miroir
new_fork=Nouveau fork
new_fork=Nouveau dépôt séparé
new_org=Nouvelle organisation
manage_org=Gérer les organisations
admin_panel=Administration
@@ -39,23 +38,28 @@ your_profile=Votre profil
your_settings=Vos paramètres
activities=Activités
pull_requests=Pull Requests
pull_requests=Demandes d'admission
issues=Tickets
cancel=Annuler
[status]
page_not_found=Page non trouvée
internal_server_error=Erreur interne du serveur
[install]
install=Installation
title=Instructions pour la première exécution
docker_helper=Si vous exécutez Gogs grâce à Docker, merci de lire la <a target="_blank" href="%s">procédure</a> attentivement avant de modifier quoi que ce soit sur cette page !
requite_db_desc=Gogs requiert MySQL, PostgreSQL, SQLite3, MSSQL ou TiDB.
docker_helper=Si vous exécutez Gogs au sein de Docker, lisez la <a target="_blank" href="%s">procédure</a> attentivement avant toute altération de cette page !
requite_db_desc=Gogs exige MySQL, PostgreSQL, SQLite3 or TiDB (via le protocole MySQL)
db_title=Paramètres de la base de données
db_type=Type de base de données
host=Hôte
user=Utilisateur
password=Mot de passe
db_name=Nom de base de données
db_helper=Veuillez utiliser le moteur INNODB avec le jeu de caractères utf8_general_ci pour MySQL.
db_schema=Schéma
db_helper=Employez le moteur INNODB pour MySQL avec l'encodage utf8_general_ci.
ssl_mode=Mode SSL
path=Emplacement
sqlite_helper=Le chemin du fichier de base de données SQLite3. <br>Utilisez un chemin absolu lorsque vous démarrez en tant que service.
@@ -63,13 +67,13 @@ err_empty_db_path=Le chemin de la base de données SQLite3 ne peut être vide.
no_admin_and_disable_registration=Vous ne pouvez pas désactiver l'enregistrement sans créer un compte administrateur.
err_empty_admin_password=Le mot de passe du compte administrateur ne peut être vide.
general_title=Paramètres généraux de Gogs
general_title=Réglages Généraux d'Application
app_name=Nom de l'application
app_name_helper=Inscrivez fièrement le nom de votre organisation ici !
repo_path=Emplacement racine des dépôts
repo_path=Chemin Racine des Dépôts
repo_path_helper=Tous les dépôts Git distants seront sauvegardés ici.
run_user=Utilisateur système
run_user_helper=L'utilisateur doit avoir accès à la racine des dépôts et exécuter Gogs.
run_user=Utilisateur
run_user_helper=L'utilisateur doit avoir accès à la Racine des Dépôts et exécuter Gogs.
domain=Domaine
domain_helper=Cela affecte les doublons d'URL SSH.
ssh_port=Port SSH
@@ -84,6 +88,7 @@ log_root_path=Chemin des fichiers log
log_root_path_helper=Répertoire d'écriture des fichiers de log.
enable_console_mode=Activer le mode Console
enable_console_mode_popup=En plus du mode fichier, également imprimer des journaux à la console.
default_branch=Branchepar défaut
optional_title=Paramètres facultatifs
email_title=Paramètres du service de messagerie
@@ -119,9 +124,10 @@ sqlite3_not_available=Votre version publiée ne prend pas en charge SQLite3. Veu
invalid_db_setting=Paramètres de base de données incorrects : %v
invalid_repo_path=Chemin vers la racine du dépôt invalide : %v
run_user_not_match=L'utilisateur d'exécution saisi n'est pas l'utilisateur d'exécution actuel : %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
smtp_host_missing_port=Le numéro de port est manquant dans l'adresse de l'Hôte SMTP.
invalid_smtp_from=Le champ SMTP Provenant de n'est pas valide: %v
save_config_failed=La sauvegarde de la configuration a échoué : %v
init_failed=L'initialisation de l'application a échoué.
invalid_admin_setting=Paramètres du compte administrateur invalides : %v
install_success=Bienvenue ! Nous sommes heureux que vous ayez choisi Gogs, amusez-vous et prenez soin de vous.
invalid_log_root_path=L'emplacement racine des fichiers logs est invalide : %v
@@ -151,6 +157,8 @@ register_hepler_msg=Déjà enregistré ? Connectez-vous !
social_register_hepler_msg=Déjà enregistré ? Associez-le !
disable_register_prompt=Désolé, les enregistrements ont été désactivés. Veuillez contacter l'administrateur du site.
disable_register_mail=Désolé, la confirmation par courriel des enregistrements a été désactivée.
auth_source=Sources d'authentification
local=Locale
remember_me=Se souvenir de moi
forgot_password=Mot de passe oublié
forget_password=Mot de passe oublié ?
@@ -158,7 +166,7 @@ sign_up_now=Pas de compte ? Inscrivez-vous maintenant.
confirmation_mail_sent_prompt=Un nouveau mail de confirmation à été envoyé à <b>%s</b>. Veuillez vérifier votre boîte de réception dans un délai de %d heures pour compléter votre enregistrement.
active_your_account=Activer votre compte
prohibit_login=Connexion interdite
prohibit_login_desc=Votre compte est interdit de se connecter, contactez ladministrateur du site.
prohibit_login_desc=La connexion avec ce compte est interdite ; contactez l'administrateur du site.
resent_limit_prompt=Désolé, vos tentatives d'activation sont trop fréquentes. Veuillez réessayer dans 3 minutes.
has_unconfirmed_mail=Bonjour %s, votre adresse e-mail (<b>%s</b>) n'a pas été confirmée. Si vous n'avez reçu aucun mail de confirmation ou souhaitez renouveler l'envoi, cliquez sur le bouton ci-dessous.
resend_mail=Cliquez ici pour renvoyer un mail de confirmation
@@ -170,12 +178,12 @@ password_too_short=Le mot de passe doit contenir 6 caractères minimum.
non_local_account=Les comptes non locaux ne peuvent pas changer leur mot de passe via Gogs.
login_two_factor=Authentification en deux étapes
login_two_factor_passcode=Mot de passe dauthentification
login_two_factor_passcode=Mot de passe d'authentification
login_two_factor_enter_recovery_code=Entrez un code de récupération en deux étapes
login_two_factor_recovery=Récupération en deux étapes
login_two_factor_recovery_code=Code de récupération
login_two_factor_enter_passcode=Entrez un code d'authentification en deux étapes
login_two_factor_invalid_recovery_code=Code de récupération a été utilisé ou nest pas valide.
login_two_factor_invalid_recovery_code=Code de récupération a été utilisé ou n'est pas valide.
[mail]
activate_account=Veuillez activer votre compte
@@ -229,6 +237,7 @@ org_name_been_taken=Nom d'organisation déjà pris.
team_name_been_taken=Nom d'équipe déjà pris.
email_been_used=Adresse e-mail déjà utilisée.
username_password_incorrect=Nom d'utilisateur ou mot de passe incorrect.
auth_source_mismatch=La source dauthentification sélectionnée nest pas associée à lutilisateur.
enterred_invalid_repo_name=Veuillez vérifier que le nom saisi du dépôt soit correct.
enterred_invalid_owner_name=Veuillez vérifier que le nom du propriétaire saisi soit correct.
enterred_invalid_password=Veuillez vérifier que le mot de passe saisi soit correct.
@@ -256,8 +265,7 @@ following=Abonnements
follow=Suivre
unfollow=Ne plus suivre
form.name_reserved=Le nom '%s' est réservé.
form.name_pattern_not_allowed=Motif '%s' interdit pour les noms d'utilisateur.
form.name_not_allowed=Le nom de l'utilisateur ou le schéma n'est pas autorisé
[settings]
profile=Profil
@@ -309,6 +317,7 @@ delete_email=Supprimer
email_deletion=Suppression de l'adresse e-mail
email_deletion_desc=Supprimer cette adresse e-mail supprimera les informations associées à votre compte. Voulez-vous continuer ?
email_deletion_success=L'adresse e-mail a été supprimée avec succès !
email_deletion_primary=Impossible de supprimer l'adresse de courrier principale
add_new_email=Ajouter une nouvelle adresse e-mail
add_email=Ajouter un e-mail
add_email_confirmation_sent=Une nouvelle confirmation d'adresse e-mail a été envoyé à '%s', veuillez vérifier votre boîte de réception dans un délai de %d heures pour terminer le processus de confirmation.
@@ -343,11 +352,12 @@ two_factor_disable=Désactiver
two_factor_view_recovery_codes=Voir et sauvegarder <a href="%s%s">vos codes de récupération</a> dans un endroit sécurisé. Vois pouvez les utiliser comme mot de passe si vous perdez l'accès à l'application d'authentification.
two_factor_http=Vous ne pouvez plus utiliser un nom d'utilisateur et mot de passe en clair pour les opérations en HTTP/HTTPS. Merci de créer et d'utiliser un <a href="%[1]s%[2]s">jeton d'accès personnel</a> comme moyen d'identification, par exemple <code>%[3]s</code>.
two_factor_enable_title=Activer l'authentification en deux étapes
two_factor_scan_qr=Veuillez utiliser votre application dauthentification pour numériser limage :
two_factor_scan_qr=Veuillez utiliser votre application d'authentification pour numériser l'image :
two_factor_or_enter_secret=Ou entrez la phrase secrète :
two_factor_then_enter_passcode=Puis entrez le mot de passe :
two_factor_verify=Vérifier
two_factor_invalid_passcode=Le mot de passe que vous avez entré n'est pas valide, veuillez réessayer.
two_factor_reused_passcode=Le mot de passe que vous avez entré a déjà été utilisé, veuillez en essayez un autre !
two_factor_enable_error=L'activation de l'authentification en deux étapes a échoué : %v
two_factor_enable_success=L'authentification en deux étapes a été bien été activée pour votre compte.
two_factor_recovery_codes_title=Codes de secours pour l'authentification en deux étapes
@@ -362,14 +372,16 @@ two_factor_disable_success=L'authentification à deux facteurs a été désactiv
manage_access_token=Gérer les jetons d'accès personnels
generate_new_token=Générer le nouveau jeton
tokens_desc=Jetons, que vous avez généré, qui peuvent être utilisés pour accéder à l'API Gogs.
access_token_tips=Le jeton d'accès personnel est employé soit comme nom d'utilisateur soit comme mot de passe. L'emploi du «x-access-token» comme nom d'utilisateur et le jeton d'accès personnel comme mot de passe est recommandé pour les applications Git
new_token_desc=Chaque Jeton donnera un accès complet à votre compte.
token_name=Nom du jeton
generate_token=Générer le jeton
generate_token_succees=Nouveau jeton d'accès a été généré avec succès ! Assurez-vous de copier votre nouveau jeton d'accès personnel maintenant. Vous ne serez pas en mesure de le revoir !
delete_token=Supprimer
access_token_deletion=Suppression du jeton d'accès
access_token_deletion=Suppression du jeton d'accès personnel
access_token_deletion_desc=Supprimer ce jeton d'accès supprimera tous les accès de l'application. Voulez-vous continuer ?
delete_token_success=Le jeton d'accèsa été supprimé avec succès ! N'oubliez pas de mettre à jour vos applications.
delete_token_success=Le jeton d'accès a été supprimé avec succès ! N'oubliez pas de mettre à jour vos applications.
token_name_exists=Un jeton avec le même nom existe déjà.
orgs.none=Vous n'êtes membre d'aucune organisation.
orgs.leave_title=Quitter une organisation
@@ -391,9 +403,11 @@ owner=Propriétaire
repo_name=Nom du dépôt
repo_name_helper=Idéalement, le nom d'un dépot devrait être court, mémorable et <strong>unique</strong>.
visibility=Visibilité
unlisted=Non répertorié
visiblity_helper=Ce dépôt est <span class="ui red text"> privé</span>
unlisted_helper=Ce dépôt <span class="ui red text">n'est pas répertorié</span>
visiblity_helper_forced=L'administrateur du site a forcé tous les nouveaux dépôts à être <span class="ui red text">privés</span>
visiblity_fork_helper=(Les changement de cette valeur affecteront tous les forks)
visiblity_fork_helper=(Les changements de cette valeur affecteront tous les forks)
clone_helper=Besoin d'aide pour dupliquer ? Visitez <a target="_blank" href="%s">l'aide</a> !
fork_repo=Créer un fork du dépôt
fork_from=Fork de
@@ -417,12 +431,13 @@ mirror_last_synced=Dernière synchronisation
watchers=Observateurs
stargazers=Stargazers
forks=Forks
repo_description_helper=Description du dépôt. 512 caractères maximum.
repo_description_length=Caractères disponibles
form.reach_limit_of_creation=Le propriétaire a atteint le nombre maximal de %d dépôts créés.
form.name_reserved=Le nom de dépôt '%s' est réservé.
form.name_pattern_not_allowed=Motif '%s' interdit pour les noms de dépôt.
form.name_not_allowed=Le nom de l'utilisateur ou le schéma n'est pas autorisé
need_auth=Nécessite une Autorisation
need_auth=Nécessite une autorisation
migrate_type=Type de migration
migrate_type_helper=Ce dépôt sera un <span class="text blue"> miroir</span>
migrate_repo=Migrer le dépôt
@@ -431,6 +446,7 @@ migrate.clone_address_desc=Cela peut être une URL HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=Vous êtes aussi autorisé à migrer un dépôt via un chemin local du serveur.
migrate.permission_denied=Vous n'êtes pas autorisé à importer des dépôts locaux.
migrate.invalid_local_path=Chemin local non valide, non existant ou n'étant pas un dossier.
migrate.clone_address_resolved_to_blocked_local_address=L'adresse de clonage correspond à une adresse réseau locale, qui est bloquée implicitement.
migrate.failed=Echec de migration: %v
mirror_from=miroir de
@@ -441,7 +457,7 @@ copy_link_error=Appuyez sur ⌘-C ou Ctrl-C pour copier
copied=Copié
unwatch=Ne plus suivre
watch=Suivre
unstar=Retirer le vote
unstar=Retirer des favoris
star=Voter
fork=Fork
@@ -469,7 +485,7 @@ file_raw=Raw
file_history=Historique
file_view_raw=Voir le Raw
file_permalink=Lien permanent
file_too_large=Ce fichier est trop gros pour être afficher
file_too_large=Ce fichier est trop gros pour être affiché
video_not_supported_in_browser=Votre navigateur ne supporte pas la balise video HTML5.
branches.overview=Résumé
@@ -478,6 +494,8 @@ branches.stale_branches=Branches stagnantes
branches.all=Toutes les Branches
branches.updated_by=Mise à jour %[1]s par %[2]s
branches.change_default_branch=Changer la Branche par Défaut
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nouveau fichier
editor.upload_file=Téléverser un fichier
@@ -495,10 +513,10 @@ editor.filename_help=Pour ajouter un répertoire, il suffit de le taper puis d'a
editor.or=ou
editor.cancel_lower=annuler
editor.commit_changes=Commit les modifications
editor.add_tmpl=Ajouter '%s/<filename>'
editor.add=Ajouter '%s'
editor.update=Mettre à jour '%s'
editor.delete=Supprimer '%s'
editor.add_tmpl=Ajout de '%s/<filename>'
editor.add=Ajout de '%s'
editor.update=Mise à jour de '%s'
editor.delete=Suppression de '%s'
editor.commit_message_desc=Ajouter une optionnelle description détaillée...
editor.commit_directly_to_this_branch=Soumettre directement à la branche <strong class="branch-name">%s</strong>.
editor.create_new_branch=Créer une <strong>nouvelle branche</strong> pour cette validation et envoyer une nouvelle pull request.
@@ -506,16 +524,17 @@ editor.new_branch_name_desc=Nouveau nom de la branche...
editor.cancel=Annuler
editor.filename_cannot_be_empty=Nom de fichier ne peut pas être vide.
editor.branch_already_exists=La branche '%s' existe déjà dans ce dépôt.
editor.directory_is_a_file=L'entrée '%s' dans le chemin daccès parent est un fichier pas un répertoire dans ce dépôt.
editor.directory_is_a_file=L'entrée '%s' dans le chemin d'accès parent est un fichier, pas un répertoire dans ce dépôt.
editor.file_is_a_symlink=Le fichier « %s » est un lien symbolique qui ne peut être modifié depuis l'éditeur web.
editor.filename_is_a_directory=Le nom de fichier '%s' existe déjà dans ce dépot.
editor.file_editing_no_longer_exists=Le fichier '%s' que vous modifiez n'existe plus dans le dépôt.
editor.file_changed_while_editing=Le contenu du fichier à changé depuis que vous avez commencé à l'éditer. <a target="_blank" href="%s">Cliquez ici</a> pour voir ce qui à été modifié ou <strong>appuyez sur commit encore une fois</strong> pour remplacer ces changements.
editor.file_already_exists=La branche '%s' existe déjà dans ce dépôt.
editor.no_changes_to_show=Il ny a aucun changement à afficher.
editor.fail_to_update_file=Échec lors de la mise à jour/création du fichier '%s' avec lerreur : %v
editor.fail_to_update_file=Échec lors de la mise à jour/création du fichier '%s' avec l'erreur : %v
editor.fail_to_delete_file=Impossible de supprimer le fichier «%s» avec lerreur : %v
editor.add_subdir=Ajouter un sous-répertoire...
editor.unable_to_upload_files=Échec lors de l'envoie du fichier '%s' avec lerreur : %v
editor.unable_to_upload_files=Échec lors de l'envoie du fichier '%s' avec l'erreur : %v
editor.upload_files_to_dir=Transférer les fichiers vers '%s'
commits.commit_history=Historique des commits
@@ -616,14 +635,15 @@ pulls.compare_compare=Comparer
pulls.filter_branch=Filtre de branche
pulls.no_results=Aucun résultat trouvé.
pulls.nothing_to_compare=Il n'y a rien de comparable parce que les deux branches sont égales.
pulls.has_pull_request=`Il y a déjà une demande de tirer entre ces deux cibles : <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Creer une Pull Request
pulls.nothing_merge_base=Il n'y a rien à comparer parce que les deux branches ont un historique complètement différent.
pulls.has_pull_request=`Il y a déjà une pull request entre ces deux cibles : <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Créer une Pull Request
pulls.title_desc=veut fusionner %[1]d commits à partir de <code>%[2]s</code> vers <code>%[3]s</code>
pulls.merged_title_desc=à fusionné %[1]d commits à partir de <code>%[2]s</code> vers <code>%[3]s</code> %[4]s
pulls.merged_title_desc=a fusionné %[1]d commits à partir de <code>%[2]s</code> vers <code>%[3]s</code> %[4]s
pulls.tab_conversation=Conversation
pulls.tab_commits=Commits
pulls.tab_files=Fichiers modifiés
pulls.reopen_to_merge=Veuillez rouvrir cette demande de Pull Request pour effectuer l'opération de fusion.
pulls.reopen_to_merge=Veuillez rouvrir cette Pull Request pour effectuer l'opération de fusion.
pulls.merged=Fusionné
pulls.has_merged=Cette Pull Request a été fusionnée avec succès !
pulls.data_broken=Les données de cette pull request ont été compromises en raison de la suppression d'informations sur le fork.
@@ -631,6 +651,9 @@ pulls.is_checking=La recherche de conflits est toujours en cours, veuillez rafra
pulls.can_auto_merge_desc=Cette pull request peut être fusionnée automatiquement.
pulls.cannot_auto_merge_desc=Cette pull request ne peut être fusionnée automatiquement à cause de conflits.
pulls.cannot_auto_merge_helper=Fusionner manuellement afin de résoudre les conflits.
pulls.create_merge_commit=Créer un commit de fusion
pulls.rebase_before_merging=Rebaser avant la fusion
pulls.commit_description=Description du commit
pulls.merge_pull_request=Fusionner la Pull Request
pulls.open_unmerged_pull_exists=`Vous ne pouvez effectuer une réouverture car il y a déjà une pull-request ouverte (#%d) depuis le même dépôt avec les mêmes informations de fusion et est en attente de fusion.`
pulls.delete_branch=Supprimer la branche
@@ -699,7 +722,7 @@ settings.branch_protection=Protection de branche
settings.branch_protection_desc=Sélectionnez les options de protection pour la branche <b>%s</b>.
settings.protect_this_branch=Protéger cette branche
settings.protect_this_branch_desc=Interdire les push forcés et empêcher la suppression.
settings.protect_require_pull_request=Exiger une requête de fusion plutôt qu'un push immédiat
settings.protect_require_pull_request=Exiger une pull request plutôt qu'un push immédiat
settings.protect_require_pull_request_desc=Activez cette option pour empêcher la publication immédiate vers cette branche. Les commits devront être publiés vers une autre branche (non protégée) et fusionnée dans cette branche avec une requête de fusion.
settings.protect_whitelist_committers=Liste blanche de personnes pouvant publier sur cette branche
settings.protect_whitelist_committers_desc=Ajouter des personnes ou des équipes à la liste blanche des fusions directes de cette branche. Les utilisateurs dans cette liste blanche passeront outre la nécessité de valider leurs requêtes de fusion.
@@ -726,7 +749,7 @@ settings.external_wiki_url=URL Wiki externe
settings.external_wiki_url_desc=Les visiteurs seront redirigés vers cette URL lorsqu'ils cliqueront sur l'onglet.
settings.issues_desc=Activer le système de tickets
settings.use_internal_issue_tracker=Utiliser le système simplifié de tickets interne
settings.allow_public_issues_desc=Permettre laccès du public aux tickets lorsque le dépôt est privé
settings.allow_public_issues_desc=Permettre l'accès du public aux tickets lorsque le dépôt est privé
settings.use_external_issue_tracker=Utiliser un bug-tracker externe
settings.external_tracker_url=Adresse de l'issue tracker externe
settings.external_tracker_url_desc=Les visiteurs seront redirigés vers cette URL lorsqu'ils cliqueront sur l'onglet.
@@ -735,7 +758,9 @@ settings.tracker_issue_style=Style de nommage des bugs du tracker externe :
settings.tracker_issue_style.numeric=Numérique
settings.tracker_issue_style.alphanumeric=Alphanumérique
settings.tracker_url_format_desc=Vous pouvez utiliser l'espace réservé <code>{user} {repo} {index}</code> pour le nom d'utilisateur, le nom du dépôt et le numéro de bug.
settings.pulls_desc=Activer les pull requests pour accepter les contributions publiques
settings.pulls_desc=Activer les pull requests pour accepter les contributions depuis des dépôts et des branches
settings.pulls.ignore_whitespace=Ignorer les changements quand ce sont des espaces
settings.pulls.allow_rebase_merge=Autoriser l'utilisation de rebase pour fusionner les validations
settings.danger_zone=Zone de danger
settings.cannot_fork_to_same_owner=Vous ne pouvez par créer un fork d'un dépot à son propriétaire actuel.
settings.new_owner_has_same_repo=Le nouveau propriétaire a déjà un dépôt nommé ainsi.
@@ -757,7 +782,7 @@ settings.delete=Supprimer ce dépôt
settings.delete_desc=Attention, cette action est action irréversible. Soyez sûr de vous.
settings.delete_notices_1=- Cette opération <strong>ne peut pas </strong> être annulée.
settings.delete_notices_2=- Cette opération supprimera définitivement le dépôt, y compris les données Git, les tickets, les commentaires et les accès des collaborateurs.
settings.delete_notices_fork_1=-Tous les forks deviendront indépendants après leffacement.
settings.delete_notices_fork_1=-Tous les forks deviendront indépendants après l'effacement.
settings.deletion_success=Le dépôt a été supprimé avec succès!
settings.update_settings_success=Options mises à jour avec succès.
settings.transfer_owner=Nouveau propriétaire
@@ -772,8 +797,10 @@ settings.collaborator_deletion_desc=Cet utilisateur n'aura plus accès pour coll
settings.remove_collaborator_success=Collaborateur supprimé.
settings.search_user_placeholder=Rechercher un utilisateur...
settings.org_not_allowed_to_be_collaborator=Une organisation n'est pas autorisée à être ajoutée en tant que collaborateur.
settings.add_webhook=Ajouter un Webhook
settings.hooks_desc=Les Webhooks sont des déclencheurs de POST HTTP . Lorsque qu'un événement se produit dans Gogs, une notification sera envoyée vers l'hôte cible préalablement spécifié. Apprenez-en davantage dans le <a target="_blank" href="%s">Guide des Webhooks</a>.
settings.webhooks.add_new=Ajouter un nouveau rappel HTTP
settings.webhooks.choose_a_type=Choisis le type de...
settings.add_webhook=Ajouter un Webhook
settings.webhook_deletion=Supprimer le Webhook
settings.webhook_deletion_desc=Supprimer ce webhook va supprimer ses informations et l'historique de livraison. Voulez-vous continuer ?
settings.webhook_deletion_success=Le webhook a été supprimé avec succès !
@@ -787,6 +814,8 @@ settings.webhook.response=Réponse
settings.webhook.headers=Entêtes 
settings.webhook.payload=Payload
settings.webhook.body=Corps
settings.webhook.err_cannot_parse_payload_url=Impossible d'analyser l'URL : %v
settings.webhook.url_resolved_to_blocked_local_address=L'URL du contenu correspond à une adresse réseau locale qui est bloquée implicitement.
settings.githooks_desc=Les Hooks Git sont alimentés par Git lui même. Les Hooks compatibles sont modifiables dans la liste ci-dessous pour effectuer des opérations personnalisées.
settings.githook_edit_desc=Si un Hook est inactif, un exemple de contenu vous sera proposé. Un contenu laissé vide signifie un Hook inactif.
settings.githook_name=Nom du Hook
@@ -814,10 +843,10 @@ settings.event_push=Push
settings.event_push_desc=Git push vers un dépôt
settings.event_issues=Tickets
settings.event_issues_desc=Ticket ouvert, fermé, réouvert, modifié, assigné, non-assigné, étiquette mise à jour, étiquette nettoyée, jalonnée, ou déjalonnée.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull requests ouverte, fermée, réouverte, modifiée, assignée, non-assignée, étiquette mise à jour, étiquette nettoyée, jalonnée, déjalonnée, ou synchronisée.
settings.event_issue_comment=Commentaire du ticket
settings.event_issue_comment_desc=Commentaire du ticket créé, modifié, ou supprimé.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Requête de fusion ouverte, fermée, réouverte, modifiée, assignée, non-assignée, étiquette mise à jour, étiquette nettoyée, jalonnée, déjalonnée, ou synchronisée.
settings.event_release=Version publiée
settings.event_release_desc=Version publiée dans un dépôt.
settings.active=Actif
@@ -830,6 +859,7 @@ settings.recent_deliveries=Livraisons récentes
settings.hook_type=Type de Hook
settings.add_slack_hook_desc=Intégrer <a href="%s"> Slack</a> à votre dépôt.
settings.add_discord_hook_desc=Ajouter l'intégration de <a href="%s">Discord</a> à votre dépôt.
settings.add_dingtalk_hook_desc=Ajouter l'intégration de <a href="%s">Dingtalk</a> à votre dépôt.
settings.slack_token=Jeton
settings.slack_domain=Domaine
settings.slack_channel=Canal
@@ -846,6 +876,8 @@ settings.add_key_success=La nouvelle clé de déploiement '%s' a été ajoutée
settings.deploy_key_deletion=Supprimer la Clé de Déploiement
settings.deploy_key_deletion_desc=Supprimer cette clé de déploiement effacera tous les accès relatifs pour ce référentiel. Voulez-vous continuer ?
settings.deploy_key_deletion_success=La clé de déploiement a été supprimée avec succès !
settings.description_desc=Description du dépôt. 512 caractères maximum.
settings.description_length=Caractères disponibles
diff.browse_source=Parcourir la source
diff.parent=Parent
@@ -910,9 +942,8 @@ team_name_helper=Ce nom sera utilisé pour mentionner l'équipe dans les convers
team_desc_helper=Présentation de l'équipe
team_permission_desc=Quel niveau d'accès cette équipe devrait-elle posséder ?
form.name_reserved=Le nom d'organisation '%s' est réservé.
form.name_pattern_not_allowed=Motif '%s' interdit pour les noms d'organisation.
form.team_name_reserved=Le nom d'équipe « %s » est réservé.
form.name_not_allowed=Le nom de l'organisation ou le modèle n'est pas autorisé.
form.team_name_not_allowed=Le nom de l'équipe ou le pattern %q n'est pas autorisé.
settings=Paramètres
settings.options=Options
@@ -929,7 +960,7 @@ settings.delete_prompt=Cela supprimera cette organisation définitivement. Cette
settings.confirm_delete_account=Confirmez la suppression
settings.delete_org_title=Suppression d'organisation
settings.delete_org_desc=Cette organisation sera définitivement supprimée. Continuer ?
settings.hooks_desc=Ajoute des vebhooks qui seront activés pour <strong>tous les dépôts</strong> de cette organisation.
settings.hooks_desc=Ajoute des webhooks qui seront activés pour <strong>tous les dépôts</strong> de cette organisation.
members.membership_visibility=Visibilité des membres:
members.public=Public
@@ -984,12 +1015,19 @@ first_page=Première
last_page=Dernière
total=Total : %d
dashboard.build_info=Informations sur la construction
dashboard.app_ver=Version de l'application
dashboard.git_version=Version de Git
dashboard.go_version=Version de Go
dashboard.build_time=Temps de compilation
dashboard.build_commit=Commit
dashboard.statistic=Statistiques
dashboard.operations=Opérations
dashboard.system_status=État du système
dashboard.statistic_info=La base de données Gogs contient <b>%d</b> utilisateurs, <b>%d</b> organisations, <b>%d</b> clés publiques, <b>%d</b> dépôts, <b>%d</b> surveillances de dépôts, <b>%d</b> votes, <b>%d</b> actions, <b>%d</b> accès, <b>%d</b> tickets, <b>%d</b> commentaires, <b>%d</b> comptes de réseaux sociaux, <b>%d</b> abonnements, <b>%d</b> miroirs, <b>%d</b> versions, <b>%d</b> connexions d'origine, <b>%d</b> webhooks, <b>%d</b> versions, <b>%d</b> labels, <b>%d</b> tâches hook, <b>%d</b> équipes, <b>%d</b> tâches de mise à jour, <b>%d</b> fichiers.
dashboard.operation_name=Nom de l'Opération
dashboard.operation_switch=Basculer
dashboard.select_operation_to_run=Veuillez sélectionner l'opération à exécuter
dashboard.operation_run=Exécuter
dashboard.clean_unbind_oauth=Nettoyer les associations OAuthes
dashboard.clean_unbind_oauth_success=Tous unbind OAuthes ont été supprimés avec succès.
@@ -1081,11 +1119,12 @@ repos.stars=Votes
repos.issues=Tickets
repos.size=Taille
auths.auth_manage_panel=Panel d'administration des authentifications
auths.auth_sources=Sources d'authentification
auths.new=Ajouter une nouvelle source d'authentification
auths.name=Nom
auths.type=Type
auths.enabled=Activé
auths.default=Par défaut
auths.updated=Mis à jour
auths.auth_type=Type d'authentification
auths.auth_name=Nom de l'authentification
@@ -1094,20 +1133,21 @@ auths.domain=Domaine
auths.host=Hôte
auths.port=Port
auths.bind_dn=Bind DN
auths.bind_dn_helper=Vous pouvez utiliser « %s » qui sera remplacé par le nom d'utilisateur, par exemple « DOM\%s »
auths.bind_password=Bind mot de passe
auths.bind_password_helper=Avertissement : Ce mot de passe est stocké en clair. N'utilisez pas le mot de passe d'un compte doté de privilèges élevés.
auths.user_base=Utilisateur Search Base
auths.user_dn=Utilisateur DN
auths.attribute_username=Attribut nom d'utilisateur
auths.attribute_username_placeholder=Laisser vide pour utiliser la valeur du formulaire d'authentification comme nom d'utilisateur.
auths.attribute_name=First Name Attribute
auths.attribute_name=Attribut du prénom
auths.attribute_surname=Attribut du nom de famille
auths.attribute_mail=Attribut de l'e-mail
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.verify_group_membership=Vérifier l'appartenance à un groupe
auths.group_search_base_dn=Recherche de groupe basée sur le nom de domaine
auths.group_filter=Filtre par groupe
auths.group_attribute_contain_user_list=Attribut de groupe contenant la liste des utilisateurs
auths.user_attribute_listed_in_group=Attribut de l'utilisateur listé dans le groupe
auths.attributes_in_bind=Aller chercher les attributs dans le contexte de liaison DN
auths.filter=Filtre utilisateur
auths.admin_filter=Filtre administrateur
@@ -1121,9 +1161,9 @@ auths.enable_tls=Activer le Chiffrement TLS
auths.skip_tls_verify=Ne pas vérifier TLS
auths.pam_service_name=Nom du Service PAM
auths.enable_auto_register=Connexion Automatique
auths.tips=Conseils
auths.edit=Modifier les paramètres d'authentification
auths.activated=Authentification activée
auths.default_auth=Cette authentification est la source de connexion par défaut
auths.new_success=Nouvelle authentification «%s » a été ajoutée avec succès.
auths.update_success=Les paramètre d'authentification a été mis à jour avec succès.
auths.update=Mettre à jour les paramètres d'authentifications
@@ -1133,115 +1173,186 @@ auths.delete_auth_desc=Cette authentification va être supprimée. voulez-vous c
auths.still_in_used=Cette authentification est encore utilisée par d'autres utilisateurs, supprimez-les ou convertir ces utilisateurs vers un autre type de session, avant.
auths.deletion_success=L'authentification a été supprimée avec succès !
auths.login_source_exist=La source de connexion « %s » existe déjà.
auths.github_api_endpoint=API Endpoint
config.not_set=(non défini)
config.server_config=Configuration du Serveur
config.app_name=Nom de l'application
config.app_ver=Version de l'application
config.app_url=URL de l'application
config.domain=Domaine
config.offline_mode=Mode hors-ligne
config.disable_router_log=Désactiver la Journalisation du Routeur
config.brand_name=Nom de la marque
config.run_user=Utilisateur système
config.run_mode=Mode d'Éxécution
config.git_version=Version de Git
config.static_file_root_path=Chemin statique des fichiers racines
config.log_file_root_path=Emplacement Racine du Fichier Journal
config.reverse_auth_user=Annuler l'Authentification de l'Utilisateur
config.server.external_url=URL externe
config.server.domain=Domaine
config.server.protocol=Protocole
config.server.http_addr=Adresse HTTP
config.server.http_port=Port HTTP
config.server.cert_file=Fichier de certificat
config.server.key_file=Fichier de la clé
config.server.tls_min_version=Version minimale de TLS
config.server.unix_socket_permission=Autorisation du socket Unix
config.server.local_root_url=URL racine locale
config.server.offline_mode=Mode hors connexion
config.server.disable_router_log=Désactiver la journalisation du routeur
config.server.enable_gzip=Activer Gzip
config.server.app_data_path=Chemin des données de l'application
config.server.load_assets_from_disk=Charger les ressources depuis le disque
config.server.landing_url=URL de destination (collecte)
config.ssh_config=Configuration SSH
config.ssh_enabled=Activé
config.ssh_start_builtin_server=Démarrer le serveur intégré
config.ssh_domain=Domaine
config.ssh_port=Port
config.ssh_listen_port=Port d'écoute
config.ssh_root_path=Emplacement racine
config.ssh_key_test_path=Chemin de test des clés
config.ssh_keygen_path=Chemin vers le générateur de clefs ("ssh-keygen")
config.ssh_minimum_key_size_check=Vérification de la longueur de clé minimale
config.ssh_minimum_key_sizes=Tailles de clé minimales
config.ssh.enabled=Activé
config.ssh.domain=Domaine exposé
config.ssh.port=Port exposé
config.ssh.root_path=Emplacement racine
config.ssh.keygen_path=Chemin de la clé
config.ssh.key_test_path=Chemin de test de la clé
config.ssh.minimum_key_size_check=Vérification de la taille minimale des clés
config.ssh.minimum_key_sizes=Taille minimale des clés
config.ssh.rewrite_authorized_keys_at_start=Réécriture de "authorized_keys" au démarrage
config.ssh.start_builtin_server=Démarrer le serveur intégré
config.ssh.listen_host=Hôte en écoute
config.ssh.listen_port=Port d'écoute
config.ssh.server_ciphers=Suites de chiffrement
config.ssh.server_macs=Adresses MAC du serveur
config.ssh.server_algorithms=Algorithmes de serveur
config.repo_config=Configuration du dépôt
config.repo_root_path=Emplacement des Dépôts
config.script_type=Type de Script
config.repo_force_private=Privé forcé
config.max_creation_limit=Limite de création maximale
config.preferred_licenses=Licences préférées
config.disable_http_git=Désactiver Git HTTP
config.enable_local_path_migration=Activer la migration de chemin locale
config.commits_fetch_concurrency=Concurrence des récupérations de commits
config.repo.root_path=Emplacement racine
config.repo.script_type=Type de script
config.repo.ansi_chatset=Jeu de caractères ANSI
config.repo.force_private=Forcer en tant que privé
config.repo.max_creation_limit=Limite de création
config.repo.preferred_licenses=Licences préférées
config.repo.disable_http_git=Désactiver Git HTTP
config.repo.enable_local_path_migration=Activer la migration de chemin locale
config.repo.enable_raw_file_render_mode=Activer le mode de rendu des fichiers de manière brute
config.repo.commits_fetch_concurrency=Récupération simultanée des commits
config.repo.editor.line_wrap_extensions=Extensions de retour à la ligne de l'éditeur
config.repo.editor.previewable_file_modes=Modes de prévisualisation des fichiers de l'éditeur
config.repo.upload.enabled=Publication activée
config.repo.upload.temp_path=Chemin du téléchargement temporaire
config.repo.upload.allowed_types=Types de publications autorisées
config.repo.upload.file_max_size=Taille maximale des fichiers envoyés
config.repo.upload.max_files=Limite sur les fichiers publiés
config.db_config=Configuration de la Base de Données
config.db_type=Type
config.db_host=Hôte
config.db_name=Nom
config.db_user=Utilisateur
config.db_ssl_mode=Mode SSL
config.db_ssl_mode_helper=("postgres" uniquement)
config.db_path=Emplacement
config.db_path_helper=(pour « sqlite3 » et « TIDB »)
config.db.type=Type
config.db.host=Serveur hôte
config.db.name=Nom
config.db.schema=Schéma
config.db.schema_helper=(pour "postgres" uniquement)
config.db.user=Utilisateur
config.db.ssl_mode=Mode SSL
config.db.ssl_mode_helper=("postgres" uniquement)
config.db.path=Chemin
config.db.path_helper=(pour "sqlite3" seulement)
config.db.max_open_conns=Nombre maximum de connexions ouvertes
config.db.max_idle_conns=Nombre maximum de connexions inactives
config.service_config=Configuration du Service
config.register_email_confirm=Nécessite une confirmation par e-mail
config.disable_register=Désactiver les inscriptions
config.show_registration_button=Afficher le bouton d'enregistrement
config.require_sign_in_view=Connexion obligatoire pour visualiser
config.mail_notify=Notifier par mail
config.disable_key_size_check=Désactiver la vérification de la taille de clé minimale
config.enable_captcha=Activez le Captcha
config.active_code_lives=Limites de Code Actif
config.reset_password_code_lives=Réinitialiser le Mot De Passe des Limites de Code
config.security_config=Configuration de sécurité
config.security.login_remember_days=Rester connecté plusieurs jours
config.security.cookie_remember_name=Mémoriser le cookie
config.security.cookie_username=Cookie du nom d'utilisateur
config.security.cookie_secure=Activer les cookies sécurisés
config.security.reverse_proxy_auth_user=Inverser l'en-tête d'authentification du proxy
config.security.enable_login_status_cookie=Activer le cookie d'état de connexion
config.security.login_status_cookie_name=Cookie de statut de connexion
config.security.local_network_allowlist=liste des autorisations de réseau local
config.webhook_config=Configuration Webhook
config.queue_length=Longueur de la file d'attente
config.deliver_timeout=Expiration d'Envoi
config.skip_tls_verify=Ne pas vérifier TLS
config.email_config=Configuration de le-mail
config.email.enabled=Activé
config.email.subject_prefix=Préfixe du sujet
config.email.host=Hôte
config.email.from=De:
config.email.user=Utilisateur
config.email.disable_helo=Désactiver HELO
config.email.helo_hostname=Nom dhôte HELO
config.email.skip_verify=Ignorer la vérification du certificat
config.email.use_certificate=Utiliser un certificat personnalisé
config.email.cert_file=Fichier de certificat
config.email.key_file=Fichier de la clé
config.email.use_plain_text=Utiliser le texte brut
config.email.add_plain_text_alt=Ajouter une alternative au texte brut
config.email.send_test_mail=Envoyer un e-mail de test
config.email.test_mail_failed=Impossible d'envoyer un e-mail de test à '%s' :
config.email.test_mail_sent=Un e-mail de test à été envoyé à '%s'.
config.mailer_config=Configuration du service de mail
config.mailer_enabled=Activé
config.mailer_disable_helo=Désactiver HELO
config.mailer_name=Nom
config.mailer_host=Hôte
config.mailer_user=Utilisateur
config.send_test_mail=Envoyer courriel de Test
config.test_mail_failed=Impossible d'envoyer un e-mail de test à '%s': %v
config.test_mail_sent=Un e-mail de test à été envoyé à '%s'.
config.auth_config=Configuration de l'authentification
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activer les vies sur les codes
config.auth.reset_password_code_lives=Vies sur les codes de réinitialisation des mots de passes
config.auth.require_email_confirm=Nécessite une confirmation par e-mail
config.auth.require_sign_in_view=Connexion obligatoire pour visualiser
config.auth.disable_registration=Désactiver les inscriptions
config.auth.enable_registration_captcha=Activer le CAPTCHA à l'inscription
config.auth.enable_reverse_proxy_authentication=Activer l'authentification par proxy inversé
config.auth.enable_reverse_proxy_auto_registration=Activer l'enregistrement automatique du proxy inversé
config.auth.reverse_proxy_authentication_header=En-tête d'authentification du proxy inversé
config.oauth_config=Configuration OAuth
config.oauth_enabled=Activé
config.cache_config=Configuration du Cache
config.cache_adapter=Adaptateur du Cache
config.cache_interval=Intervales du Cache
config.cache_conn=Liaison du Cache
config.user_config=Configuration de l'utilisateur
config.user.enable_email_notify=Activer les notifications par e-mail
config.session_config=Configuration de session
config.session_provider=Fournisseur de session
config.provider_config=Configuration du fournisseur
config.cookie_name=Nom du cookie
config.enable_set_cookie=Activer les cookies
config.gc_interval_time=Intervals GC
config.session_life_time=Durée des sessions
config.https_only=HTTPS uniquement
config.cookie_life_time=Expiration du cookie
config.session.provider=Fournisseur
config.session.provider_config=Configuration du fournisseur
config.session.cookie_name=Cookie
config.session.https_only=HTTPS uniquement
config.session.gc_interval=Intervalle du GC
config.session.max_life_time=Durée de vie maximale
config.session.csrf_cookie_name=Cookie CSRF
config.cache_config=Configuration du Cache
config.cache.adapter=Adaptateur
config.cache.interval=Intervalle du GC
config.cache.host=Serveur hôte
config.http_config=Configuration HTTP
config.http.access_control_allow_origin=Autoriser le partage daccès avec lorigine
config.attachment_config=Configuration des pièces jointes
config.attachment.enabled=Activé
config.attachment.path=Chemin
config.attachment.allowed_types=Types autorisés
config.attachment.max_size=Taille limite
config.attachment.max_files=Limite de fichiers
config.release_config=Configuration de la version
config.release.attachment.enabled=Pièces jointes activées
config.release.attachment.allowed_types=Types de pièces jointes autorisés
config.release.attachment.max_size=Limite de taille des pièces jointes
config.release.attachment.max_files=Limite du nombre de fichiers joints
config.picture_config=Configuration d'Image
config.picture_service=Service d'Imagerie
config.disable_gravatar=Désactiver Gravatar
config.enable_federated_avatar=Activer les avatars unifiés
config.picture.avatar_upload_path=Chemin de téléchargement de l'avatar de l'utilisateur
config.picture.repo_avatar_upload_path=Chemin de téléchargement de l'avatar du référentiel de versions
config.picture.gravatar_source=Origine Gravatar
config.picture.disable_gravatar=Désactiver Gravatar
config.picture.enable_federated_avatar=Activer les avatars unifiés
config.mirror_config=Configuration de mise en miroir
config.mirror.default_interval=Intervalle par défaut
config.webhook_config=Configuration Webhook
config.webhook.types=Types
config.webhook.deliver_timeout=Délai de livraison
config.webhook.skip_tls_verify=Ignorer la vérification TLS
config.git_config=Configuration de Git
config.git_disable_diff_highlight=Désactiver la surbrillance syntaxique de Diff
config.git_max_diff_lines=Lignes de Diff Max (pour un seul fichier)
config.git_max_diff_line_characters=Nombre max de caractères de Diff (pour une seule ligne)
config.git_max_diff_files=Nombre max de fichiers de Diff (à afficher)
config.git_gc_args=Arguments de GC
config.git_migrate_timeout=Délai imparti pour une migration
config.git_mirror_timeout=Délai imparti pour mettre à jour le miroir
config.git_clone_timeout=Délai imparti pour l'opération "Clone"
config.git_pull_timeout=Délai imparti pour l'opération "Pull"
config.git_gc_timeout=Délai imparti pour l'opération "GC"
config.git.disable_diff_highlight=Désactiver la coloration syntaxique des différences
config.git.max_diff_lines=Limite de lignes différentes (pour un seul fichier)
config.git.max_diff_line_characters=Limite de caractères différents (pour une seule ligne)
config.git.max_diff_files=Limite de fichiers différents (pour une seule différence)
config.git.gc_args=Arguments GC
config.git.migrate_timeout=Délai de migration dépassé
config.git.mirror_timeout=Délai de récupération du miroir dépassé
config.git.clone_timeout=Délai de clonage dépassé
config.git.pull_timeout=Délai de récupération des sources dépassé
config.git.gc_timeout=GB délai expiré
config.lfs_config=Configuration LFS
config.lfs.storage=Espace de stockage
config.lfs.objects_path=Chemin d'accès des objets
config.log_config=Configuration du Journal
config.log_file_root_path=Emplacement Racine du Fichier Journal
config.log_mode=Mode
config.log_options=Options
@@ -1262,7 +1373,7 @@ notices.actions=Actions
notices.select_all=Tout Sélectionner
notices.deselect_all=Tous déselectionner
notices.inverse_selection=Inverser la sélection
notices.delete_selected=Supprimé les éléments sélectionnés
notices.delete_selected=Supprimer les éléments sélectionnés
notices.delete_all=Supprimer toutes les notifications
notices.type=Type
notices.type_1=Dépôt
@@ -1272,7 +1383,6 @@ notices.delete_success=Notifications système supprimées avec succès.
[action]
create_repo=a créé le dépôt <a href="%s">%s</a>
fork_repo=a créé sa branche du dépôt vers <a href="%s">%s</a>
rename_repo=a rebaptisé le dépôt de <code>%[1]s</code> vers <a href="%[2]s">%[3]s</a>
commit_repo=a commité dans <a href="%[1]s/src/%[2]s">%[3]s</a> sur <a href="%[1]s">%[4]s</a>
compare_commits=Comparer ces %d commits
@@ -1282,13 +1392,17 @@ close_issue=`tickets clos <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`tickets ré-ouverts <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`a commenté le problème <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`pull request créée le <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`pull request fermé <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`pull request fermée <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`pull request ré-ouverte <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`pull request fusionné le <a href="%s/pulls/%s">%s#%[2]s</a>`
create_branch=nouvelle branche créée <a href="%[1]s/src/%[2]s">%[3]s</a> sur <a href="%[1]s">%[4]s</a>
delete_branch=branche supprimée <code>%[2]s</code> sur <a href="%[1]s">%[3]s</a>
push_tag=a soumis le tag <a href="%s/src/%s">%[2]s</a> sur <a href="%[1]s">%[3]s</a>
delete_tag=étiquette supprimée <code>%[2]s</code> sur <a href="%[1]s">%[3]s</a>
fork_repo=a créé sa branche du dépôt vers <a href="%s">%s</a>
mirror_sync_push=a commité dans <a href="%[1]s/src/%[2]s">%[3]s</a> sur <a href="%[1]s">%[4]s</a>
mirror_sync_create=a synchronisé la nouvelle référence <a href="%s/src/%s">%[2]s</a> vers <a href="%[1]s">%[3]s</a> depuis le miroir
mirror_sync_delete=Référence synchronisés et supprimé <code>%[2]s</code> sur <a href="%[1]s">%[3]s</a>
[tool]
ago=il y a
@@ -1310,6 +1424,7 @@ months=%[2]s %[1]d mois
years=%[2]s %[1]d ans
raw_seconds=secondes
raw_minutes=minutes
raw_hours=heures
[dropzone]
default_message=Déposez les fichiers ici ou cliquez pour télécharger.

View File

@@ -9,7 +9,6 @@ sign_out=Cerrar sesión
sign_up=Rexistro
register=Rexistro
website=Páxina web
version=Versión
page=Páxina
template=Modelo
language=Idioma
@@ -44,22 +43,27 @@ issues=Incidencias
cancel=Cancelar
[status]
page_not_found=Page Not Found
internal_server_error=Internal Server Error
[install]
install=Instalación
title=Pasos da instalación por primeira vez
docker_helper=Se está executando Gogs usando Docker, por favor lea <a target="_blank" href="%s"> estas pautas</a> antes de cambiar nada nesta páxina!
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3, MSSQL or TiDB.
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Configuración de base de datos
db_type=Tipo de base de datos
host=Host
user=Persoa usuaria
password=Contrasinal
db_name=Nome da base de datos
db_schema=Schema
db_helper=Por favor, empregue o motor INNODB coa configuración de caracteres utf8_general_ci para MySQL.
ssl_mode=Modo SSL
path=Ruta
sqlite_helper=The file path of SQLite3 database. <br>Please use absolute path when you start as service.
err_empty_db_path=SQLite3 database path cannot be empty.
sqlite_helper=A ruta do ficheiro da base de datos SQLite3. <br> Utilice a ruta absoluta cando arrique o servicio.
err_empty_db_path=A ruta da base de datos SQLite3 non pode estar baleira.
no_admin_and_disable_registration=Non pode deshabilitar o rexistro sen crear unha conta de administrador.
err_empty_admin_password=O contrasinal de administrador non pode estar baleiro.
@@ -74,16 +78,17 @@ domain=Dominio
domain_helper=Isto afecta ás URLs para clonar por SSH.
ssh_port=Porto SSH
ssh_port_helper=Número de porto do seu servidor SSH, déixeo en branco para desactivar SSH.
use_builtin_ssh_server=Use Builtin SSH Server
use_builtin_ssh_server_popup=Start builtin SSH server for Git operations to distinguish from system SSH daemon.
use_builtin_ssh_server=Utilizar Builin en Sevidor SSH
use_builtin_ssh_server_popup=Inicia o servidor SSH integrado para que as operacións de Git sexan distintas do demonio SSH do sistema.
http_port=Porto HTTP
http_port_helper=Porto no que escoitará a aplicación.
app_url=URL da aplicación
app_url_helper=Isto afecta ás URLs para clonar por HTTP/HTTPS e a algúns correos electrónicos.
log_root_path=Ruta do rexistro
log_root_path_helper=Directorio onde almacenar os rexistros.
enable_console_mode=Enable Console Mode
enable_console_mode_popup=In addition to file mode, also print logs to console.
enable_console_mode=Habilitar Modo Consola
enable_console_mode_popup=Ademáis do modo de ficheiro, tamén imprime os rexistros para a consola.
default_branch=Default Branch
optional_title=Configuración opcional
email_title=Configuración do servizo de correo
@@ -119,9 +124,11 @@ sqlite3_not_available=A túa versión non soporta SQLite3, por favor, descarga o
invalid_db_setting=A configuración da base de datos non é correcta: %v
invalid_repo_path=A ruta da raíz do repositorio é inválida: %v
run_user_not_match=A persoa usuaria que está executando a aplicación non é a persoa usuaria actual: %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
smtp_host_missing_port=Falta o porto do Host SMTP
invalid_smtp_from=O campo From do SMTP non é valido: %v
save_config_failed=Erro ao gardar a configuración: %v
init_failed=Failed to initialize application: %v
invalid_admin_setting=A configuración da conta de administración é inválida: %v
install_success=Benvido/a! Estamos encantados de que escolleses Gogs, divírtete e cóidate.
invalid_log_root_path=A ruta para os rexistros é inválida: %v
@@ -151,6 +158,8 @@ register_hepler_msg=Xa tes unha conta? Inicia sesión!
social_register_hepler_msg=Xa tes unha conta? Enlázaa!
disable_register_prompt=Sentímolo, o rexistro está deshabilitado. Por favor, contacta co administrador do sitio.
disable_register_mail=Sentímolo. Os correos de confirmación de rexistro están deshabilitados.
auth_source=Fonte de Autenticación
local=Configuración rexional
remember_me=Recórdame
forgot_password=Esquecín o meu contrasinal
forget_password=Esqueciches o teu contrasinal?
@@ -169,13 +178,13 @@ reset_password_helper=Prema aquí para restablecer o seu contrasinal
password_too_short=A lonxitude do contrasinal non pode ser menor de 6.
non_local_account=Contas que non son locais non poden cambiar os contrasinais a través de Gogs.
login_two_factor=Two-factor Authentication
login_two_factor_passcode=Authentication Passcode
login_two_factor_enter_recovery_code=Enter a two-factor recovery code
login_two_factor_recovery=Two-factor Recovery
login_two_factor_recovery_code=Recovery Code
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
login_two_factor=Autenticación en dous pasos
login_two_factor_passcode=Código de Autenticación
login_two_factor_enter_recovery_code=Introduza o código de recuperación da verificación en dous pasos
login_two_factor_recovery=Recuperación en dous pasos
login_two_factor_recovery_code=Codigo de Recuperación
login_two_factor_enter_passcode=Introduza o código de acceso en dous pasos
login_two_factor_invalid_recovery_code=O código de recuperación foi usado ou non é válido.
[mail]
activate_account=Por favor, activa a túa conta
@@ -212,7 +221,7 @@ Content=Contido
require_error=` non pode estar baleiro.`
alpha_dash_error=` os caracteres deben ser alfanuméricos ou dash(-_).`
alpha_dash_dot_error=` debe ser un carácter alfanumérivo válido, un guión alto ou baixo (-_) ou un signo de puntuación.`
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
alpha_dash_dot_slash_error=` debe ser un carácter válido : numérico, alfabético, guión(-_) puntos ou barras.`
size_error=` debe ser de tamaño %s.`
min_size_error=` debe conter polo menos %s caracteres.`
max_size_error=` debe conter como máximo %s caracteres.`
@@ -229,6 +238,7 @@ org_name_been_taken=Xa existe unha organización con este nome.
team_name_been_taken=Xa existe un equipo con este nome.
email_been_used=Este enderezo de correo electrónico xa está en uso.
username_password_incorrect=Nome de usuario ou contrasinal incorrectos.
auth_source_mismatch=A fonte de autenticación seleccionada non está asociada co usuario.
enterred_invalid_repo_name=Por favor, asegúrate de que introduciches correctamente o nome do repositorio.
enterred_invalid_owner_name=Por favor, asegúrate de que introduciches correctamente o nome do propietario.
enterred_invalid_password=Por favor, asegúrate de que introduciches correctamente o teu contrasinal.
@@ -256,16 +266,15 @@ following=Seguindo
follow=Seguir
unfollow=Deixar de seguir
form.name_reserved=O usuario '%s' está reservado.
form.name_pattern_not_allowed=O patrón de nome de usuario '%s' non está permitido.
form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Perfil
password=Contrasinal
avatar=Avatar
ssh_keys=Claves SSH
security=Security
repos=Repositories
security=Seguridade
repos=Repositorios
orgs=Organizacións
applications=Aplicacións
delete=Eliminar conta
@@ -309,6 +318,7 @@ delete_email=Eliminar
email_deletion=Eliminar correo electrónico
email_deletion_desc=Ao eliminar este enderezo de correo electrónico eliminarase toda a información asociada a esta. Desexas continuar?
email_deletion_success=O correo electrónico foi eliminado correctamente!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Engadir novo enderezo de correo electrónico
add_email=Engadir correo electrónico
add_email_confirmation_sent=Un novo correo de confirmación foi enviado a '%s'. Por favor, comproba a túa bandexa de entrada nas próximas %d horas para completar o proceso.
@@ -334,34 +344,36 @@ no_activity=Non hai actividade recente
key_state_desc=Esta clave foi usada nos últimos 7 días
token_state_desc=Token usado nos últimos 7 días
two_factor=Two-factor Authentication
two_factor_status=Status:
two_factor_on=On
two_factor_off=Off
two_factor_enable=Enable
two_factor_disable=Disable
two_factor=Autenticación en Dous Pasos
two_factor_status=Estado:
two_factor_on=Si
two_factor_off=Non
two_factor_enable=Activar
two_factor_disable=Desactivar
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title=Enable Two-factor Authentication
two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=Or enter the secret:
two_factor_then_enter_passcode=Then enter passcode:
two_factor_verify=Verify
two_factor_then_enter_passcode=A continuación, introduza o código:
two_factor_verify=Verificar
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
two_factor_regenerate_recovery_codes=Rexenerar Códigos de Recuperación
two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_disable_title=Disable Two-factor Authentication
two_factor_disable_title=Desactivar a verificación en dous pasos
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Xestionar os tokens de acceso persoais
generate_new_token=Xerar novo token
tokens_desc=Tokens usados para acceder ao API de Gogs.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Dende agora, todos os tokens terán acceso completo á túa conta.
token_name=Nome do token
generate_token=Xerar token
@@ -370,13 +382,14 @@ delete_token=Eliminar
access_token_deletion=Borrado de Token de Acceso Persoal
access_token_deletion_desc=Se elimina este token de acceso persoal a aplicación asociada perderá o permiso de acceso. Desexa continuar?
delete_token_success=O token de acceso persoal foi eliminado con éxito! Non esqueza actualizar tamén as aplicacións asociadas.
token_name_exists=Token with same name already exists.
orgs.none=Non es membro de nengunha organización.
orgs.leave_title=Deixar unha organización
orgs.leave_desc=Deixarás de ter aceso ao tódolos repositorios e equipos despois de deixar a organización. Desexas abandonala?
repos.leave=Leave
repos.leave_title=Leave repository
repos.leave=Abandoar
repos.leave_title=Deixar repositorio
repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
repos.leave_success=You have left repository '%s' successfully!
@@ -391,7 +404,9 @@ owner=Propietario
repo_name=Nome do repositorio
repo_name_helper=Os grandes nomes de repositorios son curtos, memorables e <strong>únicos</strong>.
visibility=Visibilidade
unlisted=Unlisted
visiblity_helper=Este repositorio é <span class="ui red text">privado</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=O administrador web obrigou a todos os repositorios novos a ser <span class="ui red text"> privados</span>
visiblity_fork_helper=(Este cambio afectará a todos os forks)
clone_helper=Necesitas axuda co clone? Consulta a <a target="_blank" href="%s">Axuda</a>!
@@ -417,10 +432,11 @@ mirror_last_synced=Sincronizado por última vez
watchers=Seguidores
stargazers=Fans
forks=Forks
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=El propietario ha alcanzado el límite máximo de %d repositorios creados.=O propietario acadou o límite máximo de %d repositorios creados.
form.name_reserved=El nombre del repositorio '%s' está reservado.=O nome do repositorio '%s' está reservado.
form.name_pattern_not_allowed=El patrón del nombre del repositorio '%s' no está permitido.=O patrón do nome do repositorio '%s' non está permitido.
form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Requiere autorización=Require autorización
migrate_type=Tipo de migración
@@ -431,6 +447,7 @@ migrate.clone_address_desc=Pode ser unha URL HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=Tamén podes migrar un repositorio mediante a ruta do servidor local.
migrate.permission_denied=Non che está permitido importar repositorios locais.
migrate.invalid_local_path=Rutal local inválida, non existe ou non é un directorio.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migración fallida: %v
mirror_from=réplica de
@@ -478,6 +495,8 @@ branches.stale_branches=Stale Branches
branches.all=All Branches
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Change Default Branch
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Novo arquivo
editor.upload_file=Subir arquivo
@@ -514,6 +533,7 @@ editor.file_changed_while_editing=O contido do arquivo cambiou desde que comezac
editor.file_already_exists=Un arquivo co nome '%s' xa existe no repositorio.
editor.no_changes_to_show=Non hai cambios que mostrar.
editor.fail_to_update_file=Fallou o actualizar/crear o arquivo '%s' co erro: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Engadir subdirectorio...
editor.unable_to_upload_files=Fallou ao subir arquivos a '%s' co erro: %v
editor.upload_files_to_dir=Subir arquivos a '%s'
@@ -616,6 +636,7 @@ pulls.compare_compare=comparar con
pulls.filter_branch=Filtrar rama
pulls.no_results=Sen resultados.
pulls.nothing_to_compare=Nada que comparar. As dúas ramas coinciden.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`Xa existe un pull request entre estas dúas ramas: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Crear Pull Request
pulls.title_desc=desexa fusionar %[1]d achegas de <code>%[2]s</code> en <code>%[3]s</code>
@@ -631,6 +652,9 @@ pulls.is_checking=Estase procedendo á busca de conflitos, por favor, actualice
pulls.can_auto_merge_desc=Este Pull Request pode ser fusionado automaticamente.
pulls.cannot_auto_merge_desc=Este Pull Request non pode ser fusionado automaticamente porque hai conflitos.
pulls.cannot_auto_merge_helper=Por favor, fusiona manualmente para resolver os conflitos.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=Fusionar Pull Request
pulls.open_unmerged_pull_exists=`Vostede non pode realizar a operación de reapertura porque nestes momentos existe unha solicitude de pull request (#%d) para o mesmo repositorio coa mesma información que se encontra á espera de aprobación`
pulls.delete_branch=Eliminar branch
@@ -735,7 +759,9 @@ settings.tracker_issue_style=Estilo de etiquetaxe do tracker externo de incidenc
settings.tracker_issue_style.numeric=Numérico
settings.tracker_issue_style.alphanumeric=Alfanumérico
settings.tracker_url_format_desc=Podes usar os modelos <code>{user} {repo} {index}</code> para o nome de usuario, nome do repositorio e índice da incidencia.
settings.pulls_desc=Habilitar Pull Requests para aceptar contribucións públicas
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Zona de perigo
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=O novo propietario ten un repositorio co mesmo nome.
@@ -756,7 +782,7 @@ settings.wiki_deletion_success=Os datos da wiki do repositorio foron borrados co
settings.delete=Eliminar este repositorio
settings.delete_desc=Unha vez que eliminaches un repositorio, non hai volta atrás. Por favor, asegúrate de que é o que queres.
settings.delete_notices_1=- Esta operación <strong>NON SE PODE</strong> reverter.
settings.delete_notices_2=- Esta operación eliminará de maneira permanente todo o contido deste repositorio, incluíndo os datos de git, as incidencias, os comentarios e os permisos de acceso dos colaboradores.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- Todos os forks converteranse en independentes tras o borrado.
settings.deletion_success=O repositorio foi eliminado satisfactoriamente!
settings.update_settings_success=As opcións do repositorio actualizáronse correctamente.
@@ -772,8 +798,10 @@ settings.collaborator_deletion_desc=Este usuario non poderá colaborar neste rep
settings.remove_collaborator_success=O colaborador foi eliminado.
settings.search_user_placeholder=Buscar usuario...
settings.org_not_allowed_to_be_collaborator=As organizacións non teñen permitido ser engadidas como colaboradores.
settings.add_webhook=Engadir Webhook
settings.hooks_desc=Os Webhooks permiten a servizos externos recibir notificacións cando sucedan certos eventos en Gogs. Cando sucedan os eventos especificados, enviaremos unha petición POST a cada unha das URLs indicadas. Para obter máis información, consulta a nosa <a target="_blank" href="%s">Guía de Webhooks</a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Choose a type...
settings.add_webhook=Engadir Webhook
settings.webhook_deletion=Eliminar Webhook
settings.webhook_deletion_desc=Ao borrar este webhook eliminarase a súa información e todo o seu historial. Desexa continuar?
settings.webhook_deletion_success=Webhook eliminado con éxito!
@@ -787,6 +815,8 @@ settings.webhook.response=Resposta
settings.webhook.headers=Encabezado
settings.webhook.payload=Payload
settings.webhook.body=Corpo da mensaxe
settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Os Git Hooks son unha funcionalidade do propio Git, podes editar os ficheiros dos hooks soportados na seguinte lista para aplicar operacións personalizadas.
settings.githook_edit_desc=Se o hook non está activo, mostrarase contido de exemplo. Deixar o contido baleiro deshabilitará este hook.
settings.githook_name=Nome do Hook
@@ -814,10 +844,10 @@ settings.event_push=Push
settings.event_push_desc=Git push a un repositorio
settings.event_issues=Issues
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Release
settings.event_release_desc=Release published in a repository.
settings.active=Activo
@@ -830,6 +860,7 @@ settings.recent_deliveries=Envíos recentes
settings.hook_type=Tipo de Hook
settings.add_slack_hook_desc=Engade integración con <a href="%s">Slack</a> ao teu repositorio.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=Token
settings.slack_domain=Dominio
settings.slack_channel=Canle
@@ -846,6 +877,8 @@ settings.add_key_success=A nova clave de despregamento '%s' foi creada con éxit
settings.deploy_key_deletion=Eliminar clave de despregamento
settings.deploy_key_deletion_desc=Ao eliminar esta clave de despregamento perderase o permiso de acceso a este repositorio coa dita clave. Desexas continuar?
settings.deploy_key_deletion_success=Clave de despregamento eliminada con éxito!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Explorar o código
diff.parent=pai
@@ -910,9 +943,8 @@ team_name_helper=Utiliza este nome para mencionar este equipo nas conversas.
team_desc_helper=En que consiste este equipo?
team_permission_desc=Que nivel de permisos debería ter este equipo?
form.name_reserved=O nome da organización '%s' está reservado.
form.name_pattern_not_allowed=O patrón de nome da organización '%s' non está permitido.
form.team_name_reserved=Team name '%s' is reserved.
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Configuración
settings.options=Opcións
@@ -984,12 +1016,19 @@ first_page=Primeira
last_page=Última
total=Total: %d
dashboard.build_info=Build Information
dashboard.app_ver=Application version
dashboard.git_version=Git version
dashboard.go_version=Go version
dashboard.build_time=Build time
dashboard.build_commit=Build commit
dashboard.statistic=Estatísticas
dashboard.operations=Operacións
dashboard.system_status=Estado do Monitor do Sistema
dashboard.statistic_info=A base de datos de Gogs contén <b>%d</b> usuarios, <b>%d</b> organizacións, <b>%d</b> claves públicas, <b>%d</b> repositorios, <b>%d</b> vixiados, <b>%d</b> destacados, <b>%d</b> accións, <b>%d</b> accesos, <b>%d</b> incidencias, <b>%d</b> comentarios, <b>%d</b> contas de redes sociais, <b>%d</b> seguidores, <b>%d</b> mirrors, <b>%d</b> releases, <b>%d</b> fontes de login, <b>%d</b> webhooks, <b>%d</b> milestones, <b>%d</b> etiquetas, <b>%d</b> hooks, <b>%d</b> equipos, <b>%d</b> tarefas actualizadas, <b>%d</b> adxuntos.
dashboard.operation_name=Nome da operación
dashboard.operation_switch=Interruptor
dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Executar
dashboard.clean_unbind_oauth=Limpar solicitudes de OAuth sen confirmar
dashboard.clean_unbind_oauth_success=As solicitudes de OAuth sen confirmar elimináronse correctamente.
@@ -1081,11 +1120,12 @@ repos.stars=Estrelas
repos.issues=Incidencias
repos.size=Size
auths.auth_manage_panel=Panel de administración de autenticación
auths.auth_sources=Authentication Sources
auths.new=Engadir nova orixe
auths.name=Nome
auths.type=Tipo
auths.enabled=Activo
auths.default=Default
auths.updated=Actualizado
auths.auth_type=Tipo de autenticación
auths.auth_name=Nome de autenticación
@@ -1094,6 +1134,7 @@ auths.domain=Dominio
auths.host=Host
auths.port=Porto
auths.bind_dn=Bind DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Contrasinal Bind
auths.bind_password_helper=Advertencia: o contrasinal almacénase como texto plano. Non empregue unha conta con privilexios elevados.
auths.user_base=Base de busca de usuarios
@@ -1121,9 +1162,9 @@ auths.enable_tls=Habilitar cifrado TLS
auths.skip_tls_verify=Omitir a verificación TLS
auths.pam_service_name=Nome do servizo PAM
auths.enable_auto_register=Habilitar auto-rexistro
auths.tips=Consellos
auths.edit=Editar a configuración de autenticación
auths.activated=Esta autenticación foi activada
auths.default_auth=This authentication is default login source
auths.new_success=A autenticación '%s' foi engadida con éxito!
auths.update_success=A configuración de autenticación foi actualizada con éxito.
auths.update=Actualizar a configuración de autenticación
@@ -1133,115 +1174,186 @@ auths.delete_auth_desc=Esta autenticación será eliminada. Desexas continuar?
auths.still_in_used=Este método de autentificación aínda é utilizado por algúns usuarios, por favor elimine ou converta estes usuarios a outro tipo de autentificación.
auths.deletion_success=A autenticación foi eliminada con éxito!
auths.login_source_exist=Login source '%s' xa existe.
auths.github_api_endpoint=API Endpoint
config.not_set=(not set)
config.server_config=Configuración do servidor
config.app_name=Nome da aplicación
config.app_ver=Versión da aplicación
config.app_url=URL da aplicación
config.domain=Dominio
config.offline_mode=Modo sen conexión
config.disable_router_log=Deshabilitar log do router
config.brand_name=Brand name
config.run_user=Executada como usuario
config.run_mode=Modo de execución
config.git_version=Versión de Git
config.static_file_root_path=Ruta dos ficheiros estáticos
config.log_file_root_path=Ruta dos ficheiros de log
config.reverse_auth_user=Autenticación inversa de usuario
config.server.external_url=External URL
config.server.domain=Domain
config.server.protocol=Protocol
config.server.http_addr=HTTP address
config.server.http_port=HTTP port
config.server.cert_file=Certificate file
config.server.key_file=Key file
config.server.tls_min_version=Minimum TLS version
config.server.unix_socket_permission=Unix socket permission
config.server.local_root_url=Local root URL
config.server.offline_mode=Offline mode
config.server.disable_router_log=Disable router log
config.server.enable_gzip=Enable Gzip
config.server.app_data_path=Application data path
config.server.load_assets_from_disk=Load assets from disk
config.server.landing_url=Landing URL
config.ssh_config=Configuración SSH
config.ssh_enabled=Habilitado
config.ssh_start_builtin_server=Iniciar servidor integrado
config.ssh_domain=Dominio
config.ssh_port=Porto
config.ssh_listen_port=Porto de escoita
config.ssh_root_path=Ruta raíz
config.ssh_key_test_path=Ruta da clave de proba
config.ssh_keygen_path=Ruta do xerador de claves ('ssh-keygen')
config.ssh_minimum_key_size_check=Tamaño mínimo da clave de verificación
config.ssh_minimum_key_sizes=Tamaños de clave mínimos
config.ssh.enabled=Enabled
config.ssh.domain=Exposed domain
config.ssh.port=Exposed port
config.ssh.root_path=Root path
config.ssh.keygen_path=Keygen path
config.ssh.key_test_path=Key test path
config.ssh.minimum_key_size_check=Minimum key size check
config.ssh.minimum_key_sizes=Minimum key sizes
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=Start builtin server
config.ssh.listen_host=Listen host
config.ssh.listen_port=Listen port
config.ssh.server_ciphers=Server ciphers
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Repository Configuration
config.repo_root_path=Ruta do repositorio
config.script_type=Tipo de Script
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Disable HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.repo_config=Repository configuration
config.repo.root_path=Root path
config.repo.script_type=Script type
config.repo.ansi_chatset=ANSI charset
config.repo.force_private=Force private
config.repo.max_creation_limit=Max creation limit
config.repo.preferred_licenses=Preferred licenses
config.repo.disable_http_git=Disable HTTP Git
config.repo.enable_local_path_migration=Enable local path migration
config.repo.enable_raw_file_render_mode=Enable raw file render mode
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Upload enabled
config.repo.upload.temp_path=Upload temporary path
config.repo.upload.allowed_types=Upload allowed types
config.repo.upload.file_max_size=Upload file size limit
config.repo.upload.max_files=Upload files limit
config.db_config=Configuración da base de datos
config.db_type=Tipo
config.db_host=Host
config.db_name=Nome
config.db_user=Usuario
config.db_ssl_mode=Modo SSL
config.db_ssl_mode_helper=(só para "postgres")
config.db_path=Ruta
config.db_path_helper=(para "sqlite3" e "tidb")
config.db.type=Type
config.db.host=Host
config.db.name=Name
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=User
config.db.ssl_mode=SSL mode
config.db.ssl_mode_helper=(for "postgres" only)
config.db.path=Path
config.db.path_helper=(for "sqlite3"only)
config.db.max_open_conns=Maximum open connections
config.db.max_idle_conns=Maximum idle connections
config.service_config=Configuración do servizo
config.register_email_confirm=Solicitar confirmación por correo electrónico
config.disable_register=Deshabilitar o rexistro
config.show_registration_button=Mostrar botón de rexistro
config.require_sign_in_view=Solicitar a vista de inicio de sesión
config.mail_notify=Notificación por correo electrónico
config.disable_key_size_check=Deshabilitar a comprobación de tamaño mínimo de clave
config.enable_captcha=Activar captcha
config.active_code_lives=Habilitar vida do código
config.reset_password_code_lives=Restablecer contrasinal de vida do código
config.security_config=Security configuration
config.security.login_remember_days=Login remember days
config.security.cookie_remember_name=Remember cookie
config.security.cookie_username=Username cookie
config.security.cookie_secure=Enable secure cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Enable login status cookie
config.security.login_status_cookie_name=Login status cookie
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Configuración de Webhooks
config.queue_length=Tamaño de cola de envío
config.deliver_timeout=Timeout de entrega
config.skip_tls_verify=Omitir a verificación TLS
config.email_config=Email configuration
config.email.enabled=Enabled
config.email.subject_prefix=Subject prefix
config.email.host=Host
config.email.from=From
config.email.user=User
config.email.disable_helo=Disable HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Skip certificate verify
config.email.use_certificate=Use custom certificate
config.email.cert_file=Certificate file
config.email.key_file=Key file
config.email.use_plain_text=Use plain text
config.email.add_plain_text_alt=Add plain text alternative
config.email.send_test_mail=Send test email
config.email.test_mail_failed=Failed to send test email to '%s': %v
config.email.test_mail_sent=Test email has been sent to '%s'.
config.mailer_config=Configuración do servidor de correo
config.mailer_enabled=Activado
config.mailer_disable_helo=Desactivar HELO
config.mailer_name=Nome
config.mailer_host=Host
config.mailer_user=Usuario
config.send_test_mail=Enviar correo electrónico de proba
config.test_mail_failed=Fallo ao enviar o correo electrónico de proba a '%s': %v
config.test_mail_sent=O correo electrónico de proba foi enviado a '%s'.
config.auth_config=Authentication configuration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=Require email confirmation
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Disable registration
config.auth.enable_registration_captcha=Enable registration captcha
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=Configuración OAuth
config.oauth_enabled=Activado
config.cache_config=Configuración da caché
config.cache_adapter=Adaptador da caché
config.cache_interval=Intervalo da caché
config.cache_conn=Conexión da caché
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=Configuración da sesión
config.session_provider=Provedor da sesión
config.provider_config=Configuración do provedor
config.cookie_name=Nome da cookie
config.enable_set_cookie=Activar establecemento de cookie
config.gc_interval_time=Intervalo de tempo do GC
config.session_life_time=Tempo de vida da sesión
config.https_only=Só HTTPS
config.cookie_life_time=Tempo de vida da cookie
config.session.provider=Provider
config.session.provider_config=Provider config
config.session.cookie_name=Cookie
config.session.https_only=HTTPS only
config.session.gc_interval=GC interval
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Configuración da caché
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=HTTP configuration
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Enabled
config.attachment.path=Path
config.attachment.allowed_types=Allowed types
config.attachment.max_size=Size limit
config.attachment.max_files=Files limit
config.release_config=Release configuration
config.release.attachment.enabled=Attachment enabled
config.release.attachment.allowed_types=Attachment allowed types
config.release.attachment.max_size=Attachment size limit
config.release.attachment.max_files=Attachment files limit
config.picture_config=Configuración de imaxe
config.picture_service=Servizo de imaxe
config.disable_gravatar=Desactivar gravatar
config.enable_federated_avatar=Habilitar avatares federados
config.picture.avatar_upload_path=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatar source
config.picture.disable_gravatar=Disable Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Mirror configuration
config.mirror.default_interval=Default interval
config.webhook_config=Configuración de Webhooks
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Configuración de git
config.git_disable_diff_highlight=Desactivar resaltado de sintaxe do Diff
config.git_max_diff_lines=Liñas de Diff máximas (por un só arquivo)
config.git_max_diff_line_characters=Caracteres de Diff máximos (para unha soa liña)
config.git_max_diff_files=Máximo de arquivos de Diff (que se mostrarán)
config.git_gc_args=Argumentos de GC
config.git_migrate_timeout=Tempo de espera de migración
config.git_mirror_timeout=Tempo de espera de actualización de réplicas
config.git_clone_timeout=Tempo de espera de operación de clóns
config.git_pull_timeout=Tempo de espera de operación de pull
config.git_gc_timeout=Tempo de espera de operación de GC
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC arguments
config.git.migrate_timeout=Migration timeout
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=Clone timeout
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=LFS configuration
config.lfs.storage=Storage
config.lfs.objects_path=Objects path
config.log_config=Configuración do log
config.log_file_root_path=Ruta dos ficheiros de log
config.log_mode=Mode
config.log_options=Options
@@ -1272,7 +1384,6 @@ notices.delete_success=As notificacións do sistema foron eliminadas satisfactor
[action]
create_repo=creou o repositorio <a href="%s">%s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
rename_repo=repositorio renomeado de <code>%[1]s</code> a <a href="%[2]s">%[3]s</a>
commit_repo=fixo push a <a href="%[1]s/src/%[2]s">%[3]s</a> en <a href="%[1]s">%[4]s</a>
compare_commits=Ver comparación destas %d achegas
@@ -1289,6 +1400,10 @@ create_branch=created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href=
delete_branch=deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=fixo push do tag <a href="%s/src/%s">%[2]s</a> a <a href="%[1]s">%[3]s</a>
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=hai
@@ -1310,6 +1425,7 @@ months=%[2]s %[1]d meses
years=%s %d anos
raw_seconds=segundos
raw_minutes=minutos
raw_hours=hours
[dropzone]
default_message=Sólteos aquí ou pulse para cargar arquivos.

View File

@@ -1,7 +1,7 @@
app_desc=Fájdalommentes, saját gépre telepíthető Git szolgáltatás
home=Kezdőlap
dashboard=Vezérlőpult
dashboard=Áttekintés
explore=Felfedezés
help=Súgó
sign_in=Bejelentkezés
@@ -9,7 +9,6 @@ sign_out=Kijelentkezés
sign_up=Regisztráció
register=Regisztráció
website=Weboldal
version=Verzió
page=Oldal
template=Sablon
language=Nyelv
@@ -27,7 +26,7 @@ repository=Tároló
organization=Szervezet
mirror=Tükör
new_repo=Új tároló
new_migrate=Új költözés
new_migrate=Új migráció
new_mirror=Új tükör
new_fork=Új tároló másolása
new_org=Új szervezet
@@ -35,8 +34,8 @@ manage_org=Szervezetek kezelése
admin_panel=Rendszergazdai felület
account_settings=Fiók beállításai
settings=Beállítások
your_profile=Profilod
your_settings=Beállításaid
your_profile=Profilom
your_settings=Beállításaim
activities=Tevékenységek
pull_requests=Pull request-ek
@@ -44,36 +43,41 @@ issues=Problémák
cancel=Mégse
[status]
page_not_found=Az oldal nem található
internal_server_error=Belső kiszolgálóhiba
[install]
install=Telepítés
title=Telepítés első indításkor
docker_helper=Ha a Docker alatt futtatod a Gogs-ot, olvasd el az <a target="_blank" href="%s">irányelveket</a> figyelmesen, mielőtt bármit megváltoztatsz ezen az oldalon!
requite_db_desc=A Gogs-hoz szükséges a MySQL, PostgreSQL, SQLite3, MSSQL vagy a TiDB valamelyike.
docker_helper=Ha Docker alatt fut a Gogs, akkor kérjük, figyelmesen olvassa el az <a target="_blank" href="%s">irányelveket</a>, mielőtt bármit megváltoztat ezen az oldalon!
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Adatbázis beállításai
db_type=Adatbázis-kezelő
host=Kiszolgáló
user=Felhasználónév
password=Jelszó
db_name=Adatbázis neve
db_helper=MySQL szerveren használj INNODB motort utf8_general_ci karakterkészlettel.
db_schema=Schema
db_helper=MySQL szerveren kérjük használjon INNODB motort utf8_general_ci karakterkészlettel.
ssl_mode=SSL mód
path=Elérési út
sqlite_helper=SQLite3 vagy a TiDB adatbázis fájljának elérési útvonala. <br>Kérjük használja az abszolút elérési utat, a szolgáltatás indításakor.
err_empty_db_path=SQLite3 adatbázis elérési út nem lehet üres.
no_admin_and_disable_registration=Nem tilthatod le a regisztrációt, amíg nem hozol létre egy rendszergazdai fiókot.
no_admin_and_disable_registration=Nem tilthatja le a regisztrációt, amíg nem hoz létre egy rendszergazdai fiókot.
err_empty_admin_password=Rendszergazdai jelszó nem lehet üres.
general_title=Alkalmazás általános beállításai
app_name=Alkalmazás neve
app_name_helper=Adj meg valami izgalmas nevet!
app_name_helper=Adjon meg valami izgalmas nevet!
repo_path=Tárolók alapkönyvtára
repo_path_helper=Ebben a könyvtárban lesznek a Git tárolók.
run_user=Futtató felhasználó
run_user_helper=Ezen felhasználónak jogosultnak kell lennie a tárolók elérésére és a Gogs futtatására.
domain=Tartomány
domain_helper=Ez az alapja az SSH másolás URL címének.
domain_helper=Ez befolyásolja az SSH klón URL-eket.
ssh_port=SSH port
ssh_port_helper=Az SSH kiszolgáló portszáma, hagyd üresen az SSH letiltásához.
ssh_port_helper=Ezt a portot fogja használni az SSH szerver, hagyja üresen az SSH letiltásához.
use_builtin_ssh_server=Beépített SSH szerver használata
use_builtin_ssh_server_popup=Indítsa el a beépített SSH szervert a Git műveletekhez elkülönítve a rendszer SSH démontól.
http_port=HTTP port
@@ -84,6 +88,7 @@ log_root_path=Naplófájl elérési útja
log_root_path_helper=Naplófájlok könyvtára.
enable_console_mode=Konzol-üzemmód engedélyezése
enable_console_mode_popup=Naplófájl írása mellett a naplóbejegyzések nyomtatása a konzolra.
default_branch=Default Branch
optional_title=További beállítások
email_title=E-mail szolgáltatás beállításai
@@ -101,13 +106,13 @@ disable_gravatar=Gravatar kikapcsolása
disable_gravatar_popup=Gravatar és egyedi források kikapcsolása, minden avatárt a felhasználók töltenek fel.
federated_avatar_lookup=Engedélyezi a független avatarokat
federated_avatar_lookup_popup=Eggyesített profilkép keresés a nyílt forráskódú libravatar szolgáltatás segítségével.
disable_registration=Ön-regisztráció kikapcsolása
disable_registration=Önregisztráció kikapcsolása
disable_registration_popup=Ön-regisztráció kikapcsolása, csak a rendszergazda hozhat létre fiókot.
enable_captcha=Ellenőrző kód engedélyezése
enable_captcha_popup=Ellenőrző kódot kér a felhasználói regisztrációnál.
require_sign_in_view=Bejelentkezés megkövetelése az oldalak megtekintéséhez
require_sign_in_view_popup=Csak bejelentkezett felhasználók nézhetik meg az oldalakat; a látogatók csak a bejelentkező oldalt láthatják.
admin_setting_desc=Nem szükséges beállítanod rendszergazdai fiókot, az első felhasználó (ID=1) automatikusan rendszergazdai jogokat kap.
admin_setting_desc=Nem szükséges most beállítania rendszergazdai fiókot, mert az első felhasználó (ID=1) automatikusan rendszergazdai jogokat kap.
admin_title=Rendszergazda fiók beállításai
admin_name=Felhasználónév
admin_password=Jelszó
@@ -122,6 +127,7 @@ run_user_not_match=Futtató felhasználó más, mint az aktuális felhasználó:
smtp_host_missing_port=Az SMTP kiszolgáló címéből hiányzik a portszám.
invalid_smtp_from=Érvénytelen SMTP Feladó mező: %v
save_config_failed=Hiba a beállítások tárolásakor: %v
init_failed=Nem sikerült inicializálni az alkalmazást: %v
invalid_admin_setting=Hibás a rendszergazdai fiók beállítása: %v
install_success=Üdv! Örülünk, hogy a Gogs-ot választottad, érezd jól magad és viseld gondját.
invalid_log_root_path=Naplózás gyökérmappa érvénytelen: %v
@@ -147,14 +153,16 @@ search=Keresés
[auth]
create_new_account=Új fiók létrehozása
register_hepler_msg=Van már felhasználói fiókod? Jelentkezz be!
register_hepler_msg=Van már felhasználói fiókja? Jelentkezz be!
social_register_hepler_msg=Van már fiókod? Csatold most!
disable_register_prompt=Elnézést, a regisztrációt kikapcsolták. Kérlek szólj az oldal adminisztrátorának.
disable_register_mail=Elnézést, az email regisztráció megerősítését kikapcsolták.
auth_source=Hitelesítési forrás
local=Helyi
remember_me=Emlékezz rám
forgot_password=Elfelejtett jelszó
forget_password=Elfelejtetted a jelszavad?
sign_up_now=Szeretnél bejelentkezni? Regisztrálj most.
forget_password=Elfelejtette a jelszavát?
sign_up_now=Szeretne bejelentkezni? Regisztráljon most.
confirmation_mail_sent_prompt=Új megerősítő emailt küldtünk <b>%s</b> címre, kérlek keresd a postafiókodban az elkövetkező %d órában, hogy befejezhesd a regisztrációs folyamatot.
active_your_account=Aktiváld a fiókod
prohibit_login=A bejelentkezés tiltva
@@ -165,7 +173,7 @@ resend_mail=Kattints ide hogy újraküldd az aktiváló emailt
send_reset_mail=Kattints ide hogy újraküldd a jelszó visszaállító emailt
reset_password=Jelszó visszaállítása
invalid_code=Elnézést, a megerősítő kód lejárt vagy hibás.
reset_password_helper=Kattints ide hogy visszaállítsd a jelszavad
reset_password_helper=A jelszó visszaállításához kattintson ide
password_too_short=A jelszó nem lehet 6-nál rövidebb.
non_local_account=Nem helyi felhasználó nem cserélhet jelszót a Gogsban.
@@ -181,7 +189,7 @@ login_two_factor_invalid_recovery_code=Helyreállító kód már felhasználásr
activate_account=Kérlek aktiváld a fiókod
activate_email=Ellenőrizd az email címed
reset_password=Állítsd vissza a jelszavad
register_success=Sikeres regisztráció, üdvözlünk
register_success=Sikeres regisztráció, üdvözöljük
register_notify=Üdvözlünk a fedélzeten
[modal]
@@ -229,8 +237,9 @@ org_name_been_taken=A szervezet neve már foglalt.
team_name_been_taken=Az a csapatnév már foglalt.
email_been_used=Ezt az email címet már felhasználták.
username_password_incorrect=Felhasználó név vagy jelszó hibás.
enterred_invalid_repo_name=Kérlek ellenőrizd, hogy a tároló neve helyes.
enterred_invalid_owner_name=Kérlek ellenőrizd, hogy a tulajdonos neve helyes.
auth_source_mismatch=A kijelölt hitelesítési forráshoz nincs társítva a felhasználó.
enterred_invalid_repo_name=Kérjük, ellenőrizze, hogy a tároló neve helyes.
enterred_invalid_owner_name=Kérjük, ellenőrizze, hogy a tulajdonos neve helyes.
enterred_invalid_password=Kérlek ellenőrizd, hogy a beírt jelszó helyes.
user_not_exist=A megadott felhasználó nem létezik.
last_org_owner=Az utolsó felhasználót nem lehet eltávolítani a csapatból, mert egy tulajdonos kell legyen minden szervezetben.
@@ -241,7 +250,7 @@ auth_failed=Hitelesítési hiba: %v
still_own_repo=A felhasználód még legalább egy tároló tulajdonosa, először törölnöd kell őket vagy átadni másnak a tulajdonjogaikat.
still_has_org=A fiókod még mindig tagja legalább egy szervezetnek. Először ki kell lépned vagy törölnöd kell a tagságodat.
org_still_own_repo=Ez a szervezet még repository-k tulajdonosa. Először töröld vagy ruházd át őket.
org_still_own_repo=Ez a szervezet továbbra is tulajdonosa tárolóknak, ezért előbb törölje vagy adja át másnak a tárolókat.
target_branch_not_exist=Cél branch nem létezik.
@@ -256,8 +265,7 @@ following=Követve
follow=Követés
unfollow=Követés törlése
form.name_reserved=Felhasználónév '%s' foglalt.
form.name_pattern_not_allowed=A felhasználónév ('%s') nem engedélyezett.
form.name_not_allowed=A %q felhasználónév, vagy minta nem engedélyezett.
[settings]
profile=Profil
@@ -302,13 +310,14 @@ password_change_disabled=Csak helyi felhasználók változtathatják meg jelszav
emails=E-mail címek
manage_emails=E-mail címek kezelése
email_desc=Elsődleges e-mail címedet használjuk értesítésekre és más műveletekre.
email_desc=Elsődleges e-mail címét használjuk értesítésekre és más műveletekre.
primary=Elsődleges
primary_email=Beállítás elsődlegesként
delete_email=Törlés
email_deletion=E-mail cím törlése
email_deletion_desc=Az e-mail cím törlése kapcsolódó adatokat is eltávolít a fiókodból. Biztosan folytatod?
email_deletion_desc=Az e-mail cím törlése kapcsolódó adatokat is eltávolít a fiókból. Biztosan folytatja?
email_deletion_success=Az e-mail címet töröltük!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Új email cím felvétele
add_email=Email felvétele
add_email_confirmation_sent=Egy új megerősítő e-mailt küldtünk a(z) '%s' címre. Kérlek ellenőrizd a beérkező üzeneteidet %d órán belül, hogy befejezd a megerősítési folyamatot.
@@ -348,6 +357,7 @@ two_factor_or_enter_secret=Vagy adja meg a titkos kódot:
two_factor_then_enter_passcode=Ezután írja be ezt a jelkódot:
two_factor_verify=Ellenőrzés
two_factor_invalid_passcode=Érvénytelen a megadott jelkód, próbálja meg újra!
two_factor_reused_passcode=A megadott PIN-kód már használatban van. Kérem válasszon másikat!
two_factor_enable_error=Kétlépcsős hitelesítés engedélyezése sikertelen: %v
two_factor_enable_success=Kétlépcsős hitelesítés sikeresen engedélyezve a fiókjához!
two_factor_recovery_codes_title=Kettőlépcsős hitelesítés helyreállítási kódok
@@ -362,6 +372,7 @@ two_factor_disable_success=Kétlépcsős hitelesítés sikeresen letiltva a fió
manage_access_token=Személyes hozzáférési jegyek kezelése
generate_new_token=Új jegy generálása
tokens_desc=A generált jegyekkel hozzáférhetsz a Gogs API-hoz.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Minden jegy teljes hozzáférést ad a fiókodhoz.
token_name=Jegy neve
generate_token=Jegy generálása
@@ -370,6 +381,7 @@ delete_token=Törlés
access_token_deletion=Személyes hozzáférési jegy törlése
access_token_deletion_desc=Az SSH kulcs törlése minden kapcsolódó hozzáférést töröl a fiókodból. Biztosan folytatod?
delete_token_success=A személyes hozzáférési tokened eltávolítása megtörtént! Ne felejtsd el frissíteni az alkalmazásod is.
token_name_exists=Már létezik ilyen nevű szerepkör.
orgs.none=Nem vagy tagja egy szervezeti elemnek sem.
orgs.leave_title=Szervezet elhagyása
@@ -391,7 +403,9 @@ owner=Tulajdonos
repo_name=Tároló neve
repo_name_helper=A jó tárolónév általában rövid, megjegyezhető és egyedi kulcsszavakból tevődik össze.
visibility=Láthatóság
unlisted=Unlisted
visiblity_helper=Ez egy <span class="ui red text">privát</span> tároló
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=Az oldal adminisztrátora kötelezővé tette, hogy minden új repository <span class="ui red text">Privát</span> legyen
visiblity_fork_helper=(Az érték megváltoztatása kihat minden fork-ra)
clone_helper=Segítség kell a klónozáshoz? Látogasd meg a <a target="_blank" href="%s">Súgó</a>t!
@@ -401,11 +415,11 @@ fork_visiblity_helper=Nem módosíthatod egy fork-olt repository láthatóságá
repo_desc=Leírás
repo_lang=Nyelv
repo_gitignore_helper=Válasszon .gitignore sablont
license=Licensz
license_helper=Licenszfájl kiválasztása
license=Licenc
license_helper=Licencfájl kiválasztása
readme=Olvassel
readme_helper=Válassz egy readme sablont
auto_init=Repository megkezdése a kijelölt fájlokkal és sablonokkal
auto_init=Tároló inicializálása a kiválasztott fájlokkal és sablonokkal
create_repo=Tároló létrehozása
default_branch=Alapértelmezett branch
mirror_prune=Prune
@@ -417,27 +431,29 @@ mirror_last_synced=Utoljára szinkr.
watchers=Figyelők
stargazers=Csillagvizsgálók
forks=Másolások
repo_description_helper=Tároló leírása. Maximum 512 karakter hosszúságú.
repo_description_length=Rendelkezésre álló karakterek
form.reach_limit_of_creation=A tulajdonos túllépte a maximum létrehozható repository-k számát (%d).
form.name_reserved=Ez a tároló név ('%s') le van foglalva.
form.name_pattern_not_allowed=Ez a tároló név ('%s') nem megengedett.
form.reach_limit_of_creation=A tulajdonos túllépte a maximum létrehozható tárolók számát (%d).
form.name_not_allowed=A %q repository név, vagy minta nem engedélyezett.
need_auth=Engedély szükség
migrate_type=Az áttelepítés-típust
need_auth=Hitelesítés szükséges
migrate_type=Migráció típusa
migrate_type_helper=Ez a repository <span class="text blue">tükör</span>ként fog működni
migrate_repo=Repository Költöztetése
migrate_repo=Tároló migrálása
migrate.clone_address=Klón cím
migrate.clone_address_desc=Ez lehet egy HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local=Migrálhat tárolót a helyi fájlrendszerből is az útvonal megadásával.
migrate.permission_denied=Nem engedélyezett számodra a helyi repository-k importálása.
migrate.permission_denied=Az Ön számára nem engedélyezett a helyi tároló importálása.
migrate.invalid_local_path=Érvénytelen helyi elérési út; nem létezik vagy nem mappára mutat.
migrate.failed=Költöztetés sikertelen: %s
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migráció sikertelen: %v
mirror_from=tükrözi:
forked_from=másolva
copy_link=Másolás
copy_link_success=Másolva!
copy_link_error=Nyomd meg a ⌘-C vagy Ctrl-C gombokat a másoláshoz
copy_link_error=Nyomja meg a ⌘-C vagy Ctrl-C gombokat a másoláshoz
copied=Másolás rendben
unwatch=Figyelés törlése
watch=Figyelés
@@ -459,7 +475,7 @@ filter_branch_and_tag=Branch vagy tag szűrése
branches=Branch-ok
tags=Tag-ek
issues=Problémák
pulls=Pull request-ek
pulls=Beolvasztási kérések
labels=Címkék
milestones=Mérföldkövek
commits=Commit-ok
@@ -478,6 +494,8 @@ branches.stale_branches=Elavult ágak
branches.all=Minden ág
branches.updated_by=Frissítve ekkor: %[1]s %[2]s által
branches.change_default_branch=Alapértelmezett ág megváltoztatása
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Új fájl
editor.upload_file=Fájl feltöltése
@@ -501,7 +519,7 @@ editor.update=Frissítés "%s"
editor.delete=Törölje a "%s"
editor.commit_message_desc=Opcionális hosszabb leírás hozzáadása...
editor.commit_directly_to_this_branch=Commit egyenesen a(z) <strong class="branch-name">%s</strong> ágba.
editor.create_new_branch=<strong>Új ág</strong> létrehozása ennek a commit-nak és egyesítési kérés indítása.
editor.create_new_branch=<strong>Új ág</strong> létrehozása ennek a véglegesítésére és beolvasztási kérés indítása.
editor.new_branch_name_desc=Új ág neve...
editor.cancel=Mégse
editor.filename_cannot_be_empty=A fájlnév nem lehet üres.
@@ -514,6 +532,7 @@ editor.file_changed_while_editing=A fájl tartalma megváltozott mióta elkezdte
editor.file_already_exists=A(z) '%s' nevű fájl már létezik a tárolóban.
editor.no_changes_to_show=Nincsen megjeleníthető változás.
editor.fail_to_update_file=Nem sikerült frissíteni/létrehozni a következő fájlt: '%s' A hiba oka: %v
editor.fail_to_delete_file=Nem sikerült törölni a következő fájlt: '%s' A hiba oka: %v
editor.add_subdir=Alkönyvtár hozzáadása...
editor.unable_to_upload_files=Nem sikerült feltölteni a fájlokat a "%s" hiba: %v
editor.upload_files_to_dir=Fájlok feltöltése '%s'
@@ -608,7 +627,7 @@ issues.num_participants=%d Résztvevő
issues.attachment.open_tab=`Megnyitás "%s" új fülön`
issues.attachment.download=`Letöltéshez kattints "%s"`
pulls.new=Új Pull Kérés
pulls.new=Új beolvasztási kérés
pulls.compare_changes=Összehasonlítás
pulls.compare_changes_desc=Hasonlíts össze két branch-ot és készíts pull kérést a változtatásokkal.
pulls.compare_base=base
@@ -616,6 +635,7 @@ pulls.compare_compare=összehasonlítás
pulls.filter_branch=Branch szűrése
pulls.no_results=Nincs találat.
pulls.nothing_to_compare=Nincs mit összehasonlítani, mert a base és a head branch egyezik.
pulls.nothing_merge_base=Nincs mit összehasonlítani, mert két ág teljes mértékben különböző előzményekkel rendelkezik.
pulls.has_pull_request=`Már létezik egy pull kérés a két cél között: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Pull Kérés Létrehozása
pulls.title_desc=szeretne %[1]d commit-ot egyesíteni innen: <code>%[2]s</code> ide: <code>%[3]s</code>
@@ -623,15 +643,18 @@ pulls.merged_title_desc=%[1]d commit egyesítve innen: <code>%[2]s</code> ide: <
pulls.tab_conversation=Beszélgetés
pulls.tab_commits=Commit-ok
pulls.tab_files=Módosított fájlok
pulls.reopen_to_merge=Kérlek, nyisd ki a pull kérést az egyesítéshez.
pulls.reopen_to_merge=Kérk, nyissa újra a beolvasztási kérést az egyesítés végrehajtásához.
pulls.merged=Egyesítve
pulls.has_merged=Ez a pull kérés sikeresen egyesítve lett!
pulls.has_merged=Ez a beolvasztási kérés sikeresen egyesítve lett!
pulls.data_broken=A pull kérés adatai sérültek a fork információ hiányossága miatt.
pulls.is_checking=Az ütközés ellenőrzés még folyamatban van, frissítsd az oldalt pár másodperc múlva.
pulls.can_auto_merge_desc=Ez a pull kérés automatikusán egyesíthető.
pulls.cannot_auto_merge_desc=Ez a pull kérés ütközések miatt nem egyesíthető automatikusán.
pulls.can_auto_merge_desc=Ez a beolvasztási kérés automatikusán egyesíthető.
pulls.cannot_auto_merge_desc=Ez a beolvasztási kérés ütközések miatt nem egyesíthető automatikusan.
pulls.cannot_auto_merge_helper=Kérlek, egyesítsd kézileg a konfliktusok megoldásához.
pulls.merge_pull_request=Pull Kérés Egyesítése
pulls.create_merge_commit=Eggyesítő commit létrehozása
pulls.rebase_before_merging=Rebase eggyesítés előtt
pulls.commit_description=Commit leírása
pulls.merge_pull_request=Beolvasztási kérés egyesítése
pulls.open_unmerged_pull_exists=`Nem tudja újranyitni, mert már van egy nyitott egyesítési kérés (#%d) ugyanebben a tárolóban, ugyanezekket az egyesítési információkkal, és végrehajtásra vár.`
pulls.delete_branch=Ág törlése
pulls.delete_branch_has_new_commits=Ág nem törölhető, mert tartalmaz olyan új változásokat melyek nem lettek még egyesítve.
@@ -663,7 +686,7 @@ milestones.deletion_success=A mérföldkő törlése megtörtént!
wiki=Wiki
wiki.welcome=Üdv a Wiki-ben!
wiki.welcome_desc=A Wiki az a hely, ahol közösen dokumentálhatod és teheted jobbá a projekted a többiekkel.
wiki.create_first_page=Hozd létre az első oldalt
wiki.create_first_page=Első oldal létrehozása
wiki.page=Oldal
wiki.filter_page=Oldal szűrése
wiki.new_page=Új Oldal Létrehozása
@@ -671,7 +694,7 @@ wiki.default_commit_message=Röviden foglald össze a módosításokat (nem köt
wiki.save_page=Oldal Mentése
wiki.last_commit_info=%s módosította ezt az oldalt ekkor: %s
wiki.edit_page_button=Szerkeszt
wiki.new_page_button=Új Oldal
wiki.new_page_button=Új oldal
wiki.delete_page_button=Oldal Törlése
wiki.delete_page_notice_1=Ez ki fogja törölni a(z) <code>"%s"</code> oldalt. Jól gondold meg.
wiki.page_already_exists=Már létezik ilyen nevű oldal a Wiki-n.
@@ -699,10 +722,10 @@ settings.branch_protection=Ág védeleme
settings.branch_protection_desc=Válassza a védett ág opciót ehhez az ághoz: <b>%s</b>.
settings.protect_this_branch=Ezen ág védelme
settings.protect_this_branch_desc=Letiltja az ág törlését és a force pusht.
settings.protect_require_pull_request=Eggyesítési kérést követel meg a direkt push helyett
settings.protect_require_pull_request_desc=Ennek az opciónak a bekapcsolásával letiltható a direkt push az ágra. A commitokat egy másik, nem védett ágra kell küldeni, majd egyesítési kérést kell nyitni.
settings.protect_require_pull_request=Beolvasztási kérést követel meg a direkt küldés helyett
settings.protect_require_pull_request_desc=Ennek az opciónak a bekapcsolásával letiltható a közvetlen küldés az ágra. A véglegesítéseket egy másik, nem védett ágra kell küldeni, majd beolvasztási kérést kell nyitni.
settings.protect_whitelist_committers=Fehérlista, hogy ki push-olhat az ágra
settings.protect_whitelist_committers_desc=Felhasználók vagy csoportok hozzáadása az ág közvetlen push fehérlistájára. A fehérlistával ki lehet kerülni a kötelező egyesítési kérést.
settings.protect_whitelist_committers_desc=Felhasználók vagy csoportok hozzáadása az ág közvetlen beküldési fehér listájára. A fehér listával ki lehet kerülni a kötelező beolvasztási kéréseket.
settings.protect_whitelist_users=Felhasználók, akik push-olhatnak az ágra
settings.protect_whitelist_search_users=Felhasználók keresése
settings.protect_whitelist_teams=Csoportok, melyeknek tagjai pusholhatnak az ágra
@@ -714,10 +737,10 @@ settings.basic_settings=Alapbeállítások
settings.mirror_settings=Beállítások tükrözése
settings.sync_mirror=Szinkronizálás
settings.mirror_sync_in_progress=A tükör szinkronozálása folyamatban van, egy perc múlva frissítse az oldalt.
settings.site=Hivatalos Weboldal
settings.update_settings=Beállítások Mentése
settings.site=Hivatalos weboldal
settings.update_settings=Beállítások mentése
settings.change_reponame_prompt=Ez meg fogja változtatni a repository-ra mutató linkeket.
settings.advanced_settings=Haladó Beállítások
settings.advanced_settings=Haladó beállítások
settings.wiki_desc=Engedélyezi a wiki rendszert
settings.use_internal_wiki=Beépített Wiki használata
settings.allow_public_wiki_desc=Publikus hozzáférés engedélyezése a Wikihez ha a tároló privát
@@ -735,7 +758,9 @@ settings.tracker_issue_style=Külső hibajegykezelő elnevezési stílus:
settings.tracker_issue_style.numeric=Numerikus
settings.tracker_issue_style.alphanumeric=Alfanumerikus
settings.tracker_url_format_desc=Az alábbiak helyettesítik a felhasználónevet, repository nevet és hibajegy számot: <code>{user} {repo} {index}</code>.
settings.pulls_desc=Nyilvános hozzájárulások (pull kérések) engedélyezése
settings.pulls_desc=Beolvasztási kérések engedélyezése tárolók és ágak közi hozzájárulásokhoz
settings.pulls.ignore_whitespace=Whitespacek figyelmen kívül hagyása
settings.pulls.allow_rebase_merge=Rebase engedélyezése eggyesítő commitokhoz
settings.danger_zone=Veszélyes terület
settings.cannot_fork_to_same_owner=Nem másolható a tároló az eredeti tulajdonosához.
settings.new_owner_has_same_repo=Az új tulaj már rendelkezik ilyen nevű repository-val. Kérlek, válassz másik nevet.
@@ -745,11 +770,11 @@ settings.convert_notices_1=- Ez a művelet átalakítja ezt a tükör repository
settings.convert_confirm=Átalakítás Megerősítése
settings.convert_succeed=A repository típusa sikeresen egyszerűre lett módosítva.
settings.transfer=Tulajdonjog átadása
settings.transfer_desc=Tároló átadása másik felhasználónak vagy szervezetnek, ahol rendszergazdai jogod van.
settings.transfer_desc=Tároló átadása másik felhasználónak vagy szervezetnek, ahol rendszergazdai jogosultsága van.
settings.transfer_notices_1=- Ha az új tulaj egy felhasználó, elvész a hozzáférésed.
settings.transfer_notices_2=- A hozzáférésed megmarad ha az új tulaj egy szervezet melynek tulajdonosai közt szerepelsz.
settings.transfer_form_title=Kérlek, add meg a követező információt a művelet megerősítéséhez:
settings.wiki_delete=Wiki Adatok Törlése
settings.wiki_delete=Wiki adatok törlése
settings.wiki_delete_desc=Miután kitörölted a wiki adatokat nincs visszaút. Jól gondold meg.
settings.wiki_delete_notices_1=- Ez törli és kikapcsolja a wiki-t itt: %s
settings.wiki_deletion_success=A repository-hoz tartozó wiki adatok törlése sikeres.
@@ -772,8 +797,10 @@ settings.collaborator_deletion_desc=Ennek a felhasználónak nem lesz joga közr
settings.remove_collaborator_success=Az eggyüttműködő eltávolítva.
settings.search_user_placeholder=Felhasználók keresése...
settings.org_not_allowed_to_be_collaborator=Szervezet hozzáadása együttműködőként nem engedélyezett.
settings.add_webhook=Webhook hozzáadása
settings.hooks_desc=A Webhook-ok olyanok, mint az alapvető HTTP POST esemény triggerek. Amikor valami történik a Gogsban, akkor küldünk róla értesítést a címre amit beállítasz. Többet olvashatsz erről a <a target="_blank" href="%s">Webhooks Guide-ban</a>.
settings.webhooks.add_new=Új webhook készítése:
settings.webhooks.choose_a_type=Válassz egy típust...
settings.add_webhook=Webhook hozzáadása
settings.webhook_deletion=Webhook Törlése
settings.webhook_deletion_desc=Ennek a Webhook-nak a törlése eltávolít róla minden információt, és a korábbi kézbesítéseknek a naplóját is. Biztosan folytatja?
settings.webhook_deletion_success=Webhook sikeresen törölve lett!
@@ -787,6 +814,8 @@ settings.webhook.response=Válasz
settings.webhook.headers=Fejlécek
settings.webhook.payload=Tartalom
settings.webhook.body=Törzs
settings.webhook.err_cannot_parse_payload_url=Nem sikerült feldolgozni a végpont URL címet: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=A GIT hook-okat maga a Git működteti, szerkesztheted a támogatott hook-ok fájljait a következő listában hogy egyéni műveleteket is végezzenek.
settings.githook_edit_desc=Ha a hook nincs aktiválva, akkor egy minta sablon lesz mutatva. Ha a tartalmát üresen hagyja, akkor ez a hook ki lesz kapcsolva.
settings.githook_name=Hook megnevezés
@@ -814,10 +843,10 @@ settings.event_push=Push
settings.event_push_desc=Push-olás egy repository-ba
settings.event_issues=Problémák
settings.event_issues_desc=A probléma meg left nyitva, le left zárva, újranyitva, szerkesztve, hozzárendelve, visszarendelve, cimkézve, cimketelenítve, mérföldkövezve, vagy mérföldkőtelenítve.
settings.event_pull_request=Beolvasztási kérés
settings.event_pull_request_desc=Beolvasztási kérés megnyitva, lezárva, újranyitva, hozzárendelve, visszarendelve, címkézve, címke eltávolítva, mérföldkövezve, mérföldkő eltávolítva vagy szinkronizálva.
settings.event_issue_comment=Probléma hozzászólás
settings.event_issue_comment_desc=Probléma megjegyzés létrehozva, szerkesztve vagy törölve.
settings.event_pull_request=Pull kérések
settings.event_pull_request_desc=Egyesítési kérés megnyitva, lezárva, újranyitva, hozzárendelve, visszarendelve, cimkézve, cimketelenítve, mérföldkövezve, mérföldkőtelenítve vagy szinkronizálva.
settings.event_release=Kiadás
settings.event_release_desc=Kiadás publikálva a tárolóban.
settings.active=Aktív
@@ -830,6 +859,7 @@ settings.recent_deliveries=Legutóbbi Küldések
settings.hook_type=Hook Típusa
settings.add_slack_hook_desc=<a href="%s">Slack</a> integráció hozzáadása a repository-hoz.
settings.add_discord_hook_desc=<a href="%s">Discord</a> integráció hozzáadva a térolóhoz.
settings.add_dingtalk_hook_desc=<a href="%s">Dingtalk</a> integráció hozzáadása a tárolóhoz.
settings.slack_token=Token
settings.slack_domain=Domain
settings.slack_channel=Csatorna
@@ -837,7 +867,7 @@ settings.deploy_keys=Deploy kulcsok
settings.deploy_keys_helper=<b>Hasznos tipp!</b> ha saját személyes publikus kulcsait szeretné hozzáadni, azt a <a href="%s%s">fiók beállítások</a> oldalon teheti meg.
settings.add_deploy_key=Deploy Kulcs Hozzáadása
settings.deploy_key_desc=A deploy kulcsok csak olvasásra jogosítanak fel, nem azonosak a személyes SSH kulcsokkal.
settings.no_deploy_keys=Még nem adtál hozzá deploy kulcsot.
settings.no_deploy_keys=Még nem adott hozzá deploy kulcsot.
settings.title=Név
settings.deploy_key_content=Tartalom
settings.key_been_used=Deploy kulcs tartalma már fel lett használva.
@@ -846,6 +876,8 @@ settings.add_key_success=Az új deploy kulcsot ('%s') sikeresen hozzáadtuk!
settings.deploy_key_deletion=Deploy Kulcs Törlése
settings.deploy_key_deletion_desc=A deploy kulcs törlése minden kapcsolódó hozzáférést töröl a repository-ból. Biztosan folytatod?
settings.deploy_key_deletion_success=A deploy kulcs sikeresen törölve!
settings.description_desc=Tároló leírása. Maximum 512 karakter hosszúságú.
settings.description_length=Rendelkezésre álló karakterek
diff.browse_source=Forráskód Böngészése
diff.parent=szülő
@@ -900,8 +932,8 @@ repo_updated=Frissítve
people=Emberek
invite_someone=Meghívás
teams=Csapatok
lower_members=tagok
lower_repositories=repository-k
lower_members=tag
lower_repositories=tároló
create_new_team=Új csapat létrehozása
org_desc=Leírás
team_name=Csapat neve
@@ -910,9 +942,8 @@ team_name_helper=Ezzel a névvel tudsz majd a csapatra hivatkozni.
team_desc_helper=Miről szól ez a csapat?
team_permission_desc=Milyen jogosultsága legyen ennek a csapatnak?
form.name_reserved=Ez a szervezetnév ('%s') le van foglalva.
form.name_pattern_not_allowed=A szervezetnév ('%s') nem engedélyezett.
form.team_name_reserved=A csoportnév ('%s') a rendszer számára van fenntartva.
form.name_not_allowed=A szervezetnév, vagy minta '%q' nem engedélyezett.
form.team_name_not_allowed=A '%q' csapatnév, vagy minta nem engedélyezett
settings=Beállítások
settings.options=Opciók
@@ -956,9 +987,9 @@ teams.no_desc=Ennek a csapatnak nincs leírása
teams.settings=Beállítások
teams.owners_permission_desc=A tulajdonosoknak teljes hozzáférése van <strong>minden repository-hoz</strong> és <strong>adminisztrátori joguk</strong> van a szervezethez.
teams.members=Csapattagok
teams.update_settings=Beállítások Mentése
teams.update_settings=Beállítások mentése
teams.delete_team=Csapat Törlése
teams.add_team_member=Csapattag Hozzáadása
teams.add_team_member=Csapattag hozzáadása
teams.delete_team_title=Csapat Törlése
teams.delete_team_desc=Mivel a csapat törlésre kerül, a tagjai elveszíthetik a hozzáférésüket néhány repository-hoz. Folytatod?
teams.delete_team_success=A csapat sikeresen törölve.
@@ -984,12 +1015,19 @@ first_page=Első
last_page=Utolsó
total=Összesen: %d
dashboard.build_info=Program építési információi
dashboard.app_ver=Alkalmazás verziója
dashboard.git_version=Git verzió
dashboard.go_version=Go verzió
dashboard.build_time=Program építésének időtartama
dashboard.build_commit=Program építési commit-ja
dashboard.statistic=Statisztika
dashboard.operations=Műveletek
dashboard.system_status=Rendszerfigyelő Állapota
dashboard.statistic_info=Az adatbázisban található: <b>%d</b> felhasználó, <b>%d</b> szervezet, <b>%d</b> publikus kulcs, <b>%d</b> tároló, <b>%d</b> figyelő, <b>%d</b> csillagozás, <b>%d</b> művelet, <b>%d</b> hozzáférés, <b>%d</b> probléma, <b>%d</b> megjegyzés, <b>%d</b> közösségi fiók, <b>%d</b> követő, <b>%d</b> tükör, <b>%d</b> kiadás, <b>%d</b> authentikáció, <b>%d</b> webhook, <b>%d</b> mérföldkő, <b>%d</b> cimke, <b>%d</b> hook feladat, <b>%d</b> csoport, <b>%d</b> frissítési feladat, <b>%d</b> csatolmány.
dashboard.operation_name=Művelet neve
dashboard.operation_switch=Átváltás
dashboard.select_operation_to_run=Kérlek válaszd ki a futtatandó műveletet
dashboard.operation_run=Futtatás
dashboard.clean_unbind_oauth=A nem használt OAuthok kitakarítása
dashboard.clean_unbind_oauth_success=Minden nem használt OAuth sikeresen kitakarítva.
@@ -1081,11 +1119,12 @@ repos.stars=Csillagok
repos.issues=Problémák
repos.size=Méret
auths.auth_manage_panel=Hitelesítés kezelő Panel
auths.auth_sources=Hitelesítési források
auths.new=Új forrás hozzáadása
auths.name=Név
auths.type=Típus
auths.enabled=Engedélyezett
auths.default=Alapértelmezett
auths.updated=Frissítve
auths.auth_type=Hitelesítés típusa
auths.auth_name=Hitelesítési név
@@ -1094,6 +1133,7 @@ auths.domain=Tartomány
auths.host=Állomás
auths.port=Port
auths.bind_dn=Bind DN
auths.bind_dn_helper=Használhatja a '%s'-t felhasználónév helyett, pl.: DOM\%s
auths.bind_password=Bind jelszó
auths.bind_password_helper=Figyelmeztetés: Ez a jelszó egyszerű szöveges formátumban kerül metésre. Ne használjon egy magas szintű jogosultsággal rendelkező fiókot.
auths.user_base=Felhasználókeresés alapja
@@ -1121,9 +1161,9 @@ auths.enable_tls=TLS titkosítás engedélyezése
auths.skip_tls_verify=TLS ellenőrzése mellőzése
auths.pam_service_name=PAM szolgáltatás neve
auths.enable_auto_register=Automatikus regisztráció engedélyezése
auths.tips=Tippek
auths.edit=Hitelesítési beállítások szerkesztése
auths.activated=Ez a hitelesítés mód aktiválva van
auths.default_auth=Ez a hitelesítés az alapértelmezett bejelentkezési forrás
auths.new_success=Az új hitelesítési mód '%s' sikeresen hozzáadva.
auths.update_success=A hitelesítési beállítások sikeresen firssítve lettek.
auths.update=Hitelesítési forrás frissítése
@@ -1133,115 +1173,186 @@ auths.delete_auth_desc=A hitelesítési mód törlésre kerül, biztosan folytat
auths.still_in_used=A hitelesítési mód még használatban van, mielőtt törölné válasszon más hitelesítési módot az érintett fiókokhoz.
auths.deletion_success=Hitelesítési forrás sikeresen törölve!
auths.login_source_exist=Bejelentkezési forrás "%s" már létezik.
auths.github_api_endpoint=API végpont
config.not_set=(nincs beállítva)
config.server_config=Kiszolgáló konfiguráció
config.app_name=Alkalmazás neve
config.app_ver=Alkalmazás verziója
config.app_url=Alkalmazás URL-je
config.domain=Tartomány
config.offline_mode=Kapcsolat nélküli mód
config.disable_router_log=Útválasztás naplózásának letiltása
config.brand_name=Oldalnév kiválasztása
config.run_user=Futtató felhasználó
config.run_mode=Futtatás módja
config.git_version=Git verzió
config.static_file_root_path=Statikus fájl gyökérútvonal
config.log_file_root_path=Naplófájl gyökérútvonal
config.reverse_auth_user=Visszafelé hitelesítés felhasználója
config.server.external_url=Külső URL
config.server.domain=Domain
config.server.protocol=Protokoll
config.server.http_addr=HTTP cím
config.server.http_port=HTTP port
config.server.cert_file=Tanusítvány fájl
config.server.key_file=Kulcsfájl
config.server.tls_min_version=Legalacsonyabb TLS verzió
config.server.unix_socket_permission=Unix socket engedély
config.server.local_root_url=Helyi gyökér URL
config.server.offline_mode=Offline mód
config.server.disable_router_log=Disable router log
config.server.enable_gzip=Gzip bekapcsolása
config.server.app_data_path=Alkalmazás adatok elérési útvonala
config.server.load_assets_from_disk=Program hozzávalók betöltése lemezről
config.server.landing_url=Beérkezési URL
config.ssh_config=SSH konfiguráció
config.ssh_enabled=Engedélyezett
config.ssh_start_builtin_server=Beépített kiszolgáló indítása
config.ssh_domain=Tartomány
config.ssh_port=Port
config.ssh_listen_port=Figyelő port
config.ssh_root_path=Gyökér elérési útvonal
config.ssh_key_test_path=Kulcs ellenőrzés útvonala
config.ssh_keygen_path=Kulcsgeneráló ('ssh-keygen') elérési útja
config.ssh_minimum_key_size_check=Minimális kulcsméret ellenőrzés
config.ssh_minimum_key_sizes=Kulcsok Minimális Mérete
config.ssh.enabled=Bekapcsolva
config.ssh.domain=Külső domain
config.ssh.port=Nyitott port
config.ssh.root_path=Gyökér elérési útvonal
config.ssh.keygen_path=ssh-keygen elérési útvonala
config.ssh.key_test_path=Kulcs ellenőrzés útvonala
config.ssh.minimum_key_size_check=Minimális kulcsméret ellenőrzés
config.ssh.minimum_key_sizes=Kulcsok minimális mérete
config.ssh.rewrite_authorized_keys_at_start=SSH "authorized_keys" fájl újraírása indításnál
config.ssh.start_builtin_server=Beépített kiszolgáló indítása
config.ssh.listen_host=Hallgatási cím
config.ssh.listen_port=Hallgatási port
config.ssh.server_ciphers=Kiszolgáló titkosítás módszerei
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Tároló konfiguráció
config.repo_root_path=Tárolók gyökérkönyvtára
config.script_type=Szkript típus
config.repo_force_private=Privát erőltetése
config.max_creation_limit=Maximum létrehozási korlát
config.preferred_licenses=Előnyben részesített licencek
config.disable_http_git=A HTTP protokoll letiltása GIT-hez
config.enable_local_path_migration=Engedélyezi a migrációt helyi elérési út alapján
config.commits_fetch_concurrency=Konkurens lekérés
config.repo.root_path=Gyökér elérési útvonal
config.repo.script_type=Szkript típus
config.repo.ansi_chatset=ANSI karakterkészlet
config.repo.force_private=Privát erőltetése
config.repo.max_creation_limit=Maximum repo létrehozási korlát
config.repo.preferred_licenses=Előnyben részesített licencek
config.repo.disable_http_git=HTTP-n keresztüli git kikapcsolása
config.repo.enable_local_path_migration=Engedélyezi a migrációt helyi elérési út alapján
config.repo.enable_raw_file_render_mode=nyers fájl kijelzés bekapcsolása
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Feltöltés bekapcsolva
config.repo.upload.temp_path=Ideiglenes feltöltési útvonal
config.repo.upload.allowed_types=Feltöltésnél engedélyezett típusok
config.repo.upload.file_max_size=Maximálisan feltölthető fájlméret
config.repo.upload.max_files=Upload files limit
config.db_config=Adatbázis konfiguráció
config.db_type=Típus
config.db_host=Állomás
config.db_name=Név
config.db_user=Felhasználó
config.db_ssl_mode=SSL-mód
config.db_ssl_mode_helper=(csak "postgres" )
config.db_path=Elérési út
config.db_path_helper=("sqlite3" és "tidb")
config.db.type=Típus
config.db.host=Kiszolgáló
config.db.name=Név
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=Felhasználó
config.db.ssl_mode=SSL mód
config.db.ssl_mode_helper=(csak "postgres" esetében)
config.db.path=Útvonal
config.db.path_helper=(csak "sqlite3" esetében)
config.db.max_open_conns=Maximum egyszerre nyitott csatlakozások
config.db.max_idle_conns=Maximum tétlen kapcsolatok száma
config.service_config=Szolgáltatás beállításai
config.register_email_confirm=E-mail megerősítés szükséges
config.disable_register=Regisztráció tiltása
config.show_registration_button=Regisztráció gomb megjelenítése
config.require_sign_in_view=Bejelentkező Nézet
config.mail_notify=E-mail értesítés
config.disable_key_size_check=Minimális kulcsméret ellenőrzés letiltása
config.enable_captcha=Ellenőrző kód engedélyezése
config.active_code_lives=Aktivál kód élet
config.reset_password_code_lives=Jelkód élettartamának visszaálítása
config.security_config=Biztonsági beállítások
config.security.login_remember_days=Bejelentkezési adatok megjegyzésének napjai
config.security.cookie_remember_name=Emlékezési süti elnevezése
config.security.cookie_username=Felhasználónév süti
config.security.cookie_secure=Biztonságos sütik engedélyezése
config.security.reverse_proxy_auth_user=Fordított proxy hitelesítési fejléc
config.security.enable_login_status_cookie=Bejelentkezési állapot süti bekapcsolása
config.security.login_status_cookie_name=Bejelentkezési állapot süti neve
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Webhook beállítás
config.queue_length=Várólista hossza
config.deliver_timeout=Kézbesítési időtúllépés
config.skip_tls_verify=TLS ellenőrzése mellőzése
config.email_config=E-mail beállítások
config.email.enabled=Bekapcsolva
config.email.subject_prefix=Tárgy előtag
config.email.host=Kiszolgáló
config.email.from=Tól/től
config.email.user=Felhasználó
config.email.disable_helo=HELO letiltása
config.email.helo_hostname=HELO állományneve
config.email.skip_verify=Tanusítvány igazolásának átugrása
config.email.use_certificate=Egyedi tanusítvány használata
config.email.cert_file=Tanusítvány fájl
config.email.key_file=Kulcsfájl
config.email.use_plain_text=Sima szöveg (plaintext) használata
config.email.add_plain_text_alt=Sima szöveg (plaintext) alternatív szövege
config.email.send_test_mail=Teszt e-mail küldése
config.email.test_mail_failed=Nem sikerült kiküldeni a teszt e-mailt '%s'-nek: %v
config.email.test_mail_sent=Teszt e-mail kiküldve '%s'-nek.
config.mailer_config=Levelező beállítások
config.mailer_enabled=Engedélyezett
config.mailer_disable_helo=HELO letiltása
config.mailer_name=Név
config.mailer_host=Állomás
config.mailer_user=Felhasználó
config.send_test_mail=Teszt E-mail küldése
config.test_mail_failed=Nem sikerült kiküldeni az e-mailt '%s': %v
config.test_mail_sent=Teszt e-mail kiküldve '%s'.
config.auth_config=Hitelesítési beállítások
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Jelszó visszaállítási kód élettartama
config.auth.require_email_confirm=E-mail megerősítés szükségessé tétele
config.auth.require_sign_in_view=Bejelentkező nézet követelése
config.auth.disable_registration=Regisztráció kikapcsolása
config.auth.enable_registration_captcha=CAPTCHA engedélyezése regisztrációhoz
config.auth.enable_reverse_proxy_authentication=Fordított proxy hitelesítés bekapcsolása
config.auth.enable_reverse_proxy_auto_registration=Fordított proxy automatikus regisztrációjának bekapcsolása
config.auth.reverse_proxy_authentication_header=Fordított proxy hitelesítési fejléc
config.oauth_config=OAuth-konfiguráció
config.oauth_enabled=Engedélyezett
config.cache_config=Cache beállítás
config.cache_adapter=Gyorsítótár-adapter
config.cache_interval=Gyorsítótár intervallum
config.cache_conn=Cache kapcsolat
config.user_config=Felhasználói beállítások
config.user.enable_email_notify=Email értesítés engedélyezése
config.session_config=Munkamenet beállítások
config.session_provider=Munkamenet szolgálta
config.provider_config=Szolgáltató beállítás
config.cookie_name=Süti neve
config.enable_set_cookie=Süti használatának engedélyezése
config.gc_interval_time=GC intervallum idő
config.session_life_time=Munkamenet élettartama
config.https_only=Csak HTTPS
config.cookie_life_time=Cookie-k élettartama
config.session.provider=Session ellá
config.session.provider_config=Session ellátó konfigurációja
config.session.cookie_name=Süti
config.session.https_only=Csak HTTPS
config.session.gc_interval=Szemétgyűjtés intervalluma
config.session.max_life_time=Maximális élettartam
config.session.csrf_cookie_name=CSRF süti neve
config.cache_config=Cache beállítás
config.cache.adapter=Adapter
config.cache.interval=Szemétgyűjtés intervalluma
config.cache.host=Kiszolgáló
config.http_config=HTTP beállítások
config.http.access_control_allow_origin=Access-Control-Allow-Origin fejléc
config.attachment_config=Melléklet beállítás
config.attachment.enabled=Bekapcsolva
config.attachment.path=Elérési útvonal
config.attachment.allowed_types=Engedélyezett típusok
config.attachment.max_size=Maximum méret
config.attachment.max_files=Maximálisan feltölthető fájlok mennyisége
config.release_config=Szoftver kiadás beállítás
config.release.attachment.enabled=Mellékletek bekapcsolva
config.release.attachment.allowed_types=Engedélyezett melléklet típusok
config.release.attachment.max_size=Melléklet maximális mérete
config.release.attachment.max_files=Maximális mellékelt fájlok mennyisége
config.picture_config=Kép beállítások
config.picture_service=Kép szolgáltatás
config.disable_gravatar=Tiltsa le a Gravatart
config.enable_federated_avatar=Összevont profilkép lekérés engedélyezése
config.picture.avatar_upload_path=Profilkép feltöltési útvonal
config.picture.repo_avatar_upload_path=Repository kép feltöltési útvonal
config.picture.gravatar_source=Gravatar forrás
config.picture.disable_gravatar=Gravatar Kikapcsolása
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Tükrözés beállítás
config.mirror.default_interval=Alapértelmezett intervallum
config.webhook_config=Webhook beállítás
config.webhook.types=Típusok
config.webhook.deliver_timeout=Kézbesítési időtúllépés
config.webhook.skip_tls_verify=TLS ellenőrzés kihagyása
config.git_config=Git konfiguráció
config.git_disable_diff_highlight=Különbségi nézetben a szintakszis kiemelés kikapcsolása
config.git_max_diff_lines=Maximális sorok száma különbségi nézetben (egy fájl esetén)
config.git_max_diff_line_characters=Maximális karakterek száma különbségi nézetben (egy fájl esetén)
config.git_max_diff_files=Maximális fájlok száma különbségi nézetben
config.git_gc_args=Szemétgyűjtő (GC) argumentumok
config.git_migrate_timeout=Migráció időtúllépés
config.git_mirror_timeout=Tükör frissítési időtúllépés
config.git_clone_timeout=Migráció időtúllépés
config.git_pull_timeout=Frissítő időtúllépés
config.git_gc_timeout=Szemétgyűjtő (GC) időtúllépés
config.git.disable_diff_highlight=Különbségi szintakszis kiemelésének kikapcsolása
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=Szemétgyűjtő (GC) argumentumok
config.git.migrate_timeout=Migráció időtúllépés
config.git.mirror_timeout=Tükör fetch időtúllépés
config.git.clone_timeout=Klónozási időtúllépés
config.git.pull_timeout=Lehúzási időtúllépés
config.git.gc_timeout=Szemétgyűjtés időtúllépése
config.lfs_config=LFS Beállítások
config.lfs.storage=Tárhely
config.lfs.objects_path=Objektumok elérési útvonala
config.log_config=Naplózás beállítása
config.log_file_root_path=Naplófájl gyökérútvonal
config.log_mode=Mód
config.log_options=Opciók
@@ -1272,44 +1383,48 @@ notices.delete_success=A rendszer értesítések sikeresen törölve.
[action]
create_repo=létrehozott tárolót: <a href="%s"> %s</a>
fork_repo=lemásolta a(z) <a href="%s">%s</a> tárolót
rename_repo=átnevezte a <code>%[1]s</code> tárolót <a href="%[2]s">%[3]s</a>-ra
commit_repo=feltöltött a <a href="%[1]s/src/%[2]s">%[3]s</a>-ba ekkor: <a href="%[1]s">%[4]s</a>
commit_repo=feltöltött a <a href="%[1]s/src/%[2]s">%[3]s</a> ágba ide: <a href="%[1]s">%[4]s</a>
compare_commits=%d commit összehasonlítása
transfer_repo=áthelyezett egy tárolót innen: <code>%s</code> ide: <a href="%s">%s</a>
create_issue=`problémát jelentett: <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`megoldott egy problémát: <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`újranyitott egy problémát: <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`hozzászólt egy problémához: <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`létrehozott egy egyesítési kérést: <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`lezárt egy egyesítési kérést: <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`újranyitott egy egyesítési kérést: <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`végrehajtott egy egyesítési kérést: <a href="%s/pulls/%s">%s#%[2]s</a>`
create_branch=létrehozott egy új ágat <a href="%[1]s/src/%[2]s">%[3]s</a> ekkor: <a href="%[1]s">%[4]s</a>
create_pull_request=`létrehozott egy beolvasztási kérést: <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`lezárt egy beolvasztási kérést: <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`újranyitott egy beolvasztási kérést: <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`egyesített egy beolvasztási kérést: <a href="%s/pulls/%s">%s#%[2]s</a>`
create_branch=létrehozott egy új <a href="%[1]s/src/%[2]s">%[3]s</a> ágat ebben: <a href="%[1]s">%[4]s</a>
delete_branch=törölt egy ágat <code>%[2]s</code> ekkor: <a href="%[1]s">%[3]s</a>
push_tag=feltöltött egy cimkét: <a href="%s/src/%s">%[2]s</a> ide: <a href="%[1]s">%[3]s</a>
delete_tag=törölt egy cimkét <code>%[2]s</code> ekkor: <a href="%[1]s">%[3]s</a>
fork_repo=lemásolta a(z) <a href="%s">%s</a> tárolót
mirror_sync_push=commitok szinkronizálva a <a href="%[1]s/src/%[2]s">%[3]s</a> ágba a <a href="%[1]s">%[4]s</a> tárolóban, tükörről
mirror_sync_create=új hivatkozás szinkronizálva: <a href="%s/src/%s">%[2]s</a> a <a href="%[1]s">%[3]s</a> tárolóban, tükörről
mirror_sync_delete=szinkronizálva és törölve a <code>%[2]s</code> hivatkozás a <a href="%[1]s">%[3]s</a> tárolóból, tükörről
[tool]
ago=óta
ago=
from_now=mostantól
now=most
1s=1 másodperc %s
1m=1 perc %s
1h=1 óra %s
1d=1 nap %s
1w=1 hét %s
1mon=1 hónap %s
1y=1 év %s
seconds=%d másodperc %s
minutes=%d perc %s
hours=%d óra %s
days=%d nap %s
weeks=%d hét %s
months=%d hónap %s
years=%d év %s
1s=1 másodperce %s
1m=1 perce %s
1h=1 órája %s
1d=1 napja %s
1w=1 hete %s
1mon=1 hónapja %s
1y=1 éve %s
seconds=%d másodperce %s
minutes=%d perce %s
hours=%d órája %s
days=%d napja %s
weeks=%d hete %s
months=%d hónapja %s
years=%d éve %s
raw_seconds=másodperc
raw_minutes=perc
raw_hours=órák
[dropzone]
default_message=Húzz ide fájlokat vagy kattints a feltöltéshez.

1434
conf/locale/locale_id-ID.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -9,7 +9,6 @@ sign_out=Esci
sign_up=Registrati
register=Registrati
website=Sito Web
version=Versione
page=Pagina
template=Template
language=Lingua
@@ -44,17 +43,22 @@ issues=Problemi
cancel=Annulla
[status]
page_not_found=Pagina Non Trovata
internal_server_error=Errore Interno del Server
[install]
install=Installazione
title=Passi d'installazione per il primo avvio
docker_helper=Se stai utilizzando Gogs su Docker, per favore leggi le <a target="_blank" href="%s">Linee guida</a> con attenzione prima di cambiare qualcosa su questa pagina!
requite_db_desc=Gogs richiede MySQL, PostgreSQL, SQLite3, MSSQL o TiDB.
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Impostazioni Database
db_type=Tipo di database
host=Host
user=Utente
password=Password
db_name=Nome del database
db_schema=Schema
db_helper=Utilizza il motore INNODB con codifica utf8_general_ci per MySQL.
ssl_mode=Modalità SSL
path=Percorso
@@ -84,6 +88,7 @@ log_root_path=Percorso dei log
log_root_path_helper=Directory in cui scrivere i file di log.
enable_console_mode=Abilita modalità Terminale
enable_console_mode_popup=In aggiunta alla modalità file, invia i log anche al terminale.
default_branch=Default Branch
optional_title=Impostazioni Facoltative
email_title=Impostazioni E-mail
@@ -119,9 +124,10 @@ sqlite3_not_available=Questa versione non supporta SQLite3, si prega di scaricar
invalid_db_setting=La configurazione del database non è corretta: %v
invalid_repo_path=Percorso root del repository invalido: %v
run_user_not_match=Run user non è l'utente corrente: %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
smtp_host_missing_port=All'Host SMTP manca la porta nell'indirizzo.
invalid_smtp_from=Campo SMTP From non valido: %v
save_config_failed=Fallito il salvataggio della configurazione: %v
init_failed=Impossibile inizializzare l'applicazione: %v
invalid_admin_setting=Impostazioni account Admin non valide: %v
install_success=Benvenuto! Siamo felici che tu abbia scelto Gogs, buon divertimento.
invalid_log_root_path=Percorso deilog non valido: %v
@@ -151,6 +157,8 @@ register_hepler_msg=Hai già un account? Accedi ora!
social_register_hepler_msg=Hai già un account? Associalo ora!
disable_register_prompt=Siamo spiacenti, registrazione è stata disabilitata. Si prega di contattare l'amministratore del sito.
disable_register_mail=Siamo spiacenti, la conferma di registrazione via Mail è stata disattivata.
auth_source=Fonte di autenticazione
local=Locale
remember_me=Ricordami
forgot_password=Password dimenticata
forget_password=Password dimenticata?
@@ -169,13 +177,13 @@ reset_password_helper=Clicca qui per reimpostare la password
password_too_short=La lunghezza della password non può essere meno 6 caratteri.
non_local_account=Gli account non locali non possono modificare le password tramite Gogs.
login_two_factor=Two-factor Authentication
login_two_factor_passcode=Authentication Passcode
login_two_factor_enter_recovery_code=Enter a two-factor recovery code
login_two_factor_recovery=Two-factor Recovery
login_two_factor_recovery_code=Recovery Code
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
login_two_factor=Autenticazione in Due Passaggi
login_two_factor_passcode=Codice di autenticazione
login_two_factor_enter_recovery_code=Inserisci il codice di recupero dell'Autenticazione a due Fattori
login_two_factor_recovery=Recupero a due fattori
login_two_factor_recovery_code=Recupera il codice
login_two_factor_enter_passcode=Inserisci un codice di accesso a due fattori
login_two_factor_invalid_recovery_code=Il codice di recupero è stato utilizzato o non è valido.
[mail]
activate_account=Per favore attiva il tuo account
@@ -212,7 +220,7 @@ Content=Contenuto
require_error=` non può essere vuoto.`
alpha_dash_error=` ammessi solo caratteri alfanumerici o trattini(-_).`
alpha_dash_dot_error=` ammessi solo caratteri alfanumerici o trattini(-_) o punti.`
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
alpha_dash_dot_slash_error=` ammessi solo caratteri alfanumerici o trattini(-_) o punti o slash.`
size_error='deve essere %s.'
min_size_error=` deve contenere almeno %s caratteri.`
max_size_error=` deve contenere massimo %s caratteri.`
@@ -229,6 +237,7 @@ org_name_been_taken=Il nome dell'Organizzazione è già utlizzato.
team_name_been_taken=Il nome del Team è già utilizzato.
email_been_used=L'indirizzo E-mail è già utilizzato.
username_password_incorrect=Nome utente o password incorretti.
auth_source_mismatch=La sorgente di autenticazione selezionata non è associata all'utente.
enterred_invalid_repo_name=Si prega di assicurarsi che il nome del repository inserito sia corretto.
enterred_invalid_owner_name=Si prega di assicurarsi che il nome del proprietario inserito sia corretto.
enterred_invalid_password=Verificare che la password inserita sia corretta.
@@ -256,16 +265,15 @@ following=Seguiti
follow=Segui
unfollow=Non seguire più
form.name_reserved=L'username '%s' è riservato.
form.name_pattern_not_allowed=La struttura del nome utente '%s' non è consentita.
form.name_not_allowed=Nome utente o schema %q non consentito.
[settings]
profile=Profilo
password=Password
avatar=Avatar
ssh_keys=Chiavi SSH
security=Security
repos=Repositories
security=Sicurezza
repos=Repository
orgs=Organizzazioni
applications=Applicazioni
delete=Elimina account
@@ -309,6 +317,7 @@ delete_email=Elimina
email_deletion=Eliminazione e-mail
email_deletion_desc=La procedura di rimozione indirizzo email eliminerà tutte le informazioni correlate dal tuo account. Si desidera continuare?
email_deletion_success=Indirizzo e-mail eliminato con successo!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Aggiungi un nuovo indirizzo E-mail
add_email=Aggiungi E-mail
add_email_confirmation_sent=Una nuova email di conferma è stata inviata a '%s', per favore controlla la tua posta in arrivo nelle prossime %d ore per completare il processo di registrazione.
@@ -334,34 +343,36 @@ no_activity=Nessuna attività recente
key_state_desc=Hai utilizzato questa chiave negli ultimi 7 giorni
token_state_desc=Questo token e' satato utilizzato negli ultimi 7 giorni
two_factor=Two-factor Authentication
two_factor_status=Status:
two_factor_on=On
two_factor_off=Off
two_factor_enable=Enable
two_factor_disable=Disable
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title=Enable Two-factor Authentication
two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=Or enter the secret:
two_factor_then_enter_passcode=Then enter passcode:
two_factor_verify=Verify
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_disable_title=Disable Two-factor Authentication
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_success=Two-factor authentication has disabled successfully!
two_factor=Autenticazione in Due Passaggi
two_factor_status=Stato:
two_factor_on=Attiva
two_factor_off=Non attivo
two_factor_enable=Abilita
two_factor_disable=Disattivata
two_factor_view_recovery_codes=Visualizza e memorizza i tuoi <a href="%s%s">codici di recupero</a> in un posto sicuro. Puoi utilizzarli come codice di sicurezza se perdi gli accessi all'applicazione di autenticazione.
two_factor_http=Per le operazioni HTTP/HTTPS, non sei più in grado di utilizzare nome utente e password. Si prega di creare e utilizzare <a href="%[1]s%[2]s">Token di accesso personale</a> come credenziali, ad esempio. <code>%[3]s</code>.
two_factor_enable_title=Abilita l'autenticazione in due passaggi
two_factor_scan_qr=Per favore, utilizza la tua applicazione di autenticazione per scansionare l'immagine:
two_factor_or_enter_secret=O inserisci la chiave segreta:
two_factor_then_enter_passcode=Poi inserisci la chiave di sicurezza:
two_factor_verify=Verifica
two_factor_invalid_passcode=La chiave di sicurezza che hai inserito non è valida, riprova!
two_factor_reused_passcode=La chiave di sicurezza che hai inserito è già stata utilizzata, provane un'altra!
two_factor_enable_error=Impossibile abilitare l'autenticazione a due fattori: %v
two_factor_enable_success=Autenticazione a due fattori abilitata per il tuo account con successo!
two_factor_recovery_codes_title=Codici di recupero autenticazione a due fattori
two_factor_recovery_codes_desc=I codici di recupero vengono utilizzati quando si perde temporaneamente l'accesso all'applicazione di autenticazione. Ogni codice di recupero può essere utilizzato solo una volta, <b>si prega di mantenere questi codici in un posto sicuro</b>.
two_factor_regenerate_recovery_codes=Rigenera codici di recupero
two_factor_regenerate_recovery_codes_error=Impossibile rigenerare codici di recupero: %v
two_factor_regenerate_recovery_codes_success=I nuovi codici di recupero sono stati generati correttamente!
two_factor_disable_title=Disabilita autenticazione a due fattori
two_factor_disable_desc=Il livello di sicurezza del tuo account diminuirà disabilitando l'autenticazione a due fattori. Vuoi continuare?
two_factor_disable_success=L'autenticazione a due fattori è stata disabilitata!
manage_access_token=Gestisci i Token di Accesso Personale
generate_new_token=Genera Nuovo Token
tokens_desc=I Token che hai generato e che possono essere utilizzati per accedere alle API Gogs.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Da questo momento, ogni token avrà pieno accesso al tuo account.
token_name=Nome Token
generate_token=Genera Token
@@ -370,15 +381,16 @@ delete_token=Elimina
access_token_deletion=Eliminazione Token di accesso personale
access_token_deletion_desc=Eliminare questo token di accesso personale rimuoverà tutti i relativi accessi di applicazione. Si desidera continuare?
delete_token_success=Il token di accesso personale è stato eliminato! Non dimenticare di aggiornare anche l'applicazione.
token_name_exists=Un token con lo stesso nome esiste già.
orgs.none=Non sei membro di alcuna organizzazione.
orgs.leave_title=Abbandona una organizzazione
orgs.leave_desc=Abbandonando l'organizzazione perderai l'accesso a tutti i repository e i gruppi. Confermi?
repos.leave=Leave
repos.leave_title=Leave repository
repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
repos.leave_success=You have left repository '%s' successfully!
repos.leave=Abbandona
repos.leave_title=Lascia il repository
repos.leave_desc=Perderai l'accesso al repository dopo che hai lasciato. Vuoi continuare?
repos.leave_success=Hai lasciato il repository '%s' con successo!
delete_account=Elimina Account
delete_prompt=L'operazione eliminerà permanentemente l'account e <strong>NON POTRÀ</strong> essere annullata!
@@ -391,7 +403,9 @@ owner=Proprietario
repo_name=Nome Repository
repo_name_helper=I migliori nomi dei repository sono brevi, facili da memorizzare e <strong>univoci</strong>.
visibility=Visibilità
unlisted=Unlisted
visiblity_helper=Questo repository è <span class="ui red text"> privato</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=L'amministratore del sito ha deciso che tutti i nuovi repository devono essere <span class="ui red text">privati</span>
visiblity_fork_helper=(La modifica di questo valore avrà effetto su tutti i fork)
clone_helper=Hai bisogno di aiuto per la clonazione? Visita <a target="_blank" href="%s">Aiuto</a>!
@@ -409,7 +423,7 @@ auto_init=Inizializzare questo repository con i file e il modello selezionati
create_repo=Crea Repository
default_branch=Ramo (Branch) predefinito
mirror_prune=Rimuovi
mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
mirror_prune_desc=Rimuovi ogni riferimento di monitoraggio remoto che non esiste più sul telecomando
mirror_interval=Intervallo Mirror (in ore)
mirror_address=Indirizzo del mirror
mirror_address_desc=Si prega di includere nell'indirizzo le credenziali utente necessarie.
@@ -417,10 +431,11 @@ mirror_last_synced=Ultimo aggiornamento
watchers=Osservatori
stargazers=Fan
forks=Fork
repo_description_helper=Descrizione della repository. Lunghezza massima di 512 caratteri.
repo_description_length=Caratteri disponibili
form.reach_limit_of_creation=Il proprietario ha raggiunto il limite massimo di %d repository creati.
form.name_reserved=Il nome repository %s è riservato.
form.name_pattern_not_allowed=La struttura del nome del repository %s non è consentita.
form.name_not_allowed=Nome della repository o schema %q non consentiti.
need_auth=Richiesta di autorizzazione
migrate_type=Tipo di migrazione
@@ -431,6 +446,7 @@ migrate.clone_address_desc=Può essere un url HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=Puoi anche migrare un repository usando un path locale sul server.
migrate.permission_denied=Non è consentito importare repository locali.
migrate.invalid_local_path=Percorso locale non valido, non esiste o non è una cartella.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migrazione non riuscita: %v
mirror_from=mirror da
@@ -463,7 +479,7 @@ pulls=Pull Requests
labels=Etichette
milestones=Traguardi
commits=Commit
git_branches=Branches
git_branches=Rami (Branch)
releases=Rilasci
file_raw=Originale
file_history=Cronologia
@@ -472,12 +488,14 @@ file_permalink=Permalink
file_too_large=Questo file è troppo grande per essere mostrato
video_not_supported_in_browser=Il tuo browser non supporta i tag "video" di HTML5.
branches.overview=Overview
branches.active_branches=Active Branches
branches.overview=Panoramica
branches.active_branches=Rami (Branch) attivi
branches.stale_branches=Stale Branches
branches.all=All Branches
branches.all=Tutti i rami (branch)
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Change Default Branch
branches.change_default_branch=Cambia branch di default
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nuovo file
editor.upload_file=Carica File
@@ -514,6 +532,7 @@ editor.file_changed_while_editing=Il file è stato cambiato in un'altra posizion
editor.file_already_exists=Un file di nome '%s' esiste già in questo repository.
editor.no_changes_to_show=Nessuna modifica da mostrare.
editor.fail_to_update_file=La creazione o la modifica del file '%s' è fallita: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Aggiungi sottocartella...
editor.unable_to_upload_files=È fallito il caricamento dei file su '%s': %v
editor.upload_files_to_dir=Carica file su '%s'
@@ -576,8 +595,8 @@ issues.next=Pagina successiva
issues.open_title=Aperto
issues.closed_title=Chiuso
issues.num_comments=%d commenti
issues.commented_at=`commented <a href="#%s">%s</a>`
issues.delete_comment_confirm=Are you sure you want to delete this comment?
issues.commented_at=`ha commentato <a href="#%s">%s</a>`
issues.delete_comment_confirm=Sei sicuro/a di voler eliminare questo commento?
issues.no_content=Non ci sono ancora contenuti.
issues.close_issue=Chiudi
issues.close_comment_issue=Commenta e chiudi
@@ -605,8 +624,8 @@ issues.label_deletion=Elimina Etichetta
issues.label_deletion_desc=Eliminare l'etichetta rimuovera le sue informazioni in tutti i problemi correlati. Vuoi continuare?
issues.label_deletion_success=Etichetta eliminata con successo!
issues.num_participants=%d Partecipanti
issues.attachment.open_tab=`Click to see "%s" in a new tab`
issues.attachment.download=`Click to download "%s"`
issues.attachment.open_tab='Clicca per vedere "%s" in una nuova scheda'
issues.attachment.download=«Clicca qui per scaricare "%s"»
pulls.new=Nuova Pull Request
pulls.compare_changes=Confronta le modifiche
@@ -616,6 +635,7 @@ pulls.compare_compare=confronta
pulls.filter_branch=Filtra branch
pulls.no_results=Nessun risultato trovato.
pulls.nothing_to_compare=Non c'è niente da confrontare perchè i branch base e head uguali.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`E' già presente una pull request tra questi due trargets: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Crea Pull Request
pulls.title_desc=vorrebbe unire %[1]d commit da <code>%[2]s</code> a <code>%[3]s</code>
@@ -628,12 +648,15 @@ pulls.merged=Unito
pulls.has_merged=Questo contributo è stato incluso con successo!
pulls.data_broken=I dati di questa pull request si sono rotti causa dell'eliminazione delle informazioni di fork.
pulls.is_checking=Il controllo dei conflitti è ancora in corso, per favore aggiorna pagina tra qualche istante.
pulls.can_auto_merge_desc=La pull request non può essere mergiata automaticamente.
pulls.can_auto_merge_desc=La pull request può essere mergiata automaticamente.
pulls.cannot_auto_merge_desc=Questa pull request non può essere mergiata automaticamente perchè ci sono dei conflitti.
pulls.cannot_auto_merge_helper=Effettua il merge manualmente per risolvere i conflitti.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Effettua un Rebase prima del Merge
pulls.commit_description=Descrizione del Commit
pulls.merge_pull_request=Unisci Pull Request
pulls.open_unmerged_pull_exists=`You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
pulls.delete_branch=Delete Branch
pulls.delete_branch=Elimina Ramo
pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
milestones.new=Nuova Milestone
@@ -681,61 +704,63 @@ wiki.last_updated=Ultimo aggiornamento: %s
settings=Impostazioni
settings.options=Opzioni
settings.collaboration=Collaborazione
settings.collaboration.admin=Admin
settings.collaboration.write=Write
settings.collaboration.read=Read
settings.collaboration.undefined=Undefined
settings.branches=Branches
settings.collaboration.admin=Amministratore
settings.collaboration.write=Scrivi
settings.collaboration.read=Leggi
settings.collaboration.undefined=Indefinito
settings.branches=Divisioni
settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
settings.default_branch=Default Branch
settings.default_branch=Ramo di default
settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
settings.update=Update
settings.update=Aggiorna
settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
settings.update_default_branch_success=Default branch of this repository has been updated successfully!
settings.protected_branches=Protected Branches
settings.protected_branches=Branch protetti
settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
settings.choose_a_branch=Choose a branch...
settings.branch_protection=Branch Protection
settings.choose_a_branch=Scegli un ramo...
settings.branch_protection=Protezione Ramo
settings.branch_protection_desc=Please choose protect options for branch <b>%s</b>.
settings.protect_this_branch=Protect this branch
settings.protect_this_branch=Proteggere questo ramo
settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
settings.protect_require_pull_request=Require pull request instead direct pushing
settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
settings.protect_whitelist_committers=Whitelist who can push to this branch
settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_users=Users who can push to this branch
settings.protect_whitelist_search_users=Search users
settings.protect_whitelist_search_users=Cerca utenti
settings.protect_whitelist_teams=Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams=Search teams
settings.protect_whitelist_search_teams=Cerca Teams
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Webhooks
settings.githooks=Git Hooks
settings.basic_settings=Impostazioni di Base
settings.mirror_settings=Mirror Settings
settings.sync_mirror=Sync Now
settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
settings.mirror_settings=Impostazioni mirror
settings.sync_mirror=Sincronizza ora
settings.mirror_sync_in_progress=Sincronizzazione del mirror in corso, aggiorna la pagina tra un minuto.
settings.site=Sito Ufficiale
settings.update_settings=Aggiorna Impostazioni
settings.change_reponame_prompt=Questa modifica influirà i link al repository.
settings.advanced_settings=Opzioni avanzate
settings.wiki_desc=Enable wiki system
settings.use_internal_wiki=Use builtin wiki
settings.wiki_desc=Abilita wiki
settings.use_internal_wiki=Usa wiki incorporato
settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=Usa Wiki esterno
settings.external_wiki_url=URL Wiki esterno
settings.external_wiki_url_desc=I visitatori verranno reindirizzati all'URL quando cliccano sulla scheda.
settings.issues_desc=Enable issue tracker
settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
settings.issues_desc=Abilita tracking problemi
settings.use_internal_issue_tracker=Utilizza il segnalatore di problemi integrato (molto leggero)
settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=Utilizza gestore di problemi esterno
settings.external_tracker_url=External Issue Tracker URL
settings.external_tracker_url_desc=Visitors will be redirected to URL when they click on the tab.
settings.external_tracker_url=URL di un segnalatore di problemi esterno
settings.external_tracker_url_desc=I visitatori verranno reindirizzati all'URL quando faranno click sulla scheda.
settings.tracker_url_format=Formato URL Gestore Problemi Esterno
settings.tracker_issue_style=External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric=Numeric
settings.tracker_issue_style.alphanumeric=Alphanumeric
settings.tracker_issue_style.numeric=Numerico
settings.tracker_issue_style.alphanumeric=Alfanumerico
settings.tracker_url_format_desc=You can use placeholder <code>{user} {repo} {index}</code> for user name, repository name and issue index.
settings.pulls_desc=Abilita le pull requests per accettare contributi pubblici
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignora cambiamenti di spazi bianchi
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Zona Pericolosa
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Il nuovo proprietario ha già un repository con lo stesso nome. Per favore scegli un altro nome.
@@ -756,7 +781,7 @@ settings.wiki_deletion_success=I dati della wiki del repository sono stati elimi
settings.delete=Elimina questo repository
settings.delete_desc=Una volta che hai cancellato il repository, non puoi tornare indietro. Si prega di fare attenzione.
settings.delete_notices_1=-Questa operazione <strong>NON PUÒ</strong> essere annullata.
settings.delete_notices_2=-Questa operazione eliminerà definitivamente il tutto il contenuto del repository, inclusi i dati di Git, incidenti, commenti e accessi dei collaboratori.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.deletion_success=Il repository è stato eliminato con successo!
settings.update_settings_success=Le opzioni repository sono state aggiornate con successo.
@@ -772,8 +797,10 @@ settings.collaborator_deletion_desc=Questo utente non potrà più collaborare a
settings.remove_collaborator_success=Il collaboratore è stato rimosso.
settings.search_user_placeholder=Cerca utente...
settings.org_not_allowed_to_be_collaborator=Un'organizzazione non può essere aggiunta come collaboratore.
settings.add_webhook=Aggiungi Webhook
settings.hooks_desc=I Webhooks sono molto simili a un basilare evento trigger HTTP POST. Ogni volta che qualcosa si verifica in Gogs, tratteremo la notifica all'host di destinazione specificato. Ulteriori informazioni in questa <a target="_blank" href="%s">Guida ai Webhooks</a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Choose a type...
settings.add_webhook=Aggiungi Webhook
settings.webhook_deletion=Elimina Webhook
settings.webhook_deletion_desc=Delete this webhook will remove its information and all delivery history. Do you want to continue?
settings.webhook_deletion_success=Il Webhook è stato eliminato con successo!
@@ -787,6 +814,8 @@ settings.webhook.response=Risposta
settings.webhook.headers=Headers
settings.webhook.payload=Payload
settings.webhook.body=Body
settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Gli Hooks di Git sono una funzionalità di Git stesso, puoi modificare i file degli hooks supportati nell'elenco qui sotto per compiere azioni personalizzate.
settings.githook_edit_desc=Se l'hook è inattivo, sarà presentato un contenuto esempio. Lasciando il contenuto vuoto disattiverai questo hook.
settings.githook_name=Nome hook
@@ -806,19 +835,19 @@ settings.event_send_everything=Ho bisogno di <strong>tutto</strong>.
settings.event_choose=Lasciami scegliere ciò di cui ho bisogno.
settings.event_create=Crea
settings.event_create_desc=Branch, o tag creato
settings.event_delete=Delete
settings.event_delete_desc=Branch or tag deleted
settings.event_fork=Fork
settings.event_fork_desc=Repository forked
settings.event_delete=Elimina
settings.event_delete_desc=Branch o tag eliminato
settings.event_fork=Forka
settings.event_fork_desc=Repository Forkata
settings.event_push=Push
settings.event_push_desc=Git push in un repository
settings.event_issues=Issues
settings.event_issues=Problemi
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_pull_request=Pull request
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_release=Release
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Versione
settings.event_release_desc=Release published in a repository.
settings.active=Attivo
settings.active_helper=Anche i dettagli riguardanti l'evento che ha innescato l'hook saranno inviati.
@@ -830,6 +859,7 @@ settings.recent_deliveries=Recenti Deliveries
settings.hook_type=Tipo di Hook
settings.add_slack_hook_desc=Aggiungi <a href="%s"> Slack</a> integrazione al tuo repository.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=Token
settings.slack_domain=Dominio
settings.slack_channel=Canale
@@ -846,6 +876,8 @@ settings.add_key_success=La nuova deploy key '%s' è stata aggiunta con successo
settings.deploy_key_deletion=Elimina Deploy Key
settings.deploy_key_deletion_desc=Cancellando questa deploy key verrà rismosso ogni accesso relativo a questa repository. Vuoi continuare?
settings.deploy_key_deletion_success=Deploy key eliminata con successo!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Sfoglia il codice sorgente
diff.parent=parent
@@ -883,12 +915,12 @@ release.cancel=Annulla
release.publish=Pubblica Rilascio
release.save_draft=Salva Bozza
release.edit_release=Modifica Rilascio
release.delete_release=Cancela questa Release
release.delete_release=Cancella questa Release
release.deletion=Eliminazione Release
release.deletion_desc=Eliminando questa release cancellarai anche i tag Git corrispondenti. Vuoi continuare?
release.deletion_success=La release è stata eliminata con successo!
release.tag_name_already_exist=Un rilascio con questo tag esiste già.
release.tag_name_invalid=Tag name is not valid.
release.tag_name_invalid=Il nome del Tag non è valido.
release.downloads=Download
[org]
@@ -910,9 +942,8 @@ team_name_helper=Verrà usato questo nome per riferirsi a questo team nella conv
team_desc_helper=In cosa consiste questo team?
team_permission_desc=Quale livello di autorizzazione dovrebbe avere questa squadra?
form.name_reserved=Il nome organizzazione '%s' è riservato.
form.name_pattern_not_allowed=La struttura del nome dell'organizzazione '%s' non è consentita.
form.team_name_reserved=Team name '%s' is reserved.
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Impostazioni
settings.options=Opzioni
@@ -984,12 +1015,19 @@ first_page=Prima
last_page=Ultima
total=Totale: %d
dashboard.build_info=Build Information
dashboard.app_ver=Application version
dashboard.git_version=Git version
dashboard.go_version=Go version
dashboard.build_time=Build time
dashboard.build_commit=Build commit
dashboard.statistic=Statistiche
dashboard.operations=Operazioni
dashboard.system_status=Stato del Monitor di Sistema
dashboard.statistic_info=Il database di Gogs ha <b>%d</b> utenti, <b>%d</b> organizzazioni, <b>%d</b> chiavi pubbliche, <b>%d</b> repository, <b>%d</b> utenti che seguono, <b>%d</b> voti, <b>%d</b> azioni, <b>%d</b> accessi, <b>%d</b> problemi, <b>%d</b> commenti, <b>%d</b> account sociali, <b>%d</b> utenti seguiti, <b>%d</b> mirror, <b>%d</b> rilasci, <b>%d</b> fonti di accesso, <b>%d</b> webhook, <b>%d</b> traguardi, <b>%d</b> etichette, <b>%d</b> incarichi hook, <b>%d</b> team, <b>%d</b> attività di aggiornamento, <b>%d</b> allegati.
dashboard.operation_name=Nome Operazione
dashboard.operation_switch=Cambia
dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Esegui
dashboard.clean_unbind_oauth=Pulire OAuthes non associati
dashboard.clean_unbind_oauth_success=Tutti gli OAuthes non associati eliminati con successo.
@@ -1079,13 +1117,14 @@ repos.private=Privati
repos.watches=Segue
repos.stars=Voti
repos.issues=Problemi
repos.size=Size
repos.size=Dimensione
auths.auth_manage_panel=Pannello di configurazione dei meccanismi di autenticazione
auths.auth_sources=Authentication Sources
auths.new=Aggiungi Nuova Origine
auths.name=Nome
auths.type=Tipo
auths.enabled=Attivo
auths.default=Default
auths.updated=Aggiornato
auths.auth_type=Tipo di autenticazione
auths.auth_name=Nome di autenticazione
@@ -1094,6 +1133,7 @@ auths.domain=Dominio
auths.host=Host
auths.port=Porta
auths.bind_dn=Binda DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Binda Password
auths.bind_password_helper=Attenzione: Questa password è salvata in chiaro. Non usare su un acount con alti privilegi.
auths.user_base=User Search Base
@@ -1103,7 +1143,7 @@ auths.attribute_username_placeholder=Se vuoto, verrà usato il nome di login del
auths.attribute_name=First Name Attribute
auths.attribute_surname=Attributo Cognome
auths.attribute_mail=Attributo Email
auths.verify_group_membership=Verify group membership
auths.verify_group_membership=Verifica gruppo di appartenenza
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
@@ -1121,9 +1161,9 @@ auths.enable_tls=Abilitare Crittografia TLS
auths.skip_tls_verify=Salta verifica TLS
auths.pam_service_name=Nome del Servizio PAM
auths.enable_auto_register=Abilitare Registrazione Automatica
auths.tips=Consigli
auths.edit=Modifica impostazioni di autenticazione
auths.activated=Questa Autenticazione è stata attivata
auths.default_auth=This authentication is default login source
auths.new_success=Nuovo meccanismo di autenticazione '%s' aggiunto.
auths.update_success=Parametro di autenticazione aggiornato.
auths.update=Aggiornare le impostazioni di autenticazione
@@ -1133,117 +1173,188 @@ auths.delete_auth_desc=Eliminazione del meccanismo di autenticazione. Continuare
auths.still_in_used=Questo meccanismo di autenticazione è ancora attivo per alcuni utenti. Eliminare gli utenti o cambiare il loro meccanismo di autenticazione prima di ritentare.
auths.deletion_success=Il meccanismo di autenticazione è stato eliminato!
auths.login_source_exist=La fonte di autenticazione '%s' esiste già.
auths.github_api_endpoint=API Endpoint
config.not_set=(non impostata)
config.server_config=Configurazione Server
config.app_name=Nome Applicazione
config.app_ver=Versione Applicazione
config.app_url=URL Applicazione
config.domain=Dominio
config.offline_mode=Modalità Offline
config.disable_router_log=Disattivare Log del Router
config.brand_name=Brand name
config.run_user=Utente Esecutore
config.run_mode=Modalità Esecuzione
config.git_version=Versione Git
config.static_file_root_path=Percorso Root del File Statico
config.log_file_root_path=Percorso Root del File di Log
config.reverse_auth_user=Autenticazione Utente Inversa
config.server.external_url=External URL
config.server.domain=Domain
config.server.protocol=Protocol
config.server.http_addr=HTTP address
config.server.http_port=HTTP port
config.server.cert_file=Certificate file
config.server.key_file=Key file
config.server.tls_min_version=Minimum TLS version
config.server.unix_socket_permission=Unix socket permission
config.server.local_root_url=Local root URL
config.server.offline_mode=Offline mode
config.server.disable_router_log=Disable router log
config.server.enable_gzip=Abilita Gzip
config.server.app_data_path=Application data path
config.server.load_assets_from_disk=Load assets from disk
config.server.landing_url=Landing URL
config.ssh_config=Configurazione SSH
config.ssh_enabled=Attivo
config.ssh_start_builtin_server=Avvia server builtin
config.ssh_domain=Dominio
config.ssh_port=Porta
config.ssh_listen_port=Porta in ascolto
config.ssh_root_path=Percorso Root
config.ssh_key_test_path=Percorso chiave di test
config.ssh_keygen_path=Percorso Keygen ('ssh-keygen')
config.ssh_minimum_key_size_check=Verifica delle dimensioni minime della chiave
config.ssh_minimum_key_sizes=Dimensioni minime della chiave
config.ssh.enabled=Enabled
config.ssh.domain=Exposed domain
config.ssh.port=Exposed port
config.ssh.root_path=Root path
config.ssh.keygen_path=Keygen path
config.ssh.key_test_path=Key test path
config.ssh.minimum_key_size_check=Minimum key size check
config.ssh.minimum_key_sizes=Minimum key sizes
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=Start builtin server
config.ssh.listen_host=Listen host
config.ssh.listen_port=Listen port
config.ssh.server_ciphers=Server ciphers
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Repository Configuration
config.repo_root_path=Percorso Root del Repository
config.script_type=Tipo di Script
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Disable HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.repo_config=Configurazione Repository
config.repo.root_path=Root path
config.repo.script_type=Script type
config.repo.ansi_chatset=ANSI charset
config.repo.force_private=Force private
config.repo.max_creation_limit=Max creation limit
config.repo.preferred_licenses=Preferred licenses
config.repo.disable_http_git=Disable HTTP Git
config.repo.enable_local_path_migration=Enable local path migration
config.repo.enable_raw_file_render_mode=Enable raw file render mode
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Upload enabled
config.repo.upload.temp_path=Upload temporary path
config.repo.upload.allowed_types=Upload allowed types
config.repo.upload.file_max_size=Upload file size limit
config.repo.upload.max_files=Upload files limit
config.db_config=Configurazione Database
config.db_type=Tipo
config.db_host=Host
config.db_name=Nome
config.db_user=Utente
config.db_ssl_mode=Modalità SSL
config.db_ssl_mode_helper=(solo per "postgres")
config.db_path=Percorso
config.db_path_helper=(per "sqlite3" e "tidb")
config.db.type=Tipo
config.db.host=Host
config.db.name=Nome
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=Utente
config.db.ssl_mode=modalità SSL
config.db.ssl_mode_helper=(solo per "postgres")
config.db.path=Percorso
config.db.path_helper=(solo per "sqlite3")
config.db.max_open_conns=Maximum open connections
config.db.max_idle_conns=Maximum idle connections
config.service_config=Configurazione Servizio
config.register_email_confirm=Richiedono Conferma dell'Email
config.disable_register=Disabilita Registrazione
config.show_registration_button=Mostra Pulsante Registrazione
config.require_sign_in_view=Richiesto Accesso per Vedere
config.mail_notify=Email di Notifica
config.disable_key_size_check=Disabilita controllo sulle dimensioni minime della chiave
config.enable_captcha=Abilita Captcha
config.active_code_lives=Attiva Vita del Codice
config.reset_password_code_lives=Reimpostare Password della Vita del Codice
config.security_config=Security configuration
config.security.login_remember_days=Login remember days
config.security.cookie_remember_name=Remember cookie
config.security.cookie_username=Username cookie
config.security.cookie_secure=Enable secure cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Enable login status cookie
config.security.login_status_cookie_name=Login status cookie
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Configurazione Webhook
config.queue_length=Lunghezza della coda
config.deliver_timeout=Tempo Limite di Consegna
config.skip_tls_verify=Salta verifiche TLS
config.email_config=Email configuration
config.email.enabled=Enabled
config.email.subject_prefix=Subject prefix
config.email.host=Host
config.email.from=Da
config.email.user=Utente
config.email.disable_helo=Disattiva HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Skip certificate verify
config.email.use_certificate=Use custom certificate
config.email.cert_file=File certificato
config.email.key_file=Key file
config.email.use_plain_text=Usa testo semplice
config.email.add_plain_text_alt=Add plain text alternative
config.email.send_test_mail=Invia email di test
config.email.test_mail_failed=Failed to send test email to '%s': %v
config.email.test_mail_sent=Test email has been sent to '%s'.
config.mailer_config=Configurazione Mailer
config.mailer_enabled=Attivo
config.mailer_disable_helo=Disattiva HELO
config.mailer_name=Nome
config.mailer_host=Host
config.mailer_user=Utente
config.send_test_mail=Invia email di test
config.test_mail_failed=Impossibile inviare mail a '%s': %v
config.test_mail_sent=Una mail di prova è stata inviata a '%s'.
config.auth_config=Authentication configuration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=Require email confirmation
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Disable registration
config.auth.enable_registration_captcha=Enable registration captcha
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=Configurazione OAuth
config.oauth_enabled=Attivo
config.cache_config=Configurazione Cache
config.cache_adapter=Adattatore Cache
config.cache_interval=Intervallo Cache
config.cache_conn=Connessione Cache
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=Configurazione Sessione
config.session_provider=Fornitore Sessione
config.provider_config=Impostazioni Provider
config.cookie_name=Nome del Cookie
config.enable_set_cookie=Abilita Uso dei Cookie
config.gc_interval_time=Intervallo di tempo della GC
config.session_life_time=Durata Sessione
config.https_only=Solo HTTPS
config.cookie_life_time=Durata Cookie
config.session.provider=Provider
config.session.provider_config=Provider config
config.session.cookie_name=Cookie
config.session.https_only=Solo HTTPS
config.session.gc_interval=GC interval
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=Cookie CSRF
config.cache_config=Configurazione Cache
config.cache.adapter=Adattatore
config.cache.interval=Intervallo GC
config.cache.host=Host
config.http_config=Configurazione HTTP
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Attivo
config.attachment.path=Percorso
config.attachment.allowed_types=Allowed types
config.attachment.max_size=Size limit
config.attachment.max_files=Files limit
config.release_config=Release configuration
config.release.attachment.enabled=Attachment enabled
config.release.attachment.allowed_types=Attachment allowed types
config.release.attachment.max_size=Attachment size limit
config.release.attachment.max_files=Attachment files limit
config.picture_config=Configurazione Foto
config.picture_service=Servizio foto
config.disable_gravatar=Disabilita Gravatar
config.enable_federated_avatar=Attiva Federated Avatars
config.picture.avatar_upload_path=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatar source
config.picture.disable_gravatar=Disable Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Mirror configuration
config.mirror.default_interval=Default interval
config.webhook_config=Configurazione Webhook
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Configurazione Git
config.git_disable_diff_highlight=Disattiva evidenziazione delle differenze
config.git_max_diff_lines=Numero massimo di righe di diff (per singolo file)
config.git_max_diff_line_characters=Numero massimo di caratteri di diff (per singola riga)
config.git_max_diff_files=Numero massimo di file diff mostrati
config.git_gc_args=Parametri GC
config.git_migrate_timeout=Timeout per la migrazione
config.git_mirror_timeout=Timeoute per l'aggiornamento del mirror
config.git_clone_timeout=Timeout per il clone
config.git_pull_timeout=Timeout per il pull
config.git_gc_timeout=Timeout per le operazioni di GC
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC arguments
config.git.migrate_timeout=Migration timeout
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=Clone timeout
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=LFS configuration
config.lfs.storage=Storage
config.lfs.objects_path=Objects path
config.log_config=Configurazione Log
config.log_mode=Mode
config.log_options=Options
config.log_file_root_path=Percorso Root del File di Log
config.log_mode=Modalità
config.log_options=Opzioni
monitor.cron=Incarici di cron
monitor.name=Nome
@@ -1272,7 +1383,6 @@ notices.delete_success=Gli avvisi di sistema sono stati successivamente eliminat
[action]
create_repo=ha creato il repository <a href="%s">%s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
rename_repo=repository rinominato da <code>%[1]s</code> a <a href="%[2]s">[3]s</a>
commit_repo=ha pushato nel <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>
compare_commits=Visualizza comparazione tra questi %d commit
@@ -1289,6 +1399,10 @@ create_branch=created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href=
delete_branch=deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=ha pushato il tag <a href="%s/src/%s">%[2]s</a> a <a href="%[1]s">%[3]s</a>
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=fa
@@ -1310,6 +1424,7 @@ months=%d mesi %s
years=%d anni %s
raw_seconds=secondi
raw_minutes=minuti
raw_hours=ore
[dropzone]
default_message=Trascina i file qui o clicca per caricare.

File diff suppressed because it is too large Load Diff

View File

@@ -9,7 +9,6 @@ sign_out=로그아웃
sign_up=가입하기
register=가입하기
website=웹 사이트
version=버전
page=페이지
template=템플릿
language=언어
@@ -44,17 +43,22 @@ issues=이슈
cancel=취소
[status]
page_not_found=페이지를 찾을 수 없음
internal_server_error=내부 서버 오류
[install]
install=설치
title=첫 실행을 위한 설치단계
docker_helper=Gogs를 Docker에서 운영하고 있다면 <a target="_blank" href="%s">안내</a>를 읽고 변경해 주세요!
requite_db_desc=Gogs 는 MySQL, PostgreSQL, SQLite3, MSSQL 또는 TiDB 를 필요로 합니다.
requite_db_desc=Gogs는 MySQL, PostgreSQL, SQLite3, TiDB (MySQL protocol)을 필요로 합니다.
db_title=데이터베이스 설정
db_type=데이터베이스 유형
host=호스트
user=사용자
password=비밀번호
db_name=데이터베이스 이름
db_schema=스키마
db_helper=MySQL에서는 utf8_general_ci 캐릭터셋으로 INNODB엔진을 이용해 주세요
ssl_mode=SSL 모드
path=경로
@@ -84,6 +88,7 @@ log_root_path=로그 경로
log_root_path_helper=로그 파일을 쓸 디렉터리.
enable_console_mode=콘솔 모드 활성화
enable_console_mode_popup=파일 모드 외에 콘솔에 로그를 인쇄하세요.
default_branch=기본 브랜치
optional_title=추가설정
email_title=이메일 서비스 설정
@@ -119,9 +124,10 @@ sqlite3_not_available=설치하신 버전은 SQLite3을 지원하지 않으므
invalid_db_setting=데이터베이스 설정이 올바르지 않습니다: %v
invalid_repo_path=저장소 루트 경로가 올바르지 않습니다: %v
run_user_not_match=실행 유저가 현재 유저가 아닙니다: %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
smtp_host_missing_port=SMTP 호스트 포트가 주소에 없습니다.
invalid_smtp_from=SMTP 보낸 사람 필드가 유효하지 않습니다: %v
save_config_failed=설정을 저장할 수 없습니다: %v
init_failed=프로그램을 초기화하는데 실패하였습니다: %v
invalid_admin_setting=관리자 계정 설정이 잘못되었습니다: %v
install_success=환영합니다! Gogs를 선택해 주셔서 감사합니다.
invalid_log_root_path=로그 루트 경로가 올바르지 않습니다: %v
@@ -151,6 +157,8 @@ register_hepler_msg=이미 계정을 가지고 계신가요? 로그인하세요!
social_register_hepler_msg=계정을 가지고 계신가요? 연결하세요!
disable_register_prompt=죄송합니다, 가입이 비활성화 되어있습니다. 사이트 관리자에게 문의 해주세요.
disable_register_mail=죄송합니다. 메일 등록이 비활성화 되었습니다.
auth_source=인증 소스 편집
local=로컬
remember_me=자동 로그인
forgot_password=비밀번호 찾기
forget_password=비밀번호를 잊으셨습니까?
@@ -229,6 +237,7 @@ org_name_been_taken=이미 사용중인 조직 이름입니다.
team_name_been_taken=이미 사용중인 팀 이름입니다.
email_been_used=이미 사용중인 이메일 주소입니다.
username_password_incorrect=사용자 이름이나 비밀번호가 올바르지 않습니다.
auth_source_mismatch=선택 인증 소스는 사용자와 연결 됩니다.
enterred_invalid_repo_name=입력한 저장소 이름이 올바른지 확인하십시오.
enterred_invalid_owner_name=입력한 사용자 이름이 올바른지 확인하십시오.
enterred_invalid_password=입력한 비밀번호가 올바른지 확인하십시오.
@@ -256,8 +265,7 @@ following=팔로우 중
follow=추적하기
unfollow=추적해제
form.name_reserved=사용자 이름 '%s'는 예약되어 있습니다.
form.name_pattern_not_allowed=사용자 이름 패턴 '%s'은 허용 되지 않습니다.
form.name_not_allowed=사용자 이름 또는 패턴 %q 은(는) 허용되지 않습니다.
[settings]
profile=프로필
@@ -309,6 +317,7 @@ delete_email=삭제
email_deletion=이메일 삭제
email_deletion_desc=이메일 주소를 삭제하면 당신의 계정과 연관된 정보도 함께 삭제됩니다. 계속 하시겠습니까?
email_deletion_success=이메일 주소를 성공적으로 삭제되하였습니다!
email_deletion_primary=기본 이메일 주소를 삭제할 수 없습니다.
add_new_email=새 이메일 주소 추가
add_email=이메일 추가
add_email_confirmation_sent=새로운 이메일 주소 인증이 '%s'로 발송되었습니다. %d시간 안에 확인 절차를 완료하셔야 합니다.
@@ -340,28 +349,31 @@ two_factor_on=켜기
two_factor_off=끄기
two_factor_enable=활성화
two_factor_disable=비활성화
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title=Enable Two-factor Authentication
two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=Or enter the secret:
two_factor_then_enter_passcode=Then enter passcode:
two_factor_verify=Verify
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_disable_title=Disable Two-factor Authentication
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_success=Two-factor authentication has disabled successfully!
two_factor_view_recovery_codes=<a href="%s%s">복구 코드</a>를 안전한 장소에 저장해 두십시오. 인증 애플리케이션에 접근할 수 없을때 사용할 수 있습니다.
two_factor_http=HTTP/HTTPS 작업에 더이상 평문 사용자명과 비밀번호를 사용할 수 없습니다. <a href="%[1]s%[2]s">개인 액세스 토큰</a>을 생성후 사용해 주세요. 예. <code>%[3]s</code>.
two_factor_enable_title=2단계 인증 활성화
two_factor_scan_qr=인증 애플리케이션으로 이 이미지를 스캔하세요:
two_factor_or_enter_secret=또는 이 비밀키를 입력하세요:
two_factor_then_enter_passcode=그리고 코드를 입력하세요:
two_factor_verify=확인
two_factor_invalid_passcode=입력한 코드가 올바르지 않습니다. 다시 시도해 주세요!
two_factor_reused_passcode=입력하신 비밀번호가 이미 사용되였습니.다른 비밀번호를 사용해보십시오!.
two_factor_enable_error=2단계 인증 활성화 실패: %v
two_factor_enable_success=2단계 인증이 성공적으로 활성화되었습니다!
two_factor_recovery_codes_title=2단계 인증 복구 코드
two_factor_recovery_codes_desc=복구 코드는 당신이 2단계 인증 프로그램에 접근할 수 없을때 사용합니다. 각 코드들은 한 번만 사용될 수 있습니다. <b>이 코드들은 안전한 장소에 보관하세요.</b>
two_factor_regenerate_recovery_codes=복구 코드 재생성
two_factor_regenerate_recovery_codes_error=복구 코드 재생성 실패: %v
two_factor_regenerate_recovery_codes_success=성공적으로 새로운 복구 코드가 생성되었습니다!
two_factor_disable_title=2단계 인증 비활성화
two_factor_disable_desc=2단계 인증을 끄면 보안 수준이 낮아집니다. 계속하시겠습니까?
two_factor_disable_success=2단계 인증이 성공적으로 비활성화되었습니다!
manage_access_token=개인 액세스 토큰 관리
generate_new_token=새 토큰을 생성
tokens_desc=Gogs Api에 액세스 하는 데 사용할 수 있는 토큰입니다.
access_token_tips=개인 액세스 토큰은 사용자 이름 또는 비밀번호로 사용할 수 있습니다. Git 애플리케이션에서는 'x-access-token'을 사용자 이름으로 사용하고, 개인 액세스 토큰을 비밀번호로 사용하는 것이 권장됩니다.
new_token_desc=각 토큰은 당신의 모든 권한을 행사할 수 있습니다.
token_name=토큰 이름
generate_token=토큰 생성
@@ -370,15 +382,16 @@ delete_token=삭제
access_token_deletion=개인 액세스 토큰 삭제
access_token_deletion_desc=이 토큰을 사용하는 애플리케이션의 접근권한 또한 삭제됩니다. 계속 하시겠습니까?
delete_token_success=액세스 토큰이 삭제되었습니다. 애플리케이션의 업데이트도 잊지 마세요.
token_name_exists=같은 이름의 토큰이 이미 존재합니다.
orgs.none=당신은 어떤 조직의 구성원도 아닙니다.
orgs.leave_title=조직 떠나기
orgs.leave_desc=조직을 떠난 후에는 모든 리포지토리와 팀에 액세스 할 수 없게 됩니다. 계속 하시겠습니까?
repos.leave=Leave
repos.leave_title=Leave repository
repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
repos.leave_success=You have left repository '%s' successfully!
repos.leave=나가기
repos.leave_title=저장소 나가기
repos.leave_desc=이 페지를 떠나면 저장소에 액세스할수 없게 됩니다. 계속하시겠습니까?
repos.leave_success=당신은 저장소 '%s' 에서 성공적으로 탈퇴하였습니다.!
delete_account=계정 삭제
delete_prompt=당신의 계정을 삭제합니다. 완료된 후에는 <strong>취소할 수 없습니다</strong>.
@@ -391,7 +404,9 @@ owner=소유자
repo_name=저장소 이름
repo_name_helper=좋은 저장소 이름은 짧고 기억하기 좋은 유니크한 키워드로 이루어 집니다.
visibility=가시성
unlisted=비공개
visiblity_helper=이 저장소는 <span class="ui red text">비공개</span> 저장소입니다
unlisted_helper=이 저장소는 <span class="ui red text">비공개</span> 저장소입니다.
visiblity_helper_forced=사이트 관리자가 모든 저장소를 <span class="ui red text">비공개</span>로 변경하였습니다.
visiblity_fork_helper=(이 값의 변경은 모든 포크에 영향을 줍니다)
clone_helper=클론하는데에 도움이 필요하면 <a target="_blank" href="%s">Help</a>에 방문하세요.
@@ -417,10 +432,11 @@ mirror_last_synced=마지막으로 동기화됨
watchers=주시하고 있는 사람들
stargazers=별을 준 사람들
forks=포크
repo_description_helper=저장소 설명.최대 512길이의 문자열이 가능합니다.
repo_description_length=가능한 문자열입니다.
form.reach_limit_of_creation=소유자가 저장소 만들기 최대 제한에 (%d개) 도달했습니다.
form.name_reserved=저장소 이름 '%s'은 예약 되어 있습니다.
form.name_pattern_not_allowed=저장소 이름 패턴 '%s'은 허용 되지 않습니다.
form.name_not_allowed=저장소명 또는 패턴 %q 은(는) 허용되지 않습니다.
need_auth=인증 필요
migrate_type=마이그레이션 유형
@@ -431,6 +447,7 @@ migrate.clone_address_desc=HTTP/HTTPS/GIT URL일 수 있습니다.
migrate.clone_address_desc_import_local=로컬 서버 경로를 기준으로 저장소를 마이그레이션 할 수도 있습니다.
migrate.permission_denied=로컬 저장소는 가져오기를 할 수 없습니다.
migrate.invalid_local_path=잘못된 로컬 경로입니다. 존재하지 않는 경로거나 폴더가 아닙니다.
migrate.clone_address_resolved_to_blocked_local_address=복제 주소는 암묵적으로 차단된 로컬 네트워크 주소로 확인되었습니다.
migrate.failed=마이그레이션 실패: %v
mirror_from=의 미러
@@ -450,7 +467,7 @@ quick_guide=퀵 가이드
clone_this_repo=이 저장소 복제
create_new_repo_command=커맨드 라인에서 새 저장소 만들기
push_exist_repo=커맨드 라인에서 기존 저장소 푸시하기
bare_message=This repository does not have any content yet.
bare_message=이 저장소에는 아직 내용이 없습니다.
files=파일
branch=브렌치
@@ -463,7 +480,7 @@ pulls=풀 리퀘스트
labels=레이블
milestones=마일스톤
commits=커밋
git_branches=Branches
git_branches=브랜치
releases=릴리즈
file_raw=Raw
file_history=히스토리
@@ -472,12 +489,14 @@ file_permalink=고유링크
file_too_large=이 파일은 표시하기엔 너무 큽니다.
video_not_supported_in_browser=이 브라우저는 HTML5 비디오 태그를 지원하지 않습니다.
branches.overview=Overview
branches.active_branches=Active Branches
branches.stale_branches=Stale Branches
branches.all=All Branches
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Change Default Branch
branches.overview=개요
branches.active_branches=활성 브랜치
branches.stale_branches=오래된 브랜치
branches.all=모든 브랜치
branches.updated_by=%[2]s %[1]s를 업데이트
branches.change_default_branch=기본 브랜치 변경
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=파일 생성
editor.upload_file=파일 업로드
@@ -514,6 +533,7 @@ editor.file_changed_while_editing=편집을 시작한 이후 파일 내용이
editor.file_already_exists=이 저장소에 이름이 '%s'인 파일이 이미 존재합니다.
editor.no_changes_to_show=표시할 변경사항이 없습니다.
editor.fail_to_update_file=파일 '%s'를 변경/추가 하는데 실패하였습니다. 에러: %v
editor.fail_to_delete_file=파일 '%s'를 삭제하는데 실패하였습니다. 오유: %v
editor.add_subdir=하위 디렉토리 추가...
editor.unable_to_upload_files=파일 '%s'를 업로드하는데 실패하였습니다. 에러: %v
editor.upload_files_to_dir=파일 업로드 '%s'
@@ -616,6 +636,7 @@ pulls.compare_compare=비교
pulls.filter_branch=Filter Branch
pulls.no_results=결과 없음
pulls.nothing_to_compare=Base 와 head 브랜치가 동일해서 비교할 게 없습니다.
pulls.nothing_merge_base=두 브런치의 리력이 완전히 다르므로 비교할수 없습니다.
pulls.has_pull_request=`이 두 타겟 사이엔 이미 풀 리퀘스트가 있습니다:<a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=풀 리퀘스트 생성
pulls.title_desc=<code>%[2]s</code> 에서 <code>%[3]s</code> 로 %[1]d commits 를 머지하려 합니다
@@ -632,6 +653,9 @@ pulls.is_checking=아직 컨플릭트 여부 체크 중입니다, 잠시 후 이
pulls.can_auto_merge_desc=이 풀리퀘스트는 자동적으로 머지될 수 있습니다.
pulls.cannot_auto_merge_desc=컨플릭이 존재해서 이 풀리퀘스트는 자동을 머지될 수 없습니다.
pulls.cannot_auto_merge_helper=컨플릭을 해결하려면 수동으로 머지해 주십시오.
pulls.create_merge_commit=합치기커밋 생성
pulls.rebase_before_merging=병합 하기 전에 리베이스
pulls.commit_description=커밋설명
pulls.merge_pull_request=풀리퀘스트 머지
pulls.open_unmerged_pull_exists=`같은 리파지토리에서 같은 머지 정보로 만들어진 풀리퀘스트 (#%d) 가 이미 오픈 상태이고 머지를 기다리고 있기 때문에 다시 열기 작업을 할 수 없습니다.`
pulls.delete_branch=브랜치 삭제
@@ -687,11 +711,11 @@ settings.collaboration.write=쓰기
settings.collaboration.read=읽기
settings.collaboration.undefined=미정의
settings.branches=브랜치
settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
settings.branches_bare=당신은 빈 저장소에 대한 브런치를 관리할수 없습니다. 먼저 저장소에 내용을 푸쉬하십시오.
settings.default_branch=기본 브랜치
settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
settings.default_branch_desc=기본 브랜치는 코드 커밋, 풀 리퀘스트 및 온라인 편집을 위한 "기본" 브랜치로 간주됩니다.
settings.update=업데이트
settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
settings.update_default_branch_unsupported=서버의 Git 버전에서는 기본 브랜치 변경이 지원되지 않습니다.
settings.update_default_branch_success=이 레포지토리의 기본 브랜치가 성공적으로 설정되었습니다!
settings.protected_branches=보호된 브랜치
settings.protected_branches_desc=보호된 브랜치는 force 푸시, 실수로 인한 코드 삭제를 방지하며 코드 커미터를 화이트리스트 합니다.
@@ -703,12 +727,12 @@ settings.protect_this_branch_desc=Force 푸시와 삭제를 비활성화합니
settings.protect_require_pull_request=직접 push 를 하지 않고 Pull Request 를 필요로 하도록 합니다.
settings.protect_require_pull_request_desc=이 브랜치에 직접 푸시를 하는 것을 막고 싶다면 이 옵션을 활성화하세요. 커밋은 다른 비보호 브랜치에 푸시되어야 하며 이 브랜치에는 Pull Request 를 통해 병합될 것입니다.
settings.protect_whitelist_committers=이 브랜치에 푸시할 수 있는 유저
settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_committers_desc=이 브랜치에 직접 푸시할 수 있는 허용 목록에 사람 또는 팀을 추가합니다. 허용 목록에 있는 사용자는 풀 리퀘스트 확인을 거치지 않습니다.
settings.protect_whitelist_users=이 브랜치에 푸시를 할 수 있는 유저
settings.protect_whitelist_search_users=유저 검색
settings.protect_whitelist_teams=Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams=Search teams
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.protect_whitelist_teams=이 브랜치에 푸시할 수 있는 팀의 멤버들
settings.protect_whitelist_search_teams=팀 검색
settings.update_protect_branch_success=브랜치의 보호 옵션이 성공적으로 업데이트되었습니다!
settings.hooks=Webhooks
settings.githooks=Git Hooks
settings.basic_settings=기본 설정
@@ -721,13 +745,13 @@ settings.change_reponame_prompt=이 변경은 이 저장소와 연관된 링크
settings.advanced_settings=고급 설정
settings.wiki_desc=위키 시스템 활성화
settings.use_internal_wiki=내장 위키 사용
settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.allow_public_wiki_desc=저장소가 비공개되어 있으면 위키에 공개적으로 접속할 수 있도록 허용하기
settings.use_external_wiki=외부 위키 사용하기
settings.external_wiki_url=외부 위키 URL
settings.external_wiki_url_desc=탭을 클릭하면 URL로 리다이렉트됩니다.
settings.issues_desc=이슈 추적기를 사용하도록 설정
settings.use_internal_issue_tracker=내장된 경량 이슈 트레커를 사용
settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.allow_public_issues_desc=저장소가 비공개인 경우 이슈에 공개적으로 접속할 수 있도록 허용하기
settings.use_external_issue_tracker=외부 이슈 트래커 사용하기
settings.external_tracker_url=외부 이슈 트래커 URL
settings.external_tracker_url_desc=방문자는 탭을 클릭하면 URL로 리다이렉트 됩니다.
@@ -736,9 +760,11 @@ settings.tracker_issue_style=외부 이슈 트래커 명명 스타일:
settings.tracker_issue_style.numeric=숫자
settings.tracker_issue_style.alphanumeric=문자 숫자
settings.tracker_url_format_desc=<code>{user} {repo} {index}</code> 사용자 명, 저장소 명, 이슈 인덱스를 사용하여 표시자를 사용할 수 있습니다.
settings.pulls_desc=끌어오기 요청을 공개적으로 기여받을 수 있도록 활성화합니다.
settings.pulls_desc=다른 저장소와 브랜치 간의 기여를 수용할 수 있도록 풀 리퀘스트 활성화
settings.pulls.ignore_whitespace=공백 변경 무시
settings.pulls.allow_rebase_merge=커밋을 머지하기 위해 리베이스 사용 허용
settings.danger_zone=위험 설정
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.cannot_fork_to_same_owner=본인 소유의 저장소를 본인 명의로 포크할 수 없습니다.
settings.new_owner_has_same_repo=새로운 소유자가 같은 이름의 저장소를 이미 가지고 있습니다. 다른 이름을 선택해주세요.
settings.convert=일반 리파지토리로 변환
settings.convert_desc=이 미러를 일반 리파지토리로 변환할 수 없습니다. 반대로는 할 수 없습니다.
@@ -757,7 +783,7 @@ settings.wiki_deletion_success=저장소의 Wiki 데이터가 성공적으로
settings.delete=이 저장소 삭제
settings.delete_desc=저장소를 지우고 나면 되돌릴 수 없습니다. 다시 한번 확인하세요.
settings.delete_notices_1=- 이 작업은 취소할 수 <strong>없습니다.</strong>
settings.delete_notices_2=- 이 작업은 저장소의 모든 항목을 영구적으로 삭제합니다. Git 데이터, 이슈, 주석 및 공동 작업자 액세스를 포함합니다.
settings.delete_notices_2=- 이 작업을 수행하면 Git 데이터, 이슈, 댓글, 협업자 액세스 등 이 저장소의 모든 내용이 영구적으로 삭제됩니다.
settings.delete_notices_fork_1=- 모든 포크들은 삭제 후에도 독립적으로 유지됩니다.
settings.deletion_success=저장소가 성공적으로 삭제 되었습니다!
settings.update_settings_success=저장소 옵션이 성공적으로 업데이트 되었습니다.
@@ -773,21 +799,25 @@ settings.collaborator_deletion_desc=이 사용자는 더 이상 이 저장소의
settings.remove_collaborator_success=공동작업자가 삭제 되었습니다.
settings.search_user_placeholder=사용자 검색...
settings.org_not_allowed_to_be_collaborator=조직을 공동 작업자로 추가할 수 없습니다.
settings.add_webhook=Webhook 추가
settings.hooks_desc=웹후크는 기본적인 HTTP POST 이벤트 트리거입니다. Gogs에서 무슨 일이 발생할 때마다, 지정한 대상 호스트에 알림을 보냅니다. <a target="_blank" href="%s">웹후크 안내서</a>에서 자세히 알아보십시오.
settings.webhooks.add_new=새 웹훅 추가
settings.webhooks.choose_a_type=유형 선택...
settings.add_webhook=Webhook 추가
settings.webhook_deletion=Webhook 삭제
settings.webhook_deletion_desc=이 웹훅을 삭제하면 정보와 모든 전송기록이 제거됩니다. 계속 하시겠습니까?
settings.webhook_deletion_success=Webhook을 성공적으로 삭제했습니다!
settings.webhook.test_delivery=전달 시험
settings.webhook.test_delivery_desc=가짜 푸시 이벤트 전달하여 웹훅 설정을 테스트합니다.
settings.webhook.test_delivery_success=Webhook 테스트가 delivery 큐에 추가되었습니다. delivery 기록에서 나오기까지 몇 초의 시간이 걸릴 것입니다.
settings.webhook.redelivery=Redelivery
settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.redelivery=재전송
settings.webhook.redelivery_success=웹훅 작업 '%s'이(가) 다시 전달 큐에 추가되었습니다. 전달 상태는 이력에서 잠시 후 반영됩니다.
settings.webhook.request=요청
settings.webhook.response=응답
settings.webhook.headers=제목
settings.webhook.payload=페이로드
settings.webhook.body=본문
settings.webhook.err_cannot_parse_payload_url=페이로드 URL을 구문 분석할 수 없습니다: %v
settings.webhook.url_resolved_to_blocked_local_address=로컬 네트워크 주소로 확인된 페이로드 URL이 암묵적으로 차단되었습니다.
settings.githooks_desc=Git Hooks는 Git 자체에서 제공되며, 아래 목록에서 지원되는 후크 파일을 편집하여 사용자 정의 작업을 수행 할 수 있습니다.
settings.githook_edit_desc=후크가 비활성인 경우 샘플 콘텐츠가 표시됩니다. 내용을 빈 값으로 두면 이 훅은 비활성화됩니다.
settings.githook_name=Hook 이름
@@ -797,7 +827,7 @@ settings.add_webhook_desc=Gogs는 발생한 이벤트와 관련하여 지정한
settings.payload_url=페이로드 URL
settings.content_type=컨텐츠 타입
settings.secret=비밀
settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via <code>X-Gogs-Signature</code> header.
settings.secret_desc=시크릿은 <code>X-Gogs-Signature</code> 헤더를 통해 페이로드의 SHA256 HMAC 16진수 다이제스트로 전송됩니다.
settings.slack_username=사용자 이름
settings.slack_icon_url=아이콘 URL
settings.slack_color=
@@ -807,20 +837,20 @@ settings.event_send_everything=<strong>모든 것</strong>이 필요합니다.
settings.event_choose=필요한 것을 선택해주세요.
settings.event_create=생성
settings.event_create_desc=브랜치 또는 태그를 생성합니다.
settings.event_delete=Delete
settings.event_delete_desc=Branch or tag deleted
settings.event_fork=Fork
settings.event_fork_desc=Repository forked
settings.event_delete=삭제
settings.event_delete_desc=브랜치나 태그 삭제됨
settings.event_fork=포크
settings.event_fork_desc=저장소 포크됨
settings.event_push=푸시
settings.event_push_desc=깃 저장소로 푸시
settings.event_issues=Issues
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_issues=이슈
settings.event_issues_desc=이슈가 생성됨, 닫힘, 다시 열림, 편집됨, 담당자 지정 또는 해제, 라벨 업데이트 또는 제거, 마일스톤 지정 또는 해제됨.
settings.event_pull_request=끌어오기 요청
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_release=Release
settings.event_release_desc=Release published in a repository.
settings.event_issue_comment=이슈 댓글
settings.event_issue_comment_desc=이슈 댓글이 작성, 편집 또는 삭제되었습니다.
settings.event_release=릴리즈
settings.event_release_desc=저장소에 릴리즈가 출시되었습니다.
settings.active=활성
settings.active_helper=후크를 트리거하면 이벤트에 대한 세부 정보도 전달됩니다.
settings.add_hook_success=새로운 웹훅이 생성되었습니다.
@@ -831,6 +861,7 @@ settings.recent_deliveries=최근의 Deliveries
settings.hook_type=훅 타입
settings.add_slack_hook_desc=저장소에 <a href="%s">슬랙</a>연동을 추가
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=토큰
settings.slack_domain=도메인
settings.slack_channel=채널
@@ -847,6 +878,8 @@ settings.add_key_success=새로운 배포 키 '%s'가 성공적으로 추가 되
settings.deploy_key_deletion=배포 키 삭제
settings.deploy_key_deletion_desc=이 배포키를 삭제하면 이 저장소와 관련된 모든 접근 권한이 삭제됩니다. 계속 하시겠습니까?
settings.deploy_key_deletion_success=배포 키가 성공적으로 삭제되었습니다!
settings.description_desc=저장소 설명입니다. 최대 512길이의 문자열이 가능합니다.
settings.description_length=사용 가능한 문자열
diff.browse_source=소스 검색
diff.parent=부모
@@ -911,9 +944,8 @@ team_name_helper=대화에서 이 팀을 언급할 때 이 이름을 사용합
team_desc_helper=이 팀은 무엇입니까?
team_permission_desc=이 팀이 가진 권한이 무엇입니까?
form.name_reserved=조직이름 '%s'는 예약되어있습니다.
form.name_pattern_not_allowed=조직이름 패턴 '%s'는 허용되지 않았습니다.
form.team_name_reserved=Team name '%s' is reserved.
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=설정
settings.options=옵션
@@ -985,12 +1017,19 @@ first_page=처음
last_page=마지막
total=총: %d
dashboard.build_info=빌드정보
dashboard.app_ver=애플리케이션 버전
dashboard.git_version=Git 버전
dashboard.go_version=Go 버전
dashboard.build_time=태그 만들기
dashboard.build_commit=빌드 커밋
dashboard.statistic=통계
dashboard.operations=작업
dashboard.system_status=시스템 모니터 상태
dashboard.statistic_info=Gogs 데이터베이스에는 <b>%d</b>명의 사용자, <b>%d</b> 조직, <b>%d</b> 공개 키, <b>%d</b> 저장소, <b>%d</b> 주시, <b>%d</b> 별, <b>%d</b> 활동, <b>%d</b> 접근, <b>%d</b> 이슈, <b>%d</b> 댓글, <b>%d</b> 소셜 계정, <b>%d</b> 팔로우, <b>%d</b> 미러, <b>%d</b> 릴리즈, <b>%d</b> 로그인 소스, <b>%d</b> 웹훅, <b>%d</b> 마일스톤, <b>%d</b> 라벨, <b>%d</b> 훅 태스크, <b>%d</b> 팀, <b>%d</b> 업데이트 태스크, <b>%d</b> 첨부파일이 있습니다.
dashboard.operation_name=작업 명
dashboard.operation_switch=스위치
dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=실행
dashboard.clean_unbind_oauth=연결되지 않은 OAuth들을 정리
dashboard.clean_unbind_oauth_success=연결되지 않은 모든 OAuth들이 성공적으로 삭제되었습니다.
@@ -1080,13 +1119,14 @@ repos.private=비공개
repos.watches=지켜보기
repos.stars=Stars
repos.issues=이슈
repos.size=Size
repos.size=크기
auths.auth_manage_panel=인증 관리 패널
auths.auth_sources=인증 소스
auths.new=새로운 소스를 추가
auths.name=이름
auths.type=유형
auths.enabled=활성화됨
auths.default=기본값
auths.updated=업데이트됨
auths.auth_type=인증 유형
auths.auth_name=인증 이름
@@ -1095,18 +1135,19 @@ auths.domain=도메인
auths.host=호스트
auths.port=포트
auths.bind_dn=DN 연결
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=비밀번호 연결
auths.bind_password_helper=경고: 이 암호는 일반 텍스트로 저장됩니다. 높은 권한의 계정을 사용하지 마십시오.
auths.user_base=사용자 검색 기준
auths.user_dn=사용자 DN
auths.attribute_username=유저 명 속성
auths.attribute_username_placeholder=사용자 이름에 대한 로그인 폼 필드 값을 사용하려면 비워 둡니다.
auths.attribute_name=First Name Attribute
auths.attribute_name=첫번째 이름 속성
auths.attribute_surname=성씨 속성
auths.attribute_mail=이메일 속성
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.verify_group_membership=그룹 구성원 자격을 확인
auths.group_search_base_dn=그룹 설정 Base DN
auths.group_filter=그룹 필터
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=DN 컨텍스트에서 속성을 가져와 연결합니다.
@@ -1122,9 +1163,9 @@ auths.enable_tls=TLS 암호화 활성화
auths.skip_tls_verify=TLS 검증 건너뛰기
auths.pam_service_name=PAM 서비스 명
auths.enable_auto_register=자동 등록을 활성화
auths.tips=도움말
auths.edit=인증 설정 편집
auths.activated=이 인증정보는 활성화되어있습니다.
auths.default_auth=This authentication is default login source
auths.new_success=새로운 인증 '%s'가 성공적으로 추가 되었습니다.
auths.update_success=인증 설정이 성공적으로 변경되었습니다.
auths.update=인증 설정 업데이트
@@ -1134,117 +1175,188 @@ auths.delete_auth_desc=이 인증이 삭제됩니다. 정말로 진행하시겠
auths.still_in_used=이 인증은 아직 몇몇 사용자들이 사용하고 있습니다, 먼저 사용자들의 로그인 유형을 삭제하거나 변경해주십시오.
auths.deletion_success=인증이 성공적으로 삭제 되었습니다!
auths.login_source_exist=로그인 소스 '%s'는 이미 존재합니다.
auths.github_api_endpoint=API 끝점
config.not_set=(설정되지 않음)
config.server_config=서버 설정
config.app_name=애플리케이션 이름
config.app_ver=응용 프로그램 버전
config.app_url=애플리케이션 URL
config.domain=도메인
config.offline_mode=오프라인 모드
config.disable_router_log=라우터 로그 비활성화
config.brand_name=브랜드 이름
config.run_user=데몬 실행 계정
config.run_mode=실행 모드
config.git_version=Git 버전
config.static_file_root_path=정적 파일 최상위 경로
config.log_file_root_path=로그 파일 최상위 경로
config.reverse_auth_user=역방향 사용자 인증
config.server.external_url=외부 URL
config.server.domain=도메인
config.server.protocol=프로토콜
config.server.http_addr=HTTP 주소
config.server.http_port=HTTP 포트
config.server.cert_file=인증서 파일
config.server.key_file=키 파일
config.server.tls_min_version=최소 TLS 버전
config.server.unix_socket_permission=Unix 소켓 권한
config.server.local_root_url=로컬 최상위 URL
config.server.offline_mode=오프라인 모드
config.server.disable_router_log=라우터 로그 비활성화
config.server.enable_gzip=Gzip 활성화
config.server.app_data_path=애플리케이션 데이터 경로
config.server.load_assets_from_disk=디스크에서 요소 불러오기
config.server.landing_url=랜딩 URL
config.ssh_config=SSH 설정
config.ssh_enabled=활성화됨
config.ssh_start_builtin_server=빌트인 서버 시작
config.ssh_domain=도메인
config.ssh_port=포트
config.ssh_listen_port=수신 대기 포트
config.ssh_root_path=최상위 경로
config.ssh_key_test_path=주 테스트 경로
config.ssh_keygen_path=키 생성 ('ssh-keygen') 경로
config.ssh_minimum_key_size_check=최소 키 사이즈 검사
config.ssh_minimum_key_sizes=최소 키 사이즈
config.ssh.enabled=활성화됨
config.ssh.domain=노출된 도메인
config.ssh.port=노출 포트
config.ssh.root_path=최상위 경로
config.ssh.keygen_path=키 생성 경로
config.ssh.key_test_path=키 테스트 경로
config.ssh.minimum_key_size_check=최소 키 크기 검사
config.ssh.minimum_key_sizes=최소 키 사이즈
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=빌트인 서버 시작
config.ssh.listen_host=수신 대기 호스트
config.ssh.listen_port=수신 대기 포트
config.ssh.server_ciphers=서버 암호화
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Repository Configuration
config.repo_root_path=저장소 최상위 경로
config.script_type=스크립트 유형
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Disable HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.repo_config=저장소 설정
config.repo.root_path=최상위 경로
config.repo.script_type=스크립트 유형
config.repo.ansi_chatset=ANSI 문자열
config.repo.force_private=비공개 강제
config.repo.max_creation_limit=최대 생성 제한
config.repo.preferred_licenses=선호 라이선스
config.repo.disable_http_git=HTTP Git 비활성화
config.repo.enable_local_path_migration=로컬 경로 마이그레이션 활성화
config.repo.enable_raw_file_render_mode=raw 파일 렌더링 모드 활성화
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=편집기 줄 바꿈 확장
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=업로드 활성화됨
config.repo.upload.temp_path=임시 경로 업로드
config.repo.upload.allowed_types=허용되는 유형 업로드
config.repo.upload.file_max_size=업로드 파일 크기 제한
config.repo.upload.max_files=업로드 파일 제한
config.db_config=데이터베이스 설정
config.db_type=유형
config.db_host=호스트
config.db_name=이름
config.db_user=사용자
config.db_ssl_mode=SSL 모드
config.db_ssl_mode_helper=("postgres" 전용)
config.db_path=경로
config.db_path_helper=("sqlite3" 및 "tidb"만)
config.db.type=유형
config.db.host=호스트
config.db.name=이름
config.db.schema=스키마
config.db.schema_helper=("postgres" 전용)
config.db.user=사용자
config.db.ssl_mode=SSL 모드
config.db.ssl_mode_helper=("postgres" 전용)
config.db.path=경로
config.db.path_helper={"sqlite3" 전용)
config.db.max_open_conns=Maximum open connections
config.db.max_idle_conns=Maximum idle connections
config.service_config=서비스 설정
config.register_email_confirm=이메일 확인 필수
config.disable_register=등록 비활성화
config.show_registration_button=등록 버튼을 표시
config.require_sign_in_view=보기 위해선 로그인 필수
config.mail_notify=메일 알림
config.disable_key_size_check=최소 키 크기 검사를 비활성화
config.enable_captcha=Captcha 활성화
config.active_code_lives=코드 만료 기한
config.reset_password_code_lives=비밀번호 코드 만료 기한
config.security_config=보안 설정
config.security.login_remember_days=로그인 기억 날짜
config.security.cookie_remember_name=쿠키 기억하기
config.security.cookie_username=사용자 이름 쿠키
config.security.cookie_secure=보안 쿠키 활성화
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=로그인 상태 쿠키 활성화
config.security.login_status_cookie_name=로그인 상태 쿠키
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=웹훅 설정
config.queue_length=큐 길이
config.deliver_timeout=시간 제한 사용
config.skip_tls_verify=TLS 확인 건너뛰기
config.email_config=이메일 설정
config.email.enabled=활성화됨
config.email.subject_prefix=제목 접두어
config.email.host=호스트
config.email.from=보내는 사람
config.email.user=사용자
config.email.disable_helo=HELO 비활성화
config.email.helo_hostname=HELO 호스트 이름
config.email.skip_verify=인증서 검증 건너뛰기
config.email.use_certificate=커스텀 인증서 사용하기
config.email.cert_file=인증서 파일
config.email.key_file=키 파일
config.email.use_plain_text=평문 텍스트 사용
config.email.add_plain_text_alt=평문 텍스트 대체 추가
config.email.send_test_mail=테스트 이메일 보내기
config.email.test_mail_failed=Failed to send test email to '%s': %v
config.email.test_mail_sent='%s'로 테스트 이메일을 보냈습니다.
config.mailer_config=메일러 설정
config.mailer_enabled=활성화됨
config.mailer_disable_helo=HELO 비활성화
config.mailer_name=이름
config.mailer_host=호스트
config.mailer_user=사용자
config.send_test_mail=테스트 이메일 보내기
config.test_mail_failed='%s'로 테스트 이메일을 보내는데 실패하였습니다.: %v
config.test_mail_sent='%s'로 테스트 이메일을 보냈습니다.
config.auth_config=Authentication configuration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=이메일 인증 필요
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=등록 비활성화
config.auth.enable_registration_captcha=등록시 CAPTCHA 사용
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=OAuth 설정
config.oauth_enabled=활성화
config.cache_config=캐시 설정
config.cache_adapter=캐시 어댑터
config.cache_interval=캐시 간격
config.cache_conn=캐시 연결
config.user_config=User configuration
config.user.enable_email_notify=이메일 알림 활성화
config.session_config=세션 설정
config.session_provider=세션 공급자
config.provider_config=공급자 설정
config.cookie_name=쿠키 이름
config.enable_set_cookie=쿠키 활성화
config.gc_interval_time=GC 인터벌 시
config.session_life_time=세션 수명
config.https_only=HTTPS만
config.cookie_life_time=쿠키 수명
config.session.provider=공급자
config.session.provider_config=공급자 설정
config.session.cookie_name=쿠키
config.session.https_only=HTTPS만
config.session.gc_interval=GC 간
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=CSRF 쿠키
config.cache_config=캐시 설정
config.cache.adapter=Adapter
config.cache.interval=GC 간격
config.cache.host=호스트
config.http_config=HTTP 설정
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=첨부 파일 설정
config.attachment.enabled=활성화됨
config.attachment.path=경로
config.attachment.allowed_types=허용 유형
config.attachment.max_size=크기 제한
config.attachment.max_files=파일 제한
config.release_config=릴리즈 설정
config.release.attachment.enabled=첨부 파일 활성화됨
config.release.attachment.allowed_types=허용되는 첨부 파일 유형
config.release.attachment.max_size=첨부 파일 크기 제한
config.release.attachment.max_files=첨부 파일 제한
config.picture_config=이미지 설정
config.picture_service=이미지 서비스
config.disable_gravatar=Gravatar 사용안함
config.enable_federated_avatar=연합 아바타 사용
config.picture.avatar_upload_path=사용자 아바타 업로드 경로
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatar source
config.picture.disable_gravatar=Gravatar 비활성화
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=미러 설정
config.mirror.default_interval=기본 간격
config.webhook_config=웹훅 설정
config.webhook.types=유형
config.webhook.deliver_timeout=배달 제한 시간
config.webhook.skip_tls_verify=TLS 검증 건너뛰기
config.git_config=깃 설정
config.git_disable_diff_highlight=변경 사항 구문 강조 비활성화
config.git_max_diff_lines=변경사항 최대 표시 줄 수 (단일 파일에 대해)
config.git_max_diff_line_characters=변경사항 최대 표시 문자 수 (단일 행에 대해)
config.git_max_diff_files=변경사항 최대 파일 개 수 (표시 되는)
config.git_gc_args=가비지 콜렉션 인수
config.git_migrate_timeout=마이그레이션 제한 시간
config.git_mirror_timeout=미러 업데이트 시간 제한
config.git_clone_timeout=복제 작업 시간 제한
config.git_pull_timeout=끌어오기 작업 시간 제한
config.git_gc_timeout=가비지 콜렉션 작업 시간 제한
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC 인수
config.git.migrate_timeout=마이그레이션 제한 시간
config.git.mirror_timeout=미러 페치 제한 시간
config.git.clone_timeout=클론 제한 시간
config.git.pull_timeout=풀 제한 시간
config.git.gc_timeout=GC 제한 시간
config.lfs_config=LFS 구성
config.lfs.storage=저장소
config.lfs.objects_path=Objects path
config.log_config=로그 설정
config.log_mode=Mode
config.log_options=Options
config.log_file_root_path=로그 파일 최상위 경로
config.log_mode=모드
config.log_options=설정
monitor.cron=Cron 작업
monitor.name=이름
@@ -1273,7 +1385,6 @@ notices.delete_success=시스템 알림들이 성공적으로 삭제되었습니
[action]
create_repo=저장소를 만들었습니다. <a href="%s">%s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
rename_repo=<code>%[1]s에서</code>에서 <a href="%[2]s"> %[3]s</a>으로 저장소 이름을 바꾸었습니다.
commit_repo=<a href="%[1]s">%[4]s</a>에서 <a href="%[1]s/src/%[2]s">%[3]s</a>으로 푸시함
compare_commits=이 %d개의 커밋에 대한 비교 보기
@@ -1289,7 +1400,11 @@ merge_pull_request=`병합된 끌어오기 요청 <a href="%s/pulls/%s"> %s #%[2
create_branch=created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
delete_branch=deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=태그 <a href="%s/src/%s">%[2]s</a>를 <a href="%[1]s">%[3]s</a>로 푸시함
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
delete_tag=<a href="%[1]s">%[3]s</a>에서 code>%[2]s</code> 태그 삭제됨
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=
@@ -1311,6 +1426,7 @@ months=%d 달 %s
years=%d 년 %s
raw_seconds=
raw_minutes=
raw_hours=시간
[dropzone]
default_message=여기에 파일을 끌어 놓거나 클릭하여 업로드하세요.

View File

@@ -9,7 +9,6 @@ sign_out=Izrakstīties
sign_up=Reģistrēties
register=Reģistrēties
website=Mājas lapa
version=Versija
page=Lapa
template=Sagatave
language=Valoda
@@ -44,17 +43,22 @@ issues=Problēmas
cancel=Atcelt
[status]
page_not_found=Page Not Found
internal_server_error=Internal Server Error
[install]
install=Instalācija
title=Instalācijas soļi pirmo reizi palaižot
docker_helper=Ja Gogs tiek lietots zem Docker, izlasiet uzmanīgi <a target="_blank" href="%s">vadlīnijas</a>, pirms ko maināt šajā lapā!
requite_db_desc=Gogs ir nepieciešams MySQL, PostgreSQL, SQLite3, MSSQL vai TiDB.
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Datu bāzes iestatījumi
db_type=Datu bāzes veids
host=Resursdators
user=Lietotājs
password=Parole
db_name=Datu bāzes nosaukums
db_schema=Schema
db_helper=Nepieciešams izmantot MySQL INNODB dzini ar rakstzīmju kopu utf8_general_ci.
ssl_mode=SSL režīms
path=Ceļš
@@ -84,6 +88,7 @@ log_root_path=Žurnalizēšanas direktorija
log_root_path_helper=Direktorija, kurā tiks glabāti žurnāla faili.
enable_console_mode=Iespējot konsoles režīmu
enable_console_mode_popup=Papildus faila režīmam, papildus rakstīt žurnāla ierakstus konsolē.
default_branch=Default Branch
optional_title=Neobligātie iestatījumi
email_title=E-pasta pakalpojuma iestatījumi
@@ -119,9 +124,10 @@ sqlite3_not_available=Jūsu versija neatbalsta SQLite3, lūdzu lejupielādējiet
invalid_db_setting=Datu bāzes iestatījums nav pareizs: %v
invalid_repo_path=Repozitorija atrašanās vieta ir nekorekta: %v
run_user_not_match=Izpildes lietotājs nav pašreizējais lietotājs: %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
smtp_host_missing_port=SMTP adresē nav norādīts ports.
invalid_smtp_from=SMTP sūtītāja lauks ir nekorekts: %v
save_config_failed=Neizdevās saglabāt konfigurāciju: %v
init_failed=Failed to initialize application: %v
invalid_admin_setting=Nekorekts admin konta iestatījums: %v
install_success=Laipni lūdzam! Mēs priecājamies, ka Jūs izvēlaties Gogs, patīkamu lietošanu!
invalid_log_root_path=Norādītā žurnalizēšanas direktorija ir kļūdaina: %v
@@ -151,6 +157,8 @@ register_hepler_msg=Jau ir konts? Pieraksties tagad!
social_register_hepler_msg=Jau ir konts? Sasaisti tagad!
disable_register_prompt=Atvainojiet, reģistrācija ir atspējota. Lūdzu, sazinieties ar vietnes administratoru.
disable_register_mail=Atvainojiet, reģistrācijas e-pasta apstiprināšana ir atspējota.
auth_source=Autentificēšanas avots
local=Local
remember_me=Atcerēties mani
forgot_password=Aizmirsu paroli
forget_password=Aizmirsi paroli?
@@ -212,7 +220,7 @@ Content=Saturs
require_error=` nedrīkst būt tukšs.`
alpha_dash_error=` drīkst saturēt tikai latīņu alfabēta burtus, ciparus vai domuzīmes (-_).`
alpha_dash_dot_error=` drīkst saturēt tikai latīņu alfabēta burtus, ciparus, domuzīmes (-_) vai punktu.`
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
alpha_dash_dot_slash_error=` drīkst saturēt tikai latīņu alfabēta burtus, ciparus, domuzīmes (-_), slīpsvītru vai punktu.`
size_error=` jābūt %s simbolus garam.`
min_size_error=` jabūt vismaz %s simbolu garumā.`
max_size_error=` jabūt ne mazāk kā %s simbolu garumā.`
@@ -229,6 +237,7 @@ org_name_been_taken=Organizācijas nosaukums ir jau aizņemts.
team_name_been_taken=Komandas nosaukums ir jau aizņemts.
email_been_used=E-pasta adrese jau tiek izmantota.
username_password_incorrect=Lietotājvārds vai parole nav pareiza.
auth_source_mismatch=Izvēlētais autentificēšanas avots nav saistīts ar lietotāju.
enterred_invalid_repo_name=Lūdzu, pārliecinieties, vai ievadītā repozitorija nosaukums ir pareizs.
enterred_invalid_owner_name=Lūdzu, pārliecinieties, vai ievadītā īpašnieka vārds ir pareizs.
enterred_invalid_password=Lūdzu pārliecinieties, vai Jūsu ievadītā parole ir pareiza.
@@ -256,8 +265,7 @@ following=Seko
follow=Sekot
unfollow=Nesekot
form.name_reserved=Lietotāja vārds '%s' jau ir aizņemts.
form.name_pattern_not_allowed=Lietotāja vārds '%s' nav atļauts.
form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Profils
@@ -309,6 +317,7 @@ delete_email=Dzēst
email_deletion=E-pasta dzēšana
email_deletion_desc=Dzēšot šo e-pasta adresi, tiks dzēsta arī visa ar to saistītā informācija no Jūsu konta. Vai vēlaties turpināt?
email_deletion_success=E-pasta adrese ir veiksmīgi izdzēsta!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Pievienot jaunu e-pasta adresi
add_email=Pievienot e-pastu
add_email_confirmation_sent=Jauns apstiprinājuma e-pasts tika nosūtīts uz '%s', pārbaudiet savu e-pastu tuvāko %d stundu laikā, lai pabeigtu apstiprināšanas procesu.
@@ -347,8 +356,9 @@ two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=Vai ievadiet noslēpumu:
two_factor_then_enter_passcode=Pēc tam ievadiet kodu:
two_factor_verify=Pārbaudīt
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_invalid_passcode=Ievadītais piekļuves kods nav derīgs. Lūdzu mēģiniet vēlreiz!
two_factor_reused_passcode=Ievadītais piekļuves kods jau ir izmantots. Lūdzu mēģiniet citu!
two_factor_enable_error=Divu faktoru autentifikācijas iespējošana neizdevās: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
@@ -357,11 +367,12 @@ two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_disable_title=Atspējot divu faktoru autentifikāciju
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_success=Two-factor authentication has disabled successfully!
two_factor_disable_success=Divu faktoru autentificēšana ir atspējota!
manage_access_token=Pārvaldīt personīgos piekļuves talonus
generate_new_token=Ģenerēt jaunu talonu
tokens_desc=Taloni, kurus esat uzģenerējuši, kas var tikt izmantoti, lai piekļūtu Gogs API.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Pašlaik visiem taloniem ir pilna piekļuve Jūsu kontam.
token_name=Talona nosaukums
generate_token=Ģenerēt talonu
@@ -370,8 +381,9 @@ delete_token=Dzēst
access_token_deletion=Personīgā piekļuves talona dzēšana
access_token_deletion_desc=Dzēšot personīgo piekļuves talonu, tiks liegta piekļuve aplikācijām, kas to izmanto. Vai vēlaties turpināt?
delete_token_success=Personīgās piekļuves talons veiksmīgi izdzēsts! Neaizmirstiet nomainīt uz citu aplikācijās, kas to izmantoja.
token_name_exists=Token with same name already exists.
orgs.none=You are not a member of any organizations.
orgs.none=Jūs neesat nevienas organizācijas dalībnieks.
orgs.leave_title=Pamest organizāciju
orgs.leave_desc=You will lose access to all repositories and teams after you left the organization. Do you want to continue?
@@ -391,7 +403,9 @@ owner=Īpašnieks
repo_name=Repozitorija nosaukums
repo_name_helper=Labi repzotoriju nosaukumi ir īsi, tādi kurus viegli atcerēties un <strong>unikāli</strong>.
visibility=Redzamība
unlisted=Unlisted
visiblity_helper=Šis repozitorijs ir <span class="ui red text">privāts</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=Lapas administrators ir noteicis, ka visiem repozitorijiem ir jābūt <span class="ui red text">privātiem</span>
visiblity_fork_helper=(Šīs vērtības maiņa ietekmēs arī visus atdalītos repozitorijus)
clone_helper=Nepieciešama palīdzība kā veikt klonēšana? Apmeklējiet <a target="_blank" href="%s">Palīdzība</a> lapu!
@@ -417,10 +431,11 @@ mirror_last_synced=Pēdējo reizi sinhronizēts
watchers=Novērotāji
stargazers=Zvaigžņdevēji
forks=Atdalītie repozitoriji
repo_description_helper=Repozitorija apraksts. Maksimālais garums 512 rakstzīmes.
repo_description_length=Pieejamās rakstzīmes
form.reach_limit_of_creation=Īpašnieks sasniedza maksimālu pieļaujamo (%d) izveidoto repozitoriju skaitu.
form.name_reserved=Repozitorija nosaukums '%s' ir rezervēts.
form.name_pattern_not_allowed=Repozitorija nosaukums '%s' nav atļauts.
form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Nepieciešama autorizācija
migrate_type=Migrācijas veids
@@ -431,6 +446,7 @@ migrate.clone_address_desc=Tas var būt HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=Jums nav tiesību importēt lokālu repozitoriju.
migrate.invalid_local_path=Nekorents lokālais ceļš, tas neeksistē vai nav direktorijs.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migrācija neizdevās: %v
mirror_from=spogulis no
@@ -470,14 +486,16 @@ file_history=Vēsture
file_view_raw=Rādīt neapstrādātu
file_permalink=Patstāvīgā saite
file_too_large=Šis fails ir par lielu, lai to parādītu
video_not_supported_in_browser=Your browser doesn't support HTML5 video tag.
video_not_supported_in_browser=Jūsu pārlūks neatbalsta HTML5 video.
branches.overview=Pārskats
branches.active_branches=Aktīvie atzari
branches.stale_branches=Pamests atzars
branches.all=Visi atzari
branches.updated_by=Updated %[1]s by %[2]s
branches.updated_by=%[2]s atjaunoja %[1]s
branches.change_default_branch=Mainīt noklusēto atzaru
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Jauns fails
editor.upload_file=Augšupielādēt failu
@@ -514,6 +532,7 @@ editor.file_changed_while_editing=Faila saturs ir mainījies kopš brīža, kad
editor.file_already_exists=Fails ar nosaukumu '%s' repozitorijā jau eksistē.
editor.no_changes_to_show=Nav izmaiņu, ko rādīt.
editor.fail_to_update_file=Neizdevās izmainīt/izveidot failu '%s', kļūda: %v
editor.fail_to_delete_file=Neizdevās dzēst failu '%s', kļūda: %v
editor.add_subdir=Pievienot apakšdirektoriju...
editor.unable_to_upload_files=Neizdevās augšupielādēt failus uz direktoriju '%s', kļūda: %v
editor.upload_files_to_dir=Augšupielādēt failus uz direktoriju '%s'
@@ -616,6 +635,7 @@ pulls.compare_compare=salīdzināmais
pulls.filter_branch=Filtrēt atzarus
pulls.no_results=Nekas netika atrasts.
pulls.nothing_to_compare=Nav ko salīdzināt, jo bāzes un salīdzināmie atzari ir vienādi.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`Jau eksistē izmaiņu pieprasījums starp šiem diviem atzariem: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Izveidot izmaiņu pieprasījumu
pulls.title_desc=vēlas sapludināt %[1]d revīzijas no <code>%[2]s</code> uz <code>%[3]s</code>
@@ -631,6 +651,9 @@ pulls.is_checking=Notiek konfliktu pārbaude, mirkli uzgaidiet un atjaunojiet la
pulls.can_auto_merge_desc=Šo izmaiņu pieprasījumu var automātiski saplūdināt.
pulls.cannot_auto_merge_desc=Šis izmaiņu pieprasījums nevar tikt automātiski saplūdināts konfliktu dēļ.
pulls.cannot_auto_merge_helper=Lūdzu sapludiniet manuāli, lai atrisinātu konfliktus.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=Izmaiņu pieprasījuma sapludināšana
pulls.open_unmerged_pull_exists=`Jūs nevarat veikt atkārtotas atvēršanas darbību, jo jau eksistē izmaiņu pieprasījums (#%d) no šī repozitorija ar tādu pašu sapludināšanas informāciju un gaida sapludināšanu.`
pulls.delete_branch=Dzēst atzaru
@@ -735,7 +758,9 @@ settings.tracker_issue_style=Ārējā problēmu reģistra nosaukumu stils:
settings.tracker_issue_style.numeric=Cipari
settings.tracker_issue_style.alphanumeric=Burti un cipari
settings.tracker_url_format_desc=Jūs varat izmantot <code>{user}{repo}{index}</code> lietotājvārdam, repozitorija nosaukumam un problēmas identifikātoram.
settings.pulls_desc=Iespējot izmaiņu pieprasījumus lai saņemtu publiskus ieguldījumus
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignorēt atstarpju izmaiņas
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Bīstamā zona
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Jaunajam īpašniekam jau ir repozitorijs ar šādu nosaukumu.
@@ -772,8 +797,10 @@ settings.collaborator_deletion_desc=Šim lietotājam pēc dzēšanas vairs nebū
settings.remove_collaborator_success=Līdzstrādnieks tika noņemts.
settings.search_user_placeholder=Meklēt lietotāju...
settings.org_not_allowed_to_be_collaborator=Organizāciju nav atļauts pievienot kā līdzstrādnieku.
settings.add_webhook=Pievienot tīmekļa āķi
settings.hooks_desc=Tīmekļa āķi ļauj paziņot ārējiem servisiem par noteiktiem notikomiem, kas notiek Git servisā. Kad iestāsies kāds notikums, katram ārējā servisa URL tiks nosūtīts POST pieprasījums. Lai uzzinātu sīkāk skatieties <a target="_blank" href="%s">Tīmekļa āķu rokasgrāmatā</a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Choose a type...
settings.add_webhook=Pievienot tīmekļa āķi
settings.webhook_deletion=Dzēst tīmekļa āķi
settings.webhook_deletion_desc=Dzēšot tīmekļa āķi tiks dzēsta visa ar to saistītā informācija un izpildes vēsture. Vai vēlaties turpināt?
settings.webhook_deletion_success=Tīmekļa āķis tika veiksmīgi izdzēsts!
@@ -787,6 +814,8 @@ settings.webhook.response=Atbilde
settings.webhook.headers=Galvenes
settings.webhook.payload=Derīgā krava
settings.webhook.body=Saturs
settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git āķus apstrādā pats Git. Jūs varat labot atbalsīto āku failus sarakstā zemāk, lai veiktu pielāgotas darbības.
settings.githook_edit_desc=Ja āķis nav aktīvs, tiks attēlots piemērs kā to izmantot. Atstājot āķa saturu tukšu, tas tiks atspējots.
settings.githook_name=Āķa nosaukums
@@ -814,10 +843,10 @@ settings.event_push=Izmaiņu nosūtīšana
settings.event_push_desc=Git izmaiņu nosūtīšana uz repozitoriju
settings.event_issues=Problēmas
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_issue_comment=Problēmas komentārs
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_pull_request=Izmaiņu pieprasījums
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Problēmas komentārs
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Laidiens
settings.event_release_desc=Laidiens publicēts repozitorijā.
settings.active=Aktīvs
@@ -830,6 +859,7 @@ settings.recent_deliveries=Pēdējās piegādes
settings.hook_type=Āķa veids
settings.add_slack_hook_desc=PIevienot <a href="%s">Slack</a> integrāciju Jūsu repozitorijā.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=Talons
settings.slack_domain=Domēns
settings.slack_channel=Kanāls
@@ -846,6 +876,8 @@ settings.add_key_success=Izvietošanas atslēga '%s' tik veiksmīgi pievienota!
settings.deploy_key_deletion=Dzēst izvietošanas atslēgu
settings.deploy_key_deletion_desc=Dzēšot šo izvietošanas atslēgu tiks noņemta arī ar to saistītā piekļuve šim repozitorijam. Vai vēlaties turpināt?
settings.deploy_key_deletion_success=Izvietošanas atslēga tika veiksmīgi izdzēsta!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Pārlūkot izejas kodu
diff.parent=vecāks
@@ -910,9 +942,8 @@ team_name_helper=Šo nosaukumu varēs izmantot, lai pieminētu komandu sarunās.
team_desc_helper=Komandas apraksts
team_permission_desc=Kādām tiesībām šai komandai būtu jābūt?
form.name_reserved=Organizācijas nosaukums '%s' ir rezervēts.
form.name_pattern_not_allowed=Organizācijas nosaukums '%s' nav atļauts.
form.team_name_reserved=Komandas vārds '%s' ir rezervēts.
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Iestatījumi
settings.options=Opcijas
@@ -984,12 +1015,19 @@ first_page=Pirmā
last_page=Pēdējā
total=Kopā: %d
dashboard.build_info=Build Information
dashboard.app_ver=Application version
dashboard.git_version=Git versija
dashboard.go_version=Go versija
dashboard.build_time=Build time
dashboard.build_commit=Build commit
dashboard.statistic=Statistika
dashboard.operations=Darbības
dashboard.system_status=Sistēmas uzraudzības statuss
dashboard.statistic_info=Gogs datu bāze satur <b>%d</b> lietotājus, <b>%d</b> organizācijas, <b>%d</b> publiskās atslēgas, <b>%d</b> repozitorijus, <b>%d</b> vērošanas, <b>%d</b> atzīmētas zvaigznītes, <b>%d</b> darbības, <b>%d</b> piekļuves, <b>%d</b> problēmas, <b>%d</b> komentārus, <b>%d</b> sociālos kontus, <b>%d</b> sekošanas, <b>%d</b> spoguļošanas, <b>%d</b> izlaides, <b>%d</b> login sources, <b>%d</b> tīmekļa āķus, <b>%d</b> starpposmus, <b>%d</b> etiķetes, <b>%d</b> āķu uzdevumus, <b>%d</b> komandas, <b>%d</b> labotus uzdevumus, <b>%d</b> pielikumus.
dashboard.operation_name=Darbības nosaukums
dashboard.operation_switch=Pārslēgt
dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Palaist
dashboard.clean_unbind_oauth=Notīrīt nesaistītās OAuth biļetes
dashboard.clean_unbind_oauth_success=Visas nesaistītās OAuth biļetes tika veiksmīgi izdzēstas.
@@ -1081,11 +1119,12 @@ repos.stars=Atzīmētās zvaigznītes
repos.issues=Problēmas
repos.size=Izmērs
auths.auth_manage_panel=Autentifikācijas pārvaldības panelis
auths.auth_sources=Authentication Sources
auths.new=Pievienot jaunu avotu
auths.name=Nosaukums
auths.type=Veids
auths.enabled=Iespējota
auths.default=Default
auths.updated=Atjaunināta
auths.auth_type=Autentifikācijas tips
auths.auth_name=Autentifikācijas nosaukums
@@ -1094,17 +1133,18 @@ auths.domain=Domēns
auths.host=Resursdators
auths.port=Ports
auths.bind_dn=Saistīšanas DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Saistīšanas parole
auths.bind_password_helper=Brīdinājums: Šī parole tiks saglabāta nešifrētā veidā. Neizmantojiet kontu ar augstām privilēģijām.
auths.user_base=Lietotāja pamatnosacījumi
auths.user_dn=Lietotāja DN
auths.attribute_username=Lietotājvārda atribūts
auths.attribute_username_placeholder=Atstājiet tukšu, lai izmantotu lietotājvārdu ar kuru autorizējaties.
auths.attribute_name=First Name Attribute
auths.attribute_name=Vārda atribūts
auths.attribute_surname=Uzvārda atribūts
auths.attribute_mail=E-pasta atribūts
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.verify_group_membership=Pārbaudīt grupas piederību
auths.group_search_base_dn=Grupas meklēšanas pamata DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
@@ -1121,9 +1161,9 @@ auths.enable_tls=Iespējot TLS šifrēšanu
auths.skip_tls_verify=Izlaist TLS verifikāciju
auths.pam_service_name=PAM servisa nosaukums
auths.enable_auto_register=Iespējot automātisko reģistrāciju
auths.tips=Padomi
auths.edit=Labot autentifikācijas iestatījumus
auths.activated=Autentifikācija ir aktivizēta
auths.default_auth=This authentication is default login source
auths.new_success=Jauna autentifikācija '%s' tika veiksmīgi pievienota.
auths.update_success=Autentifikācijas iestatījumi tika veiksmīgi saglabāti.
auths.update=Mainīt autentifikācijas iestatījumus
@@ -1133,115 +1173,186 @@ auths.delete_auth_desc=Šī autentifikācija tiks dzēsta, vai vēlaties turpin
auths.still_in_used=Daži lietotāji joprojām izmanto šo autentifikācijas veidu. Nepieciešams veikt šo lietotāju konvertāciju vai dzēšanu.
auths.deletion_success=Autentifikācija tika veiksmīgi izdzēsta!
auths.login_source_exist=Pieteikšanās avots '%s' jau eksistē.
auths.github_api_endpoint=API Endpoint
config.not_set=(nav noteikts)
config.server_config=Servera konfigurācija
config.app_name=Lietotnes nosaukums
config.app_ver=Lietotnes versija
config.app_url=Lietotnes URL
config.domain=Domēns
config.offline_mode=Bezsaistes režīms
config.disable_router_log=Atspējot maršrutētāja žurnalizēšanu
config.brand_name=Brand name
config.run_user=Izpildes lietotājs
config.run_mode=Izpildes režīms
config.git_version=Git versija
config.static_file_root_path=Statisko failu atrašanās vieta
config.log_file_root_path=Žurnalizēšanas failu glabāšanas vieta
config.reverse_auth_user=Reversā lietotāja autentifikācija
config.server.external_url=External URL
config.server.domain=Domēns
config.server.protocol=Protokols
config.server.http_addr=HTTP adrese
config.server.http_port=HTTP ports
config.server.cert_file=Sertifikāta fails
config.server.key_file=Privātais kriptogrāfijas atslēgas fails
config.server.tls_min_version=Minimālā TLS versija
config.server.unix_socket_permission=Unix socket permission
config.server.local_root_url=Local root URL
config.server.offline_mode=Offline mode
config.server.disable_router_log=Disable router log
config.server.enable_gzip=Iespējot Gzip
config.server.app_data_path=Application data path
config.server.load_assets_from_disk=Load assets from disk
config.server.landing_url=Landing URL
config.ssh_config=SSH konfigurācija
config.ssh_enabled=Iespējots
config.ssh_start_builtin_server=Startēt iebūvēto serveri
config.ssh_domain=Domēns
config.ssh_port=Ports
config.ssh_listen_port=Klausīšanās ports
config.ssh_root_path=Saknes ceļš
config.ssh_key_test_path=Atslēgu pārbaudes ceļš
config.ssh_keygen_path=Keygen ('ssh-keygen') ceļš
config.ssh_minimum_key_size_check=Minimālā atslēgas lieluma pārbaude
config.ssh_minimum_key_sizes=Minimālais atslēgas lielums
config.ssh.enabled=Iespējots
config.ssh.domain=Exposed domain
config.ssh.port=Exposed port
config.ssh.root_path=Root path
config.ssh.keygen_path=Keygen path
config.ssh.key_test_path=Key test path
config.ssh.minimum_key_size_check=Minimum key size check
config.ssh.minimum_key_sizes=Minimum key sizes
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=Start builtin server
config.ssh.listen_host=Listen host
config.ssh.listen_port=Listen port
config.ssh.server_ciphers=Server ciphers
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Repozitorija konfigurācija
config.repo_root_path=Repozitoriju glabāšanas vieta
config.script_type=Skripta veids
config.repo_force_private=Piespiedu privāti repozitoriji
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Atspējot HTTP Git
config.enable_local_path_migration=Atļaut migrāciju no lokāla ceļa
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.repo.root_path=Root path
config.repo.script_type=Script type
config.repo.ansi_chatset=ANSI charset
config.repo.force_private=Force private
config.repo.max_creation_limit=Max creation limit
config.repo.preferred_licenses=Preferred licenses
config.repo.disable_http_git=Disable HTTP Git
config.repo.enable_local_path_migration=Enable local path migration
config.repo.enable_raw_file_render_mode=Enable raw file render mode
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Upload enabled
config.repo.upload.temp_path=Upload temporary path
config.repo.upload.allowed_types=Upload allowed types
config.repo.upload.file_max_size=Upload file size limit
config.repo.upload.max_files=Upload files limit
config.db_config=Datu bāzes konfigurācija
config.db_type=Veids
config.db_host=Resursdators
config.db_name=Nosaukums
config.db_user=Lietotājs
config.db_ssl_mode=SSL režīms
config.db_ssl_mode_helper=(tikai PostgreSQL datu bāzei)
config.db_path=Ceļš
config.db_path_helper=(priekš "sqlite3" and "tidb")
config.db.type=Tips
config.db.host=Host
config.db.name=Datubāzes nosaukums
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=Datubāzes lietotājs
config.db.ssl_mode=SSL mode
config.db.ssl_mode_helper=(for "postgres" only)
config.db.path=Path
config.db.path_helper=(for "sqlite3"only)
config.db.max_open_conns=Maximum open connections
config.db.max_idle_conns=Maximum idle connections
config.service_config=Pakalpojuma konfigurācija
config.register_email_confirm=Pieprasīt e-pasta apstiprināšanu
config.disable_register=Atspējot jaunu lietotāju reģistrāciju
config.show_registration_button=Rādīt reģistrēšanās pogu
config.require_sign_in_view=Nepieciešama autorizācija
config.mail_notify=Pasta paziņojumi
config.disable_key_size_check=Atspējot atslēgas minimālā garuma pārbaudi
config.enable_captcha=Iespējot drošības kodu
config.active_code_lives=Aktīvā koda ilgums
config.reset_password_code_lives=Paroles atiestatīšanas koda ilgums
config.security_config=Security configuration
config.security.login_remember_days=Login remember days
config.security.cookie_remember_name=Remember cookie
config.security.cookie_username=Username cookie
config.security.cookie_secure=Enable secure cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Enable login status cookie
config.security.login_status_cookie_name=Login status cookie
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Tīkla āķu konfigurācija
config.queue_length=Rindas garums
config.deliver_timeout=Piegādes noildze
config.skip_tls_verify=Izlaist TLS pārbaudi
config.email_config=E-pasta iestatījumi
config.email.enabled=Iespējots
config.email.subject_prefix=Subject prefix
config.email.host=Host
config.email.from=Sūtītājs
config.email.user=Lietotājs
config.email.disable_helo=Disable HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Skip certificate verify
config.email.use_certificate=Use custom certificate
config.email.cert_file=Certificate file
config.email.key_file=Key file
config.email.use_plain_text=Use plain text
config.email.add_plain_text_alt=Add plain text alternative
config.email.send_test_mail=Nosūtīt pārbaudes e-pastu
config.email.test_mail_failed=Failed to send test email to '%s': %v
config.email.test_mail_sent=Test email has been sent to '%s'.
config.mailer_config=Sūtītāja konfigurācija
config.mailer_enabled=Iespējots
config.mailer_disable_helo=Atspējot HELO
config.mailer_name=Nosaukums
config.mailer_host=Resursdators
config.mailer_user=Lietotājs
config.send_test_mail=Nosūtīt pārbaudes e-pastu
config.test_mail_failed=Neizdevās nosūtīt pārbaudes e-pasta vēstuli uz '%s': %v
config.test_mail_sent=Pārbaudes e-pasta vēstule tika nosūtīta uz '%s'.
config.auth_config=Authentication configuration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=Require email confirmation
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Disable registration
config.auth.enable_registration_captcha=Enable registration captcha
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=OAuth konfigurācija
config.oauth_enabled=Iespējota
config.cache_config=Kešatmiņas konfigurācija
config.cache_adapter=Kešatmiņas adapteris
config.cache_interval=Kešatmiņas intervāls
config.cache_conn=Kešatmiņas pieslēguma parametri
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=Sesijas konfigurācja
config.session_provider=Sesijas nodrošinātājs
config.provider_config=Pakalpojumu sniedzēja konfigurācija
config.cookie_name=Sīkdatnes nosaukums
config.enable_set_cookie=Ļaut izmantot sīkdatnes
config.gc_interval_time=GC laika intervāls
config.session_life_time=Sesijas ilgums
config.https_only=Tikai HTTPS
config.cookie_life_time=Sīkdatņu glabāšanas ilgums
config.session.provider=Provider
config.session.provider_config=Provider config
config.session.cookie_name=Cookie
config.session.https_only=Tikai HTTPS
config.session.gc_interval=GC interval
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Kešatmiņas konfigurācija
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=HTTP konfigurācija
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Iespējots
config.attachment.path=Path
config.attachment.allowed_types=Atļautie tipi
config.attachment.max_size=Maksimālais izmērs
config.attachment.max_files=Maksimālais failu skaits
config.release_config=Release configuration
config.release.attachment.enabled=Pielikums iespējots
config.release.attachment.allowed_types=Atļautie pielikuma tipi
config.release.attachment.max_size=Pielikuma maksimālais izmērs
config.release.attachment.max_files=Maksimālais pielikuma failu skaits
config.picture_config=Attēlu konfigurācija
config.picture_service=Lokāli attēli
config.disable_gravatar=Atspējot Gravatar
config.enable_federated_avatar=Iespējot apvienotās profila bildes
config.picture.avatar_upload_path=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatar source
config.picture.disable_gravatar=Disable Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Mirror configuration
config.mirror.default_interval=Noklusētais intervāls
config.webhook_config=Tīkla āķu konfigurācija
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Git konfigurācija
config.git_disable_diff_highlight=Atspējot salīdzināšanas sintakses iekrāsošanu
config.git_max_diff_lines=Maksimālais salīdzināmo rindu skaits vienam failam
config.git_max_diff_line_characters=Maksimālais salīdzināmo simbolu skaits vienai rindai
config.git_max_diff_files=Maksimālais salīdzināmo failu skaits, ko attēlot
config.git_gc_args=GC argumenti
config.git_migrate_timeout=Migrācijas noilgums
config.git_mirror_timeout=Spoguļa atjaunošanas noilgums
config.git_clone_timeout=Klonēšanas darbības noilgums
config.git_pull_timeout=Izmaiņu saņemšanas darbības noilgums
config.git_gc_timeout=GC darbības noilgums
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC arguments
config.git.migrate_timeout=Migration timeout
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=Clone timeout
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=LFS configuration
config.lfs.storage=Storage
config.lfs.objects_path=Objects path
config.log_config=Žurnalizēšanas konfigurācija
config.log_file_root_path=Žurnalizēšanas failu glabāšanas vieta
config.log_mode=Režīms
config.log_options=Opcijas
@@ -1272,7 +1383,6 @@ notices.delete_success=Sistēmas paziņojumi tika veiksmīgi izdzēstas.
[action]
create_repo=izveidoja repozitoriju <a href="%s">%s</a>
fork_repo=atdalīja repozitoriju uz <a href="%s">%s</a>
rename_repo=pārsauca repozitoriju no <code>%[1]s</code> uz <a href="%[2]s">%[3]s</a>
commit_repo=veica izmaiņu nosūtīšanu atzaram <a href="%[1]s/src/%[2]s">%[3]s</a> repozitorijā <a href="%[1]s">%[4]s</a>
compare_commits=Salīdzināt šīs %d revīzijas
@@ -1289,6 +1399,10 @@ create_branch=izveidoja jaunu atzaru <a href="%[1]s/src/%[2]s">%[3]s</a> repozit
delete_branch=izdzēsa atzaru <code>%[2]s</code> repozitorijā <a href="%[1]s">%[3]s</a>
push_tag=pievienoja tagu <a href="%s/src/%s">%[2]s</a> repozitorijam <a href="%[1]s">%[3]s</a>
delete_tag=izdzēsa tagu <code>%[2]s</code> repozitorijā <a href="%[1]s">%[3]s</a>
fork_repo=atdalīja repozitoriju uz <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=atpakaļ
@@ -1310,6 +1424,7 @@ months=%d mēneši %s
years=%d gadi %s
raw_seconds=sekundes
raw_minutes=minūtes
raw_hours=hours
[dropzone]
default_message=Ievelciet failus šeit vai noklikšķiniet, lai augšupielādētu.

1434
conf/locale/locale_mn-MN.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -9,7 +9,6 @@ sign_out=Uitloggen
sign_up=Aanmelden
register=Registreren
website=Website
version=Versie
page=Pagina
template=Sjabloon
language=Taal
@@ -40,21 +39,26 @@ your_settings=Uw instellingen
activities=Activiteiten
pull_requests=Pull requests
issues=Kwesties
issues=Issues
cancel=Annuleren
[status]
page_not_found=Pagina niet gevonden
internal_server_error=Interne Server Fout
[install]
install=Installatie
title=Installatiestappen voor de eerste keer opstarten
docker_helper=Als u gebruik maakt Gogs binnen Docker, lees dan de <a target="_blank" href="%s">richtlijnen</a> voordat u iets veranderen op deze pagina!
requite_db_desc=Gogs vereist MySQL, PostgreSQL, SQLite3, MSSQL of TiDB.
requite_db_desc=Gogs heeft MySQL, PostgreSQL, SQLite3 of TiDB (via het MySQL protocool) nodig.
db_title=Database-instellingen
db_type=Database-type
host=Host
user=Gebruikersnaam
password=Wachtwoord
db_name=Databasenaam
db_schema=Schema
db_helper=Gebruik InnoDB engine met utf8_general_ci karakterset voor MySQL.
ssl_mode=SSL-modus
path=Pad
@@ -84,6 +88,7 @@ log_root_path=Log-pad
log_root_path_helper=Directory waar logbestanden opgeslagen worden.
enable_console_mode=Schakel Console modus in
enable_console_mode_popup=Naast de bestand modus print het ook de logs naar de console.
default_branch=Standaard branch
optional_title=Optionele instellingen
email_title=E-mail service instellingen
@@ -119,9 +124,10 @@ sqlite3_not_available=Uw versie biedt geen ondersteuning voor SQLite3, download
invalid_db_setting=Uw database instellingen zijn niet correct: %v
invalid_repo_path=Repositorie basis map is niet correct: %v
run_user_not_match=De uitvoerende gebruiker is niet de huidig gebruiker: %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
smtp_host_missing_port=SMTP-Host mist een poort in het adres.
invalid_smtp_from=SMTP-van-veld is niet geldig: %v
save_config_failed=Kan de configuratie niet opslaan: %v
init_failed=Programma initialiseren mislukt: %v
invalid_admin_setting=Uw admin-instellingen zijn niet geldig: %v
install_success=Welkom! Wij zijn veheugd dat u voor Gogs heeft gekozen, veel plezier en tot ziens
invalid_log_root_path=Ongeldig log-pad: %v
@@ -151,6 +157,8 @@ register_hepler_msg=Heeft u al een account? Meld u nu aan!
social_register_hepler_msg=Heeft u al een account? Koppel nu!
disable_register_prompt=Sorry, registratie is uitgeschakeld. Neem contact op met de beheerder van deze site.
disable_register_mail=Sorry, bevestiging van registratie per e-mail is uitgeschakeld.
auth_source=Authenticatiebron
local=Lokaal
remember_me=Onthoud mij
forgot_password=Wachtwoord vergeten
forget_password=Wachtwoord vergeten?
@@ -171,11 +179,11 @@ non_local_account=Niet lokale accounts mogen hun wachtwoord niet veranderen via
login_two_factor=Twee-traps authenticatie
login_two_factor_passcode=Authenticatie wachtwoord
login_two_factor_enter_recovery_code=Enter a two-factor recovery code
login_two_factor_recovery=Two-factor Recovery
login_two_factor_recovery_code=Recovery Code
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
login_two_factor_enter_recovery_code=Voer de two-factor herstelcode in
login_two_factor_recovery=Two-factor herstel
login_two_factor_recovery_code=Herstel code
login_two_factor_enter_passcode=Voer een two-factor wachtwoord in
login_two_factor_invalid_recovery_code=Herstelcode is al gebruikt of ongeldig.
[mail]
activate_account=Activeer uw account
@@ -205,14 +213,14 @@ AdminEmail=E-mail beheerder
NewBranchName=Nieuwe branch naam
CommitSummary=Commit samenvatting
CommitMessage=Commit bericht
CommitChoice=Commit choice
CommitChoice=Keuze toepassen
TreeName=Bestandspad
Content=Inhoud
require_error=kan niet leeg zijn.
alpha_dash_error=moet een valide alfanumeriek of dash(-_) karakter zijn.
alpha_dash_dot_error=moet een valide alfanumeriek, dash(-_) of (.) punt karakter zijn.
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
alpha_dash_dot_slash_error=` moet een geldige alfanumeriek, (lage) streepje (-_), punt of een schuin karakter zijn.`
size_error=moet groter zijn dan %s
min_size_error=moet minimaal %s karakters bevatten.
max_size_error=mag maximaal %s karakters bevatten.
@@ -229,6 +237,7 @@ org_name_been_taken=Organisatie naam is al in gebruik.
team_name_been_taken=Team naam is al in gebruik.
email_been_used=e-mailadres is al in gebruik.
username_password_incorrect=Gebruikersnaam of wachtwoord is niet correct.
auth_source_mismatch=De geselecteerde authenticatiebron is niet gekoppeld aan de gebruiker.
enterred_invalid_repo_name=U heeft een onjuiste repositorie naam ingevoerd.
enterred_invalid_owner_name=U heeft een onjuiste eigenaar ingevoerd.
enterred_invalid_password=U heeft een onjuiste wachtwoord ingevoerd.
@@ -256,15 +265,14 @@ following=Volgt
follow=Volg
unfollow=Niet meer volgen
form.name_reserved=De gebruikersnaam '%s' is gereserveerd.
form.name_pattern_not_allowed=Het gebruikersnaam patroon '%s' is niet toegestaan.
form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Profiel
password=Wachtwoord
avatar=Profielfoto
ssh_keys=SSH-sleutels
security=Security
security=Beveiliging
repos=Repositories
orgs=Organisaties
applications=Toepassingen
@@ -309,6 +317,7 @@ delete_email=Verwijder
email_deletion=E-mail Verwijderen
email_deletion_desc=Dit e-mailadres verwijdert, worden gerelateerde informatie van uw account te verwijderen. Wil je verdergaan?
email_deletion_success=E-mail is succesvol verwijderd!
email_deletion_primary=Kan het primaire e-mailadres niet verwijderen.
add_new_email=Nieuw e-mailadres toevoegen
add_email=E-mailadres toevoegen
add_email_confirmation_sent=Een nieuwe bevestiging e-mail werd verstuurd naar '%s', gelieve uw inbox in de komende %d uren te controleren om het bevestigingsproces te voltooien.
@@ -334,20 +343,21 @@ no_activity=Geen recente activiteiten
key_state_desc=Deze sleutel werd gebruikt in de laatste 7 dagen
token_state_desc=Deze token is de laatste 7 dagen gebruikt
two_factor=Two-factor Authentication
two_factor=Twee-factor authenticatie
two_factor_status=Status:
two_factor_on=On
two_factor_off=Off
two_factor_enable=Enable
two_factor_disable=Disable
two_factor_on=Aan
two_factor_off=Uit
two_factor_enable=Inschakelen
two_factor_disable=Uitschakelen
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title=Enable Two-factor Authentication
two_factor_enable_title=Tweestapsverificatie inschakelen
two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=Or enter the secret:
two_factor_or_enter_secret=Of voer het geheim in:
two_factor_then_enter_passcode=Then enter passcode:
two_factor_verify=Verify
two_factor_verify=Verifiëren
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
@@ -362,6 +372,7 @@ two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Persoonlijke toegangstokens beheren
generate_new_token=Nieuwe Token genereren
tokens_desc=Tokens die u hebt gegenereerd om toegang tot de Gogs APIs te verkrijgen.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Zoals voor nu, moet elke token zal hebben volledige toegang tot uw account.
token_name=Symbolische naam
generate_token=Token genereren
@@ -370,13 +381,14 @@ delete_token=Verwijderen
access_token_deletion=Persoonlijke toegang token verwijderen
access_token_deletion_desc=Verwijderen van deze persoonlijke toegang token zal alle verwante toegang verwijderen. Wilt u doorgaan?
delete_token_success=Persoonlijke toegangstoken is met succes verwijderd! Vergeet niet uw toepassingen ook bij te werken.
token_name_exists=Token with same name already exists.
orgs.none=U bent geen lid van een organisatie.
orgs.leave_title=Een organisatie verlaten
orgs.leave_desc=U verliest toegang tot alle repositories en teams nadat u de organisatie verlaten hebt. Wilt u doorgaan?
repos.leave=Leave
repos.leave_title=Leave repository
repos.leave=Verlaat
repos.leave_title=Verlaat repository
repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
repos.leave_success=You have left repository '%s' successfully!
@@ -391,7 +403,9 @@ owner=Eigenaar
repo_name=Naam van repository
repo_name_helper=Een goede repository-naam is kort, makkelijk te onthouden en <strong>uniek</strong>.
visibility=Zichtbaarheid
unlisted=Unlisted
visiblity_helper=Deze repositorie is <span class="ui red text">privaat</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=Sitebeheerder heeft alle nieuwe repositories gedwongen <span class="ui red text">privé</span> te zijn
visiblity_fork_helper=(Verandering van deze waarde zal van invloed zijn op alle forks)
clone_helper=De behoeftehulp van klonen? Bezoek <a target="_blank" href="%s"> helpen</a>!
@@ -417,10 +431,11 @@ mirror_last_synced=Laatste synchronisatie
watchers=Volgers
stargazers=Stargazers
forks=Forks
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=De eigenaar heeft maximale creatie limiet van %d repositories bereikt.
form.name_reserved=Repositorienaam '%s' is gereserveerd.
form.name_pattern_not_allowed=Repositorie naampatroon '%s' is niet toegestaan.
form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Autorisatie vereist
migrate_type=Migratie type
@@ -431,6 +446,7 @@ migrate.clone_address_desc=Dit kan een HTTP/HTTPS/GIT URL zijn.
migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=U bent niet toegestaan om deze lokale repositories te importeren.
migrate.invalid_local_path=Ongeldig lokaal pad, het pad bestaat niet of het is geen map.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migratie is mislukt: %v
mirror_from=spiegel van
@@ -450,7 +466,7 @@ quick_guide=Snelstart gids
clone_this_repo=Kloon deze repositorie
create_new_repo_command=Maak een nieuwe repositorie aan vanaf de console
push_exist_repo=Push een bestaande repositorie vanaf de console
bare_message=This repository does not have any content yet.
bare_message=Deze repository bevat nog geen inhoud.
files=Bestanden
branch=Aftakking
@@ -458,7 +474,7 @@ tree=Boom
filter_branch_and_tag=Filter branch of tag
branches=Aftakkingen
tags=Labels
issues=Kwesties
issues=Issues
pulls=Pull-aanvragen
labels=Labels
milestones=Mijlpalen
@@ -472,12 +488,14 @@ file_permalink=Permalink
file_too_large=Dit bestand is te groot om te worden getoond
video_not_supported_in_browser=Uw browser ondersteunt geen HTML5 video label.
branches.overview=Overview
branches.overview=Overzicht
branches.active_branches=Active Branches
branches.stale_branches=Stale Branches
branches.all=All Branches
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Change Default Branch
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nieuw bestand
editor.upload_file=Bestand uploaden
@@ -488,18 +506,18 @@ editor.edit_this_file=Bestand aanpassen
editor.must_be_on_a_branch=Je moet in een branch zijn om aanpassingen te maken of voor te stellen
editor.fork_before_edit=Je moet deze repository eerst vorken om dit bestand aan te kunnen passen
editor.delete_this_file=Verwijder dit bestand
editor.must_have_write_access=You must have write access to make or propose changes to this file
editor.must_have_write_access=U moet schrijftoegang hebben om aanpassingen te maken of voor te stellen in dit bestand
editor.file_delete_success=Bestand '%s' is succesvol verwijderd!
editor.name_your_file=Bestandsnaam...
editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
editor.filename_help=Om een map toe te voegen, begin met typen en druk op /. Om een map te verwijderen, ga naar het begin van het veld en druk op backspace.
editor.or=of
editor.cancel_lower=annuleren
editor.commit_changes=Commit Changes
editor.commit_changes=Wijzigingen toepassen
editor.add_tmpl='%s/<filename>' toevoegen
editor.add='%s' toevoegen
editor.update='%s' updaten
editor.delete='%s' verwijderen
editor.commit_message_desc=Add an optional extended description...
editor.commit_message_desc=Voeg een optionele beschrijving toe...
editor.commit_directly_to_this_branch=Commit directly to the <strong class="branch-name">%s</strong> branch.
editor.create_new_branch=Create a <strong>new branch</strong> for this commit and start a pull request.
editor.new_branch_name_desc=Naam nieuwe aftakking...
@@ -509,11 +527,12 @@ editor.branch_already_exists=Aftakking '%s' bestaat al in deze repository.
editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
editor.file_is_a_symlink=The file '%s' is a symlink that cannot be modified from the web editor.
editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
editor.file_editing_no_longer_exists=Het bestand '%s' die u aan het bewerken bent bestaat niet meer in deze repository.
editor.file_changed_while_editing=File content has been changed since you started editing. <a target="_blank" href="%s">Click here</a> to see what have been changed or <strong>press commit again</strong> to overwrite those changes.
editor.file_already_exists=A file with name '%s' already exists in this repository.
editor.no_changes_to_show=Er zijn geen wijzigingen om weer te geven.
editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Submap toevoegen...
editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
editor.upload_files_to_dir=Bestanden uploaden naar '%s'
@@ -558,7 +577,7 @@ issues.filter_milestone_no_select=Geen geselecteerde mijlpaal
issues.filter_assignee=Aangewezene
issues.filter_assginee_no_select=Geen geselecteerde verantwoordelijke
issues.filter_type=Type
issues.filter_type.all_issues=Alle kwesties
issues.filter_type.all_issues=Alle issues
issues.filter_type.assigned_to_you=Aan jou toegewezen
issues.filter_type.created_by_you=Aangemaakt door jou
issues.filter_type.mentioning_you=Vermelden jou
@@ -616,6 +635,7 @@ pulls.compare_compare=vergelijk
pulls.filter_branch=Filter branch
pulls.no_results=Geen resultaten gevonden.
pulls.nothing_to_compare=Er is niets te vergelijken omdat base en head branches dezelfde zijn.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=' Er is al een pull-aanvraag tussen deze twee targets: <a href="%[1]s/pulls/%[3]d"> %[2]s #% [3]d</a>'
pulls.create=Pull verzoek aanmaken
pulls.title_desc=wil %[1]d commits van <code>%[2]s</code> samenvoegen met <code>%[3]s</code>
@@ -631,6 +651,9 @@ pulls.is_checking=Controle van conflicten is nog bezig, ververs deze pagina in e
pulls.can_auto_merge_desc=Dit pull-request kan automatisch samengevoegd worden.
pulls.cannot_auto_merge_desc=Dit pull-request kan niet worden gemerged omdat er conflicten zijn.
pulls.cannot_auto_merge_helper=Gelieve beide versies manueel samen te voegen om de conflicten op te lossen.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=Samenvoegen van pull verzoek
pulls.open_unmerged_pull_exists=U kan de bewerking 'heropenen' niet uitvoeren omdat er al een pull-aanvraag (#%d) is van dezelfde repository met dezelfde informatie. Voeg deze eerst samen.
pulls.delete_branch=Aftakking verwijderen
@@ -689,7 +712,7 @@ settings.branches=Branches
settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
settings.default_branch=Default Branch
settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
settings.update=Update
settings.update=Bijwerken
settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
settings.update_default_branch_success=Default branch of this repository has been updated successfully!
settings.protected_branches=Protected Branches
@@ -704,7 +727,7 @@ settings.protect_require_pull_request_desc=Enable this option to disable direct
settings.protect_whitelist_committers=Whitelist who can push to this branch
settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_users=Users who can push to this branch
settings.protect_whitelist_search_users=Search users
settings.protect_whitelist_search_users=Doorzoek gebruikers
settings.protect_whitelist_teams=Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams=Search teams
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
@@ -724,18 +747,20 @@ settings.allow_public_wiki_desc=Allow public access to wiki when repository is p
settings.use_external_wiki=Externe wiki gebruiken
settings.external_wiki_url=Externe wiki-URL
settings.external_wiki_url_desc=Bezoekers worden doorgestuurd naar de URL als ze op het tabblad klikken.
settings.issues_desc=Kwestietracker inschakelen
settings.use_internal_issue_tracker=Gebruik ingebouwde eenvoudige kwestietracker
settings.issues_desc=Issuetracker inschakelen
settings.use_internal_issue_tracker=Gebruik ingebouwde eenvoudige issuetracker
settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=Externe issuetracker gebruiken
settings.external_tracker_url=URL externe kwestietracker
settings.external_tracker_url=URL externe issuetracker
settings.external_tracker_url_desc=Bezoekers worden doorgestuurd naar de URL als ze op het tabblad klikken.
settings.tracker_url_format=URL-formaat externe issuetracker
settings.tracker_issue_style=Naamgevingstijl externe kwestietracker:
settings.tracker_issue_style=Naamgevingstijl externe issuetracker:
settings.tracker_issue_style.numeric=Nummeriek
settings.tracker_issue_style.alphanumeric=Alfanummeriek
settings.tracker_url_format_desc=U kan de aanduidingen <code>{user} {repo} {index}</code> gebruiken voor de gebruikersnaam, de naam van de repository en de lijst van open tickets.
settings.pulls_desc=Schakel 'pull request' in om publieke bijdragen te mogelijk te maken
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Gevaren zone
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=De nieuwe eigenaar heeft al een repositorie met deze naam
@@ -756,7 +781,7 @@ settings.wiki_deletion_success=De repository met wiki data is succesvol gewist.
settings.delete=Verwijder deze repositorie
settings.delete_desc=Als u eenmaal een repositorie verwijderd is er geen weg terug. Gelieve zeker te zijn van uw acties.
settings.delete_notices_1=- Deze bewerking kan <strong>NIET</strong> ongedaan gemaakt worden.
settings.delete_notices_2=- Deze bewerking verwijdert permanent alle informatie van deze repository met inbegrip van Git gegevens, tickets, opmerkingen en de toegang van medewerkers.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.deletion_success=Repository is succesvol verwijderd!
settings.update_settings_success=Repositorie instellingen zijn succesvol bijgewerkt.
@@ -772,8 +797,10 @@ settings.collaborator_deletion_desc=Deze gebruiker zal niet langer toegang hebbe
settings.remove_collaborator_success=medewerker is verwijderd.
settings.search_user_placeholder=Zoek gebruiker...
settings.org_not_allowed_to_be_collaborator=De organisatie kan niet toegevoegd worden als medewerker.
settings.add_webhook=Webhook toevoegen
settings.hooks_desc=Webhooks dat de externe diensten om kennisgevingen te ontvangen wanneer bepaalde gebeurtenissen op Gogs plaatsvinden. Wanneer de opgegeven gebeurtenissen plaatsvinden, sturen we een POST-aanvraag naar elk van de URL's die u opgeeft. Meer informatie vindt u in onze <a target="_blank" href="%s"> Webhooks gids</a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Choose a type...
settings.add_webhook=Webhook toevoegen
settings.webhook_deletion=Webhook verwijderen
settings.webhook_deletion_desc=Verwijderen van deze webhook zal de informatie en alle geschiedenis verwijderen. Wilt u doorgaan?
settings.webhook_deletion_success=Webhook is succesvol verwijderd!
@@ -787,6 +814,8 @@ settings.webhook.response=Antwoord
settings.webhook.headers=Headers
settings.webhook.payload=Lading
settings.webhook.body=Inhoud
settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git haken worden aangedreven door Git zelf, u kunt bestanden van ondersteunde haken in de lijst hieronder om aangepaste acties van toepassing bewerken.
settings.githook_edit_desc=Als haak niet actief is, zal monster inhoud worden gepresenteerd. Verlof inhoud leeg zal deze haak uitschakelen.
settings.githook_name=Haak naam
@@ -806,7 +835,7 @@ settings.event_send_everything=Ik moet <strong>alles</strong> hebben.
settings.event_choose=Laat me kiezen wat ik nodig heb.
settings.event_create=Creëer
settings.event_create_desc=Branch, of tag aangemaakt
settings.event_delete=Delete
settings.event_delete=Verwijderen
settings.event_delete_desc=Branch or tag deleted
settings.event_fork=Fork
settings.event_fork_desc=Repository forked
@@ -814,10 +843,10 @@ settings.event_push=Push
settings.event_push_desc=Git push naar een repository
settings.event_issues=Issues
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_pull_request=Pull request
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Release
settings.event_release_desc=Release published in a repository.
settings.active=Actief
@@ -830,6 +859,7 @@ settings.recent_deliveries=Recente bezorgingen
settings.hook_type=Type hook
settings.add_slack_hook_desc=<a href="%s"> toegestane vertraging</a> integratie toevoegen aan uw repository.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=Slack token
settings.slack_domain=Slack domein
settings.slack_channel=Slack kanaal
@@ -846,6 +876,8 @@ settings.add_key_success=Nieuwe deploy sleutel '%s' werd succesvol toegevoegd!
settings.deploy_key_deletion=Verwijder deploy sleutel
settings.deploy_key_deletion_desc=Het verwijderen van deze deploy sleutel zal alle gerelateerde toegang verwijderen voor deze repositorie. Wilt u doorgaan?
settings.deploy_key_deletion_success=Deploy sleutel werd met succes verwijderd!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Bladeren bron
diff.parent=bovenliggende
@@ -910,9 +942,8 @@ team_name_helper=U gebruikt deze naam om dit team te vermelden in conversaties.
team_desc_helper=Waar gaat dit team doen?
team_permission_desc=Welke privileges zou dit team moeten hebben?
form.name_reserved=Organisatienaam '%s' is gereserveerd.
form.name_pattern_not_allowed=Organisatie naampatroon '%s' is niet toegestaan.
form.team_name_reserved=Team name '%s' is reserved.
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Instellingen
settings.options=Opties
@@ -984,12 +1015,19 @@ first_page=Eerste
last_page=Laatste
total=Totaal: %d
dashboard.build_info=Build Information
dashboard.app_ver=Application version
dashboard.git_version=Git version
dashboard.go_version=Go version
dashboard.build_time=Build time
dashboard.build_commit=Build commit
dashboard.statistic=Statistieken
dashboard.operations=Bewerkingen
dashboard.system_status=Status Systeemmonitor
dashboard.statistic_info=Gogs database heeft <b>%d</b> gebruikers, <b>%d</b> organisaties, <b>%d</b> openbare sleutels, <b>%d</b> repositories, <b>%d</b> volgers, <b>%d</b> sterren, <b>%d</b> acties, <b>%d</b> participanten, <b>%d</b> issues, <b>%d</b> reacties, <b>%d</b> sociale accounten, <b>%d</b> volgers, <b>%d</b> mirrors, <b>%d</b> publicaties, <b>%d</b> login bronnen, <b>%d</b> webhooks, <b>%d</b> mijlpalen, <b>%d</b> labels, <b>%d</b> hook taken, <b>%d</b> teams, <b>%d</b> bijgewerkte taken, <b>%d</b> bijlagen.
dashboard.operation_name=Bewerking naam
dashboard.operation_switch=Omschakelen
dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Uitvoeren
dashboard.clean_unbind_oauth=Clean unbound OAuths
dashboard.clean_unbind_oauth_success=Alle OAuthes binding hebben verwijderd.
@@ -1064,7 +1102,7 @@ users.allow_import_local=Dit account mag lokale repositories importeren
users.update_profile=Account profiel bijwerken
users.delete_account=Dit account verwijderen
users.still_own_repo=Dit account is nog steeds eigendom van een repositorie. U moet deze repositorie eerst verwijderen of overdragen.
users.still_has_org=Deze account nog steeds lidmaatschap van organisatie, u hebt naar links of hen eerst verwijderen.
users.still_has_org=Dit account is nog lid van ten minste één organisatie. Zeg dit lidmaatschap voor dit account op of verwijder de organisatie eerst.
users.deletion_success=Het account is verwijderd!
orgs.org_manage_panel=Organisaties beheren
@@ -1078,14 +1116,15 @@ repos.name=Naam
repos.private=Prive
repos.watches=Volgers
repos.stars=Sterren
repos.issues=Kwesties
repos.issues=Issues
repos.size=Size
auths.auth_manage_panel=Authenticatie-beheer paneel
auths.auth_sources=Authenticatiebronnen
auths.new=Nieuwe bron toevoegen
auths.name=Naam
auths.type=Type
auths.enabled=Ingeschakeld
auths.default=Default
auths.updated=Bijgewerkt
auths.auth_type=Authenticatietype
auths.auth_name=Authenticatienaam
@@ -1094,6 +1133,7 @@ auths.domain=Domein
auths.host=Host
auths.port=Poort
auths.bind_dn=Binden DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Bind wachtwoord
auths.bind_password_helper=Opgelet: Dit wachtwoord wordt opgeslagen als leesbare tekst. Gebruik geen account met verhoogde rechten.
auths.user_base=User Search Base
@@ -1121,9 +1161,9 @@ auths.enable_tls=Activeer TLS-encryptie
auths.skip_tls_verify=TLS-verificatie overslaan
auths.pam_service_name=PAM servicenaam
auths.enable_auto_register=Activeer automatische registratie
auths.tips=Tips
auths.edit=Verificatie-instelling bewerken
auths.activated=Deze autorisatiemethode is geactiveerd
auths.default_auth=Deze authenticatie bron is de standaard bron
auths.new_success=Nieuwe authenticatie '%s' werd toegevoegd.
auths.update_success=Authenticatie instellingen zijn succesvol gewijzigd.
auths.update=Authenticatie-instellingen bijwerken
@@ -1133,115 +1173,186 @@ auths.delete_auth_desc=Deze authenticatie zal verwijderd worden, wil je verderga
auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success=Authenticatie is met succes verwijderd!
auths.login_source_exist=Login source '%s' already exists.
auths.github_api_endpoint=API Endpoint
config.not_set=(not set)
config.server_config=Serverconfiguratie
config.app_name=Applicatienaam
config.app_ver=Applicatieversie
config.app_url=Applicatie-URL
config.domain=Domein
config.offline_mode=Offline-modus
config.disable_router_log=Router-log uitschakelen
config.brand_name=Brand name
config.run_user=Uitvoerende gebruiker
config.run_mode=Uitvoer modus
config.git_version=Gitversie
config.static_file_root_path=Statische bestanden basis pad
config.log_file_root_path=Log bestand basis pad
config.reverse_auth_user=Omgekeerde verificatie gebruiker
config.server.external_url=External URL
config.server.domain=Domain
config.server.protocol=Protocol
config.server.http_addr=HTTP address
config.server.http_port=HTTP port
config.server.cert_file=Certificate file
config.server.key_file=Key file
config.server.tls_min_version=Minimum TLS version
config.server.unix_socket_permission=Unix socket permission
config.server.local_root_url=Local root URL
config.server.offline_mode=Offline mode
config.server.disable_router_log=Disable router log
config.server.enable_gzip=Enable Gzip
config.server.app_data_path=Application data path
config.server.load_assets_from_disk=Load assets from disk
config.server.landing_url=Landing URL
config.ssh_config=SSH-configuratie
config.ssh_enabled=Ingeschakeld
config.ssh_start_builtin_server=Ingebouwde server starten
config.ssh_domain=Domein
config.ssh_port=Poort
config.ssh_listen_port=Luister op poort
config.ssh_root_path=Root-pad
config.ssh_key_test_path=Pad voor key-tests
config.ssh_keygen_path=Pad van keygen ('ssh-keygen')
config.ssh_minimum_key_size_check=Controleer minimale key-lengte
config.ssh_minimum_key_sizes=Minimale key-lengtes
config.ssh.enabled=Enabled
config.ssh.domain=Exposed domain
config.ssh.port=Exposed port
config.ssh.root_path=Root path
config.ssh.keygen_path=Keygen path
config.ssh.key_test_path=Key test path
config.ssh.minimum_key_size_check=Minimum key size check
config.ssh.minimum_key_sizes=Minimum key sizes
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=Start builtin server
config.ssh.listen_host=Listen host
config.ssh.listen_port=Listen port
config.ssh.server_ciphers=Server ciphers
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Repository Configuration
config.repo_root_path=Repositorie basis pad
config.script_type=Script type
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Disable HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.repo_config=Repository configuration
config.repo.root_path=Root path
config.repo.script_type=Script type
config.repo.ansi_chatset=ANSI charset
config.repo.force_private=Force private
config.repo.max_creation_limit=Max creation limit
config.repo.preferred_licenses=Preferred licenses
config.repo.disable_http_git=Disable HTTP Git
config.repo.enable_local_path_migration=Enable local path migration
config.repo.enable_raw_file_render_mode=Enable raw file render mode
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Upload enabled
config.repo.upload.temp_path=Upload temporary path
config.repo.upload.allowed_types=Upload allowed types
config.repo.upload.file_max_size=Upload file size limit
config.repo.upload.max_files=Upload files limit
config.db_config=Databaseconfiguratie
config.db_type=Type
config.db_host=Host
config.db_name=Naam
config.db_user=Gebruiker
config.db_ssl_mode=SSL modus
config.db_ssl_mode_helper=(alleen voor "postgres")
config.db_path=Pad
config.db_path_helper=(voor "sqlite3" en "tidb")
config.db.type=Type
config.db.host=Host
config.db.name=Name
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=User
config.db.ssl_mode=SSL mode
config.db.ssl_mode_helper=(for "postgres" only)
config.db.path=Path
config.db.path_helper=(for "sqlite3"only)
config.db.max_open_conns=Maximum open connections
config.db.max_idle_conns=Maximum idle connections
config.service_config=Serviceconfiguratie
config.register_email_confirm=E-mailbevestiging registreren
config.disable_register=Registratie uitgeschakeld
config.show_registration_button=Registeren knop weergeven
config.require_sign_in_view=Inloggen vereist om te kunnen inzien
config.mail_notify=E-mailnotificaties
config.disable_key_size_check=Controle op key-lengte uitschakelen
config.enable_captcha=CAPTCHA inschakelen
config.active_code_lives=Actieve Code leven
config.reset_password_code_lives=Reset wachtwoord Code leven
config.security_config=Security configuration
config.security.login_remember_days=Login remember days
config.security.cookie_remember_name=Remember cookie
config.security.cookie_username=Username cookie
config.security.cookie_secure=Enable secure cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Enable login status cookie
config.security.login_status_cookie_name=Login status cookie
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Webhook configuratie
config.queue_length=Lengte van wachtrij
config.deliver_timeout=Bezorging verlooptijd
config.skip_tls_verify=TLS certificaat controle overslaan
config.email_config=Email configuration
config.email.enabled=Enabled
config.email.subject_prefix=Subject prefix
config.email.host=Host
config.email.from=From
config.email.user=User
config.email.disable_helo=Disable HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Skip certificate verify
config.email.use_certificate=Use custom certificate
config.email.cert_file=Certificate file
config.email.key_file=Key file
config.email.use_plain_text=Use plain text
config.email.add_plain_text_alt=Add plain text alternative
config.email.send_test_mail=Send test email
config.email.test_mail_failed=Failed to send test email to '%s': %v
config.email.test_mail_sent=Test email has been sent to '%s'.
config.mailer_config=Mailerconfiguatie
config.mailer_enabled=Ingeschakeld
config.mailer_disable_helo=Schakel HELO uit
config.mailer_name=Naam
config.mailer_host=Host
config.mailer_user=Gebruiker
config.send_test_mail=Testbericht verzenden
config.test_mail_failed=Verzending van een testmail naar '%s' is mislukt: %v
config.test_mail_sent=Test-email is verstuurd naar '%s'.
config.auth_config=Authentication configuration
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=Require email confirmation
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Disable registration
config.auth.enable_registration_captcha=Enable registration captcha
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=OAuth-configuratie
config.oauth_enabled=Ingeschakeld
config.cache_config=Cache-configuratie
config.cache_adapter=Cache-adapter
config.cache_interval=Cache-interval
config.cache_conn=Cache-connectie
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=Sessieconfiguratie
config.session_provider=Sessieprovider
config.provider_config=Provider config
config.cookie_name=Cookie naam
config.enable_set_cookie=Set Cookie inschakelen
config.gc_interval_time=GC interval time
config.session_life_time=Sessie duur
config.https_only=Alleen HTTPS
config.cookie_life_time=Cookie duur leeftijd
config.session.provider=Provider
config.session.provider_config=Provider config
config.session.cookie_name=Cookie
config.session.https_only=HTTPS only
config.session.gc_interval=GC interval
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Cache-configuratie
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=HTTP configuration
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Enabled
config.attachment.path=Path
config.attachment.allowed_types=Allowed types
config.attachment.max_size=Size limit
config.attachment.max_files=Files limit
config.release_config=Release configuration
config.release.attachment.enabled=Attachment enabled
config.release.attachment.allowed_types=Attachment allowed types
config.release.attachment.max_size=Attachment size limit
config.release.attachment.max_files=Attachment files limit
config.picture_config=Foto configuratie
config.picture_service=Foto service
config.disable_gravatar=Gravatar uitschakelen
config.enable_federated_avatar=Federated Avatars toestaan
config.picture.avatar_upload_path=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatar source
config.picture.disable_gravatar=Disable Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Mirror configuration
config.mirror.default_interval=Default interval
config.webhook_config=Webhook configuratie
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Gitconfiguratie
config.git_disable_diff_highlight=Disable Diff Syntax Highlight
config.git_max_diff_lines=Max Diff Lines (for a single file)
config.git_max_diff_line_characters=Max Diff Characters (for a single line)
config.git_max_diff_files=Max Diff Files (to be shown)
config.git_gc_args=GC Arguments
config.git_migrate_timeout=Migration Timeout
config.git_mirror_timeout=Mirror Update Timeout
config.git_clone_timeout=Clone Operation Timeout
config.git_pull_timeout=Pull Operation Timeout
config.git_gc_timeout=GC Operation Timeout
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC arguments
config.git.migrate_timeout=Migration timeout
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=Clone timeout
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=LFS configuration
config.lfs.storage=Storage
config.lfs.objects_path=Objects path
config.log_config=Logconfiguratie
config.log_file_root_path=Log bestand basis pad
config.log_mode=Mode
config.log_options=Options
@@ -1272,14 +1383,13 @@ notices.delete_success=System notices have been deleted successfully.
[action]
create_repo=repositorie aangemaakt in <a href="%s">%s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
rename_repo=hernoemde repository van <code>%[1]s</code> naar <a href="%[2]s">%[3]s</a>
commit_repo=push update naar <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>
compare_commits=Toon vergelijking voor deze %d commits
transfer_repo=repositorie verplaatst naar <code>%s</code> naar <a href="%s">%s</a>
create_issue=`opende issue in <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`sloot kwestie <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`heropende kwestie <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`gesloten issue <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`heropende issue <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`reactie op issue <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`maakte pull request <a href="%s/issues/%s">%s#%[2]s</a>`
close_pull_request=`sloot pull request <a href="%s/issues/%s">%s#%[2]s</a>`
@@ -1289,6 +1399,10 @@ create_branch=created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href=
delete_branch=deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=geduwd label <a href="%s/src/%s"> %[2]s</a> naar <a href="%[1]s"> %[3]s</a>
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=geleden
@@ -1310,6 +1424,7 @@ months=%d maanden %s
years=%d jaren %s
raw_seconds=seconden
raw_minutes=minuten
raw_hours=hours
[dropzone]
default_message=Drop bestanden hier of klik om te uploaden.

View File

@@ -9,7 +9,6 @@ sign_out=Wyloguj
sign_up=Zarejestruj się
register=Zarejestruj się
website=Strona
version=Wersja
page=Strona
template=Szablon
language=Język
@@ -40,21 +39,26 @@ your_settings=Twoje ustawienia
activities=Aktywności
pull_requests=Oczekujące zmiany
issues=Zagadnienia
issues=Problemy
cancel=Anuluj
[status]
page_not_found=Strona nie została znaleziona
internal_server_error=Wewnętrzny błąd serwera
[install]
install=Instalacja
title=Kroki instalacyjne dla pierwszego uruchomienia
docker_helper=Jeśli używasz Gogs wewnątrz Dockera, proszę przeczytaj <a target="_blank" href="%s">wytyczne</a>, zanim zmienisz coś na tej stronie!
requite_db_desc=Gogs wymaga bazy MySQL, PostgreSQL, SQLite3 lub TiDB.
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Ustawienia bazy danych
db_type=Typ bazy danych
host=Host
user=Użytkownik
password=Hasło
db_name=Nazwa bazy danych
db_schema=Schema
db_helper=Proszę użyć silnika INNODB z kodowaniem utf8_general_ci dla MySQL.
ssl_mode=Tryb SSL
path=Ścieżka
@@ -84,6 +88,7 @@ log_root_path=Ścieżka dla logów
log_root_path_helper=Katalog do zapisu logów.
enable_console_mode=Włącz tryb konsolowy
enable_console_mode_popup=Oprócz zapisywania do pliku wyświetlaj logi także w konsoli.
default_branch=Default Branch
optional_title=Ustawienia opcjonalne
email_title=Ustawienia serwera e-mail
@@ -122,6 +127,7 @@ run_user_not_match=Użytkownik aplikacji nie jest aktualnym użytkownikiem: %s -
smtp_host_missing_port=W SMTP Host brakuje portu w adresie.
invalid_smtp_from=Pole SMTP OD nie jest prawidłowe: %v
save_config_failed=Nie udało się zapisać konfiguracji: %v
init_failed=Nie udało się zainicjować aplikacji: %v
invalid_admin_setting=Nieprawidłowe ustawienia konta admina: %v
install_success=Cześć! Cieszymy się, że wybierałeś Gogs, baw się dobrze.
invalid_log_root_path=Ścieżka dla logów jest niepoprawna: %v
@@ -151,6 +157,8 @@ register_hepler_msg=Masz już konto? Zaloguj się teraz!
social_register_hepler_msg=Masz już konto? Powiąż je teraz!
disable_register_prompt=Przepraszamy rejestracja została wyłączona. Prosimy o kontakt z administratorem serwisu.
disable_register_mail=Przepraszamy, potwierdzenia rejestracji zostały wyłączone przez administratora.
auth_source=Źródło uwierzytelniania
local=Lokalne
remember_me=Zapamiętaj mnie
forgot_password=Zapomniałem hasła
forget_password=Zapomniałeś hasła?
@@ -229,6 +237,7 @@ org_name_been_taken=Nazwa organizacji jest już zajęta.
team_name_been_taken=Nazwa zespołu jest już zajęta.
email_been_used=Adres e-mail jest już zarejestrowany.
username_password_incorrect=Nazwa użytkownika lub hasło nie jest prawidłowe.
auth_source_mismatch=Wybrane źródło uwierzytelniania nie jest związane z użytkownikiem.
enterred_invalid_repo_name=Upewnij się, że wprowadzona nazwa repozytorium jest poprawna.
enterred_invalid_owner_name=Upewnij się, że nazwa właściciela repozytorium jest poprawna.
enterred_invalid_password=Proszę upewnij się, że wprowadzono hasło jest poprawne.
@@ -256,8 +265,7 @@ following=Obserwowani
follow=Obserwuj
unfollow=Przestań obserwować
form.name_reserved=Nazwa użytkownika „%s” jest zarezerwowana.
form.name_pattern_not_allowed=Wzorzec nazwy użytkownika „%s” jest niedozwolony.
form.name_not_allowed=Nazwa użytkownika lub wzór %q jest niedozwolony.
[settings]
profile=Profil
@@ -309,6 +317,7 @@ delete_email=Usuń
email_deletion=Usunięcie wiadomości e-mail
email_deletion_desc=Usunięcie tego adresu e-mail spowoduje usunięcie innych informacji związanych z Twoim kontem. Czy chcesz kontynuować?
email_deletion_success=E-mail został usunięty pomyślnie!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Dodaj nowy e-mail
add_email=Dodaj e-mail
add_email_confirmation_sent=Nowa wiadomość e-mail z potwierdzeniem została wysłana do '%s', proszę sprawdzić swoją skrzynkę odbiorczą w ciągu %d godzin, aby dokończyć proces potwierdzania.
@@ -348,6 +357,7 @@ two_factor_or_enter_secret=Lub wprowadź sekret:
two_factor_then_enter_passcode=Następnie wprowadź kod dostępu:
two_factor_verify=Weryfikuj
two_factor_invalid_passcode=Wprowadzony kod nie jest prawidłowy, spróbuj ponownie!
two_factor_reused_passcode=Ten kod jest już używany, spróbuj ponownie!
two_factor_enable_error=Włączenie dwuetapowego uwierzytelniania nie powiodło się: %v
two_factor_enable_success=Uwierzytelnianie dwuetapowe Twojego konta zostało włączone pomyślnie!
two_factor_recovery_codes_title=Kody odzyskiwania uwierzytelniania dwuetapowego
@@ -362,6 +372,7 @@ two_factor_disable_success=Uwierzytelnianie dwuetapowe wyłączono pomyślnie!
manage_access_token=Zarządzaj osobistymi tokenami dostępu
generate_new_token=Wygeneruj nowy token
tokens_desc=Tokeny, które wygenerowałeś, mogą być użyte do dostępu do API Gogs.
access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Jak na razie, każdy token zapewnia pełen dostęp do Twojego konta.
token_name=Nazwa tokena
generate_token=Wygeneruj token
@@ -370,6 +381,7 @@ delete_token=Usuń
access_token_deletion=Usuwanie osobistego tokena dostępu
access_token_deletion_desc=Usunięcie tego tokena osobistego dostęp spowoduje usunięcie wszystkich powiązanych dostępów do aplikacji. Czy chcesz kontynuować?
delete_token_success=Osobisty token dostępu został usunięty pomyślnie! Nie zapomnij również zaktualizować swoich aplikacji.
token_name_exists=Token o takiej nawie już istniej.
orgs.none=Nie jesteś członkiem żadnej organizacji.
orgs.leave_title=Opuść organizację
@@ -391,7 +403,9 @@ owner=Właściciel
repo_name=Nazwa repozytorium
repo_name_helper=Dobre nazwy repozytorium są krótkie, wpadające w pamięć i <strong>unikalne</strong>.
visibility=Widoczność
unlisted=Unlisted
visiblity_helper=To repozytorium jest <span class="ui red text">prywatne</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=Administrator systemu wymaga, żeby wszystkie nowe repozytoria były <span class="ui red text">Prywatne</span>
visiblity_fork_helper=(Zmiana tej wartości wpłynie na wszystkie forki)
clone_helper=Potrzebujesz pomocy z klonowaniem? Odwiedź <a target="_blank" href="%s">Pomoc</a>!
@@ -417,10 +431,11 @@ mirror_last_synced=Ostatnia synchronizacja
watchers=Obserwujący
stargazers=Polubienia
forks=Forki
repo_description_helper=Opis repozytorium. Maksymalnie 512 znaków.
repo_description_length=Dostępne znaki
form.reach_limit_of_creation=Właściciel osiągnął limit maksymalnej ilości repozytoriów %d.
form.name_reserved=Nazwa repozytorium „%s” jest zarezerwowana.
form.name_pattern_not_allowed=Wzorzec nazwy repozytorium „%s” jest niedozwolony.
form.name_not_allowed=Nazwa repozytorium lub wzór %q jest niedozwolony.
need_auth=Wymaga autoryzacji
migrate_type=Typ migracji
@@ -431,6 +446,7 @@ migrate.clone_address_desc=URL może być adresem HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=Masz także możliwość migracji repozytorium przez ścieżka serwera lokalnego.
migrate.permission_denied=Nie możesz importować lokalnych repozytoriów.
migrate.invalid_local_path=Ścieżka jest niepoprawna. Nie istnieje lub nie jest katalogiem.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migracja nie powiodła się: %v
mirror_from=kopia lustrzana
@@ -478,6 +494,8 @@ branches.stale_branches=Stare gałęzie
branches.all=Wszystkie gałęzie
branches.updated_by=Zaktualizowano %[1]s przez %[2]s
branches.change_default_branch=Zmiana domyślnej gałęzi
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nowy plik
editor.upload_file=Załaduj plik
@@ -514,6 +532,7 @@ editor.file_changed_while_editing=Zawartość pliku została zmieniona od rozpoc
editor.file_already_exists=Nazwa pliku '%s' już istnieje w tym repozytorium.
editor.no_changes_to_show=Brak zmian do pokazania.
editor.fail_to_update_file=Tworzenie/aktualizacja pliku '%s' nie powiodła się z błędem: %v
editor.fail_to_delete_file=Nie można usunąć pliku '%s' z powodu błędu: %v
editor.add_subdir=Dodaj podkatalog...
editor.unable_to_upload_files=Wysyłanie plików do '%s' nie powiodło się z błędem: %v
editor.upload_files_to_dir=Prześlij pliki do '%s'
@@ -616,6 +635,7 @@ pulls.compare_compare=porównaj
pulls.filter_branch=Filtruj branch
pulls.no_results=Nie znaleziono wyników.
pulls.nothing_to_compare=Nie ma nic do porównania, ponieważ gałęzie bazy i head są identyczne.
pulls.nothing_merge_base=Nie ma nic do porównania, ponieważ dwie gałęzie mają zupełnie inną historię.
pulls.has_pull_request=`Istnieje już pull request dla tych dwóch celów: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Utwórz Pull Request
pulls.title_desc=chce scalić %[1]d commity/ów z <code>%[2]s</code> do <code>%[3]s</code>
@@ -631,6 +651,9 @@ pulls.is_checking=Sprawdzanie konfliktów jeszcze trwa, proszę odświeżyć str
pulls.can_auto_merge_desc=Pull request może być automatycznie scalony.
pulls.cannot_auto_merge_desc=Pull request nie może być automatycznie scalony z powodu konfliktów.
pulls.cannot_auto_merge_helper=Proszę scalić ręcznie, aby rozwiązać konflikty.
pulls.create_merge_commit=Utwórz scalający commit
pulls.rebase_before_merging=Rebase przed scaleniem
pulls.commit_description=Opis commitu
pulls.merge_pull_request=Scal Pull Request
pulls.open_unmerged_pull_exists=`Nie można otworzyć ponownie ponieważ już istnieje gotowy do scalenia pull request (#%d) z tego samego repozytorium z tymi samymi informacjami.`
pulls.delete_branch=Usuń gałąź
@@ -735,7 +758,9 @@ settings.tracker_issue_style=Styl nazw zewnętrznego systemu zgłaszania problem
settings.tracker_issue_style.numeric=Numeryczny
settings.tracker_issue_style.alphanumeric=Alfanumeryczne
settings.tracker_url_format_desc=Symbole zastępcze <code>{user} {repo} {index}</code> mogą być użyte dla nazwy użytkownika, nazwy repozytorium i numeru problemu.
settings.pulls_desc=Włącz obsługę pull request, aby akceptować publiczny wkład
settings.pulls_desc=Włącz żądania pobierania, aby akceptować wkład pomiędzy repozytoriami i gałęziami
settings.pulls.ignore_whitespace=Ignoruj zmiany w białych znakach
settings.pulls.allow_rebase_merge=Zezwalaj na użycie rebase do scalenia commitów
settings.danger_zone=Strefa niebezpieczeństwa
settings.cannot_fork_to_same_owner=Nie można sforkować repozytorium do pierwotnego właściciela.
settings.new_owner_has_same_repo=Nowy właściciel już posiada repozytorium o tej samej nazwie.
@@ -772,8 +797,10 @@ settings.collaborator_deletion_desc=Ten użytkownik nie będzie miał dostępu w
settings.remove_collaborator_success=Współpracownik został usunięty.
settings.search_user_placeholder=Szukaj użytkownika...
settings.org_not_allowed_to_be_collaborator=Organizacji nie można dodać jako współpracownika.
settings.add_webhook=Dodaj webhooka
settings.hooks_desc=Webooki działają tak jak proste wywołania HTTP POST. Jeśli cokolwiek zdarzy się w Gogs, wyślemy powiadomienie do wybranego hosta. Więcej informacji można znaleźć w <a target="_blank" href="%s">przewodniku webhooków</a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Wybierz typ...
settings.add_webhook=Dodaj webhooka
settings.webhook_deletion=Usuń webhooka
settings.webhook_deletion_desc=Usunięcie tego webooka spowoduje usunięcie powiązanych informacji i wpisów w historii. Czy chcesz kontynuować?
settings.webhook_deletion_success=Webhook został pomyślnie usunięty!
@@ -787,6 +814,8 @@ settings.webhook.response=Odpowiedź
settings.webhook.headers=Nagłówki
settings.webhook.payload=Zawartość
settings.webhook.body=Treść
settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Hooki Git są obsługiwane bezpośrednio przez Git. Pliki obsługiwanych hooków z poniższej listy mogą być edytowane, aby wykonywać niestandardowe operacje.
settings.githook_edit_desc=Jeśli hook jest nieaktywny, zaprezentowana zostanie przykładowa treść. Pozostawienie pustej wartości wyłączy ten hook.
settings.githook_name=Nazwa hooka
@@ -814,10 +843,10 @@ settings.event_push=Wypchnięcie
settings.event_push_desc=Wypchnięcie (push) do repozytorium Git
settings.event_issues=Zagadnienia
settings.event_issues_desc=Zagadnienie otwarte, zamknięte, ponownie otwarte, wyedytowane, przypisane, nieprzypisane, etykieta uaktualniona, etykieta wyczyszczona, kamień milowy, kamień milowy usunięty.
settings.event_issue_comment=Komentarz zagadnienia
settings.event_issue_comment_desc=Komentarz zagadnienia utworzony, wyedytowany lub usunięty.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull request otwarty, zamknięty, ponownie otwarty, edytowany, przypisany, nieprzypisany, etykieta zaktualizowana, etykieta wyczyszczona, kamień milowy, kamień milowy wyczyszczony; lub zsynchronizowany.
settings.event_issue_comment=Komentarz zagadnienia
settings.event_issue_comment_desc=Komentarz zagadnienia utworzony, wyedytowany lub usunięty.
settings.event_release=Wydanie
settings.event_release_desc=Wydanie opublikowane w repozytorium.
settings.active=Aktywny
@@ -830,6 +859,7 @@ settings.recent_deliveries=Ostatnie wywołania
settings.hook_type=Typ hooka
settings.add_slack_hook_desc=Dodaj integrację ze <a href="%s">Slackiem</a> do Twojego repozytorium.
settings.add_discord_hook_desc=Dodaj integrację <a href="%s">Discord</a> do Twojego repozytorium.
settings.add_dingtalk_hook_desc=Dodaj integrację <a href="%s">Dingtalk</a> do Twojego repozytorium.
settings.slack_token=Token
settings.slack_domain=Domena
settings.slack_channel=Kanał
@@ -846,6 +876,8 @@ settings.add_key_success=Nowy klucz wdrożenia '%s' został pomyślnie dodany!
settings.deploy_key_deletion=Utwórz klucz wdrożenia
settings.deploy_key_deletion_desc=Usunięcie tego klucza wdrożenia spowoduje usunięcie powiązanego dostępu do tego repozytorium. Czy chcesz kontynuować?
settings.deploy_key_deletion_success=Klucz wdrożenia został pomyślnie usunięty!
settings.description_desc=Opis repozytorium. Maksymalnie 512 znaków.
settings.description_length=Dostępne znaki
diff.browse_source=Przeglądaj źródła
diff.parent=rodzic
@@ -910,9 +942,8 @@ team_name_helper=Będziesz używał tej nazwy do wywoływania tego zespołu w dy
team_desc_helper=Czym zajmuje się ten zespół?
team_permission_desc=Jaki poziom uprawnień powinien mieć ten zespół?
form.name_reserved=Nazwa organizacji „%s” jest zarezerwowana.
form.name_pattern_not_allowed=Wzorzec nazwy organizacji „%s” jest niedozwolony.
form.team_name_reserved=Nazwa zespołu '%s' jest zarezerwowana.
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Ustawienia
settings.options=Opcje
@@ -984,12 +1015,19 @@ first_page=Pierwsza
last_page=Ostatnia
total=Ogółem: %d
dashboard.build_info=Informacje o kompilacji
dashboard.app_ver=Wersja aplikacji
dashboard.git_version=Wersja Git
dashboard.go_version=Wersja Go
dashboard.build_time=Data kompilacji
dashboard.build_commit=Zbuduj commit
dashboard.statistic=Statystyki
dashboard.operations=Operacje
dashboard.system_status=Stan monitora systemu
dashboard.statistic_info=Baza danych Gogs zawiera <b>%d</b> użytkowników, <b>%d</b> organizacji, <b>%d</b> kluczy publicznych, <b>%d</b> repozytoriów, <b>%d</b> obserwujących, <b>%d</b> polubionych, <b>%d</b> akcji, <b>%d</b> tokenów, <b>%d</b> problemów, <b>%d</b> komenatrzy, <b>%d</b> kont społecznościowych, <b>%d</b> obserwacji, <b>%d</b> mirrorów, <b>%d</b> wydań, <b>%d</b> login sources, <b>%d</b> webhooków, <b>%d</b> kamieni milowych, <b>%d</b> labels, <b>%d</b> zadań hooków, <b>%d</b> zespołów, <b>%d</b> zadań aktualizacji, <b>%d</b> załączników.
dashboard.operation_name=Nazwa operacji
dashboard.operation_switch=Przełącz
dashboard.select_operation_to_run=Wybierz operację do uruchomienia
dashboard.operation_run=Uruchom
dashboard.clean_unbind_oauth=Usuń niepowiązane wpisy OAuth
dashboard.clean_unbind_oauth_success=Wszystkie niepowiązane wpisy OAuth zostały pomyślnie usunięte.
@@ -1081,11 +1119,12 @@ repos.stars=Polubienia
repos.issues=Problemy
repos.size=Rozmiar
auths.auth_manage_panel=Panel zarządzania uwierzytelnianiem
auths.auth_sources=Źródła uwierzytelniania
auths.new=Dodaj nowe źródło
auths.name=Nazwa
auths.type=Typ
auths.enabled=Włączono
auths.default=Domyślne
auths.updated=Zaktualizowano
auths.auth_type=Typ uwierzytelniania
auths.auth_name=Nazwa uwierzytelniania
@@ -1094,6 +1133,7 @@ auths.domain=Domena
auths.host=Host
auths.port=Port
auths.bind_dn=Bind DN
auths.bind_dn_helper=Możesz użyć '%s' jako symbol zastępczy dla nazwy użytkownika, np. DOM\%s
auths.bind_password=Hasło Bind
auths.bind_password_helper=Ostrzeżenie: To hasło jest przechowywane w postaci zwykłego tekstu. Nie należy używać wysoko uprzywilejowanego konta.
auths.user_base=Baza wyszukiwania
@@ -1121,9 +1161,9 @@ auths.enable_tls=Włącz szyfrowanie TLS
auths.skip_tls_verify=Pomiń weryfikację protokołu TLS
auths.pam_service_name=Nazwa usługi PAM
auths.enable_auto_register=Włącz automatyczną rejestrację
auths.tips=Wskazówki
auths.edit=Edytuj ustawienia uwierzytelniania
auths.activated=To uwierzytelnienie zostało aktywowane
auths.default_auth=To uwierzytelnianie jest domyślnym źródłem logowania
auths.new_success=Pomyślnie dodano nowe uwierzytelnianie '%s'.
auths.update_success=Ustawienia uwierzytelnienia zostały zaktualizowane pomyślnie.
auths.update=Aktualizuj ustawienia uwierzytelniania
@@ -1133,115 +1173,186 @@ auths.delete_auth_desc=To uwierzytelnienie zostanie usunięte, czy chcesz kontyn
auths.still_in_used=Ten rodzaj autentykacji jest wciąż wykorzystywany przez niektórych użytkowników. Usuń lub przekonwertuj użytkowników, aby wykorzystywali inny typ logowania.
auths.deletion_success=Uwierzytelnienie zostało usunięte pomyślnie!
auths.login_source_exist=Login '%s' już istnieje.
auths.github_api_endpoint=Punkt końcowy API
config.not_set=(nie ustawiono)
config.server_config=Konfiguracja serwera
config.app_name=Nazwa aplikacji
config.app_ver=Wersja aplikacji
config.app_url=Adres URL aplikacji
config.domain=Domena
config.offline_mode=Tryb offline
config.disable_router_log=Wyłącz dziennik routera
config.brand_name=Nazwa marki
config.run_user=Użytkownik uruchomieniowy
config.run_mode=Tryb uruchamienia
config.git_version=Wersja Git
config.static_file_root_path=Ścieżka plików statycznych
config.log_file_root_path=Ścieżka plików dziennika
config.reverse_auth_user=Użytkownik dostarczony przez odwrotne proxy
config.server.external_url=Zewnętrzny URL
config.server.domain=Domena
config.server.protocol=Protokół
config.server.http_addr=Adres HTTP
config.server.http_port=Port HTTP
config.server.cert_file=Pliki certyfikatu
config.server.key_file=Plik klucza
config.server.tls_min_version=Minimalna wersja TLS
config.server.unix_socket_permission=Unix socket permission
config.server.local_root_url=Lokalny główny adres URL
config.server.offline_mode=Tryb offline
config.server.disable_router_log=Wyłącz dziennik routera
config.server.enable_gzip=Włącz Gzip
config.server.app_data_path=Ścieżka danych aplikacji
config.server.load_assets_from_disk=Wczytaj zasoby z dysku
config.server.landing_url=Landing URL
config.ssh_config=Konfiguracja SSH
config.ssh_enabled=Aktywne
config.ssh_start_builtin_server=Uruchom serwer wbudowany
config.ssh_domain=Domena
config.ssh_port=Port
config.ssh_listen_port=Port nasłuchu
config.ssh_root_path=Ścieżka katalogu głównego
config.ssh_key_test_path=Ścieżka klucza testowego
config.ssh_keygen_path=Ścieżka generatora ('ssh-keygen')
config.ssh_minimum_key_size_check=Sprawdzanie minimalnej długości klucza
config.ssh_minimum_key_sizes=Minimalne rozmiary kluczy
config.ssh.enabled=Aktywne
config.ssh.domain=Exposed domain
config.ssh.port=Exposed port
config.ssh.root_path=Ścieżka katalogu głównego
config.ssh.keygen_path=Keygen path
config.ssh.key_test_path=Key test path
config.ssh.minimum_key_size_check=Minimum key size check
config.ssh.minimum_key_sizes=Minimum key sizes
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=Uruchom wbudowany serwer
config.ssh.listen_host=Listen host
config.ssh.listen_port=Port nasłuchu
config.ssh.server_ciphers=Server ciphers
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=Konfiguracja repozytorium
config.repo_root_path=Ścieżka repozytoriów
config.script_type=Typ skryptu
config.repo_force_private=Forsuj tryb prywatny
config.max_creation_limit=Maksymalny limit utworzeń
config.preferred_licenses=Preferowane licencje
config.disable_http_git=Wyłącz HTTP Git
config.enable_local_path_migration=Włącz lokalną ścieżkę migracji
config.commits_fetch_concurrency=Pobieraj zmiany w trybie równoległym
config.repo.root_path=Ścieżka katalogu głównego
config.repo.script_type=Typ skryptu
config.repo.ansi_chatset=Zestaw znaków ANSI
config.repo.force_private=Wymuś tryb prywatny
config.repo.max_creation_limit=Max creation limit
config.repo.preferred_licenses=Wybrana licencja
config.repo.disable_http_git=Wyłącz Git przez HTTP
config.repo.enable_local_path_migration=Enable local path migration
config.repo.enable_raw_file_render_mode=Enable raw file render mode
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Editor line wrap extensions
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Upload enabled
config.repo.upload.temp_path=Upload temporary path
config.repo.upload.allowed_types=Upload allowed types
config.repo.upload.file_max_size=Upload file size limit
config.repo.upload.max_files=Upload files limit
config.db_config=Konfiguracja bazy danych
config.db_type=Typ
config.db_host=Host
config.db_name=Nazwa
config.db_user=Użytkownik
config.db_ssl_mode=Tryb SSL
config.db_ssl_mode_helper=(tylko dla „postgres”)
config.db_path=Ścieżka
config.db_path_helper=(dla „sqlite3” i „tidb”)
config.db.type=Typ
config.db.host=Host
config.db.name=Nazwa
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=Użytkownik
config.db.ssl_mode=Tryb SSL
config.db.ssl_mode_helper=(for "postgres" only)
config.db.path=Ścieżka
config.db.path_helper=(for "sqlite3"only)
config.db.max_open_conns=Maximum open connections
config.db.max_idle_conns=Maximum idle connections
config.service_config=Konfiguracja usługi
config.register_email_confirm=Wymagaj potwierdzenia e-mail
config.disable_register=Wyłącz rejestrację
config.show_registration_button=Pokazuj przycisk rejestracji
config.require_sign_in_view=Wymagaj bycia zalogowanym
config.mail_notify=Powiadomienia e-mail
config.disable_key_size_check=Wyłącz sprawdzanie minimalnego rozmiaru klucza
config.enable_captcha=Włącz Captcha
config.active_code_lives=Ważność kodów aktywacyjnych
config.reset_password_code_lives=Czas życia kodu resetowania hasła
config.security_config=Security configuration
config.security.login_remember_days=Login remember days
config.security.cookie_remember_name=Pamiętaj pliki cookies
config.security.cookie_username=Username cookie
config.security.cookie_secure=Enable secure cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Enable login status cookie
config.security.login_status_cookie_name=Login status cookie
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Konfiguracja webhooka
config.queue_length=Długość kolejki
config.deliver_timeout=Limit czasu zdarzenia
config.skip_tls_verify=Pomiń weryfikację protokołu TLS
config.email_config=Konfiguracja E-mail
config.email.enabled=Włączono
config.email.subject_prefix=Subject prefix
config.email.host=Host
config.email.from=Od
config.email.user=Użytkownik
config.email.disable_helo=Wyłącz HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Pomiń weryfikację certyfikatu
config.email.use_certificate=Use custom certificate
config.email.cert_file=Certificate file
config.email.key_file=Plik klucza
config.email.use_plain_text=Użyj zwykłego tekstu
config.email.add_plain_text_alt=Dodaj prosty tekst alternatywny
config.email.send_test_mail=Wyślij wiadomość testową
config.email.test_mail_failed=Nie udało się wysłać wiadomości testowej do '%s': %v
config.email.test_mail_sent=Wiadomość testowa została wysłana do '%s'.
config.mailer_config=Konfiguracja poczty
config.mailer_enabled=Aktywne
config.mailer_disable_helo=Wyłącz HELO
config.mailer_name=Nazwa
config.mailer_host=Host
config.mailer_user=Użytkownik
config.send_test_mail=Wyślij email testowy
config.test_mail_failed=Nieudane wysłanie wiadomości email do '%s': %v
config.test_mail_sent=Testowa wiadomość email została wysłana do '%s'.
config.auth_config=Konfiguracja uwierzytelniania
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Reset password code lives
config.auth.require_email_confirm=Wymagaj potwierdzenia adresu e-mail
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Wyłącz rejestrację
config.auth.enable_registration_captcha=Enable registration captcha
config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=Konfiguracja OAuth
config.oauth_enabled=Aktywne
config.cache_config=Konfiguracja cache
config.cache_adapter=Adapter cache
config.cache_interval=Interwał pamięci podręcznej
config.cache_conn=Połączenie z pamięcią podręczną
config.user_config=Konfiguracja użytkownika
config.user.enable_email_notify=Enable email notification
config.session_config=Konfiguracja sesji
config.session_provider=Dostawca sesji
config.provider_config=Konfiguracja dostawcy
config.cookie_name=Nazwa ciasteczka
config.enable_set_cookie=Włącz ciasteczka
config.gc_interval_time=Interwał odśmiecania
config.session_life_time=Czas życia sesji
config.https_only=Tylko HTTPS
config.cookie_life_time=Czas życia ciasteczka
config.session.provider=Dostawca
config.session.provider_config=Provider config
config.session.cookie_name=Ciasteczka
config.session.https_only=Tylko HTTPS
config.session.gc_interval=Interwał GC
config.session.max_life_time=Maksymalny czas życia
config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Konfiguracja cache
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=Konfiguracja HTTP
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Włączono
config.attachment.path=Ścieżka
config.attachment.allowed_types=Dozwolone typy
config.attachment.max_size=Limit rozmiaru
config.attachment.max_files=Limit plików
config.release_config=Konfiguracja wydania
config.release.attachment.enabled=Attachment enabled
config.release.attachment.allowed_types=Attachment allowed types
config.release.attachment.max_size=Attachment size limit
config.release.attachment.max_files=Attachment files limit
config.picture_config=Ustawienia obrazów
config.picture_service=Serwis obrazów
config.disable_gravatar=Wyłącz Gravatara
config.enable_federated_avatar=Włącz zewnętrzne avatary
config.picture.avatar_upload_path=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Źródło Gravatar
config.picture.disable_gravatar=Wyłącz Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Konfiguracja serwera lustrzanego
config.mirror.default_interval=Domyślny interwał
config.webhook_config=Konfiguracja webhooka
config.webhook.types=Typy
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Pomiń weryfikację TLS
config.git_config=Konfiguracja Git
config.git_disable_diff_highlight=Wyłączyć wyróżnianie składni diff
config.git_max_diff_lines=Maksymalna ilość linii diff (dla pojedynczego pliku)
config.git_max_diff_line_characters=Maksymalna ilość znaków diff (dla pojedynczego pliku)
config.git_max_diff_files=Maksymalna ilość plików diff (które zostaną wyświetlone)
config.git_gc_args=Argumenty GC
config.git_migrate_timeout=Limit czasu migracji
config.git_mirror_timeout=Limit czasu aktualizacji kopii lustrzanej
config.git_clone_timeout=Limit czasu operacji klonowania
config.git_pull_timeout=Limit czasu dla operacji pull
config.git_gc_timeout=Limit czasu odśmiecania pamięci
config.git.disable_diff_highlight=Disable diff syntax highlight
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff characters limit (for a single line)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=Argumenty GC
config.git.migrate_timeout=Limit czasu migracji
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=Clone timeout
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=LFS configuration
config.lfs.storage=Magazyn
config.lfs.objects_path=Ścieżka obiektów
config.log_config=Konfiguracja dziennika
config.log_file_root_path=Ścieżka plików dziennika
config.log_mode=Tryb
config.log_options=Ustawienia
@@ -1272,7 +1383,6 @@ notices.delete_success=Powiadomienia systemowe zostały pomyślnie usunięte.
[action]
create_repo=tworzy repozytorium <a href="%s">%s</a>
fork_repo=rozwidlone repozytorium do <a href="%s"> %s</a>
rename_repo=zmienia nazwę repozytorium <code>%[1]s</code> na <a href="%[2]s">%[3]s</a>
commit_repo=wypycha do <a href="%[1]s/src/%[2]s">%[3]s</a> w <a href="%[1]s">%[4]s</a>
compare_commits=Zobacz porównanie tych %d commitów
@@ -1289,6 +1399,10 @@ create_branch=stworzył nową gałąź <a href="%[1]s/src/%[2]s">%[3]s</a> at <a
delete_branch=usunął gałąź <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=taguje <a href="%s/src/%s">%[2]s</a> w <a href="%[1]s">%[3]s</a>
delete_tag=usunięty tag <code>%[2]s</code> % <a href="%[1]s">[3]s</a>
fork_repo=rozwidlone repozytorium do <a href="%s"> %s</a>
mirror_sync_push=zsynchronizowano commit z <a href="%[1]s/src/%[2]s">%[3]s</a> na <a href="%[1]s">%[4]s</a> z kopii lustrzanej
mirror_sync_create=zsynchronizowano nowy odnośnik <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> z mirrora
mirror_sync_delete=zsynchronizowano i usunięto odnośnik <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> z mirrora
[tool]
ago=temu
@@ -1310,6 +1424,7 @@ months=%d miesięcy %s
years=%d lat %s
raw_seconds=sekund
raw_minutes=minut
raw_hours=godziny
[dropzone]
default_message=Upuść pliki tutaj lub kliknij, aby przesłać.

Some files were not shown because too many files have changed in this diff Show More