Compare commits

..

1085 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
76f3497e3b Fix embedded Postgres configuration and initialization order
Co-authored-by: unknwon <2946214+unknwon@users.noreply.github.com>
2026-02-06 01:48:00 +00:00
copilot-swe-agent[bot]
74d4d9a262 Fix trailing whitespace in code review feedback
Co-authored-by: unknwon <2946214+unknwon@users.noreply.github.com>
2026-02-06 01:32:05 +00:00
deepsource-autofix[bot]
f5daceef55 style: format code with Go fmt and Gofumpt
This commit fixes the style issues introduced in 4616bd6 according to the output
from Go fmt and Gofumpt.

Details: https://github.com/gogs/gogs/pull/8150
2026-02-06 01:29:34 +00:00
copilot-swe-agent[bot]
4616bd64dd Add embedded PostgreSQL support via --embedded-postgres flag
Co-authored-by: unknwon <2946214+unknwon@users.noreply.github.com>
2026-02-06 01:29:19 +00:00
copilot-swe-agent[bot]
39b27c3503 Initial plan 2026-02-06 01:18:32 +00: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
2543 changed files with 234815 additions and 914370 deletions

View File

@@ -1,21 +0,0 @@
[run]
init_cmds = [
["make", "build-dev"],
["./gogs", "web"]
]
watch_all = true
watch_dirs = [
"$WORKDIR/cmd",
"$WORKDIR/models",
"$WORKDIR/pkg",
"$WORKDIR/routes"
]
watch_exts = [".go"]
ignore_files = [".+_test.go"]
build_delay = 1500
interrupt_timout = 1
graceful_kill = true
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,15 +1,15 @@
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.3.1.min.css linguist-vendored
public/js/libs/* linguist-vendored
public/js/jquery-1.11.3.min.js linguist-vendored
public/js/semantic-2.3.1.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,44 +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 an issue on [GitHub](https://github.com/gogits/gogs/issues). To avoid wasting time and reduce back-and-forth communication with team members, please be respect to [Issue Template](ISSUE_TEMPLATE.md).
- [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)
### Feature Request
In addition to the general guides with open source contributions, you would also need to:
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.
- 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).
### Pull Request
## Issues
Please read detailed information on [Wiki](https://github.com/gogits/gogs/wiki/Contributing-Code).
### Ask for help
### Ask For Help
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.
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.
### Create a new issue
## Code of conduct
- 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.
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.
### Pick up an issue to solve
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.
- 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 🙇‍♂️
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.
## Add new features or make big changes
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.
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.
Instances of abusive, harassing, or otherwise unacceptable behavior can be reported by emailing u@gogs.io
## Pull requests
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/)
When you're finished with the changes, create a pull request, or a series of pull requests if necessary.
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:
- 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.
### Things we do not accept
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.
### Coding guidelines
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 [中文](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 do not end your title with a question mark or period.
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: explain why
- Log gist (usually found in `log/gogs.log`):
## Description
...

View File

@@ -1,50 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
First of all, read https://www.chiark.greenend.org.uk/~sgtatham/bugs.html.
If you don't want to read, it's up to you. But don't waste your time continue reporting.
The issue will be closed without any explanation if it does not satisfy any of following requirements:
1. Please speak English, we have forum in [中文](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 do not end your title with a question mark or period.
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.**
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
- Gogs version (or commit ref):
- Git version:
- Operating system:
- Database (replace `[ ]` with `[x]`):
- [ ] PostgreSQL
- [ ] MySQL
- [ ] MSSQL
- [ ] SQLite
- Can you reproduce the bug at https://try.gogs.io:
- [ ] Yes: provide example URL
- [ ] No: explain why
- Log gist (usually found in `log/gogs.log`):

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

@@ -1,26 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
The issue will be closed without any explanation if it does not satisfy any of following requirements:
1. Please speak English, we have forum in [中文](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 do not end your title with a question mark or period.
4. Please take a moment to search that an issue doesn't already exist.
**You MUST delete above content including this line before posting; too lazy to take this action considered invalid report.**
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

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,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,39 +1,35 @@
targets:
debian-8: &debian
debian-11: &debian
build_dependencies:
- libpam0g-dev
dependencies:
- libpam0g
- git
debian-9:
debian-12:
<<: *debian
debian-10:
debian-13:
<<: *debian
ubuntu-14.04:
debian-14:
<<: *debian
ubuntu-16.04:
<<: *debian
build_dependencies:
- bzr
- mercurial
ubuntu-18.04:
<<: *debian
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
# Can be updated after CentOS 6 support is dropped, otherwise fails with
# `fatal: bad config file line 2 in /home/pkgr/.gitconfig` because of
# https://github.com/heroku/heroku-buildpack-go/blob/f96ebebfa7605fd3916521e42ab050c81c9b947a/lib/common.sh#L238
buildpack: https://github.com/heroku/heroku-buildpack-go.git#v76
after_install: ./.packager/hooks/postinst
buildpack: https://github.com/heroku/heroku-buildpack-go.git#main

View File

@@ -1,15 +0,0 @@
language: go
go:
- 1.8.x
- 1.9.x
- 1.10.x
- 1.11.x
- 1.12.x
before_install:
- sudo apt-get update -qq
- sudo apt-get install -y libpam-dev
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.

298
CHANGELOG.md Normal file
View File

@@ -0,0 +1,298 @@
# Changelog
All notable changes to Gogs are documented in this file.
## 0.15.0+dev (`main`)
## 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,43 +1,44 @@
FROM golang:alpine AS binarybuilder
# Install build deps
RUN apk --no-cache --no-progress add --virtual build-deps build-base git linux-pam-dev
WORKDIR /go/src/github.com/gogs/gogs
FROM golang:alpine3.21 AS binarybuilder
RUN apk --no-cache --no-progress add --virtual \
build-deps \
build-base \
git \
linux-pam-dev
WORKDIR /gogs.io/gogs
COPY . .
RUN make build TAGS="sqlite cert pam"
FROM alpine:latest
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64 /usr/sbin/gosu
RUN chmod +x /usr/sbin/gosu \
&& echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories \
&& apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata \
rsync
RUN ./docker/build/install-task.sh
RUN TAGS="cert pam" task build
ENV GOGS_CUSTOM /data/gogs
FROM alpine:3.21
RUN apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata \
rsync
# Configure LibC Name Service
ENV GOGS_CUSTOM=/data/gogs
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
WORKDIR /app/gogs
COPY docker ./docker
COPY templates ./templates
COPY public ./public
COPY --from=binarybuilder /go/src/github.com/gogs/gogs/gogs .
COPY --from=binarybuilder /gogs.io/gogs/.bin/gogs .
RUN ./docker/finalize.sh
RUN ./docker/build/finalize.sh
# Configure Docker Container
VOLUME ["/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
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,39 +0,0 @@
FROM arm64v8/alpine:latest
# 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 \
&& echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories \
&& apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata \
rsync
ENV GOGS_CUSTOM /data/gogs
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
COPY docker /app/gogs/docker
COPY templates /app/gogs/templates
COPY public /app/gogs/public
WORKDIR /app/gogs/build
COPY . .
RUN ./docker/build-go.sh \
&& ./docker/build.sh \
&& ./docker/finalize.sh
# 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,48 +0,0 @@
FROM arm64v8/alpine:latest
ENV GOGS_CUSTOM /data/gogs
ENV QEMU_EXECVE 1
# For cross compile on dockerhub
################################
COPY ./docker/aarch64/qemu-aarch64-static /usr/bin/
COPY ./docker/aarch64/resin-xbuild /usr/bin/
RUN [ "/usr/bin/qemu-aarch64-static", "/bin/sh", "-c", "ln -s resin-xbuild /usr/bin/cross-build-start; ln -s resin-xbuild /usr/bin/cross-build-end; ln /bin/sh /bin/sh.real" ]
RUN [ "cross-build-start" ]
# Prepare the container
#######################
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.10/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 shadow socat tzdata go=1.10.1-r0
COPY docker /app/gogs/docker
COPY templates /app/gogs/templates
COPY public /app/gogs/public
WORKDIR /app/gogs/build
COPY . .
RUN ./docker/build.sh \
&& ./docker/finalize.sh
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
# For cross compile on dockerhub
################################
RUN [ "cross-build-end" ]
# 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,39 +0,0 @@
FROM arm32v7/alpine:latest
# 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 \
&& echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories \
&& apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata \
rsync
ENV GOGS_CUSTOM /data/gogs
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
COPY docker /app/gogs/docker
COPY templates /app/gogs/templates
COPY public /app/gogs/public
WORKDIR /app/gogs/build
COPY . .
RUN ./docker/build-go.sh \
&& ./docker/build.sh \
&& ./docker/finalize.sh
# 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,59 +0,0 @@
FROM arm32v7/alpine:latest
ENV GOGS_CUSTOM /data/gogs
ENV QEMU_EXECVE 1
# For cross compile on dockerhub
################################
COPY ./docker/armhf/qemu-arm-static /usr/bin/
COPY ./docker/armhf/resin-xbuild /usr/bin/
RUN [ "/usr/bin/qemu-arm-static", "/bin/sh", "-c", "ln -s resin-xbuild /usr/bin/cross-build-start; ln -s resin-xbuild /usr/bin/cross-build-end; ln /bin/sh /bin/sh.real" ]
RUN [ "cross-build-start" ]
# Prepare the container
#######################
# 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 \
&& echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories \
&& apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata \
rsync
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
COPY docker /app/gogs/docker
COPY templates /app/gogs/templates
COPY public /app/gogs/public
WORKDIR /app/gogs/build
COPY . .
RUN ./docker/build-go.sh \
&& ./docker/build.sh \
&& ./docker/finalize.sh
# For cross compile on dockerhub
################################
RUN [ "cross-build-end" ]
# 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/gogs/gogs/pkg/setting.BuildTime=$(shell date -u '+%Y-%m-%d %I:%M:%S %Z')"
LDFLAGS += -X "github.com/gogs/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 routes
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|auth.d" -pkg=bindata conf/...
less: public/css/gogs.css
public/css/gogs.css: $(LESS_FILES)
@type lessc >/dev/null 2>&1 && lessc $< >$@ || echo "lessc command not found, skipped."
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 routes models pkg

156
README.md
View File

@@ -1,71 +1,51 @@
Gogs [![Build Status](https://travis-ci.org/gogs/gogs.svg?branch=master)](https://travis-ci.org/gogs/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) [![Discord](https://img.shields.io/discord/382595433060499458.svg)](https://discord.gg/9aqdHU7)
=====================
![gogs-brand](https://user-images.githubusercontent.com/2946214/146899259-6a8b58ad-8d6e-40d2-ab02-79dc6aadabbf.png)
![](https://github.com/gogs/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/gogs/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/gogs/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/gogs/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)
## Vision
This project aims to build a simple, stable and extensible self-hosted Git service that can be setup 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.
## 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 ([30 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.
@@ -74,70 +54,54 @@ 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/gogs/gogs/tree/master/docker)
- [Install with Vagrant](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
- [Install with Kubernetes Using Helm Charts](https://github.com/helm/charts/tree/master/incubator/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://blog.mynook.info/post/host-your-own-git-server-using-gogs/) (Chinese)
- [阿里云上 Ubuntu 14.04 64 位安装 Gogs](http://my.oschina.net/luyao/blog/375654) (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)
- [LunaNode](https://github.com/LunaNode/launchgogs)
## 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.
<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>
Other acknowledgments:
- 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 [DigitalOcean](https://www.digitalocean.com), [VPSServer](https://www.vpsserver.com/), [Hosted.nl](https://www.hosted.nl/) and [MonoVM](https://monovm.com) for sponsoring VPS services.
- Thanks [KeyCDN](https://www.keycdn.com/) for sponsoring CDN service.
- Thanks [Buildkite](https://buildkite.com) for sponsoring open source CI/CD plan.
## Contributors
## 👋 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/gogs/gogs/blob/master/LICENSE) file for the full license text.
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fgogs%2Fgogs.svg?type=small)](https://app.fossa.io/projects/git%2Bgithub.com%2Fgogs%2Fgogs?ref=badge_small)
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/gogs/gogs.svg?branch=master)](https://travis-ci.org/gogs/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 服务。
## 项目愿景
项目旨在打造一个以最简便的方式搭建简单、稳定和可扩展的自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 **所有平台**,包括 Linux、macOS、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 协议)数据库
- 支持多语言本地化([30 种语言]([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)的本地化
## 硬件要求
@@ -55,15 +53,10 @@ Gogs 是一款极易搭建的自助 Git 服务。
- [二进制安装](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/gogs/gogs/tree/master/docker)
- [采用 Docker 部署](https://github.com/gogs/gogs/tree/main/docker)
- [通过 Vagrant 安装](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
- [通过基于 Kubernetes 的 Helm Charts](https://github.com/helm/charts/tree/master/incubator/gogs)
### 使用教程
- [使用 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)
### 云端部署
- [OpenShift](https://github.com/tkisme/gogs-openshift)
@@ -75,29 +68,28 @@ Gogs 是一款极易搭建的自助 Git 服务。
- [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)、[VPSServer](https://www.vpsserver.com/)、[Hosted.nl](https://www.hosted.nl/) 和 [MonoVM](https://monovm.com) 提供服务器赞助。
- 感谢 [KeyCDN](https://www.keycdn.com/) 提供 CDN 服务赞助。
- 感谢 [Buildkite](https://buildkite.com) 提供免费的开源项目 CI/CD 支持。
## 贡献成员
@@ -107,4 +99,4 @@ Gogs 是一款极易搭建的自助 Git 服务。
## 授权许可
本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://github.com/gogs/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!

96
Taskfile.yml Normal file
View File

@@ -0,0 +1,96 @@
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

View File

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

View File

@@ -1,183 +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"
"reflect"
"runtime"
"github.com/urfave/cli"
"github.com/gogs/gogs/models"
"github.com/gogs/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,
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/conf/app.ini", "Custom configuration file path"),
},
}
subcmdDeleteInactivateUsers = cli.Command{
Name: "delete-inactive-users",
Usage: "Delete all inactive accounts",
Action: adminDashboardOperation(
models.DeleteInactivateUsers,
"All inactivate accounts have been deleted successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdDeleteRepositoryArchives = cli.Command{
Name: "delete-repository-archives",
Usage: "Delete all repositories archives",
Action: adminDashboardOperation(
models.DeleteRepositoryArchives,
"All repositories archives have been deleted successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdDeleteMissingRepositories = cli.Command{
Name: "delete-missing-repositories",
Usage: "Delete all repository records that lost Git files",
Action: adminDashboardOperation(
models.DeleteMissingRepositories,
"All repositories archives have been deleted successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdGitGcRepos = cli.Command{
Name: "collect-garbage",
Usage: "Do garbage collection on repositories",
Action: adminDashboardOperation(
models.GitGcRepos,
"All repositories have done garbage collection successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "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(
models.RewriteAuthorizedKeys,
"All public keys have been rewritten successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdSyncRepositoryHooks = cli.Command{
Name: "resync-hooks",
Usage: "Resync pre-receive, update and post-receive hooks",
Action: adminDashboardOperation(
models.SyncRepositoryHooks,
"All repositories' pre-receive, update and post-receive hooks have been resynced successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdReinitMissingRepositories = cli.Command{
Name: "reinit-missing-repositories",
Usage: "Reinitialize all repository records that lost Git files",
Action: adminDashboardOperation(
models.ReinitMissingRepositories,
"All repository records that lost Git files have been reinitialized successfully",
),
Flags: []cli.Flag{
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
}
func adminDashboardOperation(operation func() error, successMessage string) func(*cli.Context) error {
return func(c *cli.Context) error {
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setting.NewContext()
models.LoadConfigs()
models.SetEngine()
if err := operation(); err != nil {
functionName := runtime.FuncForPC(reflect.ValueOf(operation).Pointer()).Name()
return fmt.Errorf("%s: %v", functionName, err)
}
fmt.Printf("%s\n", successMessage)
return nil
}
}

View File

@@ -1,137 +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/gogs/gogs/models"
"github.com/gogs/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 _CURRENT_BACKUP_FORMAT_VERSION = 1
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(com.ToStr(_CURRENT_BACKUP_FORMAT_VERSION))
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", "repo-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,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
}

View File

@@ -1,11 +1,8 @@
// +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
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package cmd
package main
import (
"crypto/ecdsa"
@@ -25,7 +22,7 @@ import (
"github.com/urfave/cli"
)
var Cert = cli.Command{
var certCommand = cli.Command{
Name: "cert",
Usage: "Generate self-signed certificate",
Description: `Generate a self-signed X.509 certificate for a TLS server.
@@ -41,7 +38,7 @@ Outputs to 'cert.pem' and 'key.pem' and will overwrite existing files.`,
},
}
func publicKey(priv interface{}) interface{} {
func publicKey(priv any) any {
switch k := priv.(type) {
case *rsa.PrivateKey:
return &k.PublicKey
@@ -52,7 +49,7 @@ func publicKey(priv interface{}) interface{} {
}
}
func pemBlockForKey(priv interface{}) *pem.Block {
func pemBlockForKey(priv any) *pem.Block {
switch k := priv.(type) {
case *rsa.PrivateKey:
return &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(k)}
@@ -72,7 +69,7 @@ func runCert(ctx *cli.Context) error {
log.Fatal("Missing required --host parameter")
}
var priv interface{}
var priv any
var err error
switch ctx.String("ecdsa-curve") {
case "":
@@ -147,17 +144,28 @@ func runCert(ctx *cli.Context) error {
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()
err = pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
if err != nil {
log.Fatalf("Failed to encode data to cert.pem: %s", err)
}
err = certOut.Close()
if err != nil {
log.Fatalf("Failed to close writing to cert.pem: %s", err)
}
log.Println("Written cert.pem")
keyOut, err := os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
keyOut, err := os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o600)
if err != nil {
log.Fatalf("Failed to open key.pem for writing: %v\n", err)
}
pem.Encode(keyOut, pemBlockForKey(priv))
keyOut.Close()
err = pem.Encode(keyOut, pemBlockForKey(priv))
if err != nil {
log.Fatalf("Failed to encode data to key.pem: %s", err)
}
err = keyOut.Close()
if err != nil {
log.Fatalf("Failed to close writing to key.pem: %s", err)
}
log.Println("Written key.pem")
return nil
}

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

@@ -0,0 +1,38 @@
package main
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,
}
}

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

@@ -0,0 +1,270 @@
package main
import (
"bufio"
"bytes"
"crypto/tls"
"fmt"
"net/url"
"os"
"os/exec"
"path/filepath"
"strings"
"github.com/unknwon/com"
"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"
)
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 := com.StrTo(os.Getenv(database.EnvRepoID)).MustInt64()
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 := com.StrTo(os.Getenv(database.EnvAuthUserID)).MustInt64()
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 !com.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 !com.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
}
options := database.PushUpdateOptions{
OldCommitID: string(fields[0]),
NewCommitID: string(fields[1]),
FullRefspec: string(fields[2]),
PusherID: com.StrTo(os.Getenv(database.EnvAuthUserID)).MustInt64(),
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 !com.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/unknwon/com"
"github.com/urfave/cli"
"gogs.io/gogs/internal/conf"
)
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 !com.IsDir(c.String("source")) {
return errors.Newf("source directory %q does not exist or is not a directory", c.String("source"))
} else if !com.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 !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 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
}

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

@@ -0,0 +1,35 @@
// 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,
certCommand,
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
}

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

@@ -0,0 +1,279 @@
package main
import (
"context"
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"
"time"
"github.com/unknwon/com"
"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
key, err := database.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 == 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
}

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

@@ -0,0 +1,806 @@
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/unknwon/com"
"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/embeddedpg"
"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", "", "Custom configuration file path"),
boolFlag("embedded-postgres", "Use embedded PostgreSQL database"),
},
}
// 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 {
// Initialize configuration first to get WorkDir
err := conf.Init(c.String("config"))
if err != nil {
log.Fatal("Failed to initialize configuration: %v", err)
}
conf.InitLogging(false)
var localPg *embeddedpg.LocalPostgres
if c.Bool("embedded-postgres") {
localPg = embeddedpg.Initialize(conf.WorkDir())
if err := localPg.Launch(); err != nil {
log.Fatal("Failed to launch embedded postgres: %v", err)
}
defer func() {
if err := localPg.Shutdown(); err != nil {
log.Error("Failed to shutdown embedded postgres: %v", err)
}
}()
localPg.ConfigureGlobalDatabase()
}
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 !com.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,277 +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"
"path/filepath"
"strings"
"github.com/Unknwon/com"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"github.com/gogs/git-module"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/models/errors"
"github.com/gogs/gogs/pkg/httplib"
"github.com/gogs/gogs/pkg/mailer"
"github.com/gogs/gogs/pkg/setting"
"github.com/gogs/gogs/pkg/template"
)
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(models.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(models.ENV_REPO_ID)).MustInt64()
protectBranch, err := models.GetProtectBranchOfRepoByName(repoID, branchName)
if err != nil {
if errors.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(models.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", "--max-count=1", oldCommitID, "^"+newCommitID).
RunInDir(models.RepoPath(os.Getenv(models.ENV_REPO_OWNER_NAME), os.Getenv(models.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(models.ENV_REPO_CUSTOM_HOOKS_PATH), "pre-receive")
if !com.IsFile(customHooksPath) {
return nil
}
var hookCmd *exec.Cmd
if setting.IsWindows {
hookCmd = exec.Command("bash.exe", "custom_hooks/pre-receive")
} else {
hookCmd = exec.Command(customHooksPath)
}
hookCmd.Dir = models.RepoPath(os.Getenv(models.ENV_REPO_OWNER_NAME), os.Getenv(models.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(models.ENV_REPO_CUSTOM_HOOKS_PATH), "update")
if !com.IsFile(customHooksPath) {
return nil
}
var hookCmd *exec.Cmd
if setting.IsWindows {
hookCmd = exec.Command("bash.exe", append([]string{"custom_hooks/update"}, args...)...)
} else {
hookCmd = exec.Command(customHooksPath, args...)
}
hookCmd.Dir = models.RepoPath(os.Getenv(models.ENV_REPO_OWNER_NAME), os.Getenv(models.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)
// Post-receive hook does more than just gather Git information,
// so we need to setup additional services for email notifications.
setting.NewPostReceiveHookServices()
mailer.NewContext()
mailer.InitMailRender(path.Join(setting.StaticRootPath, "templates/mail"),
path.Join(setting.CustomPath, "templates/mail"), template.NewFuncMap())
isWiki := strings.Contains(os.Getenv(models.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(models.ENV_AUTH_USER_ID)).MustInt64(),
PusherName: os.Getenv(models.ENV_AUTH_USER_NAME),
RepoUserName: os.Getenv(models.ENV_REPO_OWNER_NAME),
RepoName: os.Getenv(models.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=" +
template.EscapePound(strings.TrimPrefix(options.RefFullName, git.BRANCH_PREFIX)) +
"&secret=" + os.Getenv(models.ENV_REPO_OWNER_SALT_MD5) +
"&pusher=" + os.Getenv(models.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(models.ENV_REPO_CUSTOM_HOOKS_PATH), "post-receive")
if !com.IsFile(customHooksPath) {
return nil
}
var hookCmd *exec.Cmd
if setting.IsWindows {
hookCmd = exec.Command("bash.exe", "custom_hooks/post-receive")
} else {
hookCmd = exec.Command(customHooksPath)
}
hookCmd.Dir = models.RepoPath(os.Getenv(models.ENV_REPO_OWNER_NAME), os.Getenv(models.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/gogs/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,148 +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/gogs/gogs/models"
"github.com/gogs/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"),
},
}
// 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 !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, "Failed to extract backup archive: %v", err)
}
archivePath := path.Join(tmpDir, _ARCHIVE_ROOT_DIR)
defer os.RemoveAll(archivePath)
// 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, "Failed 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)
}
formatVersion := metadata.Section("").Key("VERSION").MustInt()
if formatVersion == 0 {
log.Fatal(0, "Failed to determine the backup format version from metadata '%s': %s", metaFile, "VERSION is not presented")
}
if formatVersion != _CURRENT_BACKUP_FORMAT_VERSION {
log.Fatal(0, "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, _CURRENT_BACKUP_FORMAT_VERSION, 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 := 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, "Failed 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, "Failed to backup current 'custom': %v", err)
}
}
if err = os.Rename(path.Join(archivePath, "custom"), setting.CustomPath); err != nil {
log.Fatal(0, "Failed to import 'custom': %v", err)
}
}
// Data files
if !c.Bool("database-only") {
os.MkdirAll(setting.AppDataPath, os.ModePerm)
for _, dir := range []string{"attachments", "avatars", "repo-avatars"} {
// Skip if backup archive does not have corresponding data
srcPath := path.Join(archivePath, "data", dir)
if !com.IsDir(srcPath) {
continue
}
dirPath := path.Join(setting.AppDataPath, dir)
if com.IsExist(dirPath) {
if err = os.Rename(dirPath, dirPath+".bak"); err != nil {
log.Fatal(0, "Failed to backup current 'data': %v", err)
}
}
if err = os.Rename(srcPath, dirPath); err != nil {
log.Fatal(0, "Failed 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, "Failed to extract 'repositories.zip': %v", err)
}
}
log.Info("Restore succeed!")
log.Shutdown()
return nil
}

View File

@@ -1,272 +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/gogs/gogs/models"
"github.com/gogs/gogs/models/errors"
"github.com/gogs/gogs/pkg/setting"
)
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.UserAccessMode(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(), models.ComposeHookEnvs(models.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,757 +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/prometheus/client_golang/prometheus/promhttp"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"gopkg.in/macaron.v1"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/pkg/bindata"
"github.com/gogs/gogs/pkg/context"
"github.com/gogs/gogs/pkg/form"
"github.com/gogs/gogs/pkg/mailer"
"github.com/gogs/gogs/pkg/setting"
"github.com/gogs/gogs/pkg/template"
"github.com/gogs/gogs/routes"
"github.com/gogs/gogs/routes/admin"
apiv1 "github.com/gogs/gogs/routes/api/v1"
"github.com/gogs/gogs/routes/dev"
"github.com/gogs/gogs/routes/org"
"github.com/gogs/gogs/routes/repo"
"github.com/gogs/gogs/routes/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 := strings.TrimSpace(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: models.USER_AVATAR_URL_PREFIX,
SkipLogging: setting.DisableRouterLog,
},
))
m.Use(macaron.Static(
setting.RepositoryAvatarUploadPath,
macaron.StaticOptions{
Prefix: models.REPO_AVATAR_URL_PREFIX,
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")
}
routes.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
m.SetAutoHead(true)
// 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, routes.Home)
m.Group("/explore", func() {
m.Get("", func(c *context.Context) {
c.Redirect(setting.AppSubURL + "/explore/repos")
})
m.Get("/repos", routes.ExploreRepos)
m.Get("/users", routes.ExploreUsers)
m.Get("/organizations", routes.ExploreOrganizations)
}, ignSignIn)
m.Combo("/install", routes.InstallInit).Get(routes.Install).
Post(bindIgnErr(form.Install{}), routes.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.Post("/logout", user.SignOut)
})
// ***** END: User *****
reqAdmin := context.Toggle(&context.ToggleOptions{SignInRequired: true, AdminRequired: true})
// ***** START: Admin *****
m.Group("/admin", func() {
m.Get("", 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)
})
}, 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 := 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.Post("/action/:action", user.Action)
}, reqSignIn, context.InjectParamsUser())
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.Post("/dingtalk/new", bindIgnErr(form.NewDingtalkHook{}), repo.DingtalkHooksNewPost)
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.Post("/dingtalk/:id", bindIgnErr(form.NewDingtalkHook{}), repo.DingtalkHooksEditPost)
})
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() {
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("/dingtalk/new", bindIgnErr(form.NewDingtalkHook{}), repo.DingtalkHooksNewPost)
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.Post("/dingtalk/:id", bindIgnErr(form.NewDingtalkHook{}), repo.DingtalkHooksEditPost)
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.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 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.Options("/*", ignSignInAndCsrf, repo.HTTPContexter(), repo.HTTP)
m.Route("/*", "GET,POST", ignSignInAndCsrf, repo.HTTPContexter(), repo.HTTP)
})
m.Options("/:reponame/*", 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)
m.Group("/-", func() {
if setting.Prometheus.Enabled {
m.Get("/metrics", func(c *context.Context) {
if !setting.Prometheus.EnableBasicAuth {
return
}
c.RequireBasicAuth(setting.Prometheus.BasicAuthUsername, setting.Prometheus.BasicAuthPassword)
}, promhttp.Handler())
}
})
// 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(routes.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, "Failed to start server: %v", err)
}
return nil
}

View File

@@ -1,6 +0,0 @@
Execute following command in ROOT directory when anything is changed:
```
$ go get -u github.com/go-bindata/go-bindata/...
$ make bindata
```

View File

@@ -2,53 +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 =
; Indicate whether to rewrite authorized_keys at start, ignored when use builtin SSH server
REWRITE_AUTHORIZED_KEYS_AT_START = false
; 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
;
@@ -58,271 +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", "dingtalk"
TYPES = gogs, slack, discord, dingtalk
; 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
; Prefix prepended to the subject line
SUBJECT_PREFIX = `[%(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
; If sending html emails, then also attach a plaintext alternative to the MIME message, to support older mail clients and make spam filters happier.
ADD_PLAIN_TEXT_ALT = 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_gogs
; 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
; Path to store repository uploaded avatars
REPOSITORY_AVATAR_UPLOAD_PATH = data/repo-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 = false
; 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.
@@ -339,15 +376,15 @@ LEVEL = Trace
[log.file]
; Comment out to inherit
; LEVEL =
; This enables automated log rotate (switch of following options)
; 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
@@ -362,8 +399,8 @@ URL =
; LEVEL =
; Webhook URL
URL =
; Username displayed in webhook
USERNAME = %(APP_NAME)s
; The username to be displayed in notification.
USERNAME = %(BRAND_NAME)s
[log.xorm]
; Enable file rotation
@@ -375,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
@@ -408,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 =
@@ -424,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]
@@ -467,16 +516,25 @@ NEWS_FEED_PAGING_NUM = 20
COMMITS_PAGING_NUM = 30
[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 =
[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
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
; Extension mapping to highlight class
; e.g. .toml=ini
[highlight.mapping]
; Used for datetimepicker
[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
@@ -508,14 +566,10 @@ id-ID = id
fa-IR = fa
vi-VN = vi
pt-PT = pt
; Extension mapping to highlight class
; e.g. .toml=ini
[highlight.mapping]
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

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)
}

View File

@@ -76,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,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 или 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=Път
@@ -84,6 +88,7 @@ log_root_path=Път към журналите
log_root_path_helper=Директория в която се записват журналите.
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=Парола
@@ -122,6 +127,7 @@ run_user_not_match=Потребителският контекст на прил
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,8 +157,8 @@ register_hepler_msg=Вече имате профил? Впишете се сег
social_register_hepler_msg=Вече имате профил? Свържете се сега!
disable_register_prompt=За съжаление създаването на нови регистрации е изключено. Обърнете се към администратора на сайта.
disable_register_mail=За съжаление потвърждението на регистрации е изключено.
auth_source=Authentication Source
local=Local
auth_source=Източник за удостоверяване
local=Локален
remember_me=Запомни ме
forgot_password=Забравена парола
forget_password=Забравена парола?
@@ -173,10 +179,10 @@ non_local_account=Нелокални потребители не могат да
login_two_factor=Двуфакторно удостоверяване
login_two_factor_passcode=Парола за удостоверяване
login_two_factor_enter_recovery_code=Enter a two-factor recovery code
login_two_factor_recovery=Two-factor Recovery
login_two_factor_enter_recovery_code=Въведете двуфакторен код за възстановяване
login_two_factor_recovery=Двуфакторно възстановяване
login_two_factor_recovery_code=Код за възстановяване
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_enter_passcode=Въведете двуфакторен код
login_two_factor_invalid_recovery_code=Този код за възстановяване вече е бил използван или не е валиден.
[mail]
@@ -214,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 знака.`
@@ -249,7 +255,7 @@ org_still_own_repo=Тази организация все още притежа
target_branch_not_exist=Целевият клон не съществува.
[user]
change_avatar=Проми своя аватар
change_avatar=Промени своя аватар
join_on=Регистриран
repositories=Хранилища
activity=Публична дейност
@@ -259,8 +265,7 @@ 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=Профил
@@ -312,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 часа, за да завършите процеса на регистрация.
@@ -366,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 ключ
@@ -374,6 +381,7 @@ 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=Напусни организация
@@ -395,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>!
@@ -425,8 +435,7 @@ 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=Тип мигриране
@@ -437,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=огледало от
@@ -484,6 +494,8 @@ 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=Качи файл
@@ -785,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=Уеб-куката е изтрита успешно!
@@ -800,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=Име на куката
@@ -926,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=Име на екип "%s" е запазено.
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=Опции
@@ -1000,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 са изтрити успешно.
@@ -1151,120 +1173,186 @@ 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_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
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=Конфигурация на хранилище
config.repo_root_path=Основен път към хранилища
config.script_type=Тип на скрипта
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Предпочитани лицензи
config.disable_http_git=Забраняване на HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=Конфигуриране на HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
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_subject_prefix=Subject Prefix
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_file_root_path=Път към журнал
config.log_mode=Режим
config.log_options=Настройки
@@ -1336,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
@@ -44,17 +43,22 @@ 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 režim
path=Cesta
@@ -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
@@ -259,8 +265,7 @@ 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
@@ -312,6 +317,7 @@ 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í.
@@ -366,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
@@ -374,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
@@ -395,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>!
@@ -425,8 +435,7 @@ 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í
@@ -437,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
@@ -484,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
@@ -520,7 +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=Failed to delete file '%s' with error: %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'
@@ -640,7 +652,7 @@ pulls.can_auto_merge_desc=Tento požadavek na natažení může být automaticky
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 before merging
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í.`
@@ -748,7 +760,7 @@ 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=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í reabse pro slučovací commity
settings.pulls.allow_rebase_merge=Povolit použití rebase pro sloení 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.
@@ -785,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!
@@ -800,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
@@ -860,7 +876,7 @@ 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=Description of repository. Maximum 512 characters length.
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
@@ -926,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
@@ -1000,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.
@@ -1141,7 +1163,7 @@ auths.pam_service_name=Název služby PAM
auths.enable_auto_register=Povolit zaregistrování se
auths.edit=Upravit nastavení ověřování
auths.activated=Tento způsob ověřování je aktivní
auths.default_auth=This authentication is default login source
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í
@@ -1151,120 +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_rewrite_authorized_keys_at_start=Přepsat authorized_keys při startu
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.http_config=Nastavení HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
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=SSL režim
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_subject_prefix=Subject Prefix
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
@@ -1313,8 +1401,8 @@ push_tag=odeslal značku <a href="%s/src/%s">%[2]s</a> do repositáře <a href="
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=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
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
@@ -1336,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
@@ -152,7 +158,7 @@ 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=Lokalisierung
local=Lokal
remember_me=Angemeldet bleiben
forgot_password=Passwort vergessen
forget_password=Passwort vergessen?
@@ -259,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
@@ -312,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.
@@ -366,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
@@ -374,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
@@ -395,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>!
@@ -425,8 +435,7 @@ 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
@@ -437,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
@@ -484,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
@@ -785,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!
@@ -800,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
@@ -926,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
@@ -1000,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.
@@ -1151,120 +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_rewrite_authorized_keys_at_start=Beim Start authorized_keys umschreiben
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.http_config=HTTP-Konfiguration
config.http_access_control_allow_origin=Access Control Allow Origin
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_subject_prefix=Betreff-Präfix
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
@@ -1336,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
@@ -232,6 +238,7 @@ 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.
@@ -259,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
@@ -312,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.
@@ -352,6 +360,7 @@ 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
@@ -366,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
@@ -374,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
@@ -395,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>!
@@ -422,11 +436,13 @@ 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
@@ -437,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
@@ -484,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
@@ -521,6 +540,7 @@ editor.file_already_exists=A file with name '%s' already exists in this reposito
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'
@@ -640,6 +660,7 @@ 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
@@ -747,8 +768,11 @@ 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 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.
@@ -770,6 +794,7 @@ 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 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.
@@ -785,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!
@@ -800,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
@@ -861,8 +893,10 @@ 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
diff.commit=commit
@@ -926,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
@@ -1000,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.
@@ -1112,6 +1161,7 @@ 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
@@ -1141,7 +1191,8 @@ auths.pam_service_name=PAM Service Name
auths.enable_auto_register=Enable Auto Registration
auths.edit=Edit Authentication Setting
auths.activated=This authentication is activated
auths.default_auth=This authentication is default login source
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
@@ -1151,120 +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_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
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.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
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_subject_prefix=Subject Prefix
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
@@ -1336,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
@@ -160,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
@@ -177,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
@@ -212,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.`
@@ -236,10 +242,10 @@ enterred_invalid_repo_name = Please make sure that the repository name you enter
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.
@@ -259,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
@@ -300,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
@@ -312,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.
@@ -366,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
@@ -374,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
@@ -395,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>!
@@ -425,8 +435,7 @@ repo_description_helper = Description of repository. Maximum 512 characters leng
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
@@ -437,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
@@ -484,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
@@ -785,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!
@@ -800,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
@@ -926,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
@@ -1000,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.
@@ -1154,118 +1176,183 @@ 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.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_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_rewrite_authorized_keys_at_start = Rewrite authorized_keys At Start
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.http_config = HTTP Configuration
config.http_access_control_allow_origin = Access Control Allow Origin
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.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.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.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.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.webhook_config = Webhook Configuration
config.queue_length = Queue Length
config.deliver_timeout = Deliver Timeout
config.skip_tls_verify = Skip TLS Verify
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.mailer_config = Mailer Configuration
config.mailer_enabled = Enabled
config.mailer_disable_helo = Disable HELO
config.mailer_subject_prefix = Subject Prefix
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.user_config = User configuration
config.user.enable_email_notify = Enable email notification
config.oauth_config = OAuth Configuration
config.oauth_enabled = Enabled
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.cache_config = Cache Configuration
config.cache_adapter = Cache Adapter
config.cache_interval = Cache Interval
config.cache_conn = Cache Connection
config.cache_config = Cache configuration
config.cache.adapter = Adapter
config.cache.interval = GC interval
config.cache.host = Host
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.http_config = HTTP configuration
config.http.access_control_allow_origin = Access control allow origin
config.picture_config = Picture Configuration
config.picture_service = Picture Service
config.disable_gravatar = Disable Gravatar
config.enable_federated_avatar = Enable Federated Avatars
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.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.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.log_config = Log Configuration
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
@@ -1337,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,7 +119,7 @@ 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
@@ -122,6 +127,7 @@ run_user_not_match=El usuario que está ejecutando la aplicación no es el usuar
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
@@ -162,13 +168,13 @@ 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
@@ -212,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.`
@@ -259,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
@@ -312,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.
@@ -366,6 +372,7 @@ two_factor_disable_success=¡La autenticación en dos pasos ha sido deshabilitad
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
@@ -374,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
@@ -395,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>!
@@ -413,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.
@@ -425,8 +435,7 @@ repo_description_helper=Descripción del repositorio. Longitud máxima de 512 ca
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
@@ -437,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
@@ -484,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
@@ -785,8 +797,10 @@ 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!
@@ -800,6 +814,8 @@ 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
@@ -842,7 +858,7 @@ 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
@@ -926,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
@@ -1000,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.
@@ -1151,120 +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_rewrite_authorized_keys_at_start=Reescribir authorized_keys en el arranque
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=Concurrencia de la búsqueda de commits
config.http_config=Configuración HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
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_subject_prefix=Prefijo del asunto
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
@@ -1336,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.

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 می‌باشد.
db_title=تنظیمات پایگاه داده
db_type=نوع پایگاه داده
host=میزبان
user=کاربر
password=رمز عبور
db_name=نام پایگاه داده
db_schema=Schema
db_helper=در صورت استفاده از MySQL لطفا از موتور INNODB و کد کاراکتری utf8_general_ci استفاده نمایید.
ssl_mode=حالت امن (SSL)
path=مسیر
@@ -84,6 +88,7 @@ log_root_path=مسیر گزارش‌ها
log_root_path_helper=پوشه‌ای برای نوشتن فایل گزارش.
enable_console_mode=فعال کردن حالت کنسول
enable_console_mode_popup=لاگ‌ها علاوه بر ذخیره در فایل، در کنسول نیز به نمایش در آید.
default_branch=Default Branch
optional_title=تنظیمات اختیاری
email_title=تنظیمات سرویس ایمیل
@@ -122,6 +127,7 @@ run_user_not_match=کاربری را اجرا کنید که کاربر فعلی
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
@@ -259,8 +265,7 @@ following=دنبال می کند
follow=دنبال کردن
unfollow=لغو دنبال کردن
form.name_reserved=نام کاربری "%s" استفاده شده است.
form.name_pattern_not_allowed=الگوی نام کاربری '%s' مجاز نیست.
form.name_not_allowed=الگوی نام کاربری '%s' مجاز نیست.
[settings]
profile=پروفایل
@@ -312,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 ساعت دیگر برای تکمیل فرایند تایید بررسی کنید.
@@ -368,6 +374,7 @@ two_factor_disable_success=احراز هویت دوعاملی با موفقیت
manage_access_token=مدیریت توکن دسترسی شخصی
generate_new_token=تولید توکن جدید
tokens_desc=نشانه ایجاد شده که می تواند برای دسترسی به رابط های برنامه کاربردی 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=هر توکن می تواند دسترسی کامل به حساب شما داشته باشد.
token_name=نام توکن
generate_token=تولید توکن
@@ -376,6 +383,7 @@ delete_token=حذف
access_token_deletion=حذف توکن دسترسی شخصی
access_token_deletion_desc=حذف این توکن دسترسی شخصی ، تمام دسترسی های مرتبط به برنامه را حذف خواهد کرد. آیا ادامه می دهید؟
delete_token_success=رمز دسترسی شخصی با موفقیت حذف شد! به روز رسانی نرم افزار خود را نیز فراموش نکنید.
token_name_exists=نشان امنیتی با این نام از قبل وجود دارد
orgs.none=شما عضو هیچ سازمانی نیستید.
orgs.leave_title=ترک یک سازمان
@@ -397,7 +405,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> را ببینید!
@@ -427,8 +437,7 @@ repo_description_helper=توضیحات مخرن. حداکثر طول ۵۱۲ کا
repo_description_length=کاراکترهای موجود
form.reach_limit_of_creation=مخزن های دارنده حساب به حداکثر تعداد مجاز %d رسیده است.
form.name_reserved=یک مخزن با نام '%s' از قبل وجود دارد.
form.name_pattern_not_allowed=ساختار '%s' برای نام مخزن مجاز نیست.
form.name_not_allowed=الگو یا نام مخزن %s مجاز نیست.
need_auth=نیاز به مجوز
migrate_type=نوع انتقال
@@ -439,6 +448,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=mirrorاز
@@ -486,6 +496,8 @@ 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=بارگذاری پرونده
@@ -748,7 +760,7 @@ settings.tracker_issue_style=سبک نامگذاری Issue Tracker خارجی:
settings.tracker_issue_style.numeric=عددی
settings.tracker_issue_style.alphanumeric=عددی و الفبایی
settings.tracker_url_format_desc=شما میتوانید از <code>{user} {repo} {index}</code> برای نام کاربری ، نام مخزن و صفحه ی اول بخش مسائل استفاده کنید.
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls_desc=پول ریکویست ها را فعال کنید تا برای مخازن و شاخه ها مشارکت را قبول کنید
settings.pulls.ignore_whitespace=نادیده گرفتن تغییرات در فضاهای خالی
settings.pulls.allow_rebase_merge=مجاز کردن rebase برای ادغام کردن کامیت ها
settings.danger_zone=منطقه خطر
@@ -771,7 +783,7 @@ settings.wiki_deletion_success=اطلاعات عمومی درباره مخزن
settings.delete=حذف این مخزن
settings.delete_desc=هنگامی که یک مخزن حذف میشود ، راه برگشتی وجود ندارد. لطفا مطمئن باشید.
settings.delete_notices_1=این عملیات <strong>غیرقابل</strong> برگشت است.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_2=- این عملیات تمامی اطلاعات این مخزن شامل اطلاعات گیت ، مسائل ، نظرات و دسترسی همکاران را برای همیشه پاک خواهد کرد.
settings.delete_notices_fork_1=پس از حذف ارتباط همه ی نسخه های برگرفته شده قطع خواهد شد.
settings.deletion_success=مخزن با موفقیت حذف شد!
settings.update_settings_success=تنظیمات مخزن با موفقیت به روز شد.
@@ -787,8 +799,10 @@ 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=Webhook ها مانند یک درخواست POST در HTTP اند. هرگاه رخدادی در gogs رخ می دهد، ما نوتیفیکیشنی برای هاستی که شما تعریف کرده اید ارسال می کنیم. برای اطلاعات بیشتر <a target="_blank" href="%s"> راهنمای webhook</a> را مطالعه کنید.
settings.webhooks.add_new=یک webhook جدید اضافه کن:
settings.webhooks.choose_a_type=نوع را انتخاب کن...
settings.add_webhook=اضافه‌کردن Webhook
settings.webhook_deletion=حذف Webhook
settings.webhook_deletion_desc=حذف این webhook باعث می شود که تمامی اطلاعات آن و تاریخچه ی تمام دلیوری های آن حذف شود. آیا ادامه میدهید؟
settings.webhook_deletion_success=Webhook با موفقیت حذف شد!
@@ -802,6 +816,8 @@ settings.webhook.response=پاسخ
settings.webhook.headers=هدر
settings.webhook.payload=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 Hook ها توسط تیم Git ایجاد شده اند، شما می توانید فایل hook های پشتیبانی شده را ویرایش کنید تا بتوانید عملیات دلخواه خودتان را انجام دهید.
settings.githook_edit_desc=در صورتیکه hook غیرفعال باشد، محتوای نمونه ای موجود در آن ارائه خواهد شد. برای اینکه به کلی غیر فعال شود، محتوا را پاک کنید تا خالی شود.
settings.githook_name=نام hook
@@ -862,8 +878,8 @@ settings.add_key_success=کلیدDeploy جدید %s با موفقیت افزود
settings.deploy_key_deletion=حذف کلید Deploy
settings.deploy_key_deletion_desc=با حذف کلید Deploy، تمام دسترسی ها به این مخزن از طریق این کلید از بین میرود. آیا ادامه می دهید؟
settings.deploy_key_deletion_success=کلید Deploy با موفقیت حذف شد!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
settings.description_desc=توضیحات مخرن. حداکثر طول ۵۱۲ کاراکتر.
settings.description_length=کاراکترهای موجود
diff.browse_source=فهرست منبع
diff.parent=والد
@@ -928,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=نام تیم "%s" رزرو شده است.
form.name_not_allowed=نام سازمان یا الگوی q% مجاز نیست.
form.team_name_not_allowed=نام تیم یا الگوی %q مجاز نیست.
settings=تنظيمات
settings.options=گزینه‌‌‌‌‌‌ها
@@ -1002,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>mirror, <b>%d</b> ریلیز ها, <b>%d</b> نقاط ورود به سیستم, <b>%d</b> webhooks, <b>%d</b> نقاط عطف یا milestone ها, <b>%d</b> برچسب, <b>%d</b> hook وظایف, <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=پاک کردن OAuthe های ناخواسته
dashboard.clean_unbind_oauth_success=تمامی oAuth های غیرمتصل با موفقیت حذف شدند.
@@ -1153,120 +1175,186 @@ 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=آدرس خارجی
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=مجوز سوکت یونیکس
config.server.local_root_url=Local root URL
config.server.offline_mode=حالت آفلاین
config.server.disable_router_log=غیرفعال کردن لاگ مسیریاب
config.server.enable_gzip=فعال کردن 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_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
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=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=پیکربندی مخزن
config.repo_root_path=مسیر پوشه اصلی (روت) برای مخزن کد
config.script_type=نوع اسکریپت
config.repo_force_private=خصوصی سازی اجباری
config.max_creation_limit=محدودیت حداکثر ایجاد
config.preferred_licenses=مجوزهای پیشنهادی
config.disable_http_git=غیرفعال کردنHTTP در Git
config.enable_local_path_migration=فعال سازی مسیر انتقال محلی
config.commits_fetch_concurrency=همروندی در واکشی کامیت
config.http_config=تنظیمات HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
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=فعال‌کردن تصویر امنیتی
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=تنظیمات Webhook
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_subject_prefix=پيشوند موضوع
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=پیکربندی cache
config.cache_adapter=آداپتور cache
config.cache_interval=وقفه cache
config.cache_conn=اتصال cache
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=پیکربندی Session ها
config.session_provider=منبع فراهم ساز Session
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=پیکربندی cache
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=تنظیمات Webhook
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=غیرفعال کردن برجسته سازی در Diff
config.git_max_diff_lines=حداکثر خط برای Diff (برای یک فایل)
config.git_max_diff_line_characters=حداکثر کاراکتر در Diff (برای یک خط)
config.git_max_diff_files=حداکثر فایل های Diff (برای نمایش)
config.git_gc_args=آرگومان های GC
config.git_migrate_timeout=آستانه ی زمان در Migration
config.git_mirror_timeout=زمان آستانه در به روز رسانی Mirror
config.git_clone_timeout=زمان آستانه ی عملیات Clone
config.git_pull_timeout=زمان آستانه ی عملیات Pull
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_file_root_path=مسیر ریشه ی فایل لاگ
config.log_mode=حالت
config.log_options=گزینه‌‌‌‌‌‌ها
@@ -1338,6 +1426,7 @@ months=%d ماه %s
years=%d سال %s
raw_seconds=ثانیه
raw_minutes=دقیقه ها
raw_hours=ساعت
[dropzone]
default_message=فایل را در این محل رها کنید یا دکمه ی آپلود یا بارگزاری را فشار دهید.

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
@@ -122,6 +127,7 @@ run_user_not_match=L'utilisateur d'exécution saisi n'est pas l'utilisateur d'ex
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
@@ -259,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
@@ -312,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.
@@ -366,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
@@ -395,7 +403,9 @@ 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 changements de cette valeur affecteront tous les forks)
clone_helper=Besoin d'aide pour dupliquer ? Visitez <a target="_blank" href="%s">l'aide</a> !
@@ -425,10 +435,9 @@ 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
@@ -437,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
@@ -447,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
@@ -475,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é
@@ -484,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
@@ -501,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.
@@ -785,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 !
@@ -800,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
@@ -926,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
@@ -1000,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.
@@ -1151,120 +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_rewrite_authorized_keys_at_start=Réécrire authorized_keys au démarrage
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.http_config=Configuration HTTP
config.http_access_control_allow_origin=Autoriser le partage daccès avec lorigine
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_subject_prefix=Préfixe du sujet
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
@@ -1336,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,17 +43,22 @@ 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 require MySQL, PostgreSQL, SQLite3, MSSQL ouTiDB.
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
@@ -84,6 +88,7 @@ log_root_path=Ruta do rexistro
log_root_path_helper=Directorio onde almacenar os rexistros.
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
@@ -123,6 +128,7 @@ 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
@@ -260,8 +266,7 @@ 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
@@ -313,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.
@@ -367,6 +373,7 @@ 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
@@ -375,6 +382,7 @@ 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
@@ -396,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>!
@@ -426,8 +436,7 @@ 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
@@ -438,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
@@ -485,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
@@ -786,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!
@@ -801,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
@@ -927,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
@@ -1001,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.
@@ -1152,120 +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_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
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.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
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_subject_prefix=Subject Prefix
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
@@ -1337,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

@@ -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
@@ -44,17 +43,22 @@ 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 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=A Gogs-hoz szükséges a MySQL, PostgreSQL, SQLite3, MSSQL vagy a TiDB valamelyike.
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_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
@@ -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,7 +106,7 @@ 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.
@@ -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
@@ -259,8 +265,7 @@ following=Követve
follow=Követés
unfollow=Követés törlése
form.name_reserved='%s' felhasználónév már 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
@@ -312,6 +317,7 @@ 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ókjábó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.
@@ -366,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
@@ -374,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
@@ -395,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!
@@ -425,8 +435,7 @@ 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ó tároló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.name_not_allowed=A %q repository név, vagy minta nem engedélyezett.
need_auth=Hitelesítés szükséges
migrate_type=Migráció típusa
@@ -437,6 +446,7 @@ 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=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.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:
@@ -484,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
@@ -785,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!
@@ -800,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
@@ -926,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
@@ -1000,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.
@@ -1141,7 +1163,7 @@ auths.pam_service_name=PAM szolgáltatás neve
auths.enable_auto_register=Automatikus regisztráció engedélyezése
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 az alapértelmezett hitelesítési mód a bejelentkezéshez
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
@@ -1151,120 +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_rewrite_authorized_keys_at_start=SSH authorized_keys fájl újraírása indításnál
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.http_config=HTTP beállítások
config.http_access_control_allow_origin=Hozzáférés vezérlés forrás szerint
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_subject_prefix=Tárgy előtag
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
@@ -1312,9 +1400,9 @@ delete_branch=törölt egy ágat <code>%[2]s</code> ekkor: <a href="%[1]s">%[3]s
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=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
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=
@@ -1336,6 +1424,7 @@ 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.

View File

@@ -9,7 +9,6 @@ sign_out=Keluar
sign_up=Daftar
register=Daftar
website=Situs web
version=Versi
page=Halaman
template=Templat
language=Bahasa
@@ -44,17 +43,22 @@ issues=Masalah
cancel=Batal
[status]
page_not_found=Halaman tidak ditemukan
internal_server_error=Kesalahan Server Internal
[install]
install=Instalasi
title=Langkah-langkah untuk Menjalankan Pertama Kali
docker_helper=Jika Anda menjalankan Gogs dalam Docker, silakan baca <a target="_blank" href="%s"> Petunjuk</a> dengan hati-hati sebelum Anda mengubah sesuatu di Halaman ini!
requite_db_desc=Gogs memerlukan MySQL, PostgreSQL, SQLite3, MSSQL atau TiDB.
requite_db_desc=Gogs memerlukan MySQL, PostgreSQL, SQLite3 atau TiDB.
db_title=Pengaturan Basisdata
db_type=Tipe Basisdata
host=Host
user=Pengguna
password=Sandi
db_name=Nama Basisdata
db_schema=Skema
db_helper=Harap menggunakan INNODB engine dengan charset utf8_general_ci untuk MySQL.
ssl_mode=Mode SSL
path=Path
@@ -71,7 +75,7 @@ repo_path_helper=Semua repositori Git akan disimpan ke direktori ini.
run_user=Menjalankan pengguna
run_user_helper=Pengguna harus memiliki akses ke path akar repositori dan menjalankan Gogs.
domain=Domain
domain_helper=Ini mempengaruhi URL klon SSH.
domain_helper=Ini memengaruhi URL kloning SSH.
ssh_port=Port SSH
ssh_port_helper=Nomor port yang menggunakan SSH server, biarkan kosong untuk menonaktifkan fitur SSH.
use_builtin_ssh_server=Menggunakan Builtin SSH Server
@@ -82,8 +86,9 @@ app_url=URL Aplikasi
app_url_helper=Ini mempengaruhi URL klon HTTP/HTTPS dan di suatu tempat dalam email.
log_root_path=Path log
log_root_path_helper=Direktori untuk menulis berkas log.
enable_console_mode=Mengaktifkan Mode konsol
enable_console_mode=Mengaktifkan Mode Konsol
enable_console_mode_popup=Selain mode file, juga mencetak log ke konsol.
default_branch=Default Branch
optional_title=Pengaturan opsional
email_title=Pengaturan layanan email
@@ -122,6 +127,7 @@ run_user_not_match=Pengguna yang sedang menjalankan bukanlah pengguna saat ini:
smtp_host_missing_port=Alamat Host SMTP hilang di alamat.
invalid_smtp_from=SMTP Dari lapangan tidak sesuai: %v
save_config_failed=Gagal untuk menyimpan konfigurasi: %v
init_failed=Gagal melakukan inisialiasi aplikasi: %v
invalid_admin_setting=Pengaturan akun admin tidak valid: %v
install_success=Selamat datang! Kami senang bahwa Anda memilih Gogs, bersenang-senang dan berhati-hatilah.
invalid_log_root_path=Path akar log tidak valid: %v
@@ -259,8 +265,7 @@ following=Mengikuti
follow=Ikuti
unfollow=Berhenti mengikuti
form.name_reserved=Username '%s' tidak tersedia.
form.name_pattern_not_allowed=Pola username '%s' tidak diperbolehkan.
form.name_not_allowed=Nama pengguna atau pola %q tidak diizinkan.
[settings]
profile=Profil
@@ -312,6 +317,7 @@ delete_email=Hapus
email_deletion=Penghapusan email
email_deletion_desc=Menghapus alamat email ini akan menghapus informasi yang berhubungan dengan akun Anda. Lanjutkan?
email_deletion_success=Email telah berhasil diperbarui!
email_deletion_primary=Tidak bisa menghapus email utama
add_new_email=Menambah alamat email baru
add_email=Tambahkan email
add_email_confirmation_sent=Email konfirmasi baru telah dikirim ke '%s', silakan cek inboxmu dalam waktu %d jam untuk menyelesaikan proses konfirmasi.
@@ -366,6 +372,7 @@ two_factor_disable_success=Autentikasi dua faktor telah berhasil dilakukan!
manage_access_token=Kelola Akses Token pribadi
generate_new_token=Buat Token Baru
tokens_desc=Token yang Anda buat dapat digunakan untuk mengakses API-nya Gogs.
access_token_tips=Personal access token mungkin digunakan sebagai username atau password. Sangatn direkomendasikan untuk menggunakan "x-access-token" sebagai username atau personal access token sebagai password untuk aplikasi git.
new_token_desc=Setiap token akan memiliki akses penuh ke akunmu.
token_name=Nama Token
generate_token=Buat Token
@@ -374,6 +381,7 @@ delete_token=Hapus
access_token_deletion=Penghapusan Akses Token Pribadi
access_token_deletion_desc=Hapus token akses pribadi ini akan menghapus semua akses aplikasi yang terkait. Apakah Anda ingin melanjutkan?
delete_token_success=Token akses pribadi telah berhasil dihapus! Jangan lupa untuk mengupdate aplikasi anda juga.
token_name_exists=Token dengan nama yang sama telah digunakan.
orgs.none=Anda bukan anggota organisasi manapun.
orgs.leave_title=Meninggalkan organisasi
@@ -395,7 +403,9 @@ owner=Pemilik
repo_name=Nama Repositori
repo_name_helper=Nama repositori yang baik biasanya terdiri dari kata kunci yang pendek, mudah diingat dan unik.
visibility=Visibilitas
unlisted=Tidak terdaftar
visiblity_helper=Repositori ini <span class="ui red text">Pribadi</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=Situs admin telah memaksa semua repositori baru menjadi <span class="ui red text">Pribadi</span>
visiblity_fork_helper=(Perubahan nilai ini akan mempengaruhi semua garpu)
clone_helper=Butuh bantuan kloning? Kunjungi <a target="_blank" href=" %s ">Bantuan</a>!
@@ -421,12 +431,11 @@ mirror_last_synced=Terakhir disinkronkan
watchers=Watchers
stargazers=Stargazers
forks=Forks
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_helper=Deskripsi repositori maksimal 512 karakter.
repo_description_length=Karakter tersedia
form.reach_limit_of_creation=Pemiliknya telah mencapai batas pembuatan maksimum %d repositori.
form.name_reserved=Nama repositori '%s' dicadangkan.
form.name_pattern_not_allowed=Pola nama repositori '%s' tidak diperbolehkan.
form.name_not_allowed=Nama atau pola repositori %q tidak diizinkan.
need_auth=Butuh Otorisasi
migrate_type=Jenis migrasi
@@ -437,6 +446,7 @@ migrate.clone_address_desc=Ini bisa berupa HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local=Anda juga diizinkan untuk memindahkan repositori dengan jalur server lokal.
migrate.permission_denied=Anda tidak diperbolehkan mengimpor repositori lokal.
migrate.invalid_local_path=Jalur lokal tidak valid, tidak ada atau tidaknya sebuah direktori.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migrasi gagal: %v
mirror_from=cermin dari
@@ -453,7 +463,7 @@ fork=Fork
no_desc=Tidak Ada Deskripsi
quick_guide=Petunjuk Cepat
clone_this_repo=Klon repositori ini
clone_this_repo=Kloning repositori ini
create_new_repo_command=Buat repositori baru di command line
push_exist_repo=Dorong repositori yang ada dari baris perintah
bare_message=Ini repositori tidak memiliki konten apa pun.
@@ -465,7 +475,7 @@ filter_branch_and_tag=Filter cabang atau tag
branches=Ranting
tags=Tag
issues=Masalah
pulls=Tarik Permintaan
pulls=Permintaan Tarik
labels=Label
milestones=Tonggak sejarah
commits=Komitmen
@@ -484,6 +494,8 @@ branches.stale_branches=Cabang Basi
branches.all=Semua Cabang
branches.updated_by=Diperbarui %[1]s oleh %[2]s
branches.change_default_branch=Ubah Cabang Default
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Berkas baru
editor.upload_file=Unggah Berkas
@@ -785,8 +797,10 @@ settings.collaborator_deletion_desc=Pengguna ini tidak lagi memiliki akses kolab
settings.remove_collaborator_success=Kolaborator telah dihapus.
settings.search_user_placeholder=Cari pengguna...
settings.org_not_allowed_to_be_collaborator=Organisasi tidak diperbolehkan untuk ditambahkan sebagai kolaborator.
settings.add_webhook=Tambahkan Webhook
settings.hooks_desc=Webhooks seperti pemicu peristiwa HTTP POST dasar. Kapan pun terjadi sesuatu di Gog, kami akan menangani pemberitahuan tersebut ke host target yang Anda tentukan. Pelajari lebih lanjut di <a target="_blank" href=" %s "> Panduan Webhooks </a> ini.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Pilih jenis...
settings.add_webhook=Tambahkan Webhook
settings.webhook_deletion=Hapus Webhook
settings.webhook_deletion_desc=Hapus halaman web ini akan menghapus informasinya dan semua riwayat pengiriman. Apakah Anda ingin melanjutkan?
settings.webhook_deletion_success=Webhook telah berhasil dihapus!
@@ -800,6 +814,8 @@ settings.webhook.response=Tanggapan
settings.webhook.headers=Header
settings.webhook.payload=Payload
settings.webhook.body=Tubuh
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 didukung oleh Git itu sendiri, Anda dapat mengedit file kait yang didukung dalam daftar di bawah untuk melakukan operasi kustom.
settings.githook_edit_desc=Jika hook tidak aktif, konten sampel akan disajikan. Meninggalkan konten ke nilai kosong akan menonaktifkan hook ini.
settings.githook_name=Nama Hook
@@ -861,7 +877,7 @@ settings.deploy_key_deletion=Hapus Kunci Deploy
settings.deploy_key_deletion_desc=Menghapus kunci penggelaran ini akan menghapus semua akses yang terkait untuk repositori ini. Apakah Anda ingin melanjutkan?
settings.deploy_key_deletion_success=Kunci penempatan telah berhasil dihapus!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
settings.description_length=Karakter tersedia
diff.browse_source=Jelajahi Sumber
diff.parent=induk
@@ -926,9 +942,8 @@ team_name_helper=Anda akan menggunakan nama ini lagi tim ini dalam percakapan.
team_desc_helper=Apa tentang semua tim ini?
team_permission_desc=Apa tingkat izin ini harus?
form.name_reserved=Nama organisasi %s" di sediakan.
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=Pengaturan
settings.options=Opsi
@@ -951,7 +966,7 @@ members.membership_visibility=Keanggotaan Visibilitas:
members.public=Umum
members.public_helper=jadilah pribadi
members.private=Pribadi
members.private_helper=make public
members.private_helper=jadikan publik
members.member_role=Anggota Peran:
members.owner=Pemilik
members.member=Anggota
@@ -963,10 +978,10 @@ members.invite_now=Undang Sekarang
teams.join=Bergabung
teams.leave=Tinggalkan
teams.read_access=Baca Akses
teams.read_access_helper=This team will be able to view and clone its repositories.
teams.read_access_helper=Tim ini dapat melihat dan mencabangkan repositori.
teams.write_access=Akses menulis
teams.write_access_helper=This team will be able to read its repositories, as well as push to them.
teams.admin_access=Admin Access
teams.admin_access=Akses Admin
teams.admin_access_helper=Tim ini akan dapat mendorong / menarik ke repositorinya, dan juga menambahkan kolaborator lainnya kepada mereka.
teams.no_desc=Tim ini tidak memiliki deskripsi
teams.settings=Pengaturan
@@ -1000,12 +1015,19 @@ first_page=Pertama
last_page=Terakhir
total=Total: %d
dashboard.build_info=Informasi build
dashboard.app_ver=Versi aplikasi
dashboard.git_version=Versi Git
dashboard.go_version=Versi Go (Golang)
dashboard.build_time=Durasi
dashboard.build_commit=Setuju Membangun
dashboard.statistic=Statistik
dashboard.operations=Operasi
dashboard.system_status=Status Monitor Sistem
dashboard.statistic_info=GogsDatabase memiliki <b>%d</b> pengguna, <b>%d</b> organisasi, <b>%d</b> kunci publik, <b>%d</b> repositori, <b>%d</b> jamtangan, <b>%d</b> bintang, <b>%d</b>actions, <b>%d</b> akses, <b>%d</b> isu, <b>%d</b> komentar, <b>%d</b> akun sosial, <b>%d</b> berikut, <b>%d<b> mirror, <b>%d</b> rilis, <b>%d</b> sumber masuk, <b>%d</b> webhooks, <b>%d</b> tonggak,<b>%d</b> label, <b>%d</b> tugas hook, <b>%d</b> tim, <b>%d</b> memperbarui tugas, <b>%d</b> lampiran.
dashboard.operation_name=Nama operasi
dashboard.operation_switch=Beralih
dashboard.select_operation_to_run=Harap menentukan operasi yang dijalankan
dashboard.operation_run=Menjalankan
dashboard.clean_unbind_oauth=Bersihkan OAuth yang tidak terikat
dashboard.clean_unbind_oauth_success=Semua unbind OAuthes telah berhasil dihapus.
@@ -1102,7 +1124,7 @@ auths.new=Tambahkan Sumber Baru
auths.name=Nama
auths.type=Mengetik
auths.enabled=Diaktifkan
auths.default=Default
auths.default=Standar
auths.updated=Diperbarui
auths.auth_type=Jenis Autentikasi
auths.auth_name=Nama Autentikasi
@@ -1128,15 +1150,15 @@ auths.group_attribute_contain_user_list=Atribut Grup yang Mengandung Daftar Peng
auths.user_attribute_listed_in_group=Atribut Pengguna Terdaftar di Grup
auths.attributes_in_bind=Ambil atribut dalam konteks Bind DN
auths.filter=Pengguna saringan
auths.admin_filter=Admin Filter
auths.ms_ad_sa=Ms Ad SA
auths.admin_filter=Filter Admin
auths.ms_ad_sa=Otentifikasi sistem
auths.smtp_auth=Autentikasi tipe SMTP
auths.smtphost=Host SMTP
auths.smtpport=Port SMTP
auths.allowed_domains=Domains di izinkan
auths.allowed_domains_helper=Biarkan kosong untuk tidak membatasi setiap domain, beberapa Domain harus dipisahkan oleh koma ',',.
auths.enable_tls=Enable TLS Encryption
auths.skip_tls_verify=Skip TLS Verify
auths.enable_tls=Aktifkan Enkripsi TLS
auths.skip_tls_verify=Lewati Verifikasi TLS
auths.pam_service_name=Nama layanan PAM
auths.enable_auto_register=Mengaktifkan pendaftaran otomatis
auths.edit=Ubah Pengaturan Autentikasi
@@ -1151,120 +1173,186 @@ auths.delete_auth_desc=Autentikasi ini akan dihapus, apakah Anda ingin melanjutk
auths.still_in_used=Autentikasi ini masih digunakan oleh pengguna lain, silakan hapus atau ubah pengguna tersebut ke tipe masuk lainnya.
auths.deletion_success=Autentikasi berhasil dihapus!
auths.login_source_exist=Sumber masuk %s sudah tersedia.
auths.github_api_endpoint=Titik akhir API
config.not_set=(tidak diterapkan)
config.server_config=Server Configuration
config.app_name=Nama aplikasi
config.app_ver=Versi aplikasi
config.app_url=Aplikasi URL
config.domain=Domain
config.offline_mode=Offline Mode
config.disable_router_log=Disable Router Log
config.server_config=Konfigurasi Server
config.brand_name=Nama Merek/Logo/Perusahaan
config.run_user=Menjalankan penggunaa
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=Mengembalikan Pengguna Autentikasi
config.run_mode=Run mode
config.server.external_url=URL eksternal
config.server.domain=Domain
config.server.protocol=Protokol
config.server.http_addr=Alamat HTTP
config.server.http_port=Port HTTP
config.server.cert_file=Berkas Sertifikat
config.server.key_file=Berkas baru
config.server.tls_min_version=Minimum versi TLS
config.server.unix_socket_permission=Aturan unix socket
config.server.local_root_url=Lokal root url
config.server.offline_mode=mode luring
config.server.disable_router_log=Menonaktifkan router log
config.server.enable_gzip=aktifkan gzip
config.server.app_data_path=target data aplikasi
config.server.load_assets_from_disk=memanggil asset dari disk
config.server.landing_url=Landing URL
config.ssh_config=SSH Configuration
config.ssh_enabled=Diaktifkan
config.ssh_start_builtin_server=Start Builtin Server
config.ssh_domain=Domain
config.ssh_port=Pelabuhan
config.ssh_listen_port=Listen Port
config.ssh_root_path=Path akar
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
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=Konfigurasi SSH
config.ssh.enabled=Diaktifkan
config.ssh.domain=Exposed domain
config.ssh.port=Exposed port
config.ssh.root_path=Path akar
config.ssh.keygen_path=Path keygen
config.ssh.key_test_path=Key test path
config.ssh.minimum_key_size_check=Minimum key size check
config.ssh.minimum_key_sizes=Ukuran kunci minimum
config.ssh.rewrite_authorized_keys_at_start=Tulis ulang "authorized_keys" saat memulai
config.ssh.start_builtin_server=Start builtin server
config.ssh.listen_host=Listen host
config.ssh.listen_port=Listen port
config.ssh.server_ciphers=Cipher server
config.ssh.server_macs=MAC server
config.ssh.server_algorithms=Algoritma server
config.repo_config=Repository Configuration
config.repo_root_path=Repository Root Path
config.script_type=Jenis Skrip
config.repo_force_private=Paksa Pribadi
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Lisensi yang Diutamakan
config.disable_http_git=Nonaktifkan HTTP Git
config.enable_local_path_migration=Aktifkan Migrasi Jalur Lokal
config.commits_fetch_concurrency=Komitmen Ambil Concurrency
config.http_config=Konfigurasi HTTP
config.http_access_control_allow_origin=Kontrol Akses Memungkinkan Asal
config.repo_config=Konfigurasi Repositori
config.repo.root_path=Path akar
config.repo.script_type=Jenis skrip
config.repo.ansi_chatset=Set karakter ANSI
config.repo.force_private=Paksa pribadi
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=Pengunggahan diaktifkan
config.repo.upload.temp_path=Path unggah sementara
config.repo.upload.allowed_types=Tipe unggah yang diizinkan
config.repo.upload.file_max_size=Batas ukuran unggah berkas
config.repo.upload.max_files=Batas unggah berkas
config.db_config=Konfigurasi Basis Data
config.db_type=Mengetik
config.db_host=Rumah
config.db_name=Nama
config.db_user=Pengguna
config.db_ssl_mode=Mode SSL
config.db_ssl_mode_helper=(untuk "postgres" saja)
config.db_path=Jalan
config.db_path_helper=(untuk "sqlite3" dan "tidb")
config.db.type=Tipe
config.db.host=Host
config.db.name=Nama
config.db.schema=Skema
config.db.schema_helper=(hanya untuk "postgres")
config.db.user=Pengguna
config.db.ssl_mode=Modus SSL
config.db.ssl_mode_helper=(hanya untuk "postgres")
config.db.path=Path
config.db.path_helper=(hanya untuk "sqlite3")
config.db.max_open_conns=Maksimum koneksi yang terbuka
config.db.max_idle_conns=Maksimum koneksi menganggur
config.service_config=Konfigurasi Layanan
config.register_email_confirm=Perlu konfirmasi email
config.disable_register=Nonaktifkan Pendaftaran
config.show_registration_button=Tampilkan Tombol Register
config.require_sign_in_view=Memerlukan Tampilan Masuk
config.mail_notify=Pemberitahuan Mail
config.disable_key_size_check=Nonaktifkan Minimum Key Size Check
config.enable_captcha=Aktifkan Captcha
config.active_code_lives=Kode aktif hidup
config.reset_password_code_lives=Reset Password Code Lives
config.security_config=Konfigurasi keamanan
config.security.login_remember_days=Berapa hari mengingat log masuk
config.security.cookie_remember_name=Ingat cookie
config.security.cookie_username=Cookie pengguna
config.security.cookie_secure=Aktifkan cookie aman
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 Konfigurasi
config.queue_length=Panjang Antrian
config.deliver_timeout=Berikan waktu habis
config.skip_tls_verify=Lewati TLS Verifikasi
config.email_config=Konfigurasi surel
config.email.enabled=Enabled
config.email.subject_prefix=Subject prefix
config.email.host=Host
config.email.from=Dari
config.email.user=Pengguna
config.email.disable_helo=Disable HELO
config.email.helo_hostname=HELO hostname
config.email.skip_verify=Lewati verifikasi sertifikat
config.email.use_certificate=Pakai sertifikat ubahan
config.email.cert_file=Berkas sertifikat
config.email.key_file=Berkas kunci
config.email.use_plain_text=Gunakan teks polos
config.email.add_plain_text_alt=Tambahkan alternatif teks polos
config.email.send_test_mail=Kirim surel uji
config.email.test_mail_failed=Gagal mengirim surel uji ke '%s': %v
config.email.test_mail_sent=Surel uji telah dikirim ke '%s'.
config.mailer_config=Mailer Konfigurasi
config.mailer_enabled=Diaktifkan
config.mailer_disable_helo=Nonaktifkan HALO
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Rumah
config.mailer_user=Pengguna
config.send_test_mail=Kirim Email Uji
config.test_mail_failed=Gagal mengirim email uji ke '%s': %v
config.test_mail_sent=Email percobaan telah dikirim ke ' % s '.
config.auth_config=Konfigurasi otentikasi
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=Perlu konfirmasi surel
config.auth.require_sign_in_view=Require sign in view
config.auth.disable_registration=Nonaktifkan pendaftaran
config.auth.enable_registration_captcha=Aktifkan captcha pendaftaran
config.auth.enable_reverse_proxy_authentication=Aktifkan otentikasi proksi balik
config.auth.enable_reverse_proxy_auto_registration=Aktifkan pendaftaran otomatis proksi balik
config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
config.oauth_config=OAuth Konfigurasi
config.oauth_enabled=Diaktifkan
config.cache_config=Konfigurasi Cache
config.cache_adapter=Adaptor Cache
config.cache_interval=Interval Cache
config.cache_conn=Koneksi Cache
config.user_config=Konfigurasi pengguna
config.user.enable_email_notify=Aktifkan notifikasi surel
config.session_config=Konfigurasi Sesi
config.session_provider=Penyedia Sesi
config.provider_config=Konfigurasi Penyedia
config.cookie_name=Cookie Name
config.enable_set_cookie=Pengatur cookle diaktifkan
config.gc_interval_time=GC Interval Time
config.session_life_time=Sesi jangka Waktu
config.https_only=HTTPS Only
config.cookie_life_time=Cookie Life Time
config.session.provider=Penyedia
config.session.provider_config=Konfigurasi penyedia
config.session.cookie_name=Cookie
config.session.https_only=Hanya HTTPS
config.session.gc_interval=Interval GC
config.session.max_life_time=Max life time
config.session.csrf_cookie_name=CSRF cookie
config.picture_config=Picture Configuration
config.picture_service=Gambar layanan
config.disable_gravatar=Disable Gravatar
config.enable_federated_avatar=Enable Federated Avatars
config.cache_config=Konfigurasi Cache
config.cache.adapter=Adaptor
config.cache.interval=Interval GC
config.cache.host=Host
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=Jenis migrasi
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.http_config=Konfigurasi HTTP
config.http.access_control_allow_origin=Access control allow origin
config.log_config=Log Configuration
config.attachment_config=Attachment configuration
config.attachment.enabled=Enabled
config.attachment.path=Path
config.attachment.allowed_types=Allowed types
config.attachment.max_size=Batas ukuran
config.attachment.max_files=Batas berkas
config.release_config=Release configuration
config.release.attachment.enabled=Lampiran diaktifkan
config.release.attachment.allowed_types=Jens lampiran yang diizinkan
config.release.attachment.max_size=Batas ukuran lampiran
config.release.attachment.max_files=Batas berkas lampiran
config.picture_config=Konfigurasi Gambar
config.picture.avatar_upload_path=Path unggah avatar pengguna
config.picture.repo_avatar_upload_path=Path unggah avatar repositori
config.picture.gravatar_source=Sumber gravatar
config.picture.disable_gravatar=Nonaktifkan Gravatar
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=Konfigurasi cermin
config.mirror.default_interval=Interval baku
config.webhook_config=Webhook Konfigurasi
config.webhook.types=Tipe
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Konfigurasi Git
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=Tenggat waktu klon
config.git.pull_timeout=Tenggat waktu pull
config.git.gc_timeout=Tenggat waktu GC
config.lfs_config=Konfigurasi LFS
config.lfs.storage=Penyimpanan
config.lfs.objects_path=Path obyek
config.log_config=Konfigurasi log
config.log_file_root_path=Path akar berkas log
config.log_mode=Mode
config.log_options=Pilihan
@@ -1284,7 +1372,7 @@ notices.view_detail_header=Lihat Pemberitahuan Detail
notices.actions=Tindakan
notices.select_all=Pilih Semua
notices.deselect_all=Batalkan semua pilihan
notices.inverse_selection=Inverse Selection
notices.inverse_selection=Pilih Terbalaik
notices.delete_selected=Hapus yang dipilih
notices.delete_all=Menghapus semua pemberitahuan
notices.type=Jenis
@@ -1297,21 +1385,21 @@ notices.delete_success=Sistem pemberitahuan telah berhasil dihapus.
create_repo=repositori dibuat <a href="%s">%s</a>
rename_repo=repositori berganti nama dari <code>%[1]s</code> ke <a href="%[2]s">%[3]s</a>
commit_repo=didorong ke <a href="%[1]s/src/%[2]s">%[3]s</a> di <a href="%[1]s">%[4]s</a>
compare_commits=View comparison for these %d commits
transfer_repo=transfered repository <code>%s</code> to <a href="%s">%s</a>
create_issue=`opened issue <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`closed issue <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`reopened issue <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`commented on issue <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`created pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`closed pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`reopened pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`merged pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
compare_commits=Lihat perbandingan dari komit ini %d
transfer_repo=repositori <code>%s</code> ditransfer ke <a href="%s">%s</a>
create_issue=`masalah yang dibuka <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`masalah yang ditutup <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`masalah yang dibuka kembali <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`mengomentari masalah <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`membuat permintaan tarik <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`permintaan tarik yang ditutup <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`permintaan tarik dibuka kembali <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`menggabungkan permintaan tarik <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>
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>
fork_repo=cabangkan repositori ke <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
@@ -1320,8 +1408,8 @@ mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%
ago=lalu
from_now=dari sekarang
now=sekarang
1s=1detik %s
1m=1menit %s
1s=1 detik %s
1m=1 menit %s
1h=1 jam %s
1d=1 hari %s
1w=1 Minggu %s
@@ -1336,6 +1424,7 @@ months=%d bulan %s
years=%d tahun %s
raw_seconds=detik
raw_minutes=menit
raw_hours=jam
[dropzone]
default_message=Jatuhkan berkas disini atau klik untuk mengunggah.

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
@@ -122,6 +127,7 @@ run_user_not_match=Run user non è l'utente corrente: %s -> %s
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
@@ -259,8 +265,7 @@ 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
@@ -312,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.
@@ -366,6 +372,7 @@ 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
@@ -374,6 +381,7 @@ 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
@@ -395,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>!
@@ -413,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.
@@ -421,12 +431,11 @@ mirror_last_synced=Ultimo aggiornamento
watchers=Osservatori
stargazers=Fan
forks=Fork
repo_description_helper=Description of repository. Maximum 512 characters length.
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
@@ -437,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
@@ -484,6 +494,8 @@ branches.stale_branches=Stale Branches
branches.all=Tutti i rami (branch)
branches.updated_by=Updated %[1]s by %[2]s
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
@@ -785,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!
@@ -800,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
@@ -926,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=Non puoi utilizzare '%s' come nome del Team.
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
@@ -1000,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.
@@ -1151,120 +1173,186 @@ 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_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
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=Configurazione Repository
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=Disabilita Git in HTTP
config.enable_local_path_migration=Abilita migrazioni con path locale
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=Configurazione HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
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_subject_prefix=Subject Prefix
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_file_root_path=Percorso Root del File di Log
config.log_mode=Modalità
config.log_options=Opzioni
@@ -1336,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.

View File

@@ -9,7 +9,6 @@ sign_out=サインアウト
sign_up=サインアップ
register=登録
website=WEBサイト
version=バージョン
page=ページ
template=テンプレート
language=言語
@@ -44,6 +43,10 @@ issues=課題
cancel=キャンセル
[status]
page_not_found=ページが見つかりません
internal_server_error=サーバ内部エラー
[install]
install=インストール
title=インストールをする前に必要な準備をしましょう
@@ -55,6 +58,7 @@ host=ホスト
user=ユーザー
password=パスワード
db_name=データベース名
db_schema=Schema
db_helper=MySQLではエンジンがINNODB、文字セットがutf8_general_ciである必要があります。
ssl_mode=SSL モード
path=パス
@@ -84,6 +88,7 @@ log_root_path=ログのパス
log_root_path_helper=ログファイルを書き込むディレクトリ。
enable_console_mode=コンソールモードの有効化
enable_console_mode_popup=ファイルモードに加えて、コンソールにもログを表示します。
default_branch=Default Branch
optional_title=オプション設定
email_title=メールサービス設定
@@ -101,10 +106,10 @@ disable_gravatar=Gravatarのサービスを無効にします
disable_gravatar_popup=Gravatarとカスタムソースを無効にして、全てのアバターをユーザーによってアップロードされたものかデフォルトなものにします。
federated_avatar_lookup=連合アバター検索を有効にする
federated_avatar_lookup_popup=Libavatarに基づいたオープンソースサービスを使用するには、連合アバター検索を有効にします。
disable_registration=自己登録を無効にする
disable_registration_popup=自己登録を無効にし、管理者のみアカウント作成できる
enable_captcha=Captchaを有効にする
enable_captcha_popup=ユーザによる自己登録のため、有効なcaptchaが必要です。
disable_registration=誰でもユーザ登録ができないようにする
disable_registration_popup=誰でもユーザ登録ができないようにすることで、管理者のみアカウント作成できるようになります。
enable_captcha=CAPTCHAを有効にする
enable_captcha_popup=ユーザ登録にはCAPTCHA認証が必要です。
require_sign_in_view=サインインしたユーザのみページ閲覧を許可
require_sign_in_view_popup=サインインしたユーザのみがページを閲覧できます。ビジターはサインインもしくはサインアップページのみ見られます。
admin_setting_desc=今管理者アカウントを作成する必要はありません。ID = 1のユーザ は自動的に管理者の権限を獲得します。
@@ -112,7 +117,7 @@ admin_title=管理者アカウントの設定
admin_name=ユーザー名
admin_password=パスワード
confirm_password=パスワード確認
admin_email=管理者の電子メール
admin_email=管理者のメールアドレス
install_gogs=Gogs をインストール
test_git_failed='Git' コマンドテストに失敗: %v
sqlite3_not_available=このリリース バージョンは SQLite3 をサポートしていません。gobuild バージョンではない、公式のバイナリ バージョンを %s からダウンロードしてください。
@@ -122,12 +127,13 @@ run_user_not_match=実行ユーザーは現在のユーザーではありませ
smtp_host_missing_port=SMTPホストのポートが見つかりません。
invalid_smtp_from=SMTP From フィールドの値が有効ではありません: %v
save_config_failed=構成の保存に失敗した: %v
init_failed=アプリケーションの初期化に失敗しました: %v
invalid_admin_setting=管理者アカウントの設定が無効です: %v
install_success=ようこそ!我々はあなたが Gogs を選んでくれて嬉しいです!楽しみましょう!
invalid_log_root_path=ログのルートパスがむこうです: %v
invalid_log_root_path=リポジトリのルート パスが無効です: %v
[home]
uname_holder=ユーザー名またはEメール
uname_holder=ユーザー名またはメールアドレス
password_holder=パスワード
switch_dashboard_context=ダッシュボードコンテキストの切替
my_repos=自分のリポジトリ
@@ -180,10 +186,10 @@ login_two_factor_enter_passcode=2段階認証用パスコードを入力
login_two_factor_invalid_recovery_code=このリカバリーコードは使用済みか、正しくありません。
[mail]
activate_account=あなたのアカウントを有効してください。
activate_email=電子メール アドレスを確認します。
activate_account=アカウントを有効してください。
activate_email=メールアドレスを確認
reset_password=パスワードをリセットします.
register_success=ようこそ、登録成功
register_success=登録完了です。ようこそ!
register_notify=ボードへようこそ
[modal]
@@ -202,7 +208,7 @@ HttpsUrl=HTTPS URL
PayloadUrl=ペイロードの URL
TeamName=チーム名
AuthName=承認名
AdminEmail=管理者の電子メール
AdminEmail=管理者のメールアドレス
NewBranchName=新しいブランチ名
CommitSummary=コミットの概要
@@ -213,7 +219,7 @@ Content=コンテンツ
require_error=空にできません
alpha_dash_error=アルファベット、数字、ハイフン"-"、アンダースコア"_"のいずれかの必要があります
alpha_dash_dot_error=' アルファベット、数値、ダッシュ(-)、アンダースコア(_) 、ドット(.)のいずれかを入力する必要があります。 '
alpha_dash_dot_error=' アルファベット、数値、ハイフン(-)、アンダースコア(_) 、ドット(.) のいずれかを入力する必要があります。 '
alpha_dash_dot_slash_error=` アルファベット、数字、ハイフン(-)、アンダースコア(_)、ドット(.)、スラッシュ(/) のみ利用できます。`
size_error=`サイズは %s である必要があります`
min_size_error=' 少なくとも %s 文字の必要があります '
@@ -222,14 +228,14 @@ email_error=' は有効なメールアドレスではありません '
url_error=' は有効な URL はありません。 '
include_error=' 文字列 '%s' を含める必要があります。 '
unknown_error=不明なエラー:
captcha_incorrect=Captcha が一致しませんでした。
password_not_match=パスワードと確認用パスワードが一致していません。
captcha_incorrect=CAPTCHAが一致しませんでした。
password_not_match=パスワードと確認用パスワードが一致していません。
username_been_taken=ユーザー名は既に使用されています。
repo_name_been_taken=リポジトリ名は既に使用されています。
org_name_been_taken=組織名は既に使用されています。
team_name_been_taken=チーム名は既に使用されています。
email_been_used=電子メール アドレスは既に使用されています。
email_been_used=メールアドレスは既に使用されています。
username_password_incorrect=ユーザー名またはパスワードが正しくありません。
auth_source_mismatch=選択されている認証ソースは、ユーザーに関連付けられていません。
enterred_invalid_repo_name=入力したリポジトリの名前が正しいかどうかを確認してください。
@@ -259,8 +265,7 @@ 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=プロフィール
@@ -312,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 時間以内に受信トレイを確認し、確認プロセスを完了してください。
@@ -366,6 +372,7 @@ two_factor_disable_success=2段階認証があなたのアカウントで無効
manage_access_token=パーソナルアクセス トークンを管理
generate_new_token=新しいトークンを生成
tokens_desc=生成したトークンを利用して 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=今のところ、全てのトークンはあなたのアカウントにフルアクセスできます。
token_name=トークン名
generate_token=トークンを生成
@@ -374,6 +381,7 @@ delete_token=削除
access_token_deletion=パーソナルアクセストークンの削除
access_token_deletion_desc=パーソナルアクセストークンを削除すると、関連するアプリケーションのすべてのアクセスが削除されます。続行しますか?
delete_token_success=パーソナルアクセストークンは正常に削除されました!同時にあなたのアプリケーションを更新することを忘れないでください。
token_name_exists=同じ名前のトークンがあります。
orgs.none=あなたはどの組織のメンバーでもありません。
orgs.leave_title=組織からの脱退
@@ -395,7 +403,9 @@ owner=オーナー
repo_name=リポジトリ名
repo_name_helper=短くて分かりやすく<strong>重複しない</strong>リポジトリ名を決めてください。
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> を参照しましょう。
@@ -425,8 +435,7 @@ 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=Repository name or pattern %q is not allowed.
need_auth=認証が必要
migrate_type=マイグレーションの種類
@@ -437,6 +446,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=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=移行に失敗しました: %v
mirror_from=同期ミラー
@@ -484,6 +494,8 @@ 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=ファイルをアップロード
@@ -785,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=Webhook を追加
settings.hooks_desc=Webhooksは、Gogsで特定のイベントの発生時に指定された外部サービスに通知を許可します。イベントが発生すると、それぞれ指定されたUrlに、POSTリクエストが送られます。詳細はこちらのの <a target="_blank"href="%s"> Webhooks ガイド</a>をご覧ください。
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Choose a type...
settings.add_webhook=Webhook を追加
settings.webhook_deletion=Webhook を削除
settings.webhook_deletion_desc=このwebhookを削除すると、すべての情報と配信履歴が削除されます。続行しますか
settings.webhook_deletion_success=Webhook が正常に削除されました。
@@ -800,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=フックの名前
@@ -904,7 +920,7 @@ release.deletion=リリースの削除
release.deletion_desc=このリリースを削除すると、対応するGitのタグも削除されます。よろしいですか
release.deletion_success=リリースが正常に削除されました。
release.tag_name_already_exist=このタグ名には既にリリースが存在します。
release.tag_name_invalid=使用できないタグ名です。
release.tag_name_invalid=タグ名が不正です。
release.downloads=ダウンロード
[org]
@@ -926,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=チーム名 '%s' は使用されています。
form.name_not_allowed=Organization name or pattern %q is not allowed.
form.team_name_not_allowed=チーム名またはパターン %q は許可されていません。
settings=設定
settings.options=オプション
@@ -1000,12 +1015,19 @@ first_page=First
last_page=Last
total=合計: %d
dashboard.build_info=ビルド情報
dashboard.app_ver=アプリケーションのバージョン
dashboard.git_version=Git バージョン
dashboard.go_version=Go バージョン
dashboard.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> 個のwebフック、<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=操作を選択してください
dashboard.operation_run=実行
dashboard.clean_unbind_oauth=結び付けられていない OAuth をクリーン
dashboard.clean_unbind_oauth_success=結び付けられていない全ての OAuth を正常に削除しました。
@@ -1151,120 +1173,186 @@ 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=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_rewrite_authorized_keys_at_start=書き換え authorized_keys 開始
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=Exposed domain
config.ssh.port=Exposed port
config.ssh.root_path=Root path
config.ssh.keygen_path=Keygen パス
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=Server ciphers
config.ssh.server_macs=Server MACs
config.ssh.server_algorithms=Server algorithms
config.repo_config=リポジトリの設定
config.repo_root_path=リポジトリのルートパス
config.script_type=スクリプトの種類
config.repo_force_private=非公開リポジトリの強制
config.max_creation_limit=最大作成数
config.preferred_licenses=優先ライセンス
config.disable_http_git=HTTP Git の無効化
config.enable_local_path_migration=ローカルパス移行の有効化
config.commits_fetch_concurrency=コミットのフェッチの並行数
config.http_config=HTTP の設定
config.http_access_control_allow_origin=Access Control Allow Origin
config.repo.root_path=ルートパス
config.repo.script_type=Script type
config.repo.ansi_chatset=ANSI 文字コード
config.repo.force_private=非公開にする
config.repo.max_creation_limit=最大作成数
config.repo.preferred_licenses=Preferred licenses
config.repo.disable_http_git=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=DB種類
config.db.host=DBホスト
config.db.name=DB
config.db.schema=Schema
config.db.schema_helper=(for "postgres" only)
config.db.user=DBユーザー
config.db.ssl_mode=SSL モード
config.db.ssl_mode_helper=("postgres"のみ)
config.db.path=DBパス
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=Login remember days
config.security.cookie_remember_name=Remember cookie
config.security.cookie_username=Username cookie
config.security.cookie_secure=セキュアなクッキーを有効にする
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設定
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=ホスト
config.email.from=From
config.email.user=ユーザー
config.email.disable_helo=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=プレーンテキストを使用する
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_subject_prefix=件名プレフィックス
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=登録を無効にする
config.auth.enable_registration_captcha=登録時のCAPTCHAを有効にする
config.auth.enable_reverse_proxy_authentication=リバースプロキシ認証を有効にする
config.auth.enable_reverse_proxy_auto_registration=リバースプロキシの自動登録を有効にする
config.auth.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=ユーザー設定
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=Provider
config.session.provider_config=Provider config
config.session.cookie_name=Cookie
config.session.https_only=HTTPS のみ
config.session.gc_interval=GC 間隔
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 間隔
config.cache.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=パス
config.attachment.allowed_types=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=User avatar upload path
config.picture.repo_avatar_upload_path=Repository avatar upload path
config.picture.gravatar_source=Gravatarのソース
config.picture.disable_gravatar=Gravatarを無効にする
config.picture.enable_federated_avatar=Enable federated avatars
config.mirror_config=ミラー構成
config.mirror.default_interval=Default interval
config.webhook_config=Webhook設定
config.webhook.types=Types
config.webhook.deliver_timeout=配信のタイムアウト
config.webhook.skip_tls_verify=TLS検証をスキップ
config.git_config=Git 設定
config.git_disable_diff_highlight=Diff のシンタックスハイライトを無効にする
config.git_max_diff_lines=Diff の最大行数(1ファイルあたり)
config.git_max_diff_line_characters=Diff の最大文字数(1行あたり)
config.git_max_diff_files=Diff の最大ファイル数(表示)
config.git_gc_args=GC の引数
config.git_migrate_timeout=移行タイムアウト
config.git_mirror_timeout=ミラー更新タイムアウト
config.git_clone_timeout=Clone 操作のタイムアウト
config.git_pull_timeout=Pull 操作のタイムアウト
config.git_gc_timeout=GC 操作のタイムアウト
config.git.disable_diff_highlight=Diff のシンタックスハイライトを無効にする
config.git.max_diff_lines=Diff lines limit (for a single file)
config.git.max_diff_line_characters=Diff の最大文字数(1行あたり)
config.git.max_diff_files=Diff files limit (for a single diff)
config.git.gc_args=GC の引数
config.git.migrate_timeout=Migration timeout
config.git.mirror_timeout=Mirror fetch timeout
config.git.clone_timeout=クローンのタイムアウト
config.git.pull_timeout=Pull タイムアウト
config.git.gc_timeout=GC タイムアウト
config.lfs_config=LFS設定
config.lfs.storage=ストレージ
config.lfs.objects_path=Objects path
config.log_config=ログの設定
config.log_file_root_path=ログファイルのルートパス
config.log_mode=モード
config.log_options=オプション
@@ -1312,9 +1400,9 @@ delete_branch=<a href="%[1]s">%[3]s</a> のブランチ <code>%[2]s</code> を
push_tag=が <a href="%[1]s">%[3]s</a> にタグ <a href="%[1]s/src/%[2]s">%[2]s</a> をプッシュしました
delete_tag=<a href="%[1]s">%[3]s</a> のタグ <code>%[2]s</code> を削除しました
fork_repo=リポジトリを <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_push=<a href="%[1]s">%[4]s</a> <a href="%[1]s/src/%[2]s">%[3]s</a> へのコミットをミラーから反映しました
mirror_sync_create=新しい参照<a href="%s/src/%s">%[2]s</a>を<a href="%[1]s">%[3]s</a>にミラーから反映しました
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=<a href="%[1]s">%[3]s</a> の参照 <code>%[2]s</code> をミラーから同期および削除しました
[tool]
ago=
@@ -1336,6 +1424,7 @@ months=%d ヶ月 %s
years=%d 年 %s
raw_seconds=
raw_minutes=
raw_hours=時間
[dropzone]
default_message=ここにファイルをドロップまたはクリックしてアップロードします。

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=이메일 서비스 설정
@@ -122,6 +127,7 @@ run_user_not_match=실행 유저가 현재 유저가 아닙니다: %s -> %s
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
@@ -259,8 +265,7 @@ following=팔로우 중
follow=추적하기
unfollow=추적해제
form.name_reserved=사용자 이름 '%s'는 예약되어 있습니다.
form.name_pattern_not_allowed=사용자 이름 패턴 '%s'은 허용 되지 않습니다.
form.name_not_allowed=사용자 이름 또는 패턴 %q 은(는) 허용되지 않습니다.
[settings]
profile=프로필
@@ -312,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시간 안에 확인 절차를 완료하셔야 합니다.
@@ -351,7 +357,7 @@ two_factor_or_enter_secret=또는 이 비밀키를 입력하세요:
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_reused_passcode=입력하신 비밀번호가 이미 사용되였습니.다른 비밀번호를 사용해보십시오!.
two_factor_enable_error=2단계 인증 활성화 실패: %v
two_factor_enable_success=2단계 인증이 성공적으로 활성화되었습니다!
two_factor_recovery_codes_title=2단계 인증 복구 코드
@@ -366,6 +372,8 @@ 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=토큰 생성
@@ -374,6 +382,7 @@ delete_token=삭제
access_token_deletion=개인 액세스 토큰 삭제
access_token_deletion_desc=이 토큰을 사용하는 애플리케이션의 접근권한 또한 삭제됩니다. 계속 하시겠습니까?
delete_token_success=액세스 토큰이 삭제되었습니다. 애플리케이션의 업데이트도 잊지 마세요.
token_name_exists=같은 이름의 토큰이 이미 존재합니다.
orgs.none=당신은 어떤 조직의 구성원도 아닙니다.
orgs.leave_title=조직 떠나기
@@ -381,8 +390,8 @@ orgs.leave_desc=조직을 떠난 후에는 모든 리포지토리와 팀에 액
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_desc=이 페지를 떠나면 저장소에 액세스할수 없게 됩니다. 계속하시겠습니까?
repos.leave_success=당신은 저장소 '%s' 에서 성공적으로 탈퇴하였습니다.!
delete_account=계정 삭제
delete_prompt=당신의 계정을 삭제합니다. 완료된 후에는 <strong>취소할 수 없습니다</strong>.
@@ -395,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>에 방문하세요.
@@ -421,12 +432,11 @@ mirror_last_synced=마지막으로 동기화됨
watchers=주시하고 있는 사람들
stargazers=별을 준 사람들
forks=포크
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
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=마이그레이션 유형
@@ -437,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=의 미러
@@ -482,8 +493,10 @@ branches.overview=개요
branches.active_branches=활성 브랜치
branches.stale_branches=오래된 브랜치
branches.all=모든 브랜치
branches.updated_by=Updated %[1]s by %[2]s
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=파일 업로드
@@ -520,7 +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=Failed to delete file '%s' with error: %v
editor.fail_to_delete_file=파일 '%s'를 삭제하는데 실패하였습니다. 오유: %v
editor.add_subdir=하위 디렉토리 추가...
editor.unable_to_upload_files=파일 '%s'를 업로드하는데 실패하였습니다. 에러: %v
editor.upload_files_to_dir=파일 업로드 '%s'
@@ -623,7 +636,7 @@ pulls.compare_compare=비교
pulls.filter_branch=Filter Branch
pulls.no_results=결과 없음
pulls.nothing_to_compare=Base 와 head 브랜치가 동일해서 비교할 게 없습니다.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
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 를 머지하려 합니다
@@ -640,9 +653,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.create_merge_commit=합치기커밋 생성
pulls.rebase_before_merging=병합 하기 전에 리베이스
pulls.commit_description=Commit Description
pulls.commit_description=커밋설명
pulls.merge_pull_request=풀리퀘스트 머지
pulls.open_unmerged_pull_exists=`같은 리파지토리에서 같은 머지 정보로 만들어진 풀리퀘스트 (#%d) 가 이미 오픈 상태이고 머지를 기다리고 있기 때문에 다시 열기 작업을 할 수 없습니다.`
pulls.delete_branch=브랜치 삭제
@@ -698,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 푸시, 실수로 인한 코드 삭제를 방지하며 코드 커미터를 화이트리스트 합니다.
@@ -714,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=기본 설정
@@ -732,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로 리다이렉트 됩니다.
@@ -747,9 +760,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=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.pulls_desc=다른 저장소와 브랜치 간의 기여를 수용할 수 있도록 풀 리퀘스트 활성화
settings.pulls.ignore_whitespace=공백 변경 무시
settings.pulls.allow_rebase_merge=커밋을 머지하기 위해 리베이스 사용 허용
settings.danger_zone=위험 설정
settings.cannot_fork_to_same_owner=본인 소유의 저장소를 본인 명의로 포크할 수 없습니다.
settings.new_owner_has_same_repo=새로운 소유자가 같은 이름의 저장소를 이미 가지고 있습니다. 다른 이름을 선택해주세요.
@@ -770,7 +783,7 @@ settings.wiki_deletion_success=저장소의 Wiki 데이터가 성공적으로
settings.delete=이 저장소 삭제
settings.delete_desc=저장소를 지우고 나면 되돌릴 수 없습니다. 다시 한번 확인하세요.
settings.delete_notices_1=- 이 작업은 취소할 수 <strong>없습니다.</strong>
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_2=- 이 작업을 수행하면 Git 데이터, 이슈, 댓글, 협업자 액세스 등 이 저장소의 모든 내용이 영구적으로 삭제됩니다.
settings.delete_notices_fork_1=- 모든 포크들은 삭제 후에도 독립적으로 유지됩니다.
settings.deletion_success=저장소가 성공적으로 삭제 되었습니다!
settings.update_settings_success=저장소 옵션이 성공적으로 업데이트 되었습니다.
@@ -786,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 이름
@@ -810,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=
@@ -823,17 +840,17 @@ settings.event_create_desc=브랜치 또는 태그를 생성합니다.
settings.event_delete=삭제
settings.event_delete_desc=브랜치나 태그 삭제됨
settings.event_fork=포크
settings.event_fork_desc=Repository forked
settings.event_fork_desc=저장소 포크됨
settings.event_push=푸시
settings.event_push_desc=깃 저장소로 푸시
settings.event_issues=이슈
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
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_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.event_issue_comment=이슈 댓글
settings.event_issue_comment_desc=이슈 댓글이 작성, 편집 또는 삭제되었습니다.
settings.event_release=릴리즈
settings.event_release_desc=저장소에 릴리즈가 출시되었습니다.
settings.active=활성
settings.active_helper=후크를 트리거하면 이벤트에 대한 세부 정보도 전달됩니다.
settings.add_hook_success=새로운 웹훅이 생성되었습니다.
@@ -861,8 +878,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
settings.description_desc=저장소 설명입니다. 최대 512길이의 문자열이 가능합니다.
settings.description_length=사용 가능한 문자열
diff.browse_source=소스 검색
diff.parent=부모
@@ -927,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=옵션
@@ -1001,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들이 성공적으로 삭제되었습니다.
@@ -1098,12 +1121,12 @@ repos.stars=Stars
repos.issues=이슈
repos.size=크기
auths.auth_sources=Authentication Sources
auths.auth_sources=인증 소스
auths.new=새로운 소스를 추가
auths.name=이름
auths.type=유형
auths.enabled=활성화됨
auths.default=Default
auths.default=기본값
auths.updated=업데이트됨
auths.auth_type=인증 유형
auths.auth_name=인증 이름
@@ -1123,8 +1146,8 @@ auths.attribute_name=첫번째 이름 속성
auths.attribute_surname=성씨 속성
auths.attribute_mail=이메일 속성
auths.verify_group_membership=그룹 구성원 자격을 확인
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
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 컨텍스트에서 속성을 가져와 연결합니다.
@@ -1152,122 +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=(not set)
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_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
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.http_config=HTTP 설정
config.http_access_control_allow_origin=Access Control Allow Origin
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_subject_prefix=Subject Prefix
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=이름
@@ -1311,7 +1400,7 @@ 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
@@ -1337,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
@@ -122,6 +127,7 @@ run_user_not_match=Izpildes lietotājs nav pašreizējais lietotājs: %s -> %s
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
@@ -259,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
@@ -312,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.
@@ -366,6 +372,7 @@ 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
@@ -374,6 +381,7 @@ 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=Jūs neesat nevienas organizācijas dalībnieks.
orgs.leave_title=Pamest organizāciju
@@ -395,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!
@@ -425,8 +435,7 @@ repo_description_helper=Repozitorija apraksts. Maksimālais garums 512 rakstzīm
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
@@ -437,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
@@ -484,6 +494,8 @@ branches.stale_branches=Pamests atzars
branches.all=Visi atzari
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
@@ -785,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!
@@ -800,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
@@ -926,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
@@ -1000,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.
@@ -1151,120 +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_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
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.http_config=HTTP konfigurācija
config.http_access_control_allow_origin=Access Control Allow Origin
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_subject_prefix=Subject Prefix
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
@@ -1336,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
@@ -44,17 +43,22 @@ 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
@@ -122,6 +127,7 @@ run_user_not_match=De uitvoerende gebruiker is niet de huidig gebruiker: %s -> %
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,7 +157,7 @@ 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=Authentication Source
auth_source=Authenticatiebron
local=Lokaal
remember_me=Onthoud mij
forgot_password=Wachtwoord vergeten
@@ -177,7 +183,7 @@ 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=Recovery code has been used or does not valid.
login_two_factor_invalid_recovery_code=Herstelcode is al gebruikt of ongeldig.
[mail]
activate_account=Activeer uw account
@@ -214,7 +220,7 @@ 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.
@@ -231,7 +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=The authentication source selected is not associated with the user.
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.
@@ -259,8 +265,7 @@ 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
@@ -312,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.
@@ -337,7 +343,7 @@ 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=Aan
two_factor_off=Uit
@@ -345,9 +351,9 @@ 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=Verifiëren
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
@@ -366,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
@@ -374,6 +381,7 @@ 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
@@ -395,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>!
@@ -425,8 +435,7 @@ 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
@@ -437,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
@@ -484,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=Nieuw bestand
editor.upload_file=Bestand uploaden
@@ -785,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!
@@ -800,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
@@ -926,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
@@ -1000,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.
@@ -1080,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
@@ -1097,7 +1119,7 @@ repos.stars=Sterren
repos.issues=Issues
repos.size=Size
auths.auth_sources=Authentication Sources
auths.auth_sources=Authenticatiebronnen
auths.new=Nieuwe bron toevoegen
auths.name=Naam
auths.type=Type
@@ -1141,7 +1163,7 @@ auths.pam_service_name=PAM servicenaam
auths.enable_auto_register=Activeer automatische registratie
auths.edit=Verificatie-instelling bewerken
auths.activated=Deze autorisatiemethode is geactiveerd
auths.default_auth=This authentication is default login source
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
@@ -1151,120 +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_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
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.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
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_subject_prefix=Subject Prefix
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
@@ -1336,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
@@ -44,17 +43,22 @@ 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
@@ -259,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
@@ -312,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.
@@ -366,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
@@ -374,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ę
@@ -395,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>!
@@ -425,8 +435,7 @@ 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
@@ -437,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
@@ -484,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
@@ -785,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!
@@ -800,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
@@ -926,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
@@ -1000,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.
@@ -1151,120 +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_rewrite_authorized_keys_at_start=Przepisz authorized_keys przy uruchomieniu
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.http_config=Konfiguracja HTTP
config.http_access_control_allow_origin=Kontrola Dostępu Uwzględnia Źródło
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_subject_prefix=Prefiks tematu
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
@@ -1313,8 +1401,8 @@ 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=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
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
@@ -1336,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ć.

View File

@@ -9,7 +9,6 @@ sign_out=Sair
sign_up=Cadastrar
register=Registrar
website=Site
version=Versão
page=Página
template=Modelo
language=Idioma
@@ -44,17 +43,22 @@ issues=Problemas
cancel=Cancelar
[status]
page_not_found=Página Não Encontrada
internal_server_error=Erro interno do servidor
[install]
install=Instalação
title=Etapas de instalação para primeira execução
docker_helper=Se você está rodando o Gogs dentro do Docker, por favor leia os <a target="_blank" href="%s">Guias</a> cuidadosamente antes de mudar qualquer coisa nesta página!
requite_db_desc=O Gogs requer MySQL, PostgreSQL, SQLite3, MSSQL ou TiDB.
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Configurações de banco de dados
db_type=Tipo de banco de dados
host=Host
user=Usuário
password=Senha
db_name=Nome do banco de dados
db_schema=Schema
db_helper=Por favor, use o mecanismo INNODB com o conjunto de caracteres utf8_general_ci para MySQL.
ssl_mode=Modo SSL
path=Caminho
@@ -84,6 +88,7 @@ log_root_path=Caminho do log
log_root_path_helper=Pasta dos arquivos de log.
enable_console_mode=Ativar o modo de console
enable_console_mode_popup=Além do modo de arquivo, exibir registros (log) no console.
default_branch=Default Branch
optional_title=Configurações opcionais
email_title=Configurações do serviço de e-mail
@@ -122,6 +127,7 @@ run_user_not_match=O usuário da execução não é o usuário atual: %s -> %s
smtp_host_missing_port=O endereço do host SMTP não possui porta.
invalid_smtp_from=O SMTP do campo não é válido: %v
save_config_failed=Falha ao salvar a configuração: %v
init_failed=Falha ao inicializar a aplicação: %v
invalid_admin_setting=Configuração da conta de administrador está inválida: %v
install_success=Bem-vindo! Estamos contentes que você escolheu o Gogs, divirta-se e tenha cuidado.
invalid_log_root_path=Pasta raíz do log é inválida: %v
@@ -151,7 +157,7 @@ register_hepler_msg=Já tem uma conta? Entre agora!
social_register_hepler_msg=Já tem uma conta? Junte-se agora!
disable_register_prompt=Desculpe, novos registros estão desabilitados. Por favor entre em contato com o administrador do site.
disable_register_mail=Desculpe, a confirmação de registro por e-mail foi desabilitada.
auth_source=Authentication Source
auth_source=Fonte de autenticação
local=Local
remember_me=Lembrar de mim
forgot_password=Esqueci a senha
@@ -231,7 +237,7 @@ org_name_been_taken=Nome da organização já foi tomado.
team_name_been_taken=Nome da equipe já existe.
email_been_used=Endereço de e-mail já foi usado.
username_password_incorrect=Usuário ou senha incorretos.
auth_source_mismatch=The authentication source selected is not associated with the user.
auth_source_mismatch=A fonte de autenticação selecionada não está associada ao usuário.
enterred_invalid_repo_name=Por favor certifique-se que informou o nome do repositório corretamente.
enterred_invalid_owner_name=Por favor, verifique se o nome do proprietário está correto.
enterred_invalid_password=Por favor, verifique se a senha que você digitou está correta.
@@ -259,8 +265,7 @@ following=Seguindo
follow=Seguir
unfollow=Deixar de seguir
form.name_reserved=O nome de usuário '%s' não pode ser usado.
form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome de usuário.
form.name_not_allowed=Nome de usuário ou padrão %q não é permitido.
[settings]
profile=Perfil
@@ -312,6 +317,7 @@ delete_email=Deletar
email_deletion=Exclusão do email
email_deletion_desc=Ao Excluir este endereço de e-mail será removido informações relacionadas com a sua conta. Você deseja continuar?
email_deletion_success=O E-mail foi excluído com sucesso!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Adicionar novo endereço de e-mail
add_email=Adicionar e-mail
add_email_confirmation_sent=Um novo e-mail de confirmação foi enviado para '%s'. Por favor, verifique sua Caixa de Entrada dentro das próximas %d horas, para concluir o processo de confirmação.
@@ -351,7 +357,7 @@ two_factor_or_enter_secret=Ou informe o segredo:
two_factor_then_enter_passcode=Em seguida digite a senha:
two_factor_verify=Verificar
two_factor_invalid_passcode=A senha inserida é inválida. Tente novamente!
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_reused_passcode=A senha fornecida já foi usada, por favor tente outra!
two_factor_enable_error=Falha ao ativar a autenticação de dois fatores: %v
two_factor_enable_success=A autenticação de dois fatores foi ativada para a sua conta com sucesso!
two_factor_recovery_codes_title=Códigos de recup. p/ autenticação de dois fatores
@@ -366,6 +372,7 @@ two_factor_disable_success=A autenticação de dois fatores foi desativada com s
manage_access_token=Gerenciar tokens de acesso pessoal
generate_new_token=Gerar novo token
tokens_desc=Tokens gerados por você que podem ser usados para acessar a API do 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=Por enquanto, todo token terá acesso completo à sua conta.
token_name=Nome do token
generate_token=Gerar token
@@ -374,6 +381,7 @@ delete_token=Excluir
access_token_deletion=Exclusão do token de acesso pessoal
access_token_deletion_desc=Ao Excluir este token de acesso pessoal será removido todos os acessos do aplicativo. Você deseja continuar?
delete_token_success=O Token de acesso pessoal foi removido com sucesso! Não se esqueça de atualizar seus aplicativos também.
token_name_exists=Já existe um token com o mesmo nome.
orgs.none=Você não é participante de nenhuma organização.
orgs.leave_title=Deixar uma organização
@@ -395,7 +403,9 @@ owner=Dono
repo_name=Nome do repositório
repo_name_helper=Nomes de repositórios bons são pequenos, memorizáveis e únicos.
visibility=Visibilidade
unlisted=Unlisted
visiblity_helper=Este é um repositório <span class="ui red text"> privado</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=O adminstrador forçou todos os novos repositórios para serem <span class="ui red text">privados</span>
visiblity_fork_helper=(A alteração desse valor irá afetar todos os forks)
clone_helper=Precisa de ajuda com o clone? Visite a <a target="_blank" href="%s">Ajuda</a>!
@@ -421,12 +431,11 @@ mirror_last_synced=Última sincronização
watchers=Observadores
stargazers=Usuários que estrelaram
forks=Forks
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
repo_description_helper=Descrição do repositório. Tamanho máximo de 512 caracteres.
repo_description_length=Caracteres disponíveis
form.reach_limit_of_creation=O proprietário atingiu o limite máximo de criação de repositórios de %d.
form.name_reserved=O nome de repositório '%s' não pode ser usado.
form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome de repositório.
form.name_not_allowed=Nome de usuário ou padrão %q não é permitido.
need_auth=Precisa de autorização
migrate_type=Tipo de migração
@@ -437,6 +446,7 @@ migrate.clone_address_desc=Pode ser um URL HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=Você também pode migrar um repositório pelo path do servidor local.
migrate.permission_denied=Você não pode importar repositórios locais.
migrate.invalid_local_path=Caminho local inválido, não existe ou não é um diretório.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migração falhou: %v
mirror_from=mirror de
@@ -484,6 +494,8 @@ branches.stale_branches=Branches obsoletos
branches.all=Todos os branches
branches.updated_by=Atualizado %[1]s por %[2]s
branches.change_default_branch=Modificar branch padrão
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=Enviar arquivo
@@ -520,7 +532,7 @@ editor.file_changed_while_editing=O conteúdo do arquivo mudou desde que você c
editor.file_already_exists=Um arquivo com nome '%s' já existe neste repositório.
editor.no_changes_to_show=Nenhuma alteração a mostrar.
editor.fail_to_update_file=Houve erro ao criar ou atualizar arquivo '%s': %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.fail_to_delete_file=Falha ao excluir arquivo '%s' com erro: %v
editor.add_subdir=Adicionar o subdiretório...
editor.unable_to_upload_files=Houve erro ao fazer upload de arquivos para '%s': %v
editor.upload_files_to_dir=Enviar arquivos para '%s'
@@ -640,8 +652,8 @@ pulls.can_auto_merge_desc=O merge deste Pull Pequest pode ser aplicado automatic
pulls.cannot_auto_merge_desc=O merge deste Pull Request não pode ser aplicado automaticamente pois há conflitos.
pulls.cannot_auto_merge_helper=Por favor, aplique o merge manualmente para resolver os conflitos.
pulls.create_merge_commit=Criar commit de um merge
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.rebase_before_merging=Execute rebase antes de fazer merge
pulls.commit_description=Descrição do Commit
pulls.merge_pull_request=Solicitação de merge de Pull Request
pulls.open_unmerged_pull_exists=`Você não pode executar a operação de reabrir porque já existe um Pull request aberto (#%d) do mesmo repositório com as mesmas informações de merge e está esperando pelo merge.`
pulls.delete_branch=Excluir Branch
@@ -746,7 +758,7 @@ settings.tracker_issue_style=Estilo de nome de issue tracker externo:
settings.tracker_issue_style.numeric=Numérico
settings.tracker_issue_style.alphanumeric=Alfanumérico
settings.tracker_url_format_desc=Você pode usar o espaço reservado <code>{user} {repo} {index}</code> para o nome do usuário, índice de nome e a questão do repositório.
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls_desc=Habilitar pull requests para aceitar contribuições entre repositórios e branches
settings.pulls.ignore_whitespace=Ignorar alterações em espaço em branco
settings.pulls.allow_rebase_merge=Permitir rebase para commits via merge
settings.danger_zone=Zona de perigo
@@ -785,8 +797,10 @@ settings.collaborator_deletion_desc=Este usuário não terá mais acesso de cola
settings.remove_collaborator_success=O colaborador foi removido.
settings.search_user_placeholder=Pesquisar usuário...
settings.org_not_allowed_to_be_collaborator=Organização não tem permissão para ser adicionada como um colaborador.
settings.add_webhook=Adicionar Webhook
settings.hooks_desc=Hooks da web ou Webhooks permitem serviços externos serem notificados quando certos eventos acontecem no Gogs. Quando acontecem os eventos especificados, enviaremos uma solicitação POST para cada uma das URLs que você fornecer. Saiba mais no nosso <a target="_blank" href="%s"> Guia de Webhooks</a>.
settings.webhooks.add_new=Adicionar um novo webhook:
settings.webhooks.choose_a_type=Escolha um tipo...
settings.add_webhook=Adicionar Webhook
settings.webhook_deletion=Deletar Webhook
settings.webhook_deletion_desc=Deletar este Webhook vai remover sua informação e todo o histórico de entrega. Deseja continuar?
settings.webhook_deletion_success=Webhook deletado com sucesso!
@@ -800,6 +814,8 @@ settings.webhook.response=Resposta
settings.webhook.headers=Cabeçalhos
settings.webhook.payload=Payload
settings.webhook.body=Corpo
settings.webhook.err_cannot_parse_payload_url=Não foi possível analisar a URL da carga: %v
settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Hooks do Git são ofertados pelo próprio Git, você pode editar arquivos de hooks suportados na lista abaixo para aplicar operações personalizadas.
settings.githook_edit_desc=Se o hook não estiver ativo, o conteúdo de exemplo será apresentado. Deixar o conteúdo em branco irá desativar esse hook.
settings.githook_name=Nome do Hook
@@ -860,8 +876,8 @@ settings.add_key_success=A nova chave de Deploy '%s' foi adicionada com sucesso!
settings.deploy_key_deletion=Exclusão de chave de Deploy
settings.deploy_key_deletion_desc=Excluir esta chave de Deploy removerá permissões de acesso a este repositório. Quer mesmo continuar?
settings.deploy_key_deletion_success=Chave de Deploy excluída com sucesso!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
settings.description_desc=Descrição do repositório. Tamanho máximo de 512 caracteres.
settings.description_length=Caracteres disponíveis
diff.browse_source=Ver código fonte
diff.parent=pai
@@ -926,9 +942,8 @@ team_name_helper=Você usará este nome para mencionar esta equipe em conversas.
team_desc_helper=Do que trata essa equipe?
team_permission_desc=Que nível de permissão esta equipe deve ter?
form.name_reserved=O nome de organização '%s' não pode ser usado.
form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome de organização.
form.team_name_reserved=O nome nome de equipe '%s' está reservado.
form.name_not_allowed=Nome da organização ou padrão %q não é permitido.
form.team_name_not_allowed=Nome do time ou padrão %q não é permitido.
settings=Configurações
settings.options=Opções
@@ -1000,12 +1015,19 @@ first_page=Primeira
last_page=Última
total=Total: %d
dashboard.build_info=Informações da compilação
dashboard.app_ver=Versão do aplicativo
dashboard.git_version=Versão do Git
dashboard.go_version=Versão Go
dashboard.build_time=Data de compilação
dashboard.build_commit=Commit da compilação
dashboard.statistic=Estatística
dashboard.operations=Operações
dashboard.system_status=Status do monitor de sistema
dashboard.statistic_info=O banco de dados do Gogs contém <b>%d</b> usuários, <b>%d</b> organizações, <b>%d</b> chaves públicas, <b>%d</b> repositórios, <b>%d</b> observadores, <b>%d</b> estrelas, <b>%d</b> ações, <b>%d</b> acessos, <b>%d</b> questões, <b>%d</b> comentários, <b>%d</b> contas sociais, <b>%d</b> seguidores, <b>%d</b> espelhos, <b>%d</b> versões, <b>%d</b> origens de login, <b>%d</b> Hooks da Web, <b>%d</b> milestones, <b>%d</b> labels, <b>%d</b> tarefas hook, <b>%d</b> equipes, <b>%d</b> tarefas de atualização, <b>%d</b> anexos.
dashboard.operation_name=Nome da operação
dashboard.operation_switch=Trocar
dashboard.select_operation_to_run=Selecione a operação para executar
dashboard.operation_run=Executar
dashboard.clean_unbind_oauth=Limpar OAuthes não acoplados
dashboard.clean_unbind_oauth_success=Todos OAuthes desvinculados foram excluídos com sucesso.
@@ -1097,12 +1119,12 @@ repos.stars=Favoritos
repos.issues=Issues
repos.size=Tamanho
auths.auth_sources=Authentication Sources
auths.auth_sources=Fontes de autenticação
auths.new=Adicionar nova fonte
auths.name=Nome
auths.type=Tipo
auths.enabled=Habilitado
auths.default=Default
auths.default=Padrão
auths.updated=Atualizado
auths.auth_type=Tipo de autenticação
auths.auth_name=Nome da autenticação
@@ -1122,7 +1144,7 @@ auths.attribute_name=Atributo do Nome
auths.attribute_surname=Atributo sobrenome
auths.attribute_mail=Atributo e-mail
auths.verify_group_membership=Verificar associação a grupo
auths.group_search_base_dn=Group Search Base DN
auths.group_search_base_dn=Grupo de Pesquisa DN Base
auths.group_filter=Filtro de Grupo
auths.group_attribute_contain_user_list=Atributo do grupo contendo a lista de usuários
auths.user_attribute_listed_in_group=Atributo do usuário listado no grupo
@@ -1141,7 +1163,7 @@ auths.pam_service_name=Nome de Serviço PAM
auths.enable_auto_register=Habilitar Registro Automático
auths.edit=Editar a configuração de autenticação
auths.activated=Esta autenticação foi ativada
auths.default_auth=This authentication is default login source
auths.default_auth=Esta autenticação é uma fonte padrão de login
auths.new_success=Nova autenticação '%s' foi adicionada com sucesso.
auths.update_success=A configuração da autenticação foi atualizada com sucesso.
auths.update=Atualizar a configuração da autenticação
@@ -1151,120 +1173,186 @@ auths.delete_auth_desc=Esta autenticação esta prestes a ser excluída, deseja
auths.still_in_used=Esta autenticação ainda é usada por alguns usuários. Por favor remova ou converta esses usuários para outro tipo de login primeiro.
auths.deletion_success=Autenticação excluída com sucesso!
auths.login_source_exist=A fonte de login '%s" já existe.
auths.github_api_endpoint=Endpoint da API
config.not_set=(não definido)
config.server_config=Configuração do servidor
config.app_name=Nome do aplicativo
config.app_ver=Versão do aplicativo
config.app_url=URL do aplicativo
config.domain=Domínio
config.offline_mode=Modo Offline
config.disable_router_log=Desabilitar o Log do router
config.brand_name=Nome da marca
config.run_user=Usuário de execução
config.run_mode=Modo de execução
config.git_version=Versão do Git
config.static_file_root_path=Caminho raiz para arquivo estático
config.log_file_root_path=Caminho raiz para arquivo de log
config.reverse_auth_user=Usuário de autenticação reversa
config.server.external_url=URL externa
config.server.domain=Domínio
config.server.protocol=Protocolo
config.server.http_addr=Endereço HTTP
config.server.http_port=Porta HTTP
config.server.cert_file=Arquivo de certificado
config.server.key_file=Arquivo chave
config.server.tls_min_version=Versão mínima de TLS
config.server.unix_socket_permission=Permissão de soquete Unix
config.server.local_root_url=URL raiz local
config.server.offline_mode=Modo offline
config.server.disable_router_log=Desabilitar log do router
config.server.enable_gzip=Ativar Gzip
config.server.app_data_path=Caminho de dados da aplicação
config.server.load_assets_from_disk=Carregar ativos do disco
config.server.landing_url=Landing URL
config.ssh_config=Configuração de SSH
config.ssh_enabled=Habilitado
config.ssh_start_builtin_server=Iniciar servidor embutido
config.ssh_domain=Domínio
config.ssh_port=Porta
config.ssh_listen_port=Porta de escuta
config.ssh_root_path=Caminho da raiz
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Caminho da chave de teste
config.ssh_keygen_path=Caminho do keygen ('ssh-keygen')
config.ssh_minimum_key_size_check=Verificar tamanho mínimo da chave
config.ssh_minimum_key_sizes=Tamanhos mínimos da chave
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=Configuração do Repositório
config.repo_root_path=Caminho raiz do repositório
config.script_type=Tipo de script
config.repo_force_private=Forçar Privado
config.max_creation_limit=Limite de Criação
config.preferred_licenses=Licenças Preferidas
config.disable_http_git=Desabilitar Git por HTTP
config.enable_local_path_migration=Permitir a migração de caminho local
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=Configuração de HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
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=Configuração do banco de dados
config.db_type=Tipo
config.db_host=Host
config.db_name=Nome
config.db_user=Usuário
config.db_ssl_mode=Modo SSL
config.db_ssl_mode_helper=(apenas para "postgres")
config.db_path=Caminho
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=Configuração do serviço
config.register_email_confirm=Requerer confirmação de e-mail
config.disable_register=Desabilitar registro
config.show_registration_button=Mostrar botão de registo
config.require_sign_in_view=Requerer entrar no Gogs para visualizar
config.mail_notify=Notificação de e-mail
config.disable_key_size_check=Desativar verificação de tamanho mínimo da chave
config.enable_captcha=Habilitar o captcha
config.active_code_lives=Ativar Code Lives
config.reset_password_code_lives=Redefinir senha de 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=Cookie para estado do login
config.security.local_network_allowlist=Local network allowlist
config.webhook_config=Configuração de Hook da Web
config.queue_length=Tamanho da fila
config.deliver_timeout=Intervalo de entrega
config.skip_tls_verify=Pular verificação de 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=Configuração de envio de e-mail
config.mailer_enabled=Habilitado
config.mailer_disable_helo=Desabilitar HELO
config.mailer_subject_prefix=Prefixo do Assunto
config.mailer_host=Host
config.mailer_user=Usuário
config.send_test_mail=Enviar email de teste
config.test_mail_failed=Falha ao enviar o email de teste para '%s': %v
config.test_mail_sent=O email de teste foi enviado para '%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=Configuração do OAuth
config.oauth_enabled=Habilitado
config.cache_config=Configuração de cache
config.cache_adapter=Adaptador de cache
config.cache_interval=Intervalo de cache
config.cache_conn=Conexão de cache
config.user_config=User configuration
config.user.enable_email_notify=Enable email notification
config.session_config=Configuração da sessão
config.session_provider=Provedor da sessão
config.provider_config=Configuração do provedor
config.cookie_name=Nome do cookie
config.enable_set_cookie=Habilitar uso de cookie
config.gc_interval_time=Tempo de Intervalo do GC
config.session_life_time=Tempo de vida da sessão
config.https_only=Apenas HTTPS
config.cookie_life_time=Tempo de vida do 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=Configuração de cache
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=Configuração de 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=Configuração da imagem
config.picture_service=Serviço de imagens
config.disable_gravatar=Desativar Gravatar
config.enable_federated_avatar=Habilitar avatares federativos
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=Configuração de Hook da Web
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Configuração do Git
config.git_disable_diff_highlight=Habilitar realce de mudanças no diff
config.git_max_diff_lines=Máximo de linhas mostradas no diff (para um único arquivo)
config.git_max_diff_line_characters=Máximo de caracteres mostrados no diff (para uma única linha)
config.git_max_diff_files=Máximo de arquivos a serem mostrados no diff
config.git_gc_args=Argumentos do GC
config.git_migrate_timeout=Timeout de migração
config.git_mirror_timeout=Timeout para sincronização de mirror
config.git_clone_timeout=Timeout para operação de clone
config.git_pull_timeout=Timeout para operação de pull
config.git_gc_timeout=Timeout para execução do 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=Configuração de log
config.log_file_root_path=Caminho raiz para arquivo de log
config.log_mode=Modo
config.log_options=Opções
@@ -1336,6 +1424,7 @@ months=%d meses %s
years=%d anos %s
raw_seconds=segundos
raw_minutes=minutos
raw_hours=hours
[dropzone]
default_message=Arraste e solte arquivos aqui, ou clique para selecioná-los.

View File

@@ -9,7 +9,6 @@ sign_out=Terminar Sessão
sign_up=Criar conta
register=Registe-se
website=Site Web
version=Versão
page=Página
template=Modelo
language=Língua
@@ -44,17 +43,22 @@ issues=Questões
cancel=Cancelar
[status]
page_not_found=Página Não Encontrada
internal_server_error=Erro do servidor interno
[install]
install=Instalação
title=Procedimentos para a instalação inicial
docker_helper=Se estiver a executar o Gogs dentro de uma instância Docker, por favor leia as<a target="_blank" href="%s">Orientações</a> com atenção, antes de alterar algo nesta página!
requite_db_desc=Gogs requer uma destas base de dados: MySQL, PostgreSQL, SQLite3, MSSQL ou TiDB.
requite_db_desc=Gogs requer uma destas base de dados: MySQL, PostgreSQL, SQLite3 ou TiDB (usando o protocolo MySQL).
db_title=Configurações da Base de Dados
db_type=Tipo de Base de Dados
host=Servidor
user=Utilizador
password=Palavra-Chave
db_name=Nome da base de dados
db_schema=Esquema
db_helper=Por favor, utilize o motor INNODB do MySQL, com suporte para o mapa de caracteres utf8_general_ci.
ssl_mode=Modo SSL
path=Directoria
@@ -84,6 +88,7 @@ log_root_path=Caminho dos Logs
log_root_path_helper=Directoria para aonde gravar os Logs.
enable_console_mode=Ativar o Modo Consola
enable_console_mode_popup=Para além de guardar logs num ficheiro, mostrá-los na consola.
default_branch=Ramo por omissão
optional_title=Configurações opcionais
email_title=Configurações do serviço de e-mail
@@ -122,6 +127,7 @@ run_user_not_match=O utilizador de execução não é igual ao utilizador actual
smtp_host_missing_port=Porta em falta no endereço SMTP.
invalid_smtp_from=Campo SMTP From inválido: %v
save_config_failed=Falha ao salvar a configuração: %v
init_failed=Falha ao inicializar a aplicação: %v
invalid_admin_setting=Configuração do utilizador de administração está inválida: %v
install_success=Bem-vindo! Estamos contentes por ter escolhido o Gogs, esperemos que goste.
invalid_log_root_path=Caminho da pasta de logs inválida: %v
@@ -259,8 +265,7 @@ following=Seguindo
follow=Seguir
unfollow=Deixar de seguir
form.name_reserved=O nome de utilizador '%s' não pode ser usado.
form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome do utilizador.
form.name_not_allowed=Não é permitido usar o padrão '%s' para o nome do utilizador.
[settings]
profile=Perfil
@@ -312,6 +317,7 @@ delete_email=Eliminar
email_deletion=Eliminação de e-mail
email_deletion_desc=Eliminar este endereço de e-mail irá remover todas as informações relacionadas da sua conta. Pretende continuar?
email_deletion_success=O e-mail foi eliminado com sucesso!
email_deletion_primary=Não é possível remover o endereço de e-mail primário.
add_new_email=Adicionar um novo endereço de e-mail
add_email=Adicionar e-mail
add_email_confirmation_sent=Um novo e-mail de confirmação foi enviado para '%s', por favor verifique a sua caixa de correio dento das próximas %d horas para completar o processo de confirmação.
@@ -366,6 +372,7 @@ two_factor_disable_success=A autenticação de dois fatores foi desativada com s
manage_access_token=Gerir Tokens de Acesso Pessoal
generate_new_token=Gerar Novo Token
tokens_desc=Tokens que gerou que podem ser usadas para aceder as APIs do Gogs.
access_token_tips=O token de acesso pessoal pode ser usado tanto como nome do utilizador ou senha de acesso. É recomendado usar o "x-access-token" como o nome do utilizador e o token de acesso pessoal como a senha para aplicações Git.
new_token_desc=Cada token vai ter acesso completo à sua conta.
token_name=Nome do Token
generate_token=Gerar Token
@@ -374,6 +381,7 @@ delete_token=Eliminar
access_token_deletion=Exclusão de Token de acesso pessoal
access_token_deletion_desc=Ao excluir este token de acesso pessoal serão removidos todos os acessos da aplicação. Deseja continuar?
delete_token_success=O Token de acesso pessoal foi removido com sucesso! Não se esqueça de atualizar as suas aplicações também.
token_name_exists=Já existe um símbolo com o mesmo nome.
orgs.none=Não é membro de nenhuma organização.
orgs.leave_title=Sair da Organização
@@ -395,7 +403,9 @@ owner=Proprietário
repo_name=Nome do Repositório
repo_name_helper=Um Bom nome de repositório e pequeno, memorável e único.
visibility=Visibilidade
unlisted=Não listado
visiblity_helper=Este repositório é <span class="ui red text">Privado</span>
unlisted_helper=Este repositório <span class="ui red text">não está listado</span>
visiblity_helper_forced=Administrador do site forçou todos os novos repositórios para<span class="ui red text">Privado</span>
visiblity_fork_helper=(Alterar desse valor irá afetar todos os forks)
clone_helper=Precisa de ajuda com o clone? Visite a <a target="_blank" href="%s">Ajuda</a>!
@@ -425,8 +435,7 @@ repo_description_helper=Descrição do repositório. Máximo de 512 caracteres.
repo_description_length=Caracteres disponíveis
form.reach_limit_of_creation=O criador chegou ao limite de criação de %d repositórios.
form.name_reserved=O nome do repositório '%s' é reservado.
form.name_pattern_not_allowed=Não é permitido utilizar o padrão '%s' para nome de repositório.
form.name_not_allowed=Não é permitido utilizar o padrão '%s' para o nome do repositório.
need_auth=Autorização necessária
migrate_type=Tipo de migração
@@ -437,6 +446,7 @@ migrate.clone_address_desc=Isto pode ser um URL de HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=Você também pode migrar um repositório pelo caminho do servidor local.
migrate.permission_denied=Não está autorizado a importar repositórios locais.
migrate.invalid_local_path=Caminho local inválido, o caminho não existe ou não é um directório.
migrate.clone_address_resolved_to_blocked_local_address=Clonar endereço resolvido para um endereço de rede local implicitamente bloqueado.
migrate.failed=Migração falhada: %v
mirror_from=mirror de
@@ -484,6 +494,8 @@ branches.stale_branches=Ramificações Obsoletas
branches.all=Todas as Ramificações
branches.updated_by=Atualizado %[1]s por %[2]s
branches.change_default_branch=Mudar Ramificação Predefinida
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Novo Ficheiro
editor.upload_file=Enviar ficheiro
@@ -785,8 +797,10 @@ settings.collaborator_deletion_desc=Este utilizador perderá acesso ao repositó
settings.remove_collaborator_success=Colaborador foi removido.
settings.search_user_placeholder=Procurar utilizador...
settings.org_not_allowed_to_be_collaborator=A organização não tem permissão para ser adicionada como colaboradora.
settings.add_webhook=Adicionar Webhook
settings.hooks_desc=Webhooks são muito parecidos com triggers básicos de eventos HTTP POST. Sempre que algo ocorre no Gogs, vamos lidar com a notificação para o host de destino especificado. Saiba mais no nosso <a target="_blank" href="%s"> Guia de Webhooks</a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Escolha um tipo...
settings.add_webhook=Adicionar Webhook
settings.webhook_deletion=Apagar um Webhook
settings.webhook_deletion_desc=Apagar este Webhook vai remover sua informação e todo o histórico de entrega. Deseja continuar?
settings.webhook_deletion_success=Webhook foi apagado com sucesso!
@@ -800,6 +814,8 @@ settings.webhook.response=Resposta
settings.webhook.headers=Cabeçalho
settings.webhook.payload=Payload
settings.webhook.body=Corpo
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=Hooks do Git são disponibilizados pelo próprio Git, pode editar ficheiros de Hooks suportados na lista abaixo para aplicar operações personalizadas.
settings.githook_edit_desc=Se o hook estiver inativo, o conteúdo de exemplo será apresentado. Deixar o conteúdo em branco irá desativar este hook.
settings.githook_name=Nome do Hook
@@ -926,9 +942,8 @@ team_name_helper=Utilizara este nome para mencionar esta equipa em conversas.
team_desc_helper=Do que se trata essa equipa?
team_permission_desc=Que nível de permissão esta equipa deve ter?
form.name_reserved=O nome de organização '%s' está reservado.
form.name_pattern_not_allowed=Não é permitido utilizar o padrão '%s' para o nome de organização.
form.team_name_reserved=O nome nome de equipa '%s' está reservado.
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=Configurações
settings.options=Opções
@@ -1000,12 +1015,19 @@ first_page=Primeiro
last_page=Último
total=Total: %d
dashboard.build_info=Informações da compilação
dashboard.app_ver=Versão da Aplicação
dashboard.git_version=Versão do Git
dashboard.go_version=Versão do Go
dashboard.build_time=Tempo de compilação
dashboard.build_commit=Submissão da compilação
dashboard.statistic=Estatísticas
dashboard.operations=Operações
dashboard.system_status=Monitorização de estado do sistema
dashboard.statistic_info=A base de dados do Gogs contém <b>%d</b> utilizadores, <b>%d</b> organizações, <b>%d</b> chaves públicas, <b>%d</b> repositórios, <b>%d</b> observadores, <b>%d</b> estrelas, <b>%d</b> ações, <b>%d</b> acessos, <b>%d</b> questões, <b>%d</b> comentários, <b>%d</b> contas sociais, <b>%d</b> seguidores, <b>%d</b> mirrors, <b>%d</b> versões, <b>%d</b> origens de login, <b>%d</b> Hooks da Web, <b>%d</b> milestones, <b>%d</b> labels, <b>%d</b> tarefas hook, <b>%d</b> equipas, <b>%d</b> tarefas de atualização, <b>%d</b> anexos.
dashboard.operation_name=Nome de operação
dashboard.operation_switch=Mudar
dashboard.select_operation_to_run=Seleccione a operação para executar
dashboard.operation_run=Executar
dashboard.clean_unbind_oauth=Limpar OAuthes desvinculados
dashboard.clean_unbind_oauth_success=Todos OAuthes desvinculados foram excluídos com sucesso.
@@ -1151,120 +1173,186 @@ auths.delete_auth_desc=Esta autenticação esta prestes a ser excluída, deseja
auths.still_in_used=Esta autenticação ainda é utilizada por alguns utilizadores. Por favor remova ou converta esses utilizadores para outro tipo de login primeiro.
auths.deletion_success=Autenticação foi excluída com sucesso!
auths.login_source_exist=A fonte de login '%s" já existe.
auths.github_api_endpoint=Endpoint da API
config.not_set=(não definido)
config.server_config=Configuração do Servidor
config.app_name=Nome da Aplicação
config.app_ver=Versão da Aplicação
config.app_url=URL da Aplicação
config.domain=Domínio
config.offline_mode=Modo Offline
config.disable_router_log=Desativar o Log do Router
config.brand_name=Nome da marca
config.run_user=Utilizador de execução
config.run_mode=Mode de execução
config.git_version=Versão Git
config.static_file_root_path=Caminho Root Estático
config.log_file_root_path=Caminho Raiz para Ficheiro Log
config.reverse_auth_user=Utilizador de Autenticação Inversa
config.server.external_url=URL externo
config.server.domain=Domínio
config.server.protocol=Protocolo
config.server.http_addr=Endereço HTTP
config.server.http_port=Porta HTTP
config.server.cert_file=Ficheiro de certificado criptográfico
config.server.key_file=Ficheiro da chave criptográfica privada
config.server.tls_min_version=Versão mínima TLS
config.server.unix_socket_permission=Permissão de soquete Unix
config.server.local_root_url=URL raíz local
config.server.offline_mode=Modo offline
config.server.disable_router_log=Desativar o log do Router
config.server.enable_gzip=Activar Gzip
config.server.app_data_path=Caminho de dados da aplicação
config.server.load_assets_from_disk=Carregar activos do disco
config.server.landing_url=URL de Destino
config.ssh_config=Configuração SSH
config.ssh_enabled=Ativado
config.ssh_start_builtin_server=Iniciar Servidor Embutido
config.ssh_domain=Domínio
config.ssh_port=Porta
config.ssh_listen_port=Porta
config.ssh_root_path=Caminho para raiz
config.ssh_rewrite_authorized_keys_at_start=Reescrever authorized_keys no inicio
config.ssh_key_test_path=Caminho da Chave de Teste
config.ssh_keygen_path=Caminho do Keygen ('ssh-keygen')
config.ssh_minimum_key_size_check=Verificar Tamanho Mínimo da Chave
config.ssh_minimum_key_sizes=Tamanho minimo de chave
config.ssh.enabled=Activado
config.ssh.domain=Domínio exposto
config.ssh.port=Porta exposta
config.ssh.root_path=Caminho para a raíz
config.ssh.keygen_path=Localização do gerador de chaves criptográficas
config.ssh.key_test_path=Localização do teste das chaves criptográficas
config.ssh.minimum_key_size_check=Verificação de tamanho mínimo da chave
config.ssh.minimum_key_sizes=Tamanhos mínimos de chaves
config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
config.ssh.start_builtin_server=Iniciar servidor embutido
config.ssh.listen_host=Servidor
config.ssh.listen_port=Porta do servidor
config.ssh.server_ciphers=Cifras do servidor
config.ssh.server_macs=MACs do servidor
config.ssh.server_algorithms=Algoritmos do servidor
config.repo_config=Configuração de repositório
config.repo_root_path=Caminho Raiz do Repositório
config.script_type=Tipo de Script
config.repo_force_private=Forçar Privado
config.max_creation_limit=Limite Maximo de Criação
config.preferred_licenses=Licensas preferenciais
config.disable_http_git=Desativar HTTP Git
config.enable_local_path_migration=Permitir a Migração de Caminho Local
config.commits_fetch_concurrency=Concorrência de Commits Fetch
config.http_config=Configuração HTTP
config.http_access_control_allow_origin=Controle de Acesso Allow Origin
config.repo.root_path=Localização base
config.repo.script_type=Tipo de script
config.repo.ansi_chatset=ANSI charset
config.repo.force_private=Forçar privado
config.repo.max_creation_limit=Limite máximo de criação
config.repo.preferred_licenses=Licenças preferidas
config.repo.disable_http_git=Desativar Git HTTP
config.repo.enable_local_path_migration=Ativar a migração de caminho local
config.repo.enable_raw_file_render_mode=Ativar o modo de renderização do ficheiro bruto
config.repo.commits_fetch_concurrency=Commits fetch concurrency
config.repo.editor.line_wrap_extensions=Extensões de quebra automática de linha do editor
config.repo.editor.previewable_file_modes=Editor previewable file modes
config.repo.upload.enabled=Envio ativado
config.repo.upload.temp_path=Caminho temporário para envios
config.repo.upload.allowed_types=Tipos de envios permitidos
config.repo.upload.file_max_size=Tamanho limite de ficheiros enviados
config.repo.upload.max_files=Quantidade limite de ficheiros enviados
config.db_config=Configuração da base de dados
config.db_type=Tipo
config.db_host=Anfitrião
config.db_name=Nome
config.db_user=Utilizador
config.db_ssl_mode=Modo SSL
config.db_ssl_mode_helper=(apenas para "postgres")
config.db_path=Caminho
config.db_path_helper=(para "sqlite3" e "tidb")
config.db.type=Tipo
config.db.host=Anfitrião
config.db.name=Nome
config.db.schema=Esquema
config.db.schema_helper=(apenas para "postgres")
config.db.user=Utilizador
config.db.ssl_mode=Modo SSL
config.db.ssl_mode_helper=(apenas para "postgres")
config.db.path=Caminho
config.db.path_helper=(apenas para "sqlite3")
config.db.max_open_conns=Máximo de conexões abertas
config.db.max_idle_conns=Máximo de conexões ociosas
config.service_config=Configuração do Servidor
config.register_email_confirm=Requer confirmação por email
config.disable_register=Desactivar registo
config.show_registration_button=Mostrar botão de registo
config.require_sign_in_view=Requerer Entrar Para Visualizar
config.mail_notify=Notificação de e-mail
config.disable_key_size_check=Desativar Verificação de Tamanho Mínimo da Chave
config.enable_captcha=Activar o Captcha
config.active_code_lives=Code Lives Ativos
config.reset_password_code_lives=Redefinir Senha de Code Lives
config.security_config=Configuração da segurança
config.security.login_remember_days=Dias lembrados de login
config.security.cookie_remember_name=Lembrar do cookie
config.security.cookie_username=Cookie do nome do utilizador
config.security.cookie_secure=Ativar cookie seguro
config.security.reverse_proxy_auth_user=Cabeçalho de autenticação de proxy reverso
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=Configuração de WebHook
config.queue_length=Tamanho da Fila
config.deliver_timeout=Tempo Limite de Entrega
config.skip_tls_verify=Pular Verificação de TLS
config.email_config=Configuração de E-mail
config.email.enabled=Ativado
config.email.subject_prefix=Prefixo do assunto
config.email.host=Anfitrião
config.email.from=De
config.email.user=Utilizador
config.email.disable_helo=Desativar HELO
config.email.helo_hostname=Nome de anfitrião HELO
config.email.skip_verify=Skip certificate verify
config.email.use_certificate=Usar certificado personalizado
config.email.cert_file=Ficheiro de certificado criptográfico
config.email.key_file=Ficheiro da chave criptográfica
config.email.use_plain_text=Usar texto simples
config.email.add_plain_text_alt=Adicionar alternativa de texto simples
config.email.send_test_mail=Enviar e-mail de teste
config.email.test_mail_failed=Falhou o envio do e-mail de teste para '%s': %v
config.email.test_mail_sent=O e-mail de teste foi enviado para '%s'.
config.mailer_config=Configuração de E-mail
config.mailer_enabled=Ativado
config.mailer_disable_helo=Desativar HELO
config.mailer_subject_prefix=Prefixo de assunto
config.mailer_host=Anfitrião
config.mailer_user=Utilizador
config.send_test_mail=Enviar email de teste
config.test_mail_failed=Falhou o envio do email de teste para '%s': %v
config.test_mail_sent=O email de teste foi enviado para '%s'.
config.auth_config=Configuração da autenticação
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=Exigir confirmação por e-mail
config.auth.require_sign_in_view=Exigir login para ver
config.auth.disable_registration=Desativar registo
config.auth.enable_registration_captcha=Ativar captcha para registar
config.auth.enable_reverse_proxy_authentication=Ativar autenticação do proxy reverso
config.auth.enable_reverse_proxy_auto_registration=Ativar o registo automático do proxy reverso
config.auth.reverse_proxy_authentication_header=Cabeçalho de autenticação de proxy reverso
config.oauth_config=Configuração OAuth
config.oauth_enabled=Ativado
config.cache_config=Configuração de cache
config.cache_adapter=Adaptador de cache
config.cache_interval=Último de cache
config.cache_conn=Conexão de cache
config.user_config=Configuração do utilizador
config.user.enable_email_notify=Ativar a notificação por e-mail
config.session_config=Configuração de sessão
config.session_provider=Provedor de sessão
config.provider_config=Provedor Config
config.cookie_name=Nome do cookie
config.enable_set_cookie=Ativar Set Cookie
config.gc_interval_time=Tempo de Intervalo do GC
config.session_life_time=Duração de sessão
config.https_only=Apenas HTTPS
config.cookie_life_time=Tempo de Vida do Cookie
config.session.provider=Provedor
config.session.provider_config=Configuração do provedor
config.session.cookie_name=Cookie
config.session.https_only=Somente 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=Configuração de cache
config.cache.adapter=Adaptador
config.cache.interval=Intervalo de GC
config.cache.host=Anfitrião
config.http_config=Configuração HTTP
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Configuração de anexos
config.attachment.enabled=Ativado
config.attachment.path=Caminho
config.attachment.allowed_types=Tipos permitidos
config.attachment.max_size=Limite de tamanho
config.attachment.max_files=Limite de ficheiros
config.release_config=Release configuration
config.release.attachment.enabled=Attachment enabled
config.release.attachment.allowed_types=Attachment allowed types
config.release.attachment.max_size=Tamanho máximo dos anexos
config.release.attachment.max_files=Attachment files limit
config.picture_config=Configuração de imagem
config.picture_service=Serviço de imagem
config.disable_gravatar=Desativar Gravatar
config.enable_federated_avatar=Ativar 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 predefinido
config.webhook_config=Configuração de WebHook
config.webhook.types=Tipos
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Configuração Git
config.git_disable_diff_highlight=Desativar Realce de Sintaxe no diff
config.git_max_diff_lines=Numero Máximo de Linhas no diff (para um único ficheiro)
config.git_max_diff_line_characters=Numero Máximo de Caracteres no diff (para uma única linha)
config.git_max_diff_files=Numero Máximo de Ficheiros no diff (a serem mostrados)
config.git_gc_args=Argumentos GC
config.git_migrate_timeout=Tempo de migrção
config.git_mirror_timeout=Tempo Limite para Atualização de Mirror
config.git_clone_timeout=Tempo Limite para Operação de Clone
config.git_pull_timeout=Tempo Limite para Operação de Pull
config.git_gc_timeout=Tempo Limite para Execução do 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=Configuração de Log
config.log_file_root_path=Caminho Raiz para Ficheiro Log
config.log_mode=Modo
config.log_options=Opções
@@ -1336,6 +1424,7 @@ months=há %d meses %s
years=há %d anos %s
raw_seconds=segundos
raw_minutes=minutos
raw_hours=hours
[dropzone]
default_message=Coloque os ficheiros aqui ou clique em enviar.

1434
conf/locale/locale_ro-RO.ini Normal file

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).
db_title=Настройки базы данных
db_type=Тип базы данных
host=Хост
user=Пользователь
password=Пароль
db_name=Имя базы данных
db_schema=Схема
db_helper=Для MySQL используйте тип таблиц InnoDB с кодировкой utf8_general_ci.
ssl_mode=Режим SSL
path=Путь
@@ -66,15 +70,15 @@ err_empty_admin_password=Пароль администратора не може
general_title=Общие параметры Gogs
app_name=Имя приложения
app_name_helper=Укажите здесь название вашей потрясающей организации!
repo_path=Путь корня репозитория
repo_path=Основной путь репозитория
repo_path_helper=Все сетевые репозитории Git будут сохранены в этой директории.
run_user=Пользователь
run_user_helper=У пользователя должен быть доступ к пути к корню репозитория и к запуску Gogs.
domain=Домен
domain_helper=Влияет на URL-адреса для клонирования по SSH.
ssh_port=SSH порт
ssh_port_helper=Номер порта, который использует SSH сервер. Оставьте пустым, чтобы отключить SSH.
use_builtin_ssh_server=Использовать встроенный SSH сервер
ssh_port_helper=Номер порта, который использует сервер SSH. Оставьте пустым, чтобы отключить SSH.
use_builtin_ssh_server=Использовать встроенный сервер SSH
use_builtin_ssh_server_popup=Запустить встроенный SSH сервер для различения операций Git и системного демона SSH.
http_port=Порт HTTP
http_port_helper=Номер порта, который приложение будет слушать.
@@ -84,10 +88,11 @@ log_root_path=Путь к журналу
log_root_path_helper=Каталог для записи файлов журнала.
enable_console_mode=Включите режим консоли
enable_console_mode_popup=В дополнение к файловому режиму, выводить лог в консоль.
default_branch=Ветка по умолчанию
optional_title=Расширенные настройки
email_title=Настройки службы электронной почты
smtp_host=Узел SMTP
smtp_host=Хост SMTP
smtp_from=Из
smtp_from_helper=Почта от адреса, RFC 5322. Это может быть email адрес или формат "Имя" <email@example.com>.
mailer_user=Электронная почта отправителя
@@ -107,7 +112,7 @@ enable_captcha=Включить капчу
enable_captcha_popup=Запрашивать капчу при регистрации пользователя.
require_sign_in_view=Разрешить требовать авторизацию для просмотра страниц
require_sign_in_view_popup=Только авторизированные пользователи могут просматривать страницы, посетители смогут увидеть только ссылку на авторизацию вверху страницы.
admin_setting_desc=Вы не должны создать учетную запись администратора прямо сейчас, пользователь с ID = 1 получит доступ с правами администратора автоматически.
admin_setting_desc=Вам не обязательно создавать учетную запись администратора прямо сейчас, пользователь с ID = 1 получит доступ с правами администратора автоматически.
admin_title=Настройки учётной записи администратора
admin_name=Имя пользователя
admin_password=Пароль
@@ -122,6 +127,7 @@ run_user_not_match=Текущий пользователь не является
smtp_host_missing_port=Не указан порт в адресе хоста SMTP.
invalid_smtp_from=Поле SMTP From неправильное: %v
save_config_failed=Не удалось сохранить конфигурацию: %v
init_failed=Не удалось инициализировать приложение: %v
invalid_admin_setting=Указан недопустимый параметр учетной записи администратора: %v
install_success=Добро пожаловать! Мы рады, что вы выбрали Gogs. Веселитесь и берегите себя.
invalid_log_root_path=Недопустимый путь для логов: %v
@@ -162,13 +168,13 @@ active_your_account=Активируйте свой аккаунт
prohibit_login=Вход запрещен
prohibit_login_desc=Вход для вашей учетной записи был запрещен, пожалуйста, свяжитесь с администратором сайта.
resent_limit_prompt=Вы уже запрашивали активацию по электронной почте. Пожалуйста, подождите 3 минуты, а затем повторите попытку.
has_unconfirmed_mail=Здравствуйте, %s! У вас есть неподтвержденный адрес электронной почты (<b>%s</b>). Если вам не приходило письмо с подтверждением или нужно выслать новое письмо, нажмите на кнопку ниже.
has_unconfirmed_mail=Здравствуйте, %s! У вас есть неподтвержденный адрес электронной почты (<b>%s</b>). Если вы не получили письмо с подтверждением или нужно выслать новое письмо, нажмите на кнопку ниже.
resend_mail=Нажмите здесь, чтобы переотправить активационное письмо
send_reset_mail=Нажмите сюда, чтобы отправить письмо для сброса пароля
reset_password=Сброс пароля
invalid_code=Извините, ваш код подтверждения истек или не является допустимым.
reset_password_helper=Нажмите здесь, чтобы сбросить свой пароль
password_too_short=Длина пароля не менее 6 символов.
password_too_short=Длина пароля не может быть менее 6 символов.
non_local_account=Нелокальные аккаунты не могут изменить пароль через Gogs.
login_two_factor=Двухфакторная аутентификация
@@ -183,7 +189,7 @@ login_two_factor_invalid_recovery_code=Код восстановления бы
activate_account=Пожалуйста активируйте свой аккаунт
activate_email=Подтвердите адрес своей электронной почты
reset_password=Восстановите ваш пароль
register_success=Регистрация окончена. Добро пожаловать!
register_success=Регистрация завершена. Добро пожаловать
register_notify=Добро пожаловать на борт
[modal]
@@ -212,8 +218,8 @@ TreeName=Путь к файлу
Content=Содержимое
require_error=` не может быть пустым.`
alpha_dash_error=«должен быть допустимым символьным, числовым или dash(-_) значением.»
alpha_dash_dot_error=«должен быть допустимым символьным, числовым или dash(-_) символами, включая точку.»
alpha_dash_error=` должен быть допустимым символьным, числовым или dash(-_) значением.`
alpha_dash_dot_error=` должен быть допустимым символьным, числовым или dash(-_) символами, включая точку.`
alpha_dash_dot_slash_error=«должен быть допустимым символьным, числовым или dash(-_) символами, включая точку или слэш.»
size_error=` должен быть размер %s.`
min_size_error=«должен содержать по крайней мере %s символов.»
@@ -244,9 +250,9 @@ auth_failed=Ошибка аутентификации: %v
still_own_repo=На вашем аккаунте все еще остается как минимум один репозиторий, сначала вам нужно удалить или передать его.
still_has_org=Вы находитесь в организации, сперва Вам необходимо покинуть ее или удалить.
org_still_own_repo=Данная организация все еще является владельцем репозиториев, необходимо удалить или переместить их в начале.
org_still_own_repo=Данная организация все еще является владельцем репозиториев, сначала нужно удалить или переместить их.
target_branch_not_exist=Целевая ветка не существует
target_branch_not_exist=Целевая ветка не существует.
[user]
change_avatar=Изменить аватар
@@ -259,8 +265,7 @@ following=Подписан
follow=Подписаться
unfollow=Отписаться
form.name_reserved=Имя пользователя '%s' зарезервировано.
form.name_pattern_not_allowed=Имя пользователя «%s» не допускается.
form.name_not_allowed=Имя пользователя «%s» не допускается.
[settings]
profile=Профиль
@@ -299,7 +304,7 @@ change_password=Сменить пароль
old_password=Текущий пароль
new_password=Новый пароль
retype_new_password=Подтверждение нового пароля
password_incorrect=Текущий пароль не правильный.
password_incorrect=Текущий пароль неправильный.
change_password_success=Пароль сменен успешно. Теперь вы можете войти с новым паролем.
password_change_disabled=Нелокальные пользователи не могут изменить свой пароль.
@@ -307,17 +312,18 @@ emails=Адреса электронной почты
manage_emails=Управление адресами электронной почты
email_desc=Ваш основной адрес электронной почты будет использован для уведомлений и других операций.
primary=Основной
primary_email=Установить как основной
primary_email=Сделать основным
delete_email=Удалить
email_deletion=Удаление адреса электронной почты
email_deletion_desc=Удаление этого адреса электронной почты, приведет к удалению связанной с вашим аккаунтом, информации. Вы точно хотите продолжить?
email_deletion_success=Адрес электронной почты успешно удален.
email_deletion_primary=Невозможно удалить основной адрес эл. почты.
add_new_email=Добавить новый адрес электронной почты
add_email=Добавить электронную почту
add_email_confirmation_sent=Новое подтверждение по электронной почте было отправлено '%s', пожалуйста, проверьте свой почтовый ящик в течение следующих %d часов, чтобы завершить процесс подтверждения.
add_email_success=Новый адрес электронной почты успешно добавлен.
manage_ssh_keys=Управление SSH ключами
manage_ssh_keys=Управление ключами SSH
add_key=Добавить ключ
ssh_desc=Это список ключей SSH связанных с вашей учетной записью. Удаляйте любые неизвестные вам ключи.
ssh_helper=<strong>Нужна помощь?</strong> Ознакомьтесь с нашим путеводителем по <a href="%s">созданию SSH-ключей</a> или посмотрите решения <a href="%s">частых проблем, связанных с SSH</a>.
@@ -366,6 +372,7 @@ two_factor_disable_success=Двухфакторная аутентификаци
manage_access_token=Управление Токенами Персонального Доступа
generate_new_token=Создать новый token
tokens_desc=Созданные вами токены могут использоваться для доступа к 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=Пока что каждый токен будет иметь полный доступ к вашей учетной записи.
token_name=Имя маркера
generate_token=Генерировать маркер
@@ -374,6 +381,7 @@ delete_token=Удалить
access_token_deletion=Удаление личного токена доступа
access_token_deletion_desc=Удаление этого персонального токена доступа приведет к удалению всех связанных прав доступа к приложению. Вы хотите продолжить?
delete_token_success=Персональный токен доступа успешно удален! Не забудьте изменить настройки вашего приложения.
token_name_exists=Токен с таким именем уже существует.
orgs.none=Вы не состоите ни в одной организации.
orgs.leave_title=Покинуть организацию
@@ -395,8 +403,10 @@ owner=Владелец
repo_name=Имя репозитория
repo_name_helper=Лучшие названия репозиториев коротки, запоминаемы и <strong>уникальны</strong>.
visibility=Видимость
visiblity_helper=<span class="ui red text">Личный</span> репозиторий
visiblity_helper_forced=Все новые репозитории являются <span class="ui red text">Личными</span> по желанию администратора сайта
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">помощи</a>!
fork_repo=Ответвить репозиторий
@@ -425,8 +435,7 @@ repo_description_helper=Описание репозитория. Максима
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=Тип миграции
@@ -437,6 +446,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=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Миграция не удалась: %v
mirror_from=зеркало из
@@ -484,6 +494,8 @@ branches.stale_branches=Устаревшие ветки
branches.all=Все ветки
branches.updated_by=Обновлено %[1]s пользователем %[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=Новый файл
editor.upload_file=Загрузить файл
@@ -785,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=Добавить Webhook
settings.hooks_desc=Webhooks позволяют внешним службам получать уведомления при возникновении определенных событий на Gogs. При возникновении указанных событий мы отправим запрос POST на каждый заданный вами URL. Узнать больше можно в нашем <a target="_blank" href="%s">Руководстве по Webhooks</a>.
settings.webhooks.add_new=Добавьте новый веб-перехватчик:
settings.webhooks.choose_a_type=Выберите тип...
settings.add_webhook=Добавить Webhook
settings.webhook_deletion=Удалить веб-хук
settings.webhook_deletion_desc=Удаление этого веб-хука приведет к удалению всей, связанной с ним, информации, включая историю. Хотите продолжить?
settings.webhook_deletion_success=Веб-хук успешно удален!
@@ -800,6 +814,8 @@ 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=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git-хуки предоставляются Git самим по себе, вы можете изменять файлы поддерживаемых хуков из списка ниже чтобы выполнять внешние операции.
settings.githook_edit_desc=Если хук не активен, будет подставлен пример содержимого. Пустое значение в этом поле приведет к отключению хука.
settings.githook_name=Название Hook'a
@@ -926,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=Имя команды '%s' зарезервировано.
form.name_not_allowed=Имя или шаблон организации% q недопустимы.
form.team_name_not_allowed=Имя команды или шаблон% q недопустимы.
settings=Настройки
settings.options=Опции
@@ -949,9 +964,9 @@ settings.hooks_desc=Добавьте автоматическое обновле
members.membership_visibility=Видимость участника команды:
members.public=Публичный
members.public_helper=Сделать Приватным
members.public_helper=Сделать приватным
members.private=Приватный
members.private_helper=Сделать Публичным
members.private_helper=Сделать публичным
members.member_role=Роль участника:
members.owner=Владелец
members.member=Участник
@@ -1000,12 +1015,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=Пожалуйста, выберите операцию для запуска
dashboard.operation_run=Запуск
dashboard.clean_unbind_oauth=Удалить не привязанные OAUth
dashboard.clean_unbind_oauth_success=Не привязанные OAuth аккаунты успешно удалены.
@@ -1131,7 +1153,7 @@ auths.filter=Фильтр пользователя
auths.admin_filter=Фильтр администратора
auths.ms_ad_sa=Ms Ad SA
auths.smtp_auth=Тип аутентификации SMTP
auths.smtphost=Узел SMTP
auths.smtphost=Хост SMTP
auths.smtpport=SMTP-порт
auths.allowed_domains=Разрешенные домены
auths.allowed_domains_helper=Оставьте пустым чтобы не ограничивать домены. Несколько доменов должны быть разделены запятыми ','.
@@ -1151,120 +1173,186 @@ 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=Заголовок с именем пользователя для авторизации на reverse proxy
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=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_rewrite_authorized_keys_at_start=Перезаписать authorized_keys при запуске
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=Перезаписать "authorized_keys" при запуске
config.ssh.start_builtin_server=Запустить встроенный сервер
config.ssh.listen_host=Прослушиваемый хост
config.ssh.listen_port=Прослушиваемый порт
config.ssh.server_ciphers=Серверные шифры
config.ssh.server_macs=MAC-серверы
config.ssh.server_algorithms=Серверные алгоритмы
config.repo_config=Настройка репозитория
config.repo_root_path=Путь до корня репозитория
config.script_type=Тип сценария
config.repo_force_private=Сделать личным принудительно
config.max_creation_limit=Лимит созданий
config.preferred_licenses=Предпочитаемые лицензии
config.disable_http_git=Выключить HTTP Git
config.enable_local_path_migration=Включить миграцию с локального пути
config.commits_fetch_concurrency=Параллельность получения коммитов
config.http_config=Конфигурация HTTP
config.http_access_control_allow_origin=Содержимое заголовка Access Control Allow Origin
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=Включить режим рендеринга необработанных файлов
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=Максимальное количество открытых соединений
config.db.max_idle_conns=Максимальное количество свободных соединений
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=Включить капчу
config.active_code_lives=Время жизни кода для активации
config.reset_password_code_lives=Время жизни кода сброса пароля
config.security_config=Конфигурация безопасности
config.security.login_remember_days=Запоминать дни входа
config.security.cookie_remember_name=Запоминать cookie
config.security.cookie_username=Cookie юзернейма
config.security.cookie_secure=Включить безопасные cookie
config.security.reverse_proxy_auth_user=Reverse proxy authentication header
config.security.enable_login_status_cookie=Включить файл cookie состояния входа
config.security.login_status_cookie_name=Файл cookie состояния входа
config.security.local_network_allowlist=Список разрешенных локальных сетей
config.webhook_config=Конфигурация Webhook
config.queue_length=Длина очереди
config.deliver_timeout=Задержка доставки
config.skip_tls_verify=Пропустить проверку TLS
config.email_config=E-mail настройки
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=Не удалось отправить тестовое письмо на %s: %v
config.email.test_mail_sent=Тестовое письмо было отправлено на %s
config.mailer_config=Настройки почты
config.mailer_enabled=Включено
config.mailer_disable_helo=Отключить HELO
config.mailer_subject_prefix=Префикс темы письма
config.mailer_host=Сервер
config.mailer_user=Пользователь
config.send_test_mail=Отправить тестовое письмо
config.test_mail_failed=Не удалось отправить тестовое письмо «%s»: %v
config.test_mail_sent=Тестовое письмо было отправлено «%s».
config.auth_config=Конфигурация аутентификации
config.auth_custom_logout_url=Custom logout URL
config.auth.activate_code_lives=Activate code lives
config.auth.reset_password_code_lives=Срок действия кода сброса пароля
config.auth.require_email_confirm=Требовать подтверждение по электронной почте
config.auth.require_sign_in_view=Для просмотра требуется войти
config.auth.disable_registration=Отключить регистрацию
config.auth.enable_registration_captcha=Включить CAPTCHA при регистрации
config.auth.enable_reverse_proxy_authentication=Включить аутентификацию обратного прокси
config.auth.enable_reverse_proxy_auto_registration=Включить авторегистрацию обратного прокси
config.auth.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=Конфигурация пользователя
config.user.enable_email_notify=Включить почтовые уведомления
config.session_config=Конфигурация сессии
config.session_provider=Провайдер сессии
config.provider_config=Конфигурация провайдера
config.cookie_name=Имя файла cookie
config.enable_set_cookie=Включить установку cookies
config.gc_interval_time=Интервал работы сборщика мусора
config.session_life_time=Время жизни сессии
config.https_only=Только HTTPS
config.cookie_life_time=Время жизни файла cookie
config.session.provider=Провайдер
config.session.provider_config=Конфигурация провайдера
config.session.cookie_name=Файл cookie
config.session.https_only=Только HTTPS
config.session.gc_interval=GC interval
config.session.max_life_time=Максимальный срок действия
config.session.csrf_cookie_name=CSRF-куки
config.cache_config=Настройки кеша
config.cache.adapter=Адаптер
config.cache.interval=GC interval
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=Путь загрузки аватара в репозитории
config.picture.gravatar_source=Источник Gravatar
config.picture.disable_gravatar=Отключить Gravatar
config.picture.enable_federated_avatar=Включить федеративные аватары
config.mirror_config=Конфигурация зеркала
config.mirror.default_interval=Интервал по умолчанию
config.webhook_config=Конфигурация Webhook
config.webhook.types=Типы
config.webhook.deliver_timeout=Таймаут доставки
config.webhook.skip_tls_verify=Пропустить проверку TLS
config.git_config=Конфигурация GIT
config.git_disable_diff_highlight=Отключить подсветку синтаксиса Diff
config.git_max_diff_lines=Максимальное количество строк Diff (на файл)
config.git_max_diff_line_characters=Максимальное количество символов Diff (в строке)
config.git_max_diff_files=Максимальное количество 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=Время Ожидания Операции Сборки Мусора
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=Mirror fetch timeout
config.git.clone_timeout=Таймаут клонирования
config.git.pull_timeout=Pull timeout
config.git.gc_timeout=GC timeout
config.lfs_config=Конфигурация LFS
config.lfs.storage=Хранилище
config.lfs.objects_path=Путь к объектам
config.log_config=Конфигурация журнала
config.log_file_root_path=Путь до папки с логами
config.log_mode=Режим
config.log_options=Опции
@@ -1336,6 +1424,7 @@ months=%d месяцев %s
years=%d лет %s
raw_seconds=секунд
raw_minutes=минут
raw_hours=ч.
[dropzone]
default_message=Перетащите файл сюда, или кликните для загрузки.

View File

@@ -9,7 +9,6 @@ sign_out=Odhlásiť sa
sign_up=Zaregistrovať sa
register=Registrovať
website=Web stránka
version=Verzia
page=Stránka
template=Šablóna
language=Jazyk
@@ -44,17 +43,22 @@ issues=Issues
cancel=Zrušiť
[status]
page_not_found=Page Not Found
internal_server_error=Internal Server Error
[install]
install=Inštalácia
title=Postup prvotnej inštalácie
docker_helper=Ak spúšťate Gogs pod Docker platformou, prečítajte si prosím pozorne <a target="_blank" href="%s">Pokyny</a> skôr, ako zmeníte niečo na tejto stránke!
requite_db_desc=Gogs vyžaduje MySQL, PostgreSQL, SQLite3, MSSQL alebo TiDB.
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Nastavenie databázy
db_type=Typ databázy
host=Host
user=Používateľ
password=Heslo
db_name=Názov databázy
db_schema=Schema
db_helper=Pre MySQL prosím použite INNODB engine so znakovou sadou utf8_general_ci.
ssl_mode=SSL režim
path=Cesta
@@ -84,6 +88,7 @@ log_root_path=Cesta k log súborom
log_root_path_helper=Adresár pre zápis log súborov.
enable_console_mode=Zapnúť režim konzoly
enable_console_mode_popup=Okrem zápisu do súboru, vytlačiť systémové záznamy aj do konzoly.
default_branch=Default Branch
optional_title=Nepovinné nastavenia
email_title=Nastavenie e-mailovej služby
@@ -122,6 +127,7 @@ run_user_not_match=Používateľ pre spustenie sa nezhoduje s aktuálnym použí
smtp_host_missing_port=V adrese SMTP servera chýba číslo portu.
invalid_smtp_from=Hodnota položky SMTP Od: je nesprávne zadaná: %v
save_config_failed=Chyba pri uložení konfigurácie: %v
init_failed=Nepodarilo sa inicializovať aplikáciu: %v
invalid_admin_setting=Nastavenie administrátorského účtu je neplatné: %v
install_success=Vitajte! Sme radi, že ste si vybrali Gogs, bavte sa a dávajte si pozor.
invalid_log_root_path=Koreňový adresár pre log súbory je neplatný: %v
@@ -259,8 +265,7 @@ following=Sledovaní
follow=Sledovať
unfollow=Prestať sledovať
form.name_reserved=Používateľské meno '%s' je vyhradené.
form.name_pattern_not_allowed=Vzor používateľského mena '%s' nieje povolený.
form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Profil
@@ -312,6 +317,7 @@ delete_email=Odstrániť
email_deletion=Odstránenie e-mailu
email_deletion_desc=Vymazaním tejto emailovej adresy sa odstránia súvisiace informácie z vášho účtu. Chcete pokračovať?
email_deletion_success=Email bol úspešne odstránený!
email_deletion_primary=Cannot delete primary email address.
add_new_email=Pridať novú e-mailovú adresu
add_email=Pridať email
add_email_confirmation_sent=Nový email s potvrdením bol odoslaný na '%s', v priebehu nasledovných '%d' hodín si prosím skontrolujte vašu schránku pre dokončenie procesu potvrdenia.
@@ -366,6 +372,7 @@ two_factor_disable_success=Dvojfaktorové overenie bolo zakázané!
manage_access_token=Spravovať osobné prístupové tokeny
generate_new_token=Vygenerovať nový token
tokens_desc=Tokeny, ktoré ste vygenerovali je možné použiť na prístup ku 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ý token bude mať plný prístup ku vašemu účtu.
token_name=Názov tokenu
generate_token=Vygenerovať token
@@ -374,6 +381,7 @@ delete_token=Odstrániť
access_token_deletion=Odstránenie osobného prístupového tokenu
access_token_deletion_desc=Zmazaním tohto osobného prístupového tokenu sa zmaže všetok prístup súvisiacej aplikácie. Chcete pokračovať?
delete_token_success=Osobný prístupový token bol úspešne odstránený! Nezabudnite tiež zmeniť nastavenie vašej aplikácie.
token_name_exists=Rola s rovnakým monom už existuje
orgs.none=Nieste členom žiadnej organizácie.
orgs.leave_title=Opustiť organizáciu
@@ -395,7 +403,9 @@ owner=Vlastník
repo_name=Názov repozitára
repo_name_helper=Dobrý názov repozitára sa zvyčajne skladá z krátkych, jedinečných a ľahko zapamätateľných kľúčových slov.
visibility=Viditeľnosť
unlisted=Unlisted
visiblity_helper=Tento repozitár je <span class="ui red text">súkromný</span>
unlisted_helper=This repository is <span class="ui red text">Unlisted</span>
visiblity_helper_forced=Správca vynútil na všetkých nových repozitároch, aby boli <span class="ui red text">súkromné</span>
visiblity_fork_helper=(Zmena tejto hodnoty ovplivní všetky repozitáre rozštiepenia)
clone_helper=Potrebujete pomôcť z klonovaním? Navštívte <a target="_blank" href="%s">nápovedu</a>!
@@ -425,8 +435,7 @@ repo_description_helper=Popis repozitára. Maximálna dĺžka 512 znakov.
repo_description_length=Dostupné znaky
form.reach_limit_of_creation=Vlastník dosiahol maximálneho počtu %d vytvorených repozitárov.
form.name_reserved=Repozitár s názvom '%s' je vyhradený.
form.name_pattern_not_allowed=Repozitár so vzorom názvu '%s' nieje povolený.
form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Je potrebná autorizácia
migrate_type=Typ migrácie
@@ -437,6 +446,7 @@ migrate.clone_address_desc=Toto nemôže byť HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local=Máte povolené preniesť repozitár pomocou lokálnej cesty na serveri.
migrate.permission_denied=Nemáte povolené importovať miestne repozitáre.
migrate.invalid_local_path=Neplatná miestna cesta, buď neexistuje alebo nie je adresárom.
migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migrácia zlyhala: %v
mirror_from=zrkadlo
@@ -484,6 +494,8 @@ branches.stale_branches=Zastaralé vetvy
branches.all=Všetky vetvy
branches.updated_by=%[2]s zmenil %[1]s
branches.change_default_branch=Zmeniť základnú vetvu
branches.default_deletion_not_allowed=Cannot delete the default branch.
branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nový súbor
editor.upload_file=Nahrať súbor
@@ -785,8 +797,10 @@ settings.collaborator_deletion_desc=Tento užívateľ po tom, čo bude odstráne
settings.remove_collaborator_success=Spolupracovník bol odstránený.
settings.search_user_placeholder=Hľadať užívateľa...
settings.org_not_allowed_to_be_collaborator=Nieje dovolené pridať organizáciu ako spolupracovníka.
settings.add_webhook=Pridať webhook
settings.hooks_desc=Webové háčiky sú podobné základným spúšťačom HTTP, POST udalostí. Kedykoľvek sa niečo stane v Gogs, bude postarané o oznámenie špecifickému cieľovému serveru. Viac o danom sa dozviete v <a target="_blank" href="%s"> príručke webových háčikov </a>.
settings.webhooks.add_new=Add a new webhook:
settings.webhooks.choose_a_type=Choose a type...
settings.add_webhook=Pridať webhook
settings.webhook_deletion=Odstrániť webhook
settings.webhook_deletion_desc=Odstránením tohto webového háčika sa odstránia všetky informácie o ňom a tiež história volaní. Chcete pokračovať?
settings.webhook_deletion_success=Webový háčik bol odstránený!
@@ -800,6 +814,8 @@ settings.webhook.response=Odpoveď
settings.webhook.headers=Hlavičky
settings.webhook.payload=Payload
settings.webhook.body=Telo
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=Háčiky Gitu sú spravované Gitom samotným, môžete v zozname nižšie upraviť súbory podporovaných háčikov k prevádzaniu užívateľských operácií.
settings.githook_edit_desc=Pokiaľ je hook neaktívny, zobrazí sa ukážkový obsah. Ponechanie prázdneho obsahu zakáže tento hook.
settings.githook_name=Názov hooku
@@ -926,9 +942,8 @@ team_name_helper=Tento názov budete používať pri pomenovaní týmu v konverz
team_desc_helper=Prosím popíšte tento tým
team_permission_desc=Akú úroveň prístupu má mať tento tým?
form.name_reserved=Názov organizácie '%s' je už rezervovaný.
form.name_pattern_not_allowed=Vzor názvu organizácie '%s' nieje povolený.
form.team_name_reserved=Názov týmu '%s' je vyhradený.
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=Nastavenia
settings.options=Možnosti
@@ -1000,12 +1015,19 @@ first_page=Prvý
last_page=Posledný
total=Celkom: %d
dashboard.build_info=Informácie o zostavení
dashboard.app_ver=Verzia aplikácie
dashboard.git_version=Git verzia
dashboard.go_version=Go verzia
dashboard.build_time=Čas zostavenia
dashboard.build_commit=Commit zostavenia
dashboard.statistic=Štatistika
dashboard.operations=Operácie
dashboard.system_status=Monitor stavu systému
dashboard.statistic_info=Gogs databáza obsahuje <b>%d</b> používateľov, <b>%d</b> organizácií, <b>%d</b> verejných kľúčov, <b>%d</b> repozitárov, <b>%d</b> sledovaní, <b>%d</b> hviezd, <b>%d</b> akcií, <b>%d</b> prístupov, <b>%d</b> issues, <b>%d</b> komentárov, <b>%d</b> sociálnych účtov, <b>%d</b> nasledovaní, <b>%d</b> mirrorov, <b>%d</b> vydaní, <b>%d</b> zdrojov prihlásení, <b>%d</b> webhookov, <b>%d</b> míľnikov, <b>%d</b> štítkov, <b>%d</b> hook úloh, <b>%d</b> tímov, <b>%d</b> aktualizačných úloh, <b>%d</b> príloh.
dashboard.operation_name=Názov operácie
dashboard.operation_switch=Prepnúť
dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Spustiť
dashboard.clean_unbind_oauth=Odstráň nenaviazané OAuth tokeny
dashboard.clean_unbind_oauth_success=Všetky nenaviazané OAuth tokeny boli úspešne odstránené.
@@ -1141,7 +1163,7 @@ auths.pam_service_name=Názov služby PAM
auths.enable_auto_register=Povoliť auto registráciu
auths.edit=Upraviť nastavenie overovania
auths.activated=Tento spôsob overovania je aktívny
auths.default_auth=This authentication is default login source
auths.default_auth=Toto overenie je východzí zdroj prihlásenia
auths.new_success=Nový spôsob overovania '%s' bol pridaný.
auths.update_success=Nastavenie overovania bolo zmenené.
auths.update=Zmeniť nastavenie overovania
@@ -1151,120 +1173,186 @@ auths.delete_auth_desc=Tento spôsob overovania bude odstránený, chcete pokra
auths.still_in_used=Tento spôsob overovania je stále používaný niektorými užívateľmi. Prosím, najskôr zmeňte u týchto užívateľov typ overenia na iný.
auths.deletion_success=Spôsob overovania bol odstránený!
auths.login_source_exist=Zdroj prihlásenia '%s' už existuje.
auths.github_api_endpoint=Koncový bod API
config.not_set=(nezadané)
config.server_config=Konfigurácia servera
config.app_name=Názov aplikácie
config.app_ver=Verzia aplikácie
config.app_url=URL adresa aplikácie
config.domain=Doména
config.offline_mode=Offline režim
config.disable_router_log=Vypnúť systémové záznamy smerovača
config.brand_name=Názov značky
config.run_user=Používateľ pre spustenie aplikácie
config.run_mode=Režim spúšťania
config.git_version=Verzia Gitu
config.static_file_root_path=Koreňový adresár statického súboru
config.log_file_root_path=Koreňový adresár súboru systémových záznamov
config.reverse_auth_user=Užívateľ obráteného overenia
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=Súbor certifikátu
config.server.key_file=Súbor kľúča
config.server.tls_min_version=Minimálna verzia TLS
config.server.unix_socket_permission=Oprávnenie Unix socketu
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=Povoliť 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=Nastavenie SSH
config.ssh_enabled=Povolené
config.ssh_start_builtin_server=Spustiť vstavaný server
config.ssh_domain=Doména
config.ssh_port=Port
config.ssh_listen_port=Port pre poslúchanie
config.ssh_root_path=Koreňová cesta
config.ssh_rewrite_authorized_keys_at_start=Prepísať authorized_keys pri štarte
config.ssh_key_test_path=Cesta testu kľúčov
config.ssh_keygen_path=Cesta ku generátoru kľúčov ('ssh-keygen')
config.ssh_minimum_key_size_check=Kontrola minimálnej veľkosti kľúčov
config.ssh_minimum_key_sizes=Minimálna veľkosť kľúčov
config.ssh.enabled=Povolené
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=Nastavenie repozitára
config.repo_root_path=Koreňový adresár repozitára
config.script_type=Typ skriptu
config.repo_force_private=Vynútiť súkromné
config.max_creation_limit=Maximálna lehota pre vytvorenie
config.preferred_licenses=Uprednostňované licencie
config.disable_http_git=Vypnúť HTTP Git
config.enable_local_path_migration=Povoliť migráciu z miestnej cesty
config.commits_fetch_concurrency=Súbežnosť vyzdvihnutia revízii
config.http_config=HTTP konfigurácia
config.http_access_control_allow_origin=Access Control Allow Origin
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=Povoliť migráciu z miestnej cesty
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=Konfigurácia databázy
config.db_type=Typ
config.db_host=Host
config.db_name=Názov
config.db_user=Používateľ
config.db_ssl_mode=SSL režim
config.db_ssl_mode_helper=(iba pre "postgres")
config.db_path=Cesta
config.db_path_helper=(iba pre "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=Konfigurácia služby
config.register_email_confirm=Vyžadovať potvrdenie e-mailu
config.disable_register=Zakázať registráciu
config.show_registration_button=Zobraziť tlačítko registrácie
config.require_sign_in_view=Vyžadovať zobrazenie prihlásenia
config.mail_notify=Upozornenie e-mailom
config.disable_key_size_check=Vypnúť kontrolu minimálnej veľkosti kľúčov
config.enable_captcha=Povoliť Captcha
config.active_code_lives=Doba života aktívneho kódu
config.reset_password_code_lives=Lehota kódu pre 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=Nastavenie webových háčikov
config.queue_length=Dĺžka fronty
config.deliver_timeout=Časový limit doručenia
config.skip_tls_verify=Preskočiť overenie TLS
config.email_config=Email configuration
config.email.enabled=Povolené
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=Nastavenie mailera
config.mailer_enabled=Povolený
config.mailer_disable_helo=Zakázať HELO
config.mailer_subject_prefix=Predpona predmetu
config.mailer_host=Host
config.mailer_user=Používateľ
config.send_test_mail=Odoslať testovací E-mail
config.test_mail_failed=Odoslanie testovacieho e-mailu na '%s' zlyhalo: %v
config.test_mail_sent=Testovací e-mail bol odoslaný 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=OAuth konfigurácia
config.oauth_enabled=Povolený
config.cache_config=Konfigurácia cache
config.cache_adapter=Cache adaptér
config.cache_interval=Cache interval
config.cache_conn=Cache pripojenie
config.user_config=User configuration
config.user.enable_email_notify=Povoliť e-mailové notifikácie
config.session_config=Nastavenie session
config.session_provider=Session provider
config.provider_config=Nastavenie providera
config.cookie_name=Názov cookie
config.enable_set_cookie=Povoliť nastavenie Cookie
config.gc_interval_time=GC Časový interval
config.session_life_time=Doba trvania relácie
config.https_only=Iba HTTPS
config.cookie_life_time=Doba života súboru 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=Konfigurácia cache
config.cache.adapter=Adapter
config.cache.interval=GC interval
config.cache.host=Host
config.http_config=HTTP konfigurácia
config.http.access_control_allow_origin=Access control allow origin
config.attachment_config=Attachment configuration
config.attachment.enabled=Povolené
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=Nastavenie ikony užívateľa
config.picture_service=Služba ikon užívateľov
config.disable_gravatar=Zakázať Gravatar
config.enable_federated_avatar=Povoliť jednotné ikony užívateľov
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=Nastavenie webových háčikov
config.webhook.types=Types
config.webhook.deliver_timeout=Deliver timeout
config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Konfigurácia Gitu
config.git_disable_diff_highlight=Vypnúť zvýraznenie syntaxi v rozdielovom zobrazení
config.git_max_diff_lines=Maximálny počet rozdielnych riadkov jedného súboru
config.git_max_diff_line_characters=Maximálny počet zobrazených rozdielnych znakov jedného riadku
config.git_max_diff_files=Maximálny počet zobrazených rozdielnych súborov
config.git_gc_args=Parametre GC
config.git_migrate_timeout=Časová lehota prenesenia
config.git_mirror_timeout=Časový limit aktualizácie zrkadla
config.git_clone_timeout=Časový limit operácie naklonovania
config.git_pull_timeout=Časový limit operácie stiahnutia
config.git_gc_timeout=Časový limit operácie 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=Nastavenie systémových záznamov
config.log_file_root_path=Koreňový adresár súboru systémových záznamov
config.log_mode=Režim
config.log_options=Možnosti
@@ -1336,6 +1424,7 @@ months=%d mesiacov %s
years=%d rokov %s
raw_seconds=sekúnd
raw_minutes=minút
raw_hours=hours
[dropzone]
default_message=Pretiahnite súbory sem alebo stlačte Nahrať.

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