mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-05-16 20:00:52 +00:00
Compare commits
150 commits
42837f5dab
...
ee71f86432
Author | SHA1 | Date | |
---|---|---|---|
ee71f86432 | |||
957b1023e9 | |||
85f2727872 | |||
787b16a7be | |||
d50efa626a | |||
9bc866124b | |||
b08aef967e | |||
cd6ae89cd9 | |||
8164ef9762 | |||
d096a21da6 | |||
4a2959b3ec | |||
c6cc1430a9 | |||
a050b546b9 | |||
39732d74c9 | |||
21911bfe57 | |||
8cc5d5dc78 | |||
632a274b8f | |||
97ef18db65 | |||
f11957b8f4 | |||
bb5395cd29 | |||
0978095a37 | |||
cf16782338 | |||
8f93ac7e7a | |||
756bb7f6e1 | |||
ee52a8e805 | |||
a454954bd0 | |||
9a581e70a1 | |||
15978d4d07 | |||
288747c660 | |||
33cd8446d3 | |||
0d029ebe6d | |||
abcb23a838 | |||
f7b53ef959 | |||
9a3a3feb4c | |||
9a01062ae2 | |||
34134df3a7 | |||
6ba60f61cb | |||
aeb544aff7 | |||
0d3a9e6491 | |||
cb0f361171 | |||
afb3bcaa8b | |||
df06904f4a | |||
79380c209d | |||
425d64a023 | |||
e58a4c9a76 | |||
79ffb2de47 | |||
fb5c6d3837 | |||
fd67dccc5c | |||
fdfef07d15 | |||
a1dbecf3b8 | |||
b4383065d3 | |||
57956d0525 | |||
11a7d8adfb | |||
a7fcc3ca3f | |||
aba5fe36d8 | |||
03c1c88b5b | |||
a8211e07d8 | |||
74ac5b802d | |||
5ed3ffc0c8 | |||
900bf43a8a | |||
870a1c85c7 | |||
103306f00c | |||
3224628f36 | |||
837b49a5d2 | |||
ce2becb55e | |||
18a936e648 | |||
c283547692 | |||
e1d93950ad | |||
fb5e36bc6f | |||
d59ebc3e32 | |||
27fa12427c | |||
295b2fff5a | |||
c54896ba70 | |||
ec6d46bc8f | |||
7517e70740 | |||
781789e779 | |||
2d2c18f0bd | |||
cbcee5d87d | |||
38ed1cbc9d | |||
4ed372af13 | |||
8ee31a6ba3 | |||
bb7d22d019 | |||
3c3cdb2736 | |||
7b456a28d1 | |||
089e95f250 | |||
9ea73fcb09 | |||
5e81ae1798 | |||
93820d26ba | |||
bce70cc024 | |||
931ca18340 | |||
2079d61a14 | |||
bafe237375 | |||
561a7cf520 | |||
a72b660cbb | |||
50917ead5f | |||
39faa125d5 | |||
168cb758ec | |||
4f73382e95 | |||
b9891088ad | |||
4e6e63dca2 | |||
f619b96228 | |||
12b199c5e5 | |||
31b608a1e9 | |||
02316e1e40 | |||
2b45aa42f5 | |||
4e2de8bdc6 | |||
e64e8d24ac | |||
2ec0c5e284 | |||
de9d498109 | |||
b796694cd5 | |||
641ddbbbb9 | |||
bc8860ce32 | |||
4b8f0d0972 | |||
e8361b3c0e | |||
95f8b1bbc5 | |||
162b840100 | |||
10cd0f3992 | |||
5c76c37a50 | |||
bfdbc2371d | |||
9f5fda6a04 | |||
98589b487c | |||
df8b1b5dd2 | |||
cb004e9d8b | |||
8da64860e7 | |||
3db929a2be | |||
d90b1e2c00 | |||
004fe91d37 | |||
5bc72998e0 | |||
66b22c5818 | |||
6bd4925753 | |||
a8f8667a03 | |||
0eec8b84a1 | |||
cc83b9349d | |||
27a9fd1792 | |||
47ef51d51e | |||
35c967653b | |||
dfaeb4692c | |||
019d322351 | |||
3d5c1c6cef | |||
66cab785fc | |||
b406025aae | |||
01d9faefa5 | |||
08f5a25d3b | |||
4da76d0e5f | |||
c4db84ad0e | |||
a5df622099 | |||
f9628f883d | |||
dad16cd589 | |||
9035b400a6 | |||
ca9c039ba6 |
|
@ -4,7 +4,6 @@ reportUnusedDisableDirectives: true
|
|||
ignorePatterns:
|
||||
- /web_src/js/vendor
|
||||
- /web_src/fomantic
|
||||
- /public/assets/js
|
||||
|
||||
parserOptions:
|
||||
sourceType: module
|
||||
|
@ -311,7 +310,7 @@ rules:
|
|||
jquery/no-merge: [2]
|
||||
jquery/no-param: [2]
|
||||
jquery/no-parent: [0]
|
||||
jquery/no-parents: [0]
|
||||
jquery/no-parents: [2]
|
||||
jquery/no-parse-html: [2]
|
||||
jquery/no-prop: [2]
|
||||
jquery/no-proxy: [2]
|
||||
|
@ -320,8 +319,8 @@ rules:
|
|||
jquery/no-show: [2]
|
||||
jquery/no-size: [2]
|
||||
jquery/no-sizzle: [0]
|
||||
jquery/no-slide: [0]
|
||||
jquery/no-submit: [0]
|
||||
jquery/no-slide: [2]
|
||||
jquery/no-submit: [2]
|
||||
jquery/no-text: [0]
|
||||
jquery/no-toggle: [2]
|
||||
jquery/no-trigger: [0]
|
||||
|
@ -459,7 +458,7 @@ rules:
|
|||
no-jquery/no-other-utils: [2]
|
||||
no-jquery/no-param: [2]
|
||||
no-jquery/no-parent: [0]
|
||||
no-jquery/no-parents: [0]
|
||||
no-jquery/no-parents: [2]
|
||||
no-jquery/no-parse-html-literal: [0]
|
||||
no-jquery/no-parse-html: [2]
|
||||
no-jquery/no-parse-json: [2]
|
||||
|
|
|
@ -22,7 +22,7 @@ jobs:
|
|||
|
||||
runs-on: docker
|
||||
container:
|
||||
image: ghcr.io/visualon/renovate:37.323.3
|
||||
image: ghcr.io/visualon/renovate:37.330.1
|
||||
|
||||
steps:
|
||||
- name: Load renovate repo cache
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
linters:
|
||||
enable-all: false
|
||||
disable-all: true
|
||||
fast: false
|
||||
enable:
|
||||
- bidichk
|
||||
# - deadcode # deprecated - https://github.com/golangci/golangci-lint/issues/1841
|
||||
- depguard
|
||||
- dupl
|
||||
- errcheck
|
||||
- forbidigo
|
||||
- gocritic
|
||||
# - gocyclo # The cyclomatic complexety of a lot of functions is too high, we should refactor those another time.
|
||||
- gofmt
|
||||
- gofumpt
|
||||
- gosimple
|
||||
|
@ -17,16 +18,11 @@ linters:
|
|||
- nolintlint
|
||||
- revive
|
||||
- staticcheck
|
||||
# - structcheck # deprecated - https://github.com/golangci/golangci-lint/issues/1841
|
||||
- stylecheck
|
||||
- typecheck
|
||||
- unconvert
|
||||
- unused
|
||||
# - varcheck # deprecated - https://github.com/golangci/golangci-lint/issues/1841
|
||||
- wastedassign
|
||||
enable-all: false
|
||||
disable-all: true
|
||||
fast: false
|
||||
|
||||
run:
|
||||
timeout: 10m
|
||||
|
@ -35,6 +31,9 @@ run:
|
|||
- public
|
||||
- web_src
|
||||
|
||||
output:
|
||||
sort-results: true
|
||||
|
||||
linters-settings:
|
||||
stylecheck:
|
||||
checks: ["all", "-ST1005", "-ST1003"]
|
||||
|
@ -51,27 +50,37 @@ linters-settings:
|
|||
errorCode: 1
|
||||
warningCode: 1
|
||||
rules:
|
||||
- name: atomic
|
||||
- name: bare-return
|
||||
- name: blank-imports
|
||||
- name: constant-logical-expr
|
||||
- name: context-as-argument
|
||||
- name: context-keys-type
|
||||
- name: dot-imports
|
||||
- name: duplicated-imports
|
||||
- name: empty-lines
|
||||
- name: error-naming
|
||||
- name: error-return
|
||||
- name: error-strings
|
||||
- name: error-naming
|
||||
- name: errorf
|
||||
- name: exported
|
||||
- name: identical-branches
|
||||
- name: if-return
|
||||
- name: increment-decrement
|
||||
- name: var-naming
|
||||
- name: var-declaration
|
||||
- name: indent-error-flow
|
||||
- name: modifies-value-receiver
|
||||
- name: package-comments
|
||||
- name: range
|
||||
- name: receiver-naming
|
||||
- name: redefines-builtin-id
|
||||
- name: string-of-int
|
||||
- name: superfluous-else
|
||||
- name: time-naming
|
||||
- name: unconditional-recursion
|
||||
- name: unexported-return
|
||||
- name: indent-error-flow
|
||||
- name: errorf
|
||||
- name: duplicated-imports
|
||||
- name: modifies-value-receiver
|
||||
- name: unreachable-code
|
||||
- name: var-declaration
|
||||
- name: var-naming
|
||||
gofumpt:
|
||||
extra-rules: true
|
||||
depguard:
|
||||
|
@ -96,8 +105,12 @@ linters-settings:
|
|||
issues:
|
||||
max-issues-per-linter: 0
|
||||
max-same-issues: 0
|
||||
exclude-dirs: [node_modules, public, web_src]
|
||||
exclude-case-sensitive: true
|
||||
exclude-rules:
|
||||
# Exclude some linters from running on tests files.
|
||||
- path: models/db/sql_postgres_with_schema.go
|
||||
linters:
|
||||
- nolintlint
|
||||
- path: _test\.go
|
||||
linters:
|
||||
- gocyclo
|
||||
|
@ -115,19 +128,19 @@ issues:
|
|||
- path: cmd
|
||||
linters:
|
||||
- forbidigo
|
||||
- linters:
|
||||
- text: "webhook"
|
||||
linters:
|
||||
- dupl
|
||||
text: "webhook"
|
||||
- linters:
|
||||
- text: "`ID' should not be capitalized"
|
||||
linters:
|
||||
- gocritic
|
||||
text: "`ID' should not be capitalized"
|
||||
- linters:
|
||||
- text: "swagger"
|
||||
linters:
|
||||
- unused
|
||||
- deadcode
|
||||
text: "swagger"
|
||||
- linters:
|
||||
- text: "argument x is overwritten before first use"
|
||||
linters:
|
||||
- staticcheck
|
||||
text: "argument x is overwritten before first use"
|
||||
- text: "commentFormatting: put a space between `//` and comment text"
|
||||
linters:
|
||||
- gocritic
|
||||
|
|
|
@ -16,6 +16,8 @@ web_src/.* @caesar @crystal @gusted
|
|||
|
||||
# HTML templates used by the backend.
|
||||
templates/.* @caesar @crystal @gusted
|
||||
## the issue sidebar was touched by fnetx
|
||||
templates/repo/issue/view_content/sidebar.* @fnetx
|
||||
|
||||
# Files related to Go development.
|
||||
|
||||
|
|
|
@ -100,8 +100,11 @@ ENV GITEA_CUSTOM /var/lib/gitea/custom
|
|||
ENV GITEA_TEMP /tmp/gitea
|
||||
ENV TMPDIR /tmp/gitea
|
||||
|
||||
#TODO add to docs the ability to define the ini to load (useful to test and revert a config)
|
||||
ENV GITEA_APP_INI /etc/gitea/app.ini
|
||||
# Legacy config file for backwards compatibility
|
||||
# TODO: remove on next major version release
|
||||
ENV GITEA_APP_INI_LEGACY /etc/gitea/app.ini
|
||||
|
||||
ENV GITEA_APP_INI ${GITEA_CUSTOM}/conf/app.ini
|
||||
ENV HOME "/var/lib/gitea/git"
|
||||
VOLUME ["/var/lib/gitea", "/etc/gitea"]
|
||||
WORKDIR /var/lib/gitea
|
||||
|
|
61
MAINTAINERS
61
MAINTAINERS
|
@ -1,61 +0,0 @@
|
|||
Alexey Makhov <amakhov@avito.ru> (@makhov)
|
||||
Bo-Yi Wu <appleboy.tw@gmail.com> (@appleboy)
|
||||
Ethan Koenig <ethantkoenig@gmail.com> (@ethantkoenig)
|
||||
Kees de Vries <bouwko@gmail.com> (@Bwko)
|
||||
Kim Carlbäcker <kim.carlbacker@gmail.com> (@bkcsoft)
|
||||
LefsFlare <nobody@nobody.tld> (@LefsFlarey)
|
||||
Lunny Xiao <xiaolunwen@gmail.com> (@lunny)
|
||||
Rachid Zarouali <nobody@nobody.tld> (@xinity)
|
||||
Rémy Boulanouar <admin@dblk.org> (@DblK)
|
||||
Sandro Santilli <strk@kbt.io> (@strk)
|
||||
Thibault Meyer <meyer.thibault@gmail.com> (@0xbaadf00d)
|
||||
Thomas Boerger <thomas@webhippie.de> (@tboerger)
|
||||
Patrick G <geek1011@outlook.com> (@geek1011)
|
||||
Antoine Girard <sapk@sapk.fr> (@sapk)
|
||||
Lauris Bukšis-Haberkorns <lauris@nix.lv> (@lafriks)
|
||||
Jonas Östanbäck <jonas.ostanback@gmail.com> (@cez81)
|
||||
David Schneiderbauer <dschneiderbauer@gmail.com> (@daviian)
|
||||
Peter Žeby <morlinest@gmail.com> (@morlinest)
|
||||
Matti Ranta <techknowlogick@gitea.io> (@techknowlogick)
|
||||
Jonas Franz <info@jonasfranz.software> (@jonasfranz)
|
||||
Alexey Terentyev <axifnx@gmail.com> (@axifive)
|
||||
Lanre Adelowo <yo@lanre.wtf> (@adelowo)
|
||||
Konrad Langenberg <k@knt.li> (@kolaente)
|
||||
He-Long Zhang <outman99@hotmail.com> (@BetaCat0)
|
||||
Andrew Thornton <art27@cantab.net> (@zeripath)
|
||||
John Olheiser <john.olheiser@gmail.com> (@jolheiser)
|
||||
Richard Mahn <rich.mahn@unfoldingword.org> (@richmahn)
|
||||
Mrsdizzie <info@mrsdizzie.com> (@mrsdizzie)
|
||||
silverwind <me@silverwind.io> (@silverwind)
|
||||
Gary Kim <gary@garykim.dev> (@gary-kim)
|
||||
Guillermo Prandi <gitea.maint@mailfilter.com.ar> (@guillep2k)
|
||||
Mura Li <typeless@ctli.io> (@typeless)
|
||||
6543 <6543@obermui.de> (@6543)
|
||||
jaqra <jaqra@hotmail.com> (@jaqra)
|
||||
David Svantesson <davidsvantesson@gmail.com> (@davidsvantesson)
|
||||
a1012112796 <1012112796@qq.com> (@a1012112796)
|
||||
Karl Heinz Marbaise <kama@soebes.de> (@khmarbaise)
|
||||
Norwin Roosen <git@nroo.de> (@noerw)
|
||||
Kyle Dumont <kdumontnu@gmail.com> (@kdumontnu)
|
||||
Patrick Schratz <patrick.schratz@gmail.com> (@pat-s)
|
||||
Janis Estelmann <admin@oldschoolhack.me> (@KN4CK3R)
|
||||
Steven Kriegler <sk.bunsenbrenner@gmail.com> (@justusbunsi)
|
||||
Jimmy Praet <jimmy.praet@telenet.be> (@jpraet)
|
||||
Leon Hofmeister <dev.lh@web.de> (@delvh)
|
||||
Wim <wim@42.be> (@42wim)
|
||||
Jason Song <i@wolfogre.com> (@wolfogre)
|
||||
Yarden Shoham <git@yardenshoham.com> (@yardenshoham)
|
||||
Yu Tian <zettat123@gmail.com> (@Zettat123)
|
||||
Eddie Yang <576951401@qq.com> (@yp05327)
|
||||
Dong Ge <gedong_1994@163.com> (@sillyguodong)
|
||||
Xinyi Gong <hestergong@gmail.com> (@HesterG)
|
||||
wxiaoguang <wxiaoguang@gmail.com> (@wxiaoguang)
|
||||
Gary Moon <gary@garymoon.net> (@garymoon)
|
||||
Philip Peterson <philip.c.peterson@gmail.com> (@philip-peterson)
|
||||
Denys Konovalov <kontakt@denyskon.de> (@denyskon)
|
||||
Punit Inani <punitinani1@gmail.com> (@puni9869)
|
||||
CaiCandong <1290147055@qq.com> (@caicandong)
|
||||
Rui Chen <rui@chenrui.dev> (@chenrui333)
|
||||
Nanguan Lin <nanguanlin6@gmail.com> (@lng2020)
|
||||
kerwin612 <kerwin612@qq.com> (@kerwin612)
|
||||
Gary Wang <git@blumia.net> (@BLumia)
|
5
Makefile
5
Makefile
|
@ -913,8 +913,9 @@ webpack: $(WEBPACK_DEST)
|
|||
|
||||
$(WEBPACK_DEST): $(WEBPACK_SOURCES) $(WEBPACK_CONFIGS) package-lock.json
|
||||
@$(MAKE) -s node-check node_modules
|
||||
rm -rf $(WEBPACK_DEST_ENTRIES)
|
||||
npx webpack
|
||||
@rm -rf $(WEBPACK_DEST_ENTRIES)
|
||||
@echo "Running webpack..."
|
||||
@BROWSERSLIST_IGNORE_OLD_DATA=true npx webpack
|
||||
@touch $(WEBPACK_DEST)
|
||||
|
||||
.PHONY: svg
|
||||
|
|
|
@ -8,6 +8,36 @@ A [patch or minor release](https://semver.org/spec/v2.0.0.html) (e.g. upgrading
|
|||
|
||||
- [8.0.0](/release-notes/8.0.0/)
|
||||
|
||||
## 7.0.2
|
||||
|
||||
This is a bug fix release. See the documentation for more information on the [upgrade procedure](https://forgejo.org/docs/v7.0/admin/upgrade/).
|
||||
|
||||
In addition to the following notable bug fixes, you can browse the [full list of commits](https://codeberg.org/forgejo/forgejo/compare/v7.0.1...v7.0.2) included in this release.
|
||||
|
||||
* **Bug fixes:**
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3562): a v7.0.0 regression where subscribing to or unsubscribing from an issue in a repository with no code produced an internal server error.
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/issues/3559): a v7.0.0 regression makes all the refs sent in Gitea webhooks to be full refs and might break Woodpecker CI pipelines triggered on tag (`CI_COMMIT_TAG` contained the full ref). This issue [has been fixed](https://github.com/woodpecker-ci/woodpecker/pull/3664) in the `main` branch of Woodpecker CI as well.
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3555): the webhook branch filter wrongly applied the match on the full ref for branch creation and deletion (wrongly skipping events).
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3537): toggling the WIP state of a pull request is possible from the sidebar, but not from the footer.
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3565): when mentioning a user, the markup post-processor does not handle the case where the mentioned user does not exist: it tries to skip to the next node, which in turn, ended up skipping the rest of the line.
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3570): excessive and unnecessary database queries when a user with no repositories is viewing their dashboard.
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3580): duplicate status check contexts show in the branch protection settings.
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3497): profile info fails to render german singular translation.
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3504): inline attachments of [incoming emails](https://forgejo.org/docs/v7.0/user/incoming/) (as they occur for example with Apple Mail) are not attached to comments.
|
||||
|
||||
## 7.0.1
|
||||
|
||||
This is a bug fix release. See the documentation for more information on the [upgrade procedure](https://forgejo.org/docs/v7.0/admin/upgrade/).
|
||||
|
||||
In addition to the following notable bug fixes, you can browse the [full list of commits](https://codeberg.org/forgejo/forgejo/compare/v7.0.0...v7.0.1) included in this release.
|
||||
|
||||
* **Bug fixes:**
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3466): LFS data corruption when running the [`forgejo doctor check --fix`](https://forgejo.org/docs/v7.0/admin/command-line/#doctor-check) CLI command or setting [`[cron.gc_lfs].ENABLED=true`](https://forgejo.org/docs/v7.0/admin/config-cheat-sheet/#cron---garbage-collect-lfs-pointers-in-repositories-crongc_lfs) (the default is `false`).
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3412): [non backward compatible change](https://codeberg.org/forgejo/forgejo/issues/3399) in the [`forgejo admin user create`](https://forgejo.org/docs/v7.0/admin/command-line/#admin-user-create) CLI command.
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3448): error 500 because of an incorrect evaluation of the template when visiting the LFS settings of a repository.
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3464): `GET /repos/{owner}/{name}` API endpoint [always returns an empty string for the `object_format_name` field](https://codeberg.org/forgejo/forgejo/issues/3458).
|
||||
* [PR](https://codeberg.org/forgejo/forgejo/pulls/3444): fuzzy search [may fail with bleve](https://codeberg.org/forgejo/forgejo/issues/3443).
|
||||
|
||||
## 7.0.0
|
||||
|
||||
The [complete list of commits](https://codeberg.org/forgejo/forgejo/commits/branch/v7.0/forgejo) included in the `Forgejo v7.0.0` release can be reviewed from the command line with:
|
||||
|
@ -19,8 +49,9 @@ $ git -C forgejo log --oneline --no-merges origin/v1.21/forgejo..origin/v7.0/for
|
|||
|
||||
* **Regressions and workarounds:**
|
||||
* Running the [`forgejo doctor check --fix`](https://forgejo.org/docs/v7.0/admin/command-line/#doctor-check) CLI command or setting [`[cron.gc_lfs].ENABLED=true`](https://forgejo.org/docs/v7.0/admin/config-cheat-sheet/#cron---garbage-collect-lfs-pointers-in-repositories-crongc_lfs) (the default is `false`) will corrupt the LFS storage. The workaround is to not run the doctor CLI command and disable the `cron.gc_lfs`. This regression will be [fixed in 7.0.1](https://codeberg.org/forgejo/forgejo/issues/3438).
|
||||
* The [`fogejo admin user create`](https://forgejo.org/docs/v7.0/admin/command-line/#admin-user-create) CLI command [requires a password](https://codeberg.org/forgejo/forgejo/commit/b122c6ef8b9254120432aed373cbe075331132ac) change by default when creating the first user and the `--admin` flag is not specified. The `--must-change-password=false` argument must be given to not require a password change. This regression will be [fixed in 7.0.1](https://codeberg.org/forgejo/forgejo/issues/3399).
|
||||
* The [`forgejo admin user create`](https://forgejo.org/docs/v7.0/admin/command-line/#admin-user-create) CLI command [requires a password](https://codeberg.org/forgejo/forgejo/commit/b122c6ef8b9254120432aed373cbe075331132ac) change by default when creating the first user and the `--admin` flag is not specified. The `--must-change-password=false` argument must be given to not require a password change. This regression will be [fixed in 7.0.1](https://codeberg.org/forgejo/forgejo/issues/3399).
|
||||
* **Breaking changes requiring manual intervention:**
|
||||
* [Forgejo webhooks](https://codeberg.org/forgejo/forgejo/issues/3055) now always send full refs (starting with `refs/`) instead of sending short refs in some cases. This new behavior may require changes when the receiving end assumes a short ref will be received (for instance some versions of Woodpecker CI when receiving webhook payloads when a tag is set).
|
||||
* [MySQL 8.0 or PostgreSQL 12](https://codeberg.org/forgejo/forgejo/commit/e94f9fcafdcf284561e7fb33f60156a69c4ad6a5) are the minimum supported versions. The database must be migrated before upgrading. The requirements regarding SQLite did not change.
|
||||
* The `per_page` parameter is [no longer a synonym for `limit`](https://codeberg.org/forgejo/forgejo/commit/0aab2d38a7d91bc8caff332e452364468ce52d9a) in the [/repos/{owner}/{repo}/releases](https://code.forgejo.org/api/swagger/#/repository/repoListReleases) API endpoint.
|
||||
* The date format of the `created` and `last_update` fields of the [`/repos/{owner}/{repo}/push_mirrors`](https://code.forgejo.org/api/swagger/#/repository/repoListPushMirrors) and [/repos/{owner}/{repo}/push_mirrors](https://code.forgejo.org/api/swagger/#/repository/repoAddPushMirror) API endpoint changed [to be timestamps instead of numbers](https://codeberg.org/forgejo/forgejo/commit/0ee7cbf725f45650136be45f8e0f74d395f73b5c).
|
||||
|
@ -38,7 +69,7 @@ $ git -C forgejo log --oneline --no-merges origin/v1.21/forgejo..origin/v7.0/for
|
|||
Note that the modifications related to CSS, templates or assets (images, fonts, etc.) are not documented here.
|
||||
Although they can be extracted and modified, Forgejo does not provide any guarantee that such changes
|
||||
will be portable from one version to another (even a patch version). See also
|
||||
[the developer documentation about interface customization](https://forgejo.org/docs/v1.21/developer/customization/).
|
||||
[the developer documentation about interface customization](https://forgejo.org/docs/v7.0/developer/customization/).
|
||||
* [Update checker setting might change](https://codeberg.org/forgejo/forgejo/pulls/2925). The documentation was listing it as enabled by default, however, for a while it was disabled unless it was explicitly specified in the config or on the installation page. Instances migrated from Gitea also had it disabled due to different default value. Since then Forgejo got a privacy-friendly DNS-based update checking mechanism which is now being enabled by default unless explicitly specified [in the config](https://forgejo.org/docs/v7.0/admin/config-cheat-sheet/#cron---check-for-new-forgejo-versions-cronupdate_checker).
|
||||
* Language statistics for repositories that use `linguist` attributes in `.gitattributes` *may* show different statistics than previously, because Forgejo recognizes more [linguist attributes](https://forgejo.org/docs/v7.0/user/language-detection/) now.
|
||||
* It is [no longer possible to replace the default web editor](https://codeberg.org/forgejo/forgejo/pulls/2916) used to write comments or issues and pull requests with the EasyMDE editor. It is however still available as an alternative to edit releases and wiki pages.
|
||||
|
|
5
assets/go-licenses.json
generated
5
assets/go-licenses.json
generated
File diff suppressed because one or more lines are too long
|
@ -4,6 +4,7 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"text/tabwriter"
|
||||
|
@ -91,7 +92,7 @@ func runListAuth(c *cli.Context) error {
|
|||
|
||||
func runDeleteAuth(c *cli.Context) error {
|
||||
if !c.IsSet("id") {
|
||||
return fmt.Errorf("--id flag is missing")
|
||||
return errors.New("--id flag is missing")
|
||||
}
|
||||
|
||||
ctx, cancel := installSignals()
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/url"
|
||||
|
||||
|
@ -193,7 +194,7 @@ func runAddOauth(c *cli.Context) error {
|
|||
|
||||
func runUpdateOauth(c *cli.Context) error {
|
||||
if !c.IsSet("id") {
|
||||
return fmt.Errorf("--id flag is missing")
|
||||
return errors.New("--id flag is missing")
|
||||
}
|
||||
|
||||
ctx, cancel := installSignals()
|
||||
|
|
|
@ -5,7 +5,6 @@ package cmd
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
auth_model "code.gitea.io/gitea/models/auth"
|
||||
|
@ -166,7 +165,7 @@ func runAddSMTP(c *cli.Context) error {
|
|||
|
||||
func runUpdateSMTP(c *cli.Context) error {
|
||||
if !c.IsSet("id") {
|
||||
return fmt.Errorf("--id flag is missing")
|
||||
return errors.New("--id flag is missing")
|
||||
}
|
||||
|
||||
ctx, cancel := installSignals()
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
|
@ -42,7 +43,7 @@ var microcmdUserDelete = &cli.Command{
|
|||
|
||||
func runDeleteUser(c *cli.Context) error {
|
||||
if !c.IsSet("id") && !c.IsSet("username") && !c.IsSet("email") {
|
||||
return fmt.Errorf("You must provide the id, username or email of a user to delete")
|
||||
return errors.New("You must provide the id, username or email of a user to delete")
|
||||
}
|
||||
|
||||
ctx, cancel := installSignals()
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
auth_model "code.gitea.io/gitea/models/auth"
|
||||
|
@ -42,7 +43,7 @@ var microcmdUserGenerateAccessToken = &cli.Command{
|
|||
|
||||
func runGenerateAccessToken(c *cli.Context) error {
|
||||
if !c.IsSet("username") {
|
||||
return fmt.Errorf("You must provide a username to generate a token for")
|
||||
return errors.New("You must provide a username to generate a token for")
|
||||
}
|
||||
|
||||
ctx, cancel := installSignals()
|
||||
|
@ -68,7 +69,7 @@ func runGenerateAccessToken(c *cli.Context) error {
|
|||
return err
|
||||
}
|
||||
if exist {
|
||||
return fmt.Errorf("access token name has been used already")
|
||||
return errors.New("access token name has been used already")
|
||||
}
|
||||
|
||||
// make sure the scopes are valid
|
||||
|
|
|
@ -157,9 +157,9 @@ func runViewDo(c *cli.Context) error {
|
|||
}
|
||||
|
||||
if len(matchedAssetFiles) == 0 {
|
||||
return fmt.Errorf("no files matched the given pattern")
|
||||
return errors.New("no files matched the given pattern")
|
||||
} else if len(matchedAssetFiles) > 1 {
|
||||
return fmt.Errorf("too many files matched the given pattern, try to be more specific")
|
||||
return errors.New("too many files matched the given pattern, try to be more specific")
|
||||
}
|
||||
|
||||
data, err := matchedAssetFiles[0].fs.ReadFile(matchedAssetFiles[0].name)
|
||||
|
@ -180,7 +180,7 @@ func runExtractDo(c *cli.Context) error {
|
|||
}
|
||||
|
||||
if c.NArg() == 0 {
|
||||
return fmt.Errorf("a list of pattern of files to extract is mandatory (e.g. '**' for all)")
|
||||
return errors.New("a list of pattern of files to extract is mandatory (e.g. '**' for all)")
|
||||
}
|
||||
|
||||
destdir := "."
|
||||
|
|
|
@ -482,7 +482,7 @@ func hookPrintResults(results []private.HookPostReceiveBranchResult) {
|
|||
fmt.Fprintf(os.Stderr, " %s\n", res.URL)
|
||||
}
|
||||
fmt.Fprintln(os.Stderr, "")
|
||||
os.Stderr.Sync()
|
||||
_ = os.Stderr.Sync()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
|
@ -249,7 +250,7 @@ func runAddFileLogger(c *cli.Context) error {
|
|||
if c.IsSet("filename") {
|
||||
vals["filename"] = c.String("filename")
|
||||
} else {
|
||||
return fmt.Errorf("filename must be set when creating a file logger")
|
||||
return errors.New("filename must be set when creating a file logger")
|
||||
}
|
||||
if c.IsSet("rotate") {
|
||||
vals["rotate"] = c.Bool("rotate")
|
||||
|
|
|
@ -13,5 +13,10 @@ fi
|
|||
if [ $# -gt 0 ]; then
|
||||
exec "$@"
|
||||
else
|
||||
# TODO: remove on next major version release
|
||||
# Honour legacy config file if existing
|
||||
if [ -f ${GITEA_APP_INI_LEGACY} ]; then
|
||||
GITEA_APP_INI=${GITEA_APP_INI_LEGACY}
|
||||
fi
|
||||
exec /usr/local/bin/gitea -c ${GITEA_APP_INI} web
|
||||
fi
|
||||
|
|
|
@ -11,6 +11,18 @@ mkdir -p ${GITEA_CUSTOM} && chmod 0700 ${GITEA_CUSTOM}
|
|||
mkdir -p ${GITEA_TEMP} && chmod 0700 ${GITEA_TEMP}
|
||||
if [ ! -w ${GITEA_TEMP} ]; then echo "${GITEA_TEMP} is not writable"; exit 1; fi
|
||||
|
||||
# TODO: remove on next major version release
|
||||
# Honour legacy config file if existing, but inform the user
|
||||
if [ -f ${GITEA_APP_INI_LEGACY} ] && [ ${GITEA_APP_INI} != ${GITEA_APP_INI_LEGACY} ]; then
|
||||
GITEA_APP_INI_DEFAULT=/var/lib/gitea/custom/conf/app.ini
|
||||
echo -e \
|
||||
"\033[33mWARNING\033[0m: detected configuration file in deprecated default path ${GITEA_APP_INI_LEGACY}." \
|
||||
"The new default is ${GITEA_APP_INI_DEFAULT}. To remove this warning, choose one of the options:\n" \
|
||||
"* Move ${GITEA_APP_INI_LEGACY} to ${GITEA_APP_INI_DEFAULT} (or to \$GITEA_APP_INI if you want to override this variable)\n" \
|
||||
"* Explicitly override GITEA_APP_INI=${GITEA_APP_INI_LEGACY} in the container environment"
|
||||
GITEA_APP_INI=${GITEA_APP_INI_LEGACY}
|
||||
fi
|
||||
|
||||
#Prepare config file
|
||||
if [ ! -f ${GITEA_APP_INI} ]; then
|
||||
|
||||
|
|
25
go.mod
25
go.mod
|
@ -7,7 +7,7 @@ require (
|
|||
code.gitea.io/gitea-vet v0.2.3
|
||||
code.gitea.io/sdk/gitea v0.17.1
|
||||
codeberg.org/gusted/mcaptcha v0.0.0-20220723083913-4f3072e1d570
|
||||
connectrpc.com/connect v1.15.0
|
||||
connectrpc.com/connect v1.16.1
|
||||
gitea.com/go-chi/binding v0.0.0-20230415142243-04b515c6d669
|
||||
gitea.com/go-chi/cache v0.2.0
|
||||
gitea.com/go-chi/captcha v0.0.0-20240315150714-fb487f629098
|
||||
|
@ -15,6 +15,7 @@ require (
|
|||
gitea.com/lunny/levelqueue v0.4.2-0.20230414023320-3c0159fe0fe4
|
||||
github.com/42wim/sshsig v0.0.0-20211121163825-841cf5bbc121
|
||||
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358
|
||||
github.com/ProtonMail/go-crypto v1.0.0
|
||||
github.com/PuerkitoBio/goquery v1.8.1
|
||||
github.com/alecthomas/chroma/v2 v2.13.0
|
||||
github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb
|
||||
|
@ -73,7 +74,7 @@ require (
|
|||
github.com/meilisearch/meilisearch-go v0.26.1
|
||||
github.com/mholt/archiver/v3 v3.5.1
|
||||
github.com/microcosm-cc/bluemonday v1.0.26
|
||||
github.com/minio/minio-go/v7 v7.0.69
|
||||
github.com/minio/minio-go/v7 v7.0.70
|
||||
github.com/msteinert/pam v1.2.0
|
||||
github.com/nektos/act v0.2.52
|
||||
github.com/niklasfasching/go-org v1.7.0
|
||||
|
@ -89,14 +90,14 @@ require (
|
|||
github.com/sassoftware/go-rpmutils v0.2.1-0.20240124161140-277b154961dd
|
||||
github.com/sergi/go-diff v1.3.1
|
||||
github.com/shurcooL/vfsgen v0.0.0-20230704071429-0000e147ea92
|
||||
github.com/stretchr/testify v1.8.4
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/syndtr/goleveldb v1.0.0
|
||||
github.com/ulikunitz/xz v0.5.11
|
||||
github.com/urfave/cli/v2 v2.27.1
|
||||
github.com/urfave/cli/v2 v2.27.2
|
||||
github.com/valyala/fastjson v1.6.4
|
||||
github.com/xanzy/go-gitlab v0.96.0
|
||||
github.com/yohcop/openid-go v1.0.1
|
||||
github.com/yuin/goldmark v1.6.0
|
||||
github.com/yuin/goldmark v1.7.0
|
||||
github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc
|
||||
github.com/yuin/goldmark-meta v1.1.0
|
||||
golang.org/x/crypto v0.21.0
|
||||
|
@ -130,7 +131,6 @@ require (
|
|||
github.com/Masterminds/semver/v3 v3.2.1 // indirect
|
||||
github.com/Masterminds/sprig/v3 v3.2.3 // indirect
|
||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
||||
github.com/ProtonMail/go-crypto v1.0.0 // indirect
|
||||
github.com/RoaringBitmap/roaring v1.7.0 // indirect
|
||||
github.com/andybalholm/brotli v1.1.0 // indirect
|
||||
github.com/andybalholm/cascadia v1.3.2 // indirect
|
||||
|
@ -162,7 +162,7 @@ require (
|
|||
github.com/couchbase/go-couchbase v0.1.1 // indirect
|
||||
github.com/couchbase/gomemcached v0.3.0 // indirect
|
||||
github.com/couchbase/goutils v0.1.2 // indirect
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/davidmz/go-pageant v1.0.2 // indirect
|
||||
|
@ -223,7 +223,6 @@ require (
|
|||
github.com/mholt/acmez v1.2.0 // indirect
|
||||
github.com/miekg/dns v1.1.58 // indirect
|
||||
github.com/minio/md5-simd v1.1.2 // indirect
|
||||
github.com/minio/sha256-simd v1.0.1 // indirect
|
||||
github.com/mitchellh/copystructure v1.2.0 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
||||
|
@ -244,8 +243,8 @@ require (
|
|||
github.com/prometheus/client_model v0.5.0 // indirect
|
||||
github.com/prometheus/common v0.46.0 // indirect
|
||||
github.com/prometheus/procfs v0.12.0 // indirect
|
||||
github.com/rhysd/actionlint v1.6.26 // indirect
|
||||
github.com/rivo/uniseg v0.4.4 // indirect
|
||||
github.com/rhysd/actionlint v1.6.27 // indirect
|
||||
github.com/rivo/uniseg v0.4.7 // indirect
|
||||
github.com/rogpeppe/go-internal v1.12.0 // indirect
|
||||
github.com/rs/xid v1.5.0 // indirect
|
||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||
|
@ -270,9 +269,9 @@ require (
|
|||
github.com/x448/float16 v0.8.4 // indirect
|
||||
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
||||
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
|
||||
github.com/xrash/smetrics v0.0.0-20231213231151-1d8dd44e695e // indirect
|
||||
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect
|
||||
github.com/zeebo/blake3 v0.2.3 // indirect
|
||||
go.etcd.io/bbolt v1.3.8 // indirect
|
||||
go.etcd.io/bbolt v1.3.9 // indirect
|
||||
go.mongodb.org/mongo-driver v1.13.1 // indirect
|
||||
go.opentelemetry.io/otel v1.22.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.22.0 // indirect
|
||||
|
@ -294,7 +293,7 @@ replace github.com/hashicorp/go-version => github.com/6543/go-version v1.3.1
|
|||
|
||||
replace github.com/shurcooL/vfsgen => github.com/lunny/vfsgen v0.0.0-20220105142115-2c99e1ffdfa0
|
||||
|
||||
replace github.com/nektos/act => gitea.com/gitea/act v0.259.1
|
||||
replace github.com/nektos/act => gitea.com/gitea/act v0.261.1
|
||||
|
||||
replace github.com/gorilla/feeds => github.com/yardenshoham/feeds v0.0.0-20240110072658-f3d0c21c0bd5
|
||||
|
||||
|
|
45
go.sum
45
go.sum
|
@ -43,8 +43,8 @@ code.gitea.io/sdk/gitea v0.17.1 h1:3jCPOG2ojbl8AcfaUCRYLT5MUcBMFwS0OSK2mA5Zok8=
|
|||
code.gitea.io/sdk/gitea v0.17.1/go.mod h1:aCnBqhHpoEWA180gMbaCtdX9Pl6BWBAuuP2miadoTNM=
|
||||
codeberg.org/gusted/mcaptcha v0.0.0-20220723083913-4f3072e1d570 h1:TXbikPqa7YRtfU9vS6QJBg77pUvbEb6StRdZO8t1bEY=
|
||||
codeberg.org/gusted/mcaptcha v0.0.0-20220723083913-4f3072e1d570/go.mod h1:IIAjsijsd8q1isWX8MACefDEgTQslQ4stk2AeeTt3kM=
|
||||
connectrpc.com/connect v1.15.0 h1:lFdeCbZrVVDydAqwr4xGV2y+ULn+0Z73s5JBj2LikWo=
|
||||
connectrpc.com/connect v1.15.0/go.mod h1:bQmjpDY8xItMnttnurVgOkHUBMRT9cpsNi2O4AjKhmA=
|
||||
connectrpc.com/connect v1.16.1 h1:rOdrK/RTI/7TVnn3JsVxt3n028MlTRwmK5Q4heSpjis=
|
||||
connectrpc.com/connect v1.16.1/go.mod h1:XpZAduBQUySsb4/KO5JffORVkDI4B6/EYPi7N8xpNZw=
|
||||
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
|
||||
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
|
@ -52,8 +52,8 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
|||
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
||||
git.sr.ht/~mariusor/go-xsd-duration v0.0.0-20220703122237-02e73435a078 h1:cliQ4HHsCo6xi2oWZYKWW4bly/Ory9FuTpFPRxj/mAg=
|
||||
git.sr.ht/~mariusor/go-xsd-duration v0.0.0-20220703122237-02e73435a078/go.mod h1:g/V2Hjas6Z1UHUp4yIx6bATpNzJ7DYtD0FG3+xARWxs=
|
||||
gitea.com/gitea/act v0.259.1 h1:8GG1o/xtUHl3qjn5f0h/2FXrT5ubBn05TJOM5ry+FBw=
|
||||
gitea.com/gitea/act v0.259.1/go.mod h1:UxZWRYqQG2Yj4+4OqfGWW5a3HELwejyWFQyU7F1jUD8=
|
||||
gitea.com/gitea/act v0.261.1 h1:iACWLc/k8wct9fCF2WdYKqn2Hxx6NjW9zbOP79HF4H4=
|
||||
gitea.com/gitea/act v0.261.1/go.mod h1:Pg5C9kQY1CEA3QjthjhlrqOC/QOT5NyWNjOjRHw23Ok=
|
||||
gitea.com/go-chi/binding v0.0.0-20230415142243-04b515c6d669 h1:RUBX+MK/TsDxpHmymaOaydfigEbbzqUnG1OTZU/HAeo=
|
||||
gitea.com/go-chi/binding v0.0.0-20230415142243-04b515c6d669/go.mod h1:77TZu701zMXWJFvB8gvTbQ92zQ3DQq/H7l5wAEjQRKc=
|
||||
gitea.com/go-chi/cache v0.2.0 h1:E0npuTfDW6CT1yD8NMDVc1SK6IeRjfmRL2zlEsCEd7w=
|
||||
|
@ -203,8 +203,8 @@ github.com/couchbase/gomemcached v0.3.0 h1:XkMDdP6w7rtvLijDE0/RhcccX+XvAk5cboyBv
|
|||
github.com/couchbase/gomemcached v0.3.0/go.mod h1:mxliKQxOv84gQ0bJWbI+w9Wxdpt9HjDvgW9MjCym5Vo=
|
||||
github.com/couchbase/goutils v0.1.2 h1:gWr8B6XNWPIhfalHNog3qQKfGiYyh4K4VhO3P2o9BCs=
|
||||
github.com/couchbase/goutils v0.1.2/go.mod h1:h89Ek/tiOxxqjz30nPPlwZdQbdB8BwgnuBxeoUe/ViE=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/cupcake/rdb v0.0.0-20161107195141-43ba34106c76/go.mod h1:vYwsqCOLxGiisLwp9rITslkFNpZD5rz43tf41QFkTWY=
|
||||
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
|
||||
|
@ -618,10 +618,8 @@ github.com/miekg/dns v1.1.58 h1:ca2Hdkz+cDg/7eNF6V56jjzuZ4aCAE+DbVkILdQWG/4=
|
|||
github.com/miekg/dns v1.1.58/go.mod h1:Ypv+3b/KadlvW9vJfXOTf300O4UqaHFzFCuHz+rPkBY=
|
||||
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
|
||||
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
|
||||
github.com/minio/minio-go/v7 v7.0.69 h1:l8AnsQFyY1xiwa/DaQskY4NXSLA2yrGsW5iD9nRPVS0=
|
||||
github.com/minio/minio-go/v7 v7.0.69/go.mod h1:XAvOPJQ5Xlzk5o3o/ArO2NMbhSGkimC+bpW/ngRKDmQ=
|
||||
github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM=
|
||||
github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
|
||||
github.com/minio/minio-go/v7 v7.0.70 h1:1u9NtMgfK1U42kUxcsl5v0yj6TEOPR497OAQxpJnn2g=
|
||||
github.com/minio/minio-go/v7 v7.0.70/go.mod h1:4yBA8v80xGA30cfM3fz0DKYMXunWl/AV/6tWEs9ryzo=
|
||||
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
|
||||
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
|
||||
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
|
||||
|
@ -708,11 +706,11 @@ github.com/redis/go-redis/v9 v9.4.0 h1:Yzoz33UZw9I/mFhx4MNrB6Fk+XHO1VukNcCa1+lwy
|
|||
github.com/redis/go-redis/v9 v9.4.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||
github.com/rhysd/actionlint v1.6.26 h1:zi7jPZf3Ks14gCXYAAL47uBziyFlX7+Xwilqhexct9g=
|
||||
github.com/rhysd/actionlint v1.6.26/go.mod h1:TIj1DlCgtYLOv5CH9wCK+WJTOr1qAdnFzkGi0IgSCO4=
|
||||
github.com/rhysd/actionlint v1.6.27 h1:xxwe8YmveBcC8lydW6GoHMGmB6H/MTqUU60F2p10wjw=
|
||||
github.com/rhysd/actionlint v1.6.27/go.mod h1:m2nFUjAnOrxCMXuOMz9evYBRCLUsMnKY2IJl/N5umbk=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
|
||||
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
||||
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
|
||||
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
|
@ -785,8 +783,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
|
|||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
|
||||
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
|
||||
github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
|
||||
|
@ -801,8 +800,8 @@ github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0o
|
|||
github.com/unknwon/com v0.0.0-20190804042917-757f69c95f3e/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=
|
||||
github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs=
|
||||
github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=
|
||||
github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho=
|
||||
github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ=
|
||||
github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI=
|
||||
github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM=
|
||||
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||
github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I=
|
||||
|
@ -824,8 +823,8 @@ github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgk
|
|||
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
|
||||
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo=
|
||||
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos=
|
||||
github.com/xrash/smetrics v0.0.0-20231213231151-1d8dd44e695e h1:+SOyEddqYF09QP7vr7CgJ1eti3pY9Fn3LHO1M1r/0sI=
|
||||
github.com/xrash/smetrics v0.0.0-20231213231151-1d8dd44e695e/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
|
||||
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw=
|
||||
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk=
|
||||
github.com/yardenshoham/feeds v0.0.0-20240110072658-f3d0c21c0bd5 h1:3seWKGVhGoc66Ht5QlhQsr4xT2caDnFegsnh2NqvENU=
|
||||
github.com/yardenshoham/feeds v0.0.0-20240110072658-f3d0c21c0bd5/go.mod h1:WMib8uJP3BbY+X8Szd1rA5Pzhdfh+HCCAYT2z7Fza6Y=
|
||||
github.com/yohcop/openid-go v1.0.1 h1:DPRd3iPO5F6O5zX2e62XpVAbPT6wV51cuucH0z9g3js=
|
||||
|
@ -837,8 +836,8 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
|
|||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/yuin/goldmark v1.4.15/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68=
|
||||
github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/yuin/goldmark v1.7.0 h1:EfOIvIMZIzHdB/R/zVrikYLPPwJlfMcNczJFMs1m6sA=
|
||||
github.com/yuin/goldmark v1.7.0/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
|
||||
github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc h1:+IAOyRda+RLrxa1WC7umKOZRsGq4QrFFMYApOeHzQwQ=
|
||||
github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc/go.mod h1:ovIvrum6DQJA4QsJSovrkC4saKHQVs7TvcaeO8AIl5I=
|
||||
github.com/yuin/goldmark-meta v1.1.0 h1:pWw+JLHGZe8Rk0EGsMVssiNb/AaPMHfSRszZeUeiOUc=
|
||||
|
@ -849,8 +848,8 @@ github.com/zeebo/blake3 v0.2.3 h1:TFoLXsjeXqRNFxSbk35Dk4YtszE/MQQGK10BH4ptoTg=
|
|||
github.com/zeebo/blake3 v0.2.3/go.mod h1:mjJjZpnsyIVtVgTOSpJ9vmRE4wgDeyt2HU3qXvvKCaQ=
|
||||
github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo=
|
||||
github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4=
|
||||
go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA=
|
||||
go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw=
|
||||
go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI=
|
||||
go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE=
|
||||
go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
|
||||
go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk=
|
||||
go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo=
|
||||
|
|
|
@ -98,13 +98,10 @@ func (run *ActionRun) LoadAttributes(ctx context.Context) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
if run.Repo == nil {
|
||||
repo, err := repo_model.GetRepositoryByID(ctx, run.RepoID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
run.Repo = repo
|
||||
if err := run.LoadRepo(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := run.Repo.LoadAttributes(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -120,6 +117,19 @@ func (run *ActionRun) LoadAttributes(ctx context.Context) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (run *ActionRun) LoadRepo(ctx context.Context) error {
|
||||
if run == nil || run.Repo != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
repo, err := repo_model.GetRepositoryByID(ctx, run.RepoID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
run.Repo = repo
|
||||
return nil
|
||||
}
|
||||
|
||||
func (run *ActionRun) Duration() time.Duration {
|
||||
return calculateDuration(run.Started, run.Stopped, run.Status) + run.PreviousDuration
|
||||
}
|
||||
|
|
|
@ -270,7 +270,7 @@ func CountRunnersWithoutBelongingOwner(ctx context.Context) (int64, error) {
|
|||
// Only affect action runners were a owner ID is set, as actions runners
|
||||
// could also be created on a repository.
|
||||
return db.GetEngine(ctx).Table("action_runner").
|
||||
Join("LEFT", "user", "`action_runner`.owner_id = `user`.id").
|
||||
Join("LEFT", "`user`", "`action_runner`.owner_id = `user`.id").
|
||||
Where("`action_runner`.owner_id != ?", 0).
|
||||
And(builder.IsNull{"`user`.id"}).
|
||||
Count(new(ActionRunner))
|
||||
|
@ -279,7 +279,7 @@ func CountRunnersWithoutBelongingOwner(ctx context.Context) (int64, error) {
|
|||
func FixRunnersWithoutBelongingOwner(ctx context.Context) (int64, error) {
|
||||
subQuery := builder.Select("`action_runner`.id").
|
||||
From("`action_runner`").
|
||||
Join("LEFT", "user", "`action_runner`.owner_id = `user`.id").
|
||||
Join("LEFT", "`user`", "`action_runner`.owner_id = `user`.id").
|
||||
Where(builder.Neq{"`action_runner`.owner_id": 0}).
|
||||
And(builder.IsNull{"`user`.id"})
|
||||
b := builder.Delete(builder.In("id", subQuery)).From("`action_runner`")
|
||||
|
@ -289,3 +289,25 @@ func FixRunnersWithoutBelongingOwner(ctx context.Context) (int64, error) {
|
|||
}
|
||||
return res.RowsAffected()
|
||||
}
|
||||
|
||||
func CountRunnersWithoutBelongingRepo(ctx context.Context) (int64, error) {
|
||||
return db.GetEngine(ctx).Table("action_runner").
|
||||
Join("LEFT", "`repository`", "`action_runner`.repo_id = `repository`.id").
|
||||
Where("`action_runner`.repo_id != ?", 0).
|
||||
And(builder.IsNull{"`repository`.id"}).
|
||||
Count(new(ActionRunner))
|
||||
}
|
||||
|
||||
func FixRunnersWithoutBelongingRepo(ctx context.Context) (int64, error) {
|
||||
subQuery := builder.Select("`action_runner`.id").
|
||||
From("`action_runner`").
|
||||
Join("LEFT", "`repository`", "`action_runner`.repo_id = `repository`.id").
|
||||
Where(builder.Neq{"`action_runner`.repo_id": 0}).
|
||||
And(builder.IsNull{"`repository`.id"})
|
||||
b := builder.Delete(builder.In("id", subQuery)).From("`action_runner`")
|
||||
res, err := db.GetEngine(ctx).Exec(b)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return res.RowsAffected()
|
||||
}
|
||||
|
|
|
@ -92,6 +92,11 @@ func DeleteVariable(ctx context.Context, id int64) error {
|
|||
func GetVariablesOfRun(ctx context.Context, run *ActionRun) (map[string]string, error) {
|
||||
variables := map[string]string{}
|
||||
|
||||
if err := run.LoadRepo(ctx); err != nil {
|
||||
log.Error("LoadRepo: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Global
|
||||
globalVariables, err := db.Find[ActionVariable](ctx, FindVariablesOpts{})
|
||||
if err != nil {
|
||||
|
|
|
@ -94,7 +94,6 @@ func ParseObjectWithSignature(ctx context.Context, c *GitObject) *ObjectVerifica
|
|||
Reason: "gpg.error.no_committer_account",
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
"crypto/sha256"
|
||||
"encoding/base32"
|
||||
"encoding/base64"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/url"
|
||||
|
@ -301,7 +302,7 @@ func UpdateOAuth2Application(ctx context.Context, opts UpdateOAuth2ApplicationOp
|
|||
return nil, err
|
||||
}
|
||||
if app.UID != opts.UserID {
|
||||
return nil, fmt.Errorf("UID mismatch")
|
||||
return nil, errors.New("UID mismatch")
|
||||
}
|
||||
builtinApps := BuiltinApplications()
|
||||
if _, builtin := builtinApps[app.ClientID]; builtin {
|
||||
|
|
|
@ -16,8 +16,6 @@ import (
|
|||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
//////////////////// Application
|
||||
|
||||
func TestOAuth2Application_GenerateClientSecret(t *testing.T) {
|
||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||
app := unittest.AssertExistsAndLoadBean(t, &auth_model.OAuth2Application{ID: 1})
|
||||
|
|
|
@ -236,7 +236,6 @@ func NamesToBean(names ...string) ([]any, error) {
|
|||
// Need to map provided names to beans...
|
||||
beanMap := make(map[string]any)
|
||||
for _, bean := range tables {
|
||||
|
||||
beanMap[strings.ToLower(reflect.Indirect(reflect.ValueOf(bean)).Type().Name())] = bean
|
||||
beanMap[strings.ToLower(x.TableName(bean))] = bean
|
||||
beanMap[strings.ToLower(x.TableName(bean, true))] = bean
|
||||
|
|
|
@ -29,8 +29,9 @@
|
|||
-
|
||||
id: 4
|
||||
repo_id: 2
|
||||
type: gitea
|
||||
url: http://www.example.com/url4
|
||||
http_method: POST
|
||||
content_type: 1 # json
|
||||
events: '{"push_only":true,"branch_filter":"{master,feature*}"}'
|
||||
events: '{"send_everything":true,"branch_filter":"{master,feature*}"}'
|
||||
is_active: false
|
||||
|
|
|
@ -4,11 +4,9 @@
|
|||
package forgefed
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
|
||||
"code.gitea.io/gitea/modules/validation"
|
||||
|
||||
"github.com/valyala/fastjson"
|
||||
)
|
||||
|
||||
|
@ -82,17 +80,6 @@ func (node NodeInfoWellKnown) Validate() []string {
|
|||
return result
|
||||
}
|
||||
|
||||
func (id ActorID) AsWellKnownNodeInfoURI() string {
|
||||
wellKnownPath := ".well-known/nodeinfo"
|
||||
var result string
|
||||
if id.Port == "" {
|
||||
result = fmt.Sprintf("%s://%s/%s", id.Schema, id.Host, wellKnownPath)
|
||||
} else {
|
||||
result = fmt.Sprintf("%s://%s:%s/%s", id.Schema, id.Host, id.Port, wellKnownPath)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
// ------------------------------------------------ NodeInfo ------------------------------------------------
|
||||
|
||||
// NodeInfo data type
|
||||
|
|
|
@ -116,6 +116,9 @@ func FindBranchNames(ctx context.Context, opts FindBranchOptions) ([]string, err
|
|||
}
|
||||
|
||||
func FindBranchesByRepoAndBranchName(ctx context.Context, repoBranches map[int64]string) (map[int64]string, error) {
|
||||
if len(repoBranches) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
cond := builder.NewCond()
|
||||
for repoID, branchName := range repoBranches {
|
||||
cond = cond.Or(builder.And(builder.Eq{"repo_id": repoID}, builder.Eq{"name": branchName}))
|
||||
|
|
|
@ -183,3 +183,12 @@ func TestOnlyGetDeletedBranchOnCorrectRepo(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.NotNil(t, deletedBranch)
|
||||
}
|
||||
|
||||
func TestFindBranchesByRepoAndBranchName(t *testing.T) {
|
||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||
|
||||
// With no repos or branches given, we find no branches.
|
||||
branches, err := git_model.FindBranchesByRepoAndBranchName(db.DefaultContext, map[int64]string{})
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, branches, 0)
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ package git
|
|||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"errors"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
|
@ -148,7 +148,7 @@ func DeleteLFSLockByID(ctx context.Context, id int64, repo *repo_model.Repositor
|
|||
}
|
||||
|
||||
if !force && u.ID != lock.OwnerID {
|
||||
return nil, fmt.Errorf("user doesn't own lock and force flag is not set")
|
||||
return nil, errors.New("user doesn't own lock and force flag is not set")
|
||||
}
|
||||
|
||||
if _, err := db.GetEngine(dbCtx).ID(id).Delete(new(LFSLock)); err != nil {
|
||||
|
|
|
@ -345,11 +345,9 @@ func CreateReview(ctx context.Context, opts CreateReviewOptions) (*Review, error
|
|||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
} else if opts.ReviewerTeam != nil {
|
||||
review.Type = ReviewTypeRequest
|
||||
review.ReviewerTeamID = opts.ReviewerTeam.ID
|
||||
|
||||
} else {
|
||||
return nil, fmt.Errorf("provide either reviewer or reviewer team")
|
||||
}
|
||||
|
|
|
@ -214,7 +214,6 @@ func RecreateTable(sess *xorm.Session, bean any) error {
|
|||
return err
|
||||
}
|
||||
sequenceMap[sequence] = sequenceData
|
||||
|
||||
}
|
||||
|
||||
// CASCADE causes postgres to drop all the constraints on the old table
|
||||
|
@ -279,7 +278,6 @@ func RecreateTable(sess *xorm.Session, bean any) error {
|
|||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
default:
|
||||
|
|
|
@ -22,7 +22,6 @@ import (
|
|||
"code.gitea.io/gitea/models/migrations/v1_20"
|
||||
"code.gitea.io/gitea/models/migrations/v1_21"
|
||||
"code.gitea.io/gitea/models/migrations/v1_22"
|
||||
"code.gitea.io/gitea/models/migrations/v1_23"
|
||||
"code.gitea.io/gitea/models/migrations/v1_6"
|
||||
"code.gitea.io/gitea/models/migrations/v1_7"
|
||||
"code.gitea.io/gitea/models/migrations/v1_8"
|
||||
|
@ -576,14 +575,20 @@ var migrations = []Migration{
|
|||
// v293 -> v294
|
||||
NewMigration("Ensure every project has exactly one default column", v1_22.CheckProjectColumnsConsistency),
|
||||
|
||||
// Gitea 1.22.0 ends at 294
|
||||
// Gitea 1.22.0-rc0 ends at 294
|
||||
|
||||
// v294 -> v295
|
||||
NewMigration("Add unique index for project issue table", v1_23.AddUniqueIndexForProjectIssue),
|
||||
NewMigration("Add unique index for project issue table", v1_22.AddUniqueIndexForProjectIssue),
|
||||
// v295 -> v296
|
||||
NewMigration("Add commit status summary table", v1_23.AddCommitStatusSummary),
|
||||
NewMigration("Add commit status summary table", v1_22.AddCommitStatusSummary),
|
||||
// v296 -> v297
|
||||
NewMigration("Add missing field of commit status summary table", v1_23.AddCommitStatusSummary2),
|
||||
NewMigration("Add missing field of commit status summary table", v1_22.AddCommitStatusSummary2),
|
||||
// v297 -> v298
|
||||
NewMigration("Add everyone_access_mode for repo_unit", noopMigration),
|
||||
// v298 -> v299
|
||||
NewMigration("Drop wrongly created table o_auth2_application", v1_22.DropWronglyCreatedTable),
|
||||
|
||||
// Gitea 1.22.0-rc1 ends at 299
|
||||
}
|
||||
|
||||
// GetCurrentDBVersion returns the current db version
|
||||
|
|
|
@ -263,7 +263,6 @@ func AddBranchProtectionCanPushAndEnableWhitelist(x *xorm.Engine) error {
|
|||
for _, u := range units {
|
||||
var found bool
|
||||
for _, team := range teams {
|
||||
|
||||
var teamU []*TeamUnit
|
||||
var unitEnabled bool
|
||||
err = sess.Where("team_id = ?", team.ID).Find(&teamU)
|
||||
|
@ -332,7 +331,6 @@ func AddBranchProtectionCanPushAndEnableWhitelist(x *xorm.Engine) error {
|
|||
}
|
||||
|
||||
if !protectedBranch.EnableApprovalsWhitelist {
|
||||
|
||||
perm, err := getUserRepoPermission(sess, baseRepo, reviewer)
|
||||
if err != nil {
|
||||
return false, err
|
||||
|
|
|
@ -68,11 +68,6 @@ func RemigrateU2FCredentials(x *xorm.Engine) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
case schemas.ORACLE:
|
||||
_, err := x.Exec("ALTER TABLE webauthn_credential MODIFY credential_id VARCHAR(410)")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
case schemas.POSTGRES:
|
||||
_, err := x.Exec("ALTER TABLE webauthn_credential ALTER COLUMN credential_id TYPE VARCHAR(410)")
|
||||
if err != nil {
|
||||
|
|
|
@ -9,9 +9,9 @@ import (
|
|||
|
||||
// AddConfidentialColumnToOAuth2ApplicationTable: add ConfidentialClient column, setting existing rows to true
|
||||
func AddConfidentialClientColumnToOAuth2ApplicationTable(x *xorm.Engine) error {
|
||||
type OAuth2Application struct {
|
||||
type oauth2Application struct {
|
||||
ID int64
|
||||
ConfidentialClient bool `xorm:"NOT NULL DEFAULT TRUE"`
|
||||
}
|
||||
|
||||
return x.Sync(new(OAuth2Application))
|
||||
return x.Sync(new(oauth2Application))
|
||||
}
|
||||
|
|
|
@ -13,12 +13,12 @@ import (
|
|||
|
||||
func Test_AddConfidentialClientColumnToOAuth2ApplicationTable(t *testing.T) {
|
||||
// premigration
|
||||
type OAuth2Application struct {
|
||||
type oauth2Application struct {
|
||||
ID int64
|
||||
}
|
||||
|
||||
// Prepare and load the testing database
|
||||
x, deferable := base.PrepareTestEnv(t, 0, new(OAuth2Application))
|
||||
x, deferable := base.PrepareTestEnv(t, 0, new(oauth2Application))
|
||||
defer deferable()
|
||||
if x == nil || t.Failed() {
|
||||
return
|
||||
|
@ -36,7 +36,7 @@ func Test_AddConfidentialClientColumnToOAuth2ApplicationTable(t *testing.T) {
|
|||
}
|
||||
|
||||
got := []ExpectedOAuth2Application{}
|
||||
if err := x.Table("o_auth2_application").Select("id, confidential_client").Find(&got); !assert.NoError(t, err) {
|
||||
if err := x.Table("oauth2_application").Select("id, confidential_client").Find(&got); !assert.NoError(t, err) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@ func ChangeContainerMetadataMultiArch(x *xorm.Engine) error {
|
|||
|
||||
// Convert to new metadata format
|
||||
|
||||
new := &MetadataNew{
|
||||
newMetadata := &MetadataNew{
|
||||
Type: old.Type,
|
||||
IsTagged: old.IsTagged,
|
||||
Platform: old.Platform,
|
||||
|
@ -119,7 +119,7 @@ func ChangeContainerMetadataMultiArch(x *xorm.Engine) error {
|
|||
Manifests: manifests,
|
||||
}
|
||||
|
||||
metadataJSON, err := json.Marshal(new)
|
||||
metadataJSON, err := json.Marshal(newMetadata)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright 2024 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package v1_23 //nolint
|
||||
package v1_22 //nolint
|
||||
|
||||
import (
|
||||
"xorm.io/xorm"
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright 2024 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package v1_23 //nolint
|
||||
package v1_22 //nolint
|
||||
|
||||
import (
|
||||
"slices"
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright 2024 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package v1_23 //nolint
|
||||
package v1_22 //nolint
|
||||
|
||||
import "xorm.io/xorm"
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright 2024 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package v1_23 //nolint
|
||||
package v1_22 //nolint
|
||||
|
||||
import "xorm.io/xorm"
|
||||
|
10
models/migrations/v1_22/v298.go
Normal file
10
models/migrations/v1_22/v298.go
Normal file
|
@ -0,0 +1,10 @@
|
|||
// Copyright 2024 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package v1_22 //nolint
|
||||
|
||||
import "xorm.io/xorm"
|
||||
|
||||
func DropWronglyCreatedTable(x *xorm.Engine) error {
|
||||
return x.DropTables("o_auth2_application")
|
||||
}
|
|
@ -61,7 +61,6 @@ func AddScratchHash(x *xorm.Engine) error {
|
|||
if _, err := sess.ID(tfa.ID).Cols("scratch_salt, scratch_hash").Update(tfa); err != nil {
|
||||
return fmt.Errorf("couldn't add in scratch_hash and scratch_salt: %w", err)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -81,7 +81,6 @@ func HashAppToken(x *xorm.Engine) error {
|
|||
if _, err := sess.ID(token.ID).Cols("token_hash, token_salt, token_last_eight, sha1").Update(token); err != nil {
|
||||
return fmt.Errorf("couldn't add in sha1, token_hash, token_salt and token_last_eight: %w", err)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -222,9 +222,8 @@ func GetTeamIDsByNames(ctx context.Context, orgID int64, names []string, ignoreN
|
|||
if err != nil {
|
||||
if ignoreNonExistent {
|
||||
continue
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
ids = append(ids, u.ID)
|
||||
}
|
||||
|
|
|
@ -110,13 +110,11 @@ func createBoardsForProjectsType(ctx context.Context, project *Project) error {
|
|||
var items []string
|
||||
|
||||
switch project.BoardType {
|
||||
|
||||
case BoardTypeBugTriage:
|
||||
items = setting.Project.ProjectBoardBugTriageType
|
||||
|
||||
case BoardTypeBasicKanban:
|
||||
items = setting.Project.ProjectBoardBasicKanbanType
|
||||
|
||||
case BoardTypeNone:
|
||||
fallthrough
|
||||
default:
|
||||
|
|
|
@ -135,7 +135,6 @@ func GetReviewers(ctx context.Context, repo *Repository, doerID, posterID int64)
|
|||
// the owner of a private repo needs to be explicitly added.
|
||||
cond = cond.Or(builder.Eq{"`user`.id": repo.Owner.ID})
|
||||
}
|
||||
|
||||
} else {
|
||||
// This is a "public" repository:
|
||||
// Any user that has read access, is a watcher or organization member can be requested to review
|
||||
|
|
|
@ -5,6 +5,7 @@ package models
|
|||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"code.gitea.io/gitea/models/db"
|
||||
|
@ -120,7 +121,7 @@ func DeleteRepositoryTransfer(ctx context.Context, repoID int64) error {
|
|||
func TestRepositoryReadyForTransfer(status repo_model.RepositoryStatus) error {
|
||||
switch status {
|
||||
case repo_model.RepositoryBeingMigrated:
|
||||
return fmt.Errorf("repo is not ready, currently migrating")
|
||||
return errors.New("repo is not ready, currently migrating")
|
||||
case repo_model.RepositoryPendingTransfer:
|
||||
return ErrRepoTransferInProgress{}
|
||||
}
|
||||
|
|
|
@ -1027,9 +1027,8 @@ func GetUserIDsByNames(ctx context.Context, names []string, ignoreNonExistent bo
|
|||
if err != nil {
|
||||
if ignoreNonExistent {
|
||||
continue
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
ids = append(ids, u.ID)
|
||||
}
|
||||
|
|
|
@ -6,8 +6,8 @@ package user_test
|
|||
|
||||
import (
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
|
@ -63,16 +63,16 @@ func NewComplexity() {
|
|||
func setupComplexity(values []string) {
|
||||
if len(values) != 1 || values[0] != "off" {
|
||||
for _, val := range values {
|
||||
if complex, ok := charComplexities[val]; ok {
|
||||
validChars += complex.ValidChars
|
||||
requiredList = append(requiredList, complex)
|
||||
if complexity, ok := charComplexities[val]; ok {
|
||||
validChars += complexity.ValidChars
|
||||
requiredList = append(requiredList, complexity)
|
||||
}
|
||||
}
|
||||
if len(requiredList) == 0 {
|
||||
// No valid character classes found; use all classes as default
|
||||
for _, complex := range charComplexities {
|
||||
validChars += complex.ValidChars
|
||||
requiredList = append(requiredList, complex)
|
||||
for _, complexity := range charComplexities {
|
||||
validChars += complexity.ValidChars
|
||||
requiredList = append(requiredList, complexity)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,9 +4,8 @@
|
|||
package pwn
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"math/rand/v2"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
@ -18,11 +17,6 @@ var client = New(WithHTTP(&http.Client{
|
|||
Timeout: time.Second * 2,
|
||||
}))
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
rand.Seed(time.Now().Unix())
|
||||
os.Exit(m.Run())
|
||||
}
|
||||
|
||||
func TestPassword(t *testing.T) {
|
||||
// Check input error
|
||||
_, err := client.CheckPassword("", false)
|
||||
|
@ -81,24 +75,24 @@ func testPassword() string {
|
|||
|
||||
// Set special character
|
||||
for i := 0; i < 5; i++ {
|
||||
random := rand.Intn(len(specialCharSet))
|
||||
random := rand.IntN(len(specialCharSet))
|
||||
password.WriteString(string(specialCharSet[random]))
|
||||
}
|
||||
|
||||
// Set numeric
|
||||
for i := 0; i < 5; i++ {
|
||||
random := rand.Intn(len(numberSet))
|
||||
random := rand.IntN(len(numberSet))
|
||||
password.WriteString(string(numberSet[random]))
|
||||
}
|
||||
|
||||
// Set uppercase
|
||||
for i := 0; i < 5; i++ {
|
||||
random := rand.Intn(len(upperCharSet))
|
||||
random := rand.IntN(len(upperCharSet))
|
||||
password.WriteString(string(upperCharSet[random]))
|
||||
}
|
||||
|
||||
for i := 0; i < 5; i++ {
|
||||
random := rand.Intn(len(allCharSet))
|
||||
random := rand.IntN(len(allCharSet))
|
||||
password.WriteString(string(allCharSet[random]))
|
||||
}
|
||||
inRune := []rune(password.String())
|
||||
|
|
19
modules/forgefed/nodeinfo.go
Normal file
19
modules/forgefed/nodeinfo.go
Normal file
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2023 The Forgejo Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package forgefed
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func (id ActorID) AsWellKnownNodeInfoURI() string {
|
||||
wellKnownPath := ".well-known/nodeinfo"
|
||||
var result string
|
||||
if id.Port == "" {
|
||||
result = fmt.Sprintf("%s://%s/%s", id.Schema, id.Host, wellKnownPath)
|
||||
} else {
|
||||
result = fmt.Sprintf("%s://%s:%s/%s", id.Schema, id.Host, id.Port, wellKnownPath)
|
||||
}
|
||||
return result
|
||||
}
|
|
@ -307,10 +307,10 @@ func ParseTreeLine(objectFormat ObjectFormat, rd *bufio.Reader, modeBuf, fnameBu
|
|||
|
||||
// Deal with the binary hash
|
||||
idx = 0
|
||||
len := objectFormat.FullLength() / 2
|
||||
for idx < len {
|
||||
length := objectFormat.FullLength() / 2
|
||||
for idx < length {
|
||||
var read int
|
||||
read, err = rd.Read(shaBuf[idx:len])
|
||||
read, err = rd.Read(shaBuf[idx:length])
|
||||
n += read
|
||||
if err != nil {
|
||||
return mode, fname, sha, n, err
|
||||
|
|
|
@ -49,9 +49,8 @@ readLoop:
|
|||
if len(line) > 0 && line[0] == ' ' {
|
||||
_, _ = signatureSB.Write(line[1:])
|
||||
continue
|
||||
} else {
|
||||
pgpsig = false
|
||||
}
|
||||
pgpsig = false
|
||||
}
|
||||
|
||||
if !message {
|
||||
|
|
|
@ -213,7 +213,6 @@ func FindLFSFile(repo *git.Repository, objectID git.ObjectID) ([]*LFSResult, err
|
|||
errChan <- err
|
||||
break
|
||||
}
|
||||
|
||||
}
|
||||
}()
|
||||
|
||||
|
|
|
@ -251,18 +251,18 @@ func (repo *Repository) CommitsByFileAndRange(opts CommitsByFileAndRangeOptions)
|
|||
return nil, err
|
||||
}
|
||||
|
||||
len := objectFormat.FullLength()
|
||||
length := objectFormat.FullLength()
|
||||
commits := []*Commit{}
|
||||
shaline := make([]byte, len+1)
|
||||
shaline := make([]byte, length+1)
|
||||
for {
|
||||
n, err := io.ReadFull(stdoutReader, shaline)
|
||||
if err != nil || n < len {
|
||||
if err != nil || n < length {
|
||||
if err == io.EOF {
|
||||
err = nil
|
||||
}
|
||||
return commits, err
|
||||
}
|
||||
objectID, err := NewIDFromString(string(shaline[0:len]))
|
||||
objectID, err := NewIDFromString(string(shaline[0:length]))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -64,7 +64,6 @@ func getRefURL(refURL, urlPrefix, repoFullName, sshDomain string) string {
|
|||
// ex: git@try.gitea.io:go-gitea/gitea
|
||||
match := scpSyntax.FindAllStringSubmatch(refURI, -1)
|
||||
if len(match) > 0 {
|
||||
|
||||
m := match[0]
|
||||
refHostname := m[2]
|
||||
pth := m[3]
|
||||
|
|
|
@ -193,7 +193,6 @@ func (b *Indexer) addDelete(filename string, repo *repo_model.Repository, batch
|
|||
func (b *Indexer) Index(ctx context.Context, repo *repo_model.Repository, sha string, changes *internal.RepoChanges) error {
|
||||
batch := inner_bleve.NewFlushingBatch(b.inner.Indexer, maxBatchSize)
|
||||
if len(changes.Updates) > 0 {
|
||||
|
||||
// Now because of some insanity with git cat-file not immediately failing if not run in a valid git directory we need to run git rev-parse first!
|
||||
if err := git.EnsureValidGitRepository(ctx, repo.RepoPath()); err != nil {
|
||||
log.Error("Unable to open git repo: %s for %-v: %v", repo.RepoPath(), repo, err)
|
||||
|
@ -337,7 +336,6 @@ func (b *Indexer) Search(ctx context.Context, opts *internal.SearchOptions) (int
|
|||
if result, err = b.inner.Indexer.Search(facetRequest); err != nil {
|
||||
return 0, nil, nil, err
|
||||
}
|
||||
|
||||
}
|
||||
languagesFacet := result.Facets["languages"]
|
||||
for _, term := range languagesFacet.Terms.Terms() {
|
||||
|
|
|
@ -68,7 +68,7 @@ func ToSearchOptions(keyword string, opts *issues_model.IssuesOptions) *SearchOp
|
|||
searchOpt.Paginator = opts.Paginator
|
||||
|
||||
switch opts.SortType {
|
||||
case "":
|
||||
case "", "latest":
|
||||
searchOpt.SortBy = SortByCreatedDesc
|
||||
case "oldest":
|
||||
searchOpt.SortBy = SortByCreatedAsc
|
||||
|
@ -86,7 +86,7 @@ func ToSearchOptions(keyword string, opts *issues_model.IssuesOptions) *SearchOp
|
|||
searchOpt.SortBy = SortByDeadlineDesc
|
||||
case "priority", "priorityrepo", "project-column-sorting":
|
||||
// Unsupported sort type for search
|
||||
searchOpt.SortBy = SortByUpdatedDesc
|
||||
fallthrough
|
||||
default:
|
||||
searchOpt.SortBy = SortByUpdatedDesc
|
||||
}
|
||||
|
|
|
@ -145,7 +145,6 @@ func (b *Indexer) Search(ctx context.Context, options *internal.SearchOptions) (
|
|||
query := elastic.NewBoolQuery()
|
||||
|
||||
if options.Keyword != "" {
|
||||
|
||||
searchType := esMultiMatchTypePhrasePrefix
|
||||
if options.IsFuzzyKeyword {
|
||||
searchType = esMultiMatchTypeBestFields
|
||||
|
|
|
@ -125,7 +125,6 @@ func EventFormatTextMessage(mode *WriterMode, event *Event, msgFormat string, ms
|
|||
if mode.Colorize {
|
||||
buf = append(buf, resetBytes...)
|
||||
}
|
||||
|
||||
}
|
||||
if flags&(Lshortfile|Llongfile) != 0 {
|
||||
if mode.Colorize {
|
||||
|
|
|
@ -54,7 +54,7 @@ var (
|
|||
shortLinkPattern = regexp.MustCompile(`\[\[(.*?)\]\](\w*)`)
|
||||
|
||||
// anySHA1Pattern splits url containing SHA into parts
|
||||
anyHashPattern = regexp.MustCompile(`https?://(?:\S+/){4,5}([0-9a-f]{40,64})(/[-+~_%.a-zA-Z0-9/]+)?(#[-+~_%.a-zA-Z0-9]+)?`)
|
||||
anyHashPattern = regexp.MustCompile(`https?://(?:\S+/){4,5}([0-9a-f]{40,64})(/[-+~_%.a-zA-Z0-9/]+)?(\?[-+~_%\.a-zA-Z0-9=&]+)?(#[-+~_%.a-zA-Z0-9]+)?`)
|
||||
|
||||
// comparePattern matches "http://domain/org/repo/compare/COMMIT1...COMMIT2#hash"
|
||||
comparePattern = regexp.MustCompile(`https?://(?:\S+/){4,5}([0-9a-f]{7,64})(\.\.\.?)([0-9a-f]{7,64})?(#[-+~_%.a-zA-Z0-9]+)?`)
|
||||
|
@ -623,10 +623,10 @@ func mentionProcessor(ctx *RenderContext, node *html.Node) {
|
|||
if DefaultProcessorHelper.IsUsernameMentionable != nil && DefaultProcessorHelper.IsUsernameMentionable(ctx.Ctx, mentionedUsername) {
|
||||
replaceContent(node, loc.Start, loc.End, createLink(util.URLJoin(ctx.Links.Prefix(), mentionedUsername), mention, "mention"))
|
||||
node = node.NextSibling.NextSibling
|
||||
start = 0
|
||||
} else {
|
||||
node = node.NextSibling
|
||||
start = loc.End
|
||||
}
|
||||
start = 0
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -969,10 +969,10 @@ func fullHashPatternProcessor(ctx *RenderContext, node *html.Node) {
|
|||
subpath = node.Data[m[4]:m[5]]
|
||||
}
|
||||
|
||||
// 4th capture group matches a optional url hash
|
||||
// 5th capture group matches a optional url hash
|
||||
hash := ""
|
||||
if m[7] > 0 {
|
||||
hash = node.Data[m[6]:m[7]][1:]
|
||||
if m[9] > 0 {
|
||||
hash = node.Data[m[8]:m[9]][1:]
|
||||
}
|
||||
|
||||
start := m[0]
|
||||
|
|
|
@ -403,28 +403,39 @@ func TestRegExp_anySHA1Pattern(t *testing.T) {
|
|||
"https://github.com/jquery/jquery/blob/a644101ed04d0beacea864ce805e0c4f86ba1cd1/test/unit/event.js#L2703": {
|
||||
"a644101ed04d0beacea864ce805e0c4f86ba1cd1",
|
||||
"/test/unit/event.js",
|
||||
"",
|
||||
"#L2703",
|
||||
},
|
||||
"https://github.com/jquery/jquery/blob/a644101ed04d0beacea864ce805e0c4f86ba1cd1/test/unit/event.js": {
|
||||
"a644101ed04d0beacea864ce805e0c4f86ba1cd1",
|
||||
"/test/unit/event.js",
|
||||
"",
|
||||
"",
|
||||
},
|
||||
"https://github.com/jquery/jquery/commit/0705be475092aede1eddae01319ec931fb9c65fc": {
|
||||
"0705be475092aede1eddae01319ec931fb9c65fc",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
},
|
||||
"https://github.com/jquery/jquery/tree/0705be475092aede1eddae01319ec931fb9c65fc/src": {
|
||||
"0705be475092aede1eddae01319ec931fb9c65fc",
|
||||
"/src",
|
||||
"",
|
||||
"",
|
||||
},
|
||||
"https://try.gogs.io/gogs/gogs/commit/d8a994ef243349f321568f9e36d5c3f444b99cae#diff-2": {
|
||||
"d8a994ef243349f321568f9e36d5c3f444b99cae",
|
||||
"",
|
||||
"",
|
||||
"#diff-2",
|
||||
},
|
||||
"https://codeberg.org/forgejo/forgejo/src/commit/949ab9a5c4cac742f84ae5a9fa186f8d6eb2cdc0/RELEASE-NOTES.md?display=source&w=1#L7-L9": {
|
||||
"949ab9a5c4cac742f84ae5a9fa186f8d6eb2cdc0",
|
||||
"/RELEASE-NOTES.md",
|
||||
"?display=source&w=1",
|
||||
"#L7-L9",
|
||||
},
|
||||
}
|
||||
|
||||
for k, v := range testCases {
|
||||
|
|
|
@ -127,6 +127,12 @@ func TestRender_CrossReferences(t *testing.T) {
|
|||
test(
|
||||
util.URLJoin(markup.TestAppURL, "gogitea", "some-repo-name", "issues", "12345"),
|
||||
`<p><a href="`+util.URLJoin(markup.TestAppURL, "gogitea", "some-repo-name", "issues", "12345")+`" class="ref-issue" rel="nofollow">gogitea/some-repo-name#12345</a></p>`)
|
||||
|
||||
sha := "65f1bf27bc3bf70f64657658635e66094edbcb4d"
|
||||
urlWithQuery := util.URLJoin(markup.TestAppURL, "forgejo", "some-repo-name", "commit", sha, "README.md") + "?display=source#L1-L5"
|
||||
test(
|
||||
urlWithQuery,
|
||||
`<p><a href="`+urlWithQuery+`" rel="nofollow"><code>`+sha[:10]+`/README.md (L1-L5)</code></a></p>`)
|
||||
}
|
||||
|
||||
func TestMisc_IsSameDomain(t *testing.T) {
|
||||
|
|
|
@ -460,7 +460,6 @@ func TestColorPreview(t *testing.T) {
|
|||
res, err := markdown.RenderString(&markup.RenderContext{Ctx: git.DefaultContext}, test.testcase)
|
||||
assert.NoError(t, err, "Unexpected error in testcase: %q", test.testcase)
|
||||
assert.Equal(t, template.HTML(test.expected), res, "Unexpected result in testcase %q", test.testcase)
|
||||
|
||||
}
|
||||
|
||||
negativeTests := []string{
|
||||
|
@ -555,7 +554,6 @@ func TestMathBlock(t *testing.T) {
|
|||
res, err := markdown.RenderString(&markup.RenderContext{Ctx: git.DefaultContext}, test.testcase)
|
||||
assert.NoError(t, err, "Unexpected error in testcase: %q", test.testcase)
|
||||
assert.Equal(t, template.HTML(test.expected), res, "Unexpected result in testcase %q", test.testcase)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -147,7 +147,6 @@ func (r *Writer) resolveLink(node org.Node) string {
|
|||
}
|
||||
if len(link) > 0 && !markup.IsLinkStr(link) &&
|
||||
link[0] != '#' && !strings.HasPrefix(link, mailto) {
|
||||
|
||||
var base string
|
||||
if r.Ctx.IsWiki {
|
||||
base = r.Ctx.Links.WikiLink()
|
||||
|
|
|
@ -147,35 +147,35 @@ func (e *MarshalEncoder) marshalIntInternal(i int64) error {
|
|||
return e.w.WriteByte(byte(i - 5))
|
||||
}
|
||||
|
||||
var len int
|
||||
var length int
|
||||
if 122 < i && i <= 0xff {
|
||||
len = 1
|
||||
length = 1
|
||||
} else if 0xff < i && i <= 0xffff {
|
||||
len = 2
|
||||
length = 2
|
||||
} else if 0xffff < i && i <= 0xffffff {
|
||||
len = 3
|
||||
length = 3
|
||||
} else if 0xffffff < i && i <= 0x3fffffff {
|
||||
len = 4
|
||||
length = 4
|
||||
} else if -0x100 <= i && i < -123 {
|
||||
len = -1
|
||||
length = -1
|
||||
} else if -0x10000 <= i && i < -0x100 {
|
||||
len = -2
|
||||
length = -2
|
||||
} else if -0x1000000 <= i && i < -0x100000 {
|
||||
len = -3
|
||||
length = -3
|
||||
} else if -0x40000000 <= i && i < -0x1000000 {
|
||||
len = -4
|
||||
length = -4
|
||||
} else {
|
||||
return ErrInvalidIntRange
|
||||
}
|
||||
|
||||
if err := e.w.WriteByte(byte(len)); err != nil {
|
||||
if err := e.w.WriteByte(byte(length)); err != nil {
|
||||
return err
|
||||
}
|
||||
if len < 0 {
|
||||
len = -len
|
||||
if length < 0 {
|
||||
length = -length
|
||||
}
|
||||
|
||||
for c := 0; c < len; c++ {
|
||||
for c := 0; c < length; c++ {
|
||||
if err := e.w.WriteByte(byte(i >> uint(8*c) & 0xff)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -244,13 +244,13 @@ func (e *MarshalEncoder) marshalArray(arr reflect.Value) error {
|
|||
return err
|
||||
}
|
||||
|
||||
len := arr.Len()
|
||||
length := arr.Len()
|
||||
|
||||
if err := e.marshalIntInternal(int64(len)); err != nil {
|
||||
if err := e.marshalIntInternal(int64(length)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for i := 0; i < len; i++ {
|
||||
for i := 0; i < length; i++ {
|
||||
if err := e.marshal(arr.Index(i).Interface()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -339,7 +339,6 @@ func (pm *Manager) ProcessStacktraces(flat, noSystem bool) ([]*Process, int, int
|
|||
}
|
||||
sort.Slice(processes, after(processes))
|
||||
if !flat {
|
||||
|
||||
var sortChildren func(process *Process)
|
||||
|
||||
sortChildren = func(process *Process) {
|
||||
|
|
|
@ -32,7 +32,6 @@ func CreateTemporaryPath(prefix string) (string, error) {
|
|||
if err != nil {
|
||||
log.Error("Unable to create temporary directory: %s-*.git (%v)", prefix, err)
|
||||
return "", fmt.Errorf("Failed to create dir %s-*.git: %w", prefix, err)
|
||||
|
||||
}
|
||||
return basePath, nil
|
||||
}
|
||||
|
|
|
@ -19,9 +19,8 @@ func loadTimeFrom(rootCfg ConfigProvider) {
|
|||
DefaultUILocation, err = time.LoadLocation(zone)
|
||||
if err != nil {
|
||||
log.Fatal("Load time zone failed: %v", err)
|
||||
} else {
|
||||
log.Info("Default UI Location is %v", zone)
|
||||
}
|
||||
log.Info("Default UI Location is %v", zone)
|
||||
}
|
||||
if DefaultUILocation == nil {
|
||||
DefaultUILocation = time.Local
|
||||
|
|
|
@ -138,10 +138,9 @@ func wrapTmplErrMsg(msg string) {
|
|||
if setting.IsProd {
|
||||
// in prod mode, Forgejo must have correct templates to run
|
||||
log.Fatal("Forgejo can't run with template errors: %s", msg)
|
||||
} else {
|
||||
// in dev mode, do not need to really exit, because the template errors could be fixed by developer soon and the templates get reloaded
|
||||
log.Error("There are template errors but Forgejo continues to run in dev mode: %s", msg)
|
||||
}
|
||||
// in dev mode, do not need to really exit, because the template errors could be fixed by developer soon and the templates get reloaded
|
||||
log.Error("There are template errors but Forgejo continues to run in dev mode: %s", msg)
|
||||
}
|
||||
|
||||
type templateErrorPrettier struct {
|
||||
|
|
|
@ -84,9 +84,8 @@ func Mailer(ctx context.Context) (*texttmpl.Template, *template.Template) {
|
|||
if err = buildSubjectBodyTemplate(subjectTemplates, bodyTemplates, tmplName, content); err != nil {
|
||||
if firstRun {
|
||||
log.Fatal("Failed to parse mail template, err: %v", err)
|
||||
} else {
|
||||
log.Error("Failed to parse mail template, err: %v", err)
|
||||
}
|
||||
log.Error("Failed to parse mail template, err: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,6 +50,11 @@ func TestApostrophesInMentions(t *testing.T) {
|
|||
assert.EqualValues(t, template.HTML("<p><a href=\"/mention-user\" rel=\"nofollow\">@mention-user</a>'s comment</p>\n"), rendered)
|
||||
}
|
||||
|
||||
func TestNonExistantUserMention(t *testing.T) {
|
||||
rendered := RenderMarkdownToHtml(context.Background(), "@ThisUserDoesNotExist @mention-user")
|
||||
assert.EqualValues(t, template.HTML("<p>@ThisUserDoesNotExist <a href=\"/mention-user\" rel=\"nofollow\">@mention-user</a></p>\n"), rendered)
|
||||
}
|
||||
|
||||
func TestRenderCommitBody(t *testing.T) {
|
||||
type args struct {
|
||||
ctx context.Context
|
||||
|
|
|
@ -121,9 +121,9 @@ func Test_NormalizeEOL(t *testing.T) {
|
|||
}
|
||||
|
||||
func Test_RandomInt(t *testing.T) {
|
||||
int, err := CryptoRandomInt(255)
|
||||
assert.True(t, int >= 0)
|
||||
assert.True(t, int <= 255)
|
||||
randInt, err := CryptoRandomInt(255)
|
||||
assert.True(t, randInt >= 0)
|
||||
assert.True(t, randInt <= 255)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
|
|
10
options/license/HPND-UC-export-US
Normal file
10
options/license/HPND-UC-export-US
Normal file
|
@ -0,0 +1,10 @@
|
|||
Copyright (C) 1985, 1990 Regents of the University of California.
|
||||
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software and its documentation for any purpose and without
|
||||
fee is hereby granted, provided that the above copyright
|
||||
notice appear in all copies. The University of California
|
||||
makes no representations about the suitability of this
|
||||
software for any purpose. It is provided "as is" without
|
||||
express or implied warranty. Export of this software outside
|
||||
of the United States of America may require an export license.
|
32
options/license/NCL
Normal file
32
options/license/NCL
Normal file
|
@ -0,0 +1,32 @@
|
|||
Copyright (c) 2004 the University Corporation for Atmospheric
|
||||
Research ("UCAR"). All rights reserved. Developed by NCAR's
|
||||
Computational and Information Systems Laboratory, UCAR,
|
||||
www.cisl.ucar.edu.
|
||||
|
||||
Redistribution and use of the Software in source and binary forms,
|
||||
with or without modification, is permitted provided that the
|
||||
following conditions are met:
|
||||
|
||||
- Neither the names of NCAR's Computational and Information Systems
|
||||
Laboratory, the University Corporation for Atmospheric Research,
|
||||
nor the names of its sponsors or contributors may be used to
|
||||
endorse or promote products derived from this Software without
|
||||
specific prior written permission.
|
||||
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notices, this list of conditions, and the disclaimer below.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions, and the disclaimer below in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
|
||||
SOFTWARE.
|
|
@ -127,6 +127,7 @@ remove_all = أزل الكل
|
|||
remove_label_str = أزل العنصر "%s"
|
||||
confirm_delete_artifact = هل أنت متأكد أنك تريد حذف العنصر '%s'؟
|
||||
toggle_menu = تبديل القائمة
|
||||
more_items = عناصر اضافية
|
||||
|
||||
[install]
|
||||
db_name = اسم قاعدة البيانات
|
||||
|
|
|
@ -983,7 +983,7 @@ activity.no_git_activity = Не е имало никаква дейност с
|
|||
pulls.merged_title_desc_few = сля %[1]d подавания от <code>%[2]s</code> в <code>%[3]s</code> %[4]s
|
||||
diff.stats_desc_file = %d промени: %d добавяния и %d изтривания
|
||||
issues.content_history.created = създадено
|
||||
pulls.status_checks_success = Всички проверки бяха успешни
|
||||
pulls.status_checks_success = Всички проверки са успешни
|
||||
activity.git_stats_pushed_n = са изтласкали
|
||||
pulls.select_commit_hold_shift_for_range = Изберете подаване. Задръжте shift + click, за да изберете обхвата
|
||||
activity.git_stats_addition_1 = %d добавяне
|
||||
|
@ -1084,7 +1084,7 @@ issues.review.un_resolve_conversation = Нерешаване на обсъжда
|
|||
diff.comment.add_single_comment = Добавяне на единичен коментар
|
||||
diff.review.header = Изпращане на рецензия
|
||||
diff.comment.start_review = Започване на рецензия
|
||||
diff.review = Рецензиране
|
||||
diff.review = Завършване на рецензията
|
||||
diff.review.placeholder = Рецензионен коментар
|
||||
issues.num_participants_one = %d участващ
|
||||
diff.comment.reply = Отговаряне
|
||||
|
@ -1128,6 +1128,8 @@ issues.draft_title = Чернова
|
|||
pulls.reopen_to_merge = Моля, отворете наново тази заявка за сливане, за да извършите сливане.
|
||||
pulls.cant_reopen_deleted_branch = Тази заявка за сливане не може да бъде отворена наново, защото клонът бе изтрит.
|
||||
pulls.status_checks_hide_all = Скриване на всички проверки
|
||||
pulls.status_checks_failure = Някои проверки са неуспешни
|
||||
issues.review.add_review_request = поиска рецензия от %s %s
|
||||
|
||||
[modal]
|
||||
confirm = Потвърждаване
|
||||
|
|
|
@ -159,6 +159,7 @@ filter.not_archived = Není archivováno
|
|||
filter.clear = Vymazat filtry
|
||||
more_items = Další položky
|
||||
invalid_data = Neplatná data: %v
|
||||
copy_generic = Kopírovat do schránky
|
||||
|
||||
[aria]
|
||||
navbar=Navigační lišta
|
||||
|
@ -2517,7 +2518,7 @@ diff.comment.add_single_comment=Přidat jeden komentář
|
|||
diff.comment.add_review_comment=Přidat komentář
|
||||
diff.comment.start_review=Začít posuzování
|
||||
diff.comment.reply=Odpovědět
|
||||
diff.review=Posouzení
|
||||
diff.review=Dokončit posouzení
|
||||
diff.review.header=Odeslat posouzení
|
||||
diff.review.placeholder=Posoudit komentář
|
||||
diff.review.comment=Okomentovat
|
||||
|
@ -2749,6 +2750,10 @@ settings.sourcehut_builds.secrets = Tajné klíče
|
|||
settings.sourcehut_builds.secrets_helper = Udělit práci přístup k tajným klíčům sestavení (vyžaduje oprávnění SECRETS:RO)
|
||||
settings.graphql_url = URL GraphQL
|
||||
settings.sourcehut_builds.access_token_helper = Přístupový token, který má oprávnění JOBS:RW. Vygenerujte <a target="_blank" rel="noopener noreferrer" href="%s">token builds.sr.ht</a> nebo <a target="_blank" rel="noopener noreferrer" href="%s">token builds.sr.ht s přístupem k tajným klíčům</a> na meta.sr.ht.
|
||||
settings.matrix.room_id_helper = ID místnosti lze získat z webového klienta Element > Nastavení místnosti > Rozšířené > Interní ID místnosti. Příklad: %s.
|
||||
settings.matrix.access_token_helper = Pro tuto akci je doporučeno vytvořit oddělený účet Matrix. Přístupový token lze získat z webového klienta Element (v soukromé/anonymní kartě) > Uživatelské menu (vlevo nahoře) > Všechna nastavení > O aplikaci a pomoc > Rozšířené > Přístupový token (přímo pod adresou domovského serveru). Soukromou/anonymní kartu zavřete (odhlášením token zneplatníte).
|
||||
release.hide_archive_links = Skrýt automaticky generované archivy
|
||||
release.hide_archive_links_helper = Pro toto vydání skrýt automaticky generované archivy zdrojového kódu. Užitečné například pokud nahráváte své vlastní.
|
||||
|
||||
[graphs]
|
||||
component_loading_info = Tohle může chvíli trvat…
|
||||
|
|
|
@ -157,6 +157,7 @@ filter.public = Öffentlich
|
|||
filter.private = Privat
|
||||
more_items = Mehr Einträge
|
||||
invalid_data = Ungültige Daten: %v
|
||||
copy_generic = In die Zwischenablage kopieren
|
||||
|
||||
[aria]
|
||||
navbar=Navigationsleiste
|
||||
|
@ -644,13 +645,13 @@ change_avatar=Profilbild ändern …
|
|||
joined_on=Beigetreten am %s
|
||||
repositories=Repositorys
|
||||
activity=Öffentliche Aktivität
|
||||
followers_few=%d follower
|
||||
followers_few=%d Follower
|
||||
starred=Favorisierte Repositorys
|
||||
watched=Beobachtete Repositorys
|
||||
code=Quelltext
|
||||
projects=Projekte
|
||||
overview=Übersicht
|
||||
following_few=%d folge ich
|
||||
following_few=%d Folge ich
|
||||
follow=Folgen
|
||||
unfollow=Nicht mehr folgen
|
||||
user_bio=Biografie
|
||||
|
@ -672,7 +673,7 @@ follow_blocked_user = Du kannst diesen Benutzer nicht folgen, weil du ihn blocki
|
|||
block_user.detail_3 = Dieser Benutzer kann dich nicht als einen Mitarbeiter hinzufügen, und du kannst ihn nicht als Mitarbeiter hinzufügen.
|
||||
unblock = Nicht mehr blockieren
|
||||
followers_one = %d Follower
|
||||
following_one = einem gefolgt
|
||||
following_one = %d Folge ich
|
||||
|
||||
[settings]
|
||||
profile=Profil
|
||||
|
@ -2519,7 +2520,7 @@ diff.comment.add_single_comment=Einzelnen Kommentar hinzufügen
|
|||
diff.comment.add_review_comment=Kommentar hinzufügen
|
||||
diff.comment.start_review=Review starten
|
||||
diff.comment.reply=Antworten
|
||||
diff.review=Reviewen
|
||||
diff.review=Review abschließen
|
||||
diff.review.header=Review einreichen
|
||||
diff.review.placeholder=Kommentar zum Review
|
||||
diff.review.comment=Kommentieren
|
||||
|
@ -2740,6 +2741,8 @@ settings.graphql_url = GraphQL-URL
|
|||
settings.matrix.room_id_helper = Die Raum-ID kann über den Element-Webclient ermittelt werden: Raumeinstellungen > Erweitert > Interne Raum-ID. Beispielsweise %s.
|
||||
settings.sourcehut_builds.access_token_helper = Zugangstoken der die JOBS:RW-Freigabe hat. Generiere auf meta.sr.ht einen <a target="_blank" rel="noopener noreferrer" href="%s">builds.sr.ht-Token</a> oder einen <a target="_blank" rel="noopener noreferrer" href="%s">builds.sr.ht-Token mit Zugriff auf die Secrets</a>.
|
||||
settings.matrix.access_token_helper = Es wird empfohlen, einen dedizierten Matrix-Account hierfür anzulegen. Der Zugangstoken kann in einem Incognito-Tab über den Element-Webclient geholt werden: Benutzermenü (oben links) > Alle Einstellungen > Hilfe & Über > Erweitert > Zugangstoken (direkt unter der Homeserver-URL). Schließe das Incognito-Tab dann (Abmelden würde den Token ungültig werden lassen).
|
||||
release.hide_archive_links = Automatisch generierte Archive verstecken
|
||||
release.hide_archive_links_helper = Verstecke automatisch generierte Quellcodearchive für diesen Release. Zum Beispiel, wenn du deine eigenen hochlädst.
|
||||
|
||||
[graphs]
|
||||
|
||||
|
|
|
@ -1067,11 +1067,6 @@ readme = README
|
|||
readme_helper = Select a README file template.
|
||||
readme_helper_desc = This is the place where you can write a complete description for your project.
|
||||
auto_init = Initialize repository (Adds .gitignore, License and README)
|
||||
trust_model_helper = Select trust model for signature verification. Possible options are:
|
||||
trust_model_helper_collaborator = Collaborator: Trust signatures by collaborators
|
||||
trust_model_helper_committer = Committer: Trust signatures that match committers
|
||||
trust_model_helper_collaborator_committer = Collaborator+Committer: Trust signatures by collaborators which match the committer
|
||||
trust_model_helper_default = Default: Use the default trust model for this installation
|
||||
create_repo = Create repository
|
||||
default_branch = Default branch
|
||||
default_branch_label = default
|
||||
|
@ -2004,22 +1999,22 @@ wiki = Wiki
|
|||
wiki.welcome = Welcome to the Wiki.
|
||||
wiki.welcome_desc = The wiki lets you write and share documentation with collaborators.
|
||||
wiki.desc = Write and share documentation with collaborators.
|
||||
wiki.create_first_page = Create the First Page
|
||||
wiki.create_first_page = Create the first page
|
||||
wiki.page = Page
|
||||
wiki.filter_page = Filter page
|
||||
wiki.new_page = Page
|
||||
wiki.page_title = Page title
|
||||
wiki.page_content = Page content
|
||||
wiki.default_commit_message = Write a note about this page update (optional).
|
||||
wiki.save_page = Save Page
|
||||
wiki.save_page = Save page
|
||||
wiki.cancel = Cancel
|
||||
wiki.last_commit_info = %s edited this page %s
|
||||
wiki.edit_page_button = Edit
|
||||
wiki.new_page_button = New Page
|
||||
wiki.file_revision = Page Revision
|
||||
wiki.wiki_page_revisions = Wiki Page Revisions
|
||||
wiki.new_page_button = New page
|
||||
wiki.file_revision = Page revision
|
||||
wiki.wiki_page_revisions = Page revisions
|
||||
wiki.back_to_wiki = Back to wiki page
|
||||
wiki.delete_page_button = Delete Page
|
||||
wiki.delete_page_button = Delete page
|
||||
wiki.delete_page_notice_1 = Deleting the wiki page "%s" cannot be undone. Continue?
|
||||
wiki.page_already_exists = A wiki page with the same name already exists.
|
||||
wiki.reserved_page = The wiki page name "%s" is reserved.
|
||||
|
@ -2190,12 +2185,12 @@ settings.pulls.default_allow_edits_from_maintainers = Allow edits from maintaine
|
|||
settings.releases_desc = Enable repository releases
|
||||
settings.packages_desc = Enable repository package registry
|
||||
settings.projects_desc = Enable repository projects
|
||||
settings.actions_desc = Enable repository actions
|
||||
settings.actions_desc = Enable integrated CI/CD pipelines with Forgejo Actions
|
||||
settings.admin_settings = Administrator settings
|
||||
settings.admin_enable_health_check = Enable repository health checks (git fsck)
|
||||
settings.admin_code_indexer = Code indexer
|
||||
settings.admin_stats_indexer = Code statistics indexer
|
||||
settings.admin_indexer_commit_sha = Last indexed SHA
|
||||
settings.admin_indexer_commit_sha = Last indexed commit
|
||||
settings.admin_indexer_unindexed = Unindexed
|
||||
settings.reindex_button = Add to reindex queue
|
||||
settings.reindex_requested=Reindex requested
|
||||
|
@ -2616,7 +2611,7 @@ diff.review.reject = Request changes
|
|||
diff.review.self_approve = Pull request authors can't approve their own pull request
|
||||
diff.committed_by = committed by
|
||||
diff.protected = Protected
|
||||
diff.image.side_by_side = Side by Side
|
||||
diff.image.side_by_side = Side by side
|
||||
diff.image.swipe = Swipe
|
||||
diff.image.overlay = Overlay
|
||||
diff.has_escaped = This line has hidden Unicode characters
|
||||
|
@ -2627,16 +2622,16 @@ releases.desc = Track project versions and downloads.
|
|||
release.releases = Releases
|
||||
release.detail = Release details
|
||||
release.tags = Tags
|
||||
release.new_release = New Release
|
||||
release.new_release = New release
|
||||
release.draft = Draft
|
||||
release.prerelease = Pre-Release
|
||||
release.prerelease = Pre-release
|
||||
release.stable = Stable
|
||||
release.compare = Compare
|
||||
release.edit = edit
|
||||
release.ahead.commits = <strong>%d</strong> commits
|
||||
release.ahead.target = to %s since this release
|
||||
tag.ahead.target = to %s since this tag
|
||||
release.source_code = Source Code
|
||||
release.source_code = Source code
|
||||
release.new_subheader = Releases organize project versions.
|
||||
release.edit_subheader = Releases organize project versions.
|
||||
release.tag_name = Tag name
|
||||
|
@ -2647,15 +2642,15 @@ release.tag_helper_existing = Existing tag.
|
|||
release.title = Release title
|
||||
release.title_empty = Title cannot be empty.
|
||||
release.message = Describe this release
|
||||
release.prerelease_desc = Mark as Pre-Release
|
||||
release.prerelease_desc = Mark as pre-release
|
||||
release.prerelease_helper = Mark this release unsuitable for production use.
|
||||
release.cancel = Cancel
|
||||
release.publish = Publish Release
|
||||
release.save_draft = Save Draft
|
||||
release.edit_release = Update Release
|
||||
release.delete_release = Delete Release
|
||||
release.delete_tag = Delete Tag
|
||||
release.deletion = Delete Release
|
||||
release.publish = Publish release
|
||||
release.save_draft = Save draft
|
||||
release.edit_release = Update release
|
||||
release.delete_release = Delete release
|
||||
release.delete_tag = Delete tag
|
||||
release.deletion = Delete release
|
||||
release.deletion_desc = Deleting a release only removes it from Forgejo. It will not affect the Git tag, the contents of your repository or its history. Continue?
|
||||
release.deletion_success = The release has been deleted.
|
||||
release.deletion_tag_desc = Will delete this tag from repository. Repository contents and history remain unchanged. Continue?
|
||||
|
@ -2670,7 +2665,7 @@ release.download_count_few = %s downloads
|
|||
release.add_tag_msg = Use the title and content of release as tag message.
|
||||
release.hide_archive_links = Hide automatically generated archives
|
||||
release.hide_archive_links_helper = Hide automatically generated source code archives for this release. For example, if you are uploading your own.
|
||||
release.add_tag = Create Tag Only
|
||||
release.add_tag = Create tag
|
||||
release.releases_for = Releases for %s
|
||||
release.tags_for = Tags for %s
|
||||
release.system_generated = This attachment is automatically generated.
|
||||
|
@ -2759,7 +2754,7 @@ team_name_helper = Team names should be short and memorable.
|
|||
team_desc_helper = Describe the purpose or role of the team.
|
||||
team_access_desc = Repository access
|
||||
team_permission_desc = Permission
|
||||
team_unit_desc = Allow access to tepository sections
|
||||
team_unit_desc = Allow access to repository sections
|
||||
team_unit_disabled = (Disabled)
|
||||
follow_blocked_user = You cannot follow this organisation because this organisation has blocked you.
|
||||
|
||||
|
@ -2799,9 +2794,9 @@ settings.labels_desc = Add labels which can be used on issues for <strong>all re
|
|||
|
||||
members.membership_visibility = Membership visibility:
|
||||
members.public = Visible
|
||||
members.public_helper = make hidden
|
||||
members.public_helper = Make hidden
|
||||
members.private = Hidden
|
||||
members.private_helper = make visible
|
||||
members.private_helper = Make visible
|
||||
members.member_role = Member role:
|
||||
members.owner = Owner
|
||||
members.member = Member
|
||||
|
@ -2957,8 +2952,8 @@ dashboard.last_gc_time = Time since last GC
|
|||
dashboard.total_gc_pause = Total GC pause
|
||||
dashboard.last_gc_pause = Last GC pause
|
||||
dashboard.gc_times = GC times
|
||||
dashboard.delete_old_actions = Delete all old actions from database
|
||||
dashboard.delete_old_actions.started = Delete all old actions from database started.
|
||||
dashboard.delete_old_actions = Delete all old activities from database
|
||||
dashboard.delete_old_actions.started = Delete all old activities from database started.
|
||||
dashboard.update_checker = Update checker
|
||||
dashboard.delete_old_system_notices = Delete all old system notices from database
|
||||
dashboard.gc_lfs = Garbage collect LFS meta objects
|
||||
|
@ -2966,8 +2961,8 @@ dashboard.stop_zombie_tasks = Stop zombie tasks
|
|||
dashboard.stop_endless_tasks = Stop endless tasks
|
||||
dashboard.cancel_abandoned_jobs = Cancel abandoned jobs
|
||||
dashboard.start_schedule_tasks = Start schedule tasks
|
||||
dashboard.sync_branch.started = Branches Sync started
|
||||
dashboard.sync_tag.started = Tags Sync started
|
||||
dashboard.sync_branch.started = Branch sync started
|
||||
dashboard.sync_tag.started = Tag sync started
|
||||
dashboard.rebuild_issue_indexer = Rebuild issue indexer
|
||||
|
||||
users.user_manage_panel = Manage user accounts
|
||||
|
@ -2985,7 +2980,7 @@ users.repos = Repos
|
|||
users.created = Created
|
||||
users.last_login = Last sign-in
|
||||
users.never_login = Never signed in
|
||||
users.send_register_notify = Send user registration notification
|
||||
users.send_register_notify = Notify about registration via email
|
||||
users.new_success = The user account "%s" has been created.
|
||||
users.edit = Edit
|
||||
users.auth_source = Authentication source
|
||||
|
@ -3106,6 +3101,7 @@ auths.attribute_mail = Email attribute
|
|||
auths.attribute_ssh_public_key = Public SSH key attribute
|
||||
auths.attribute_avatar = Avatar attribute
|
||||
auths.attributes_in_bind = Fetch attributes in bind DN context
|
||||
auths.default_domain_name = Default domain name used for the email address
|
||||
auths.allow_deactivate_all = Allow an empty search result to deactivate all users
|
||||
auths.use_paged_search = Use paged search
|
||||
auths.search_page_size = Page size
|
||||
|
@ -3668,8 +3664,7 @@ management = Manage secrets
|
|||
|
||||
[actions]
|
||||
actions = Actions
|
||||
|
||||
unit.desc = Manage actions
|
||||
unit.desc = Manage integrated CI/CD pipelines with Forgejo Actions
|
||||
|
||||
status.unknown = Unknown
|
||||
status.waiting = Waiting
|
||||
|
|
|
@ -114,14 +114,40 @@ concept_user_organization=Organisaatio
|
|||
|
||||
|
||||
name=Nimi
|
||||
enable_javascript = Tämä sivu vaatii Javascriptin.
|
||||
new_project_column = Uusi sarake
|
||||
retry = Yritä uudelleen
|
||||
copy_type_unsupported = Tätä tiedostotyyppiä ei voi kopioida
|
||||
locked = Lukittu
|
||||
filter = Suodatin
|
||||
filter.is_archived = Arkistoitu
|
||||
filter.not_archived = Ei arkistoitu
|
||||
filter.public = Julkinen
|
||||
filter.private = Yksityinen
|
||||
copy_content = Kopioi sisältö
|
||||
download_logs = Lataa lokit
|
||||
show_full_screen = Näytä koko näytössä
|
||||
unknown = Tuntematon
|
||||
show_timestamps = Näytä aikaleimat
|
||||
show_log_seconds = Näytä sekunnit
|
||||
copy_generic = Kopioi leikepöydälle
|
||||
|
||||
[aria]
|
||||
footer.links = Linkit
|
||||
|
||||
[heatmap]
|
||||
less = Vähemmän
|
||||
more = Enemmän
|
||||
|
||||
[editor]
|
||||
buttons.code.tooltip = Lisää koodia
|
||||
buttons.link.tooltip = Lisää linkki
|
||||
buttons.mention.tooltip = Mainitse käyttäjä tai tiimi
|
||||
buttons.list.task.tooltip = Lisää tehtävälista
|
||||
|
||||
[filter]
|
||||
string.asc = A - Ö
|
||||
string.desc = Ö - A
|
||||
|
||||
[error]
|
||||
occurred=Virhe tapahtui
|
||||
|
|
|
@ -140,6 +140,7 @@ home = Panimula
|
|||
dashboard = Dashboard
|
||||
more_items = Higit pang mga item
|
||||
invalid_data = Hindi wastong datos: %v
|
||||
copy_generic = Kopyahin sa clipboard
|
||||
|
||||
[home]
|
||||
search_repos = Maghanap ng Repository…
|
||||
|
@ -592,6 +593,12 @@ admin_cannot_delete_self = Hindi mo maaring burahin ang sarili mo kapag isa kang
|
|||
required_prefix = Ang input ay dapat magsimula sa "%s"
|
||||
FullName = Buong pangalan
|
||||
Description = Paglalarawan
|
||||
Pronouns = Mga panghalip
|
||||
Website = Website
|
||||
To = Pangalan ng branch
|
||||
AccessToken = Token ng pag-access
|
||||
Biography = Byograpya
|
||||
Location = Lokasyon
|
||||
|
||||
[user]
|
||||
joined_on = Sumali noong %s
|
||||
|
@ -922,7 +929,7 @@ remove_account_link_success = Tinanggal na ang naka-link na account.
|
|||
visibility.limited_tooltip = Makikita lamang ng mga naka-authenticate na user
|
||||
webauthn_delete_key_desc = Kapag magtanggal ka ng security key hindi ka na makaka-sign in gamit niyan. Magpatuloy?
|
||||
manage_account_links_desc = Ang mga panlabas na account na ito ay naka-link sa iyong Forgejo account.
|
||||
hooks.desc = Magdagdag mg mga webhook na mati-trigger para sa <strong>lahat ng mga repositoryo</strong> na minamay-ari mo.
|
||||
hooks.desc = Magdagdag ng mga webhook na mati-trigger para sa <strong>lahat ng mga repositoryo</strong> na minamay-ari mo.
|
||||
orgs_none = Hindi ka isang miyembro ng anumang mga organisasyon.
|
||||
oauth2_application_create_description = Ang mga OAuth2 application ay pinapayagan ang mga third-party na aplikasyon na i-access ang mga user account sa instansya na ito.
|
||||
oauth2_application_locked = Ang Forgejo ay pini-pre register ang ibang mga OAuth2 application sa startup kapag naka-enable sa config. Para iwasan ang hindi inaasahang gawain, hindi ito maaring i-edit o tanggalin. Mangyaring sumangguni sa dokumentasyon ng OAuth2 para sa karagdagang impormasyon.
|
||||
|
@ -1429,6 +1436,12 @@ milestones.title = Pamagat
|
|||
milestones.desc = paglalarawan
|
||||
pulls.blocked_by_user = Hindi ka makakagawa ng [pull request] sa [repository] na ito dahil hinarang ka ng may-ari ng [repository].
|
||||
pulls.no_merge_access = Hindi ka pinapayagang isali ang [pull request] na ito.
|
||||
editor.commit_directly_to_this_branch = Direktang mag-commit sa branch na <strong class="branch-name">%s</strong>.
|
||||
editor.branch_already_exists = Umiiral na ang branch na "%s" sa repositoryo na ito.
|
||||
editor.file_editing_no_longer_exists = Ang file na ine-edit, "%s", ay hindi na umiiral sa repositoryo na ito.
|
||||
editor.filename_is_a_directory = Ang pangalan ng file "%s" ay ginagamit na bilang pangalan ng direktoryo sa repositoryo na ito.
|
||||
editor.file_is_a_symlink = `Ang %s ay isang symbolink link. Hindi mae-edit ang mga symbolic link sa web editor`
|
||||
editor.directory_is_a_file = Ang pangalan ng direktoryo "%s" ay ginagamit na bilang pangalan ng file sa repositoryo na ito.
|
||||
|
||||
[search]
|
||||
commit_kind = Maghanap ng mga commit...
|
||||
|
@ -1690,6 +1703,31 @@ repos.owner = May-ari
|
|||
repos.lfs_size = Laki ng LFS
|
||||
packages.package_manage_panel = Ipamahala ang mga package
|
||||
auths.attribute_mail = Attribute ng email
|
||||
config.server_config = Configuration ng server
|
||||
config.app_name = Pangalan ng instansya
|
||||
config.lfs_root_path = Root path ng LFS
|
||||
config.log_file_root_path = Path ng log
|
||||
config.ssh_root_path = Root path
|
||||
config.script_type = Uri ng script
|
||||
config.reverse_auth_user = Authentication user ng reverse proxy
|
||||
config.ssh_domain = Server domain ng SSH
|
||||
config.custom_conf = File path ng configuration
|
||||
config.app_url = Base URL
|
||||
config.offline_mode = Lokal na mode
|
||||
config.ssh_port = Port
|
||||
config.custom_file_root_path = Pasadyang root path ng file
|
||||
config.domain = Domain ng server
|
||||
config.disable_router_log = I-disable ang router log
|
||||
config.run_user = User na tatakbo bilang
|
||||
config.run_mode = Mode ng pagtakbo
|
||||
config.app_data_path = Path ng data ng app
|
||||
config.repo_root_path = Root path ng repositoryo
|
||||
config.ssh_config = Configuration ng SSH
|
||||
config.ssh_enabled = Naka-enable
|
||||
config.ssh_start_builtin_server = Gamitin ang built-in server
|
||||
config.ssh_listen_port = Listen port
|
||||
config.ssh_keygen_path = Path ng keygen ("ssh-keygen")
|
||||
config.ssh_key_test_path = Path ng key test
|
||||
|
||||
[org]
|
||||
repo_updated = Binago
|
||||
|
|
|
@ -151,13 +151,14 @@ filter.not_fork = Non dupliqué
|
|||
filter.not_mirror = Non répliqué
|
||||
filter.is_template = Modèle
|
||||
filter.not_template = Pas un modèle
|
||||
filter.public = Public
|
||||
filter.public = Publique
|
||||
filter.private = Privé
|
||||
filter = Filtre
|
||||
filter.is_mirror = Répliqué
|
||||
toggle_menu = Menu va-et-vient
|
||||
more_items = Plus d'éléments
|
||||
invalid_data = Données invalides : %v
|
||||
copy_generic = Copier dans le presse-papiers
|
||||
|
||||
[aria]
|
||||
navbar=Barre de navigation
|
||||
|
@ -633,6 +634,14 @@ admin_cannot_delete_self=Vous ne pouvez pas vous supprimer vous-même lorsque vo
|
|||
unsupported_login_type = Ce type de compte ne peut être supprimé.
|
||||
unset_password = L'utilisateur connecté n'a pas de mot de passe.
|
||||
required_prefix = Le texte entré doit commencer par "%s"
|
||||
AccessToken = Jeton d'accès
|
||||
FullName = Nom complet
|
||||
Description = Description
|
||||
Pronouns = Qualités
|
||||
Biography = Biographie
|
||||
Website = Site web
|
||||
Location = Emplacement
|
||||
To = Nom de la branche
|
||||
|
||||
[user]
|
||||
change_avatar=Changer votre avatar…
|
||||
|
@ -1255,7 +1264,7 @@ video_not_supported_in_browser=Votre navigateur ne supporte pas la balise « vi
|
|||
audio_not_supported_in_browser=Votre navigateur ne supporte pas la balise « audio » HTML5.
|
||||
stored_lfs=Stocké avec Git LFS
|
||||
symbolic_link=Lien symbolique
|
||||
executable_file=Fichiers exécutables
|
||||
executable_file=Fichier exécutable
|
||||
vendored=Externe
|
||||
generated=Générée
|
||||
commit_graph=Graphe des révisions
|
||||
|
@ -1437,7 +1446,7 @@ issues.new.no_items=Pas d'élément
|
|||
issues.new.milestone=Jalon
|
||||
issues.new.no_milestone=Sans jalon
|
||||
issues.new.clear_milestone=Effacer le jalon
|
||||
issues.new.open_milestone=Ouvrir un jalon
|
||||
issues.new.open_milestone=Jalons ouverts
|
||||
issues.new.closed_milestone=Jalons fermés
|
||||
issues.new.assignees=Assignés
|
||||
issues.new.clear_assignees=Supprimer les affectations
|
||||
|
@ -2311,9 +2320,9 @@ settings.authorization_header_desc=Si présent, sera ajouté aux requêtes comme
|
|||
settings.active=Actif
|
||||
settings.active_helper=Les informations sur les événements déclenchés seront envoyées à cette url de Webhook.
|
||||
settings.add_hook_success=Nouveau Webhook ajouté.
|
||||
settings.update_webhook=Actualiser le déclencheur
|
||||
settings.update_webhook=Actualiser le déclencheur « webhook »
|
||||
settings.update_hook_success=Déclencheur Web actualisé.
|
||||
settings.delete_webhook=Retirer le webhook
|
||||
settings.delete_webhook=Retirer le déclencheur
|
||||
settings.recent_deliveries=Livraisons récentes
|
||||
settings.hook_type=Type de déclencheur
|
||||
settings.slack_token=Jeton
|
||||
|
@ -2361,13 +2370,13 @@ settings.protected_branch_can_push_no=Vous ne pouvez pas pousser
|
|||
settings.branch_protection=Paramètres de protection pour les branches du motif "<b>%s</b>"
|
||||
settings.protect_this_branch=Activer la protection de branche
|
||||
settings.protect_this_branch_desc=Empêche les suppressions et limite les poussées et fusions sur cette branche.
|
||||
settings.protect_disable_push=Désactiver la soumission
|
||||
settings.protect_disable_push=Désactiver la soumission (push)
|
||||
settings.protect_disable_push_desc=Aucune soumission ne sera possible sur cette branche.
|
||||
settings.protect_enable_push=Activer la soumission
|
||||
settings.protect_enable_push=Activer la soumission (push)
|
||||
settings.protect_enable_push_desc=Toute personne ayant un accès en écriture sera autorisée à soumettre sur cette branche (sans forcer).
|
||||
settings.protect_enable_merge=Activer la fusion
|
||||
settings.protect_enable_merge_desc=Toute personne ayant un accès en écriture sera autorisée à fusionner les demandes d'ajout dans cette branche.
|
||||
settings.protect_whitelist_committers=Liste blanche des soumissions
|
||||
settings.protect_whitelist_committers=Liste blanche des soumissions (push)
|
||||
settings.protect_whitelist_committers_desc=Seuls les utilisateurs ou les équipes autorisés pourront soumettre sur cette branche (sans forcer).
|
||||
settings.protect_whitelist_deploy_keys=Mettez les clés de déploiement sur liste blanche avec accès en écriture pour soumettre.
|
||||
settings.protect_whitelist_users=Utilisateurs sur liste blanche :
|
||||
|
@ -2378,7 +2387,7 @@ settings.protect_merge_whitelist_committers=Activer la liste blanche pour la fus
|
|||
settings.protect_merge_whitelist_committers_desc=N'autoriser que les utilisateurs et les équipes en liste blanche d'appliquer les demandes de fusion sur cette branche.
|
||||
settings.protect_merge_whitelist_users=Utilisateurs en liste blanche de fusion :
|
||||
settings.protect_merge_whitelist_teams=Équipes en liste blanche de fusion :
|
||||
settings.protect_check_status_contexts=Activer le contrôle qualité
|
||||
settings.protect_check_status_contexts=Activer le contrôle de status
|
||||
settings.protect_status_check_patterns=Motifs de vérification des statuts :
|
||||
settings.protect_status_check_patterns_desc=Entrez des motifs pour spécifier quelles vérifications doivent réussir avant que des branches puissent être fusionnées. Un motif par ligne. Un motif ne peut être vide.
|
||||
settings.protect_check_status_contexts_desc=Exiger le status « succès » avant de fusionner. Quand activée, une branche protégée ne peux accepter que des soumissions ou des fusions ayant le status « succès ». Lorsqu'il n'y a pas de contexte, la dernière révision fait foi.
|
||||
|
@ -2396,7 +2405,7 @@ settings.dismiss_stale_approvals=Révoquer automatiquement les approbations pér
|
|||
settings.dismiss_stale_approvals_desc=Lorsque des nouvelles révisions changent le contenu de la demande d’ajout, les approbations existantes sont révoquées.
|
||||
settings.ignore_stale_approvals=Ignorer les approbations obsolètes
|
||||
settings.ignore_stale_approvals_desc=Ignorer les approbations d’anciennes révisions (évaluations obsolètes) du décompte des approbations de la demande d’ajout. Non pertinent quand les évaluations obsolètes sont déjà révoquées.
|
||||
settings.require_signed_commits=Exiger des révisions signées
|
||||
settings.require_signed_commits=Exiger des révisions (commits) signées
|
||||
settings.require_signed_commits_desc=Rejeter les soumissions sur cette branche lorsqu'ils ne sont pas signés ou vérifiables.
|
||||
settings.protect_branch_name_pattern=Motif de nom de branche protégé
|
||||
settings.protect_branch_name_pattern_desc=Motifs de nom de branche protégé. Consultez la <a href="github.com/gobwas/glob">documentation</a> pour la syntaxe du motif. Exemples : <code>main</code>, <code>release/**</code>
|
||||
|
@ -2404,7 +2413,7 @@ settings.protect_patterns=Motifs
|
|||
settings.protect_protected_file_patterns=Liste des fichiers et motifs protégés (séparés par un point virgule ";") :
|
||||
settings.protect_protected_file_patterns_desc=Les fichiers protégés ne peuvent être modifiés, même si l'utilisateur a le droit d'ajouter, éditer ou supprimer des fichiers dans cette branche. Plusieurs motifs peuvent être séparés par un point-virgule (;). Voir la documentation de <a href='https://pkg.go.dev/github.com/gobwas/glob#Compile'>github.com/gobwas/glob</a> pour la syntaxe des motifs. Exemples: <code>.forgejo/workflows/test.yml</code>, <code>/docs/**/*.txt</code>. ; », qui ne pourront pas être modifiés même si les utilisateurs disposent des droits sur la branche. Voir la <a href='https://pkg.go.dev/github.com/gobwas/glob#Compile'>syntaxe glob</a>. Exemples : <code>.drone.yml ; /docs/**/*.txt</code>.
|
||||
settings.protect_unprotected_file_patterns=Liste des fichiers et motifs exclus (séparés par un point virgule ";") :
|
||||
settings.protect_unprotected_file_patterns_desc=Les fichiers non-protégés qui peuvent être modifiés si l'utilisateur a le droit d'écriture, prenant le pas sur les restrictions de push. Plusieurs motifs peuvent être séparés par un point-virgule (;). Voir la documentation de <a href='https://pkg.go.dev/github.com/gobwas/glob#Compile'>github.com/gobwas/glob</a> pour la syntaxe des motifs. Exemples: <code>.forgejo/workflows/test.yml</code>, <code>/docs/**/*.txt</code>. ; », qui pourront être modifiés malgré la protection de branche, par les utilisateurs autorisés. Voir la <a href='https://pkg.go.dev/github.com/gobwas/glob#Compile'>syntaxe Glob</a>. Exemples : <code>.drone.yml ; /docs/**/*.txt</code>.
|
||||
settings.protect_unprotected_file_patterns_desc=Les fichiers non-protégés qui peuvent être modifiés si l'utilisateur a le droit d'écriture, prenant le pas sur les restrictions de push. Plusieurs motifs peuvent être séparés par un point-virgule (;). Voir la documentation de <a href='https://pkg.go.dev/github.com/gobwas/glob#Compile'>github.com/gobwas/glob</a> pour la syntaxe des motifs. Exemples: <code>.forgejo/workflows/test.yml</code>, <code>/docs/**/*.txt</code>. ; », qui pourront être modifiés malgré la protection de branche, par les utilisateurs autorisés. Voir la <a href='https://pkg.go.dev/github.com/gobwas/glob#Compile'>syntaxe Glob</a>. Exemples : <code>.drone.yml ; /docs/**/*.txt</code>.
|
||||
settings.add_protected_branch=Activer la protection
|
||||
settings.delete_protected_branch=Désactiver la protection
|
||||
settings.update_protect_branch_success=La règle de protection de branche "%s" a été mise à jour.
|
||||
|
@ -2437,7 +2446,7 @@ settings.tags.protection.allowed.noone=Personne
|
|||
settings.tags.protection.create=Ajouter une règle
|
||||
settings.tags.protection.none=Il n'y a pas d'étiquettes protégées.
|
||||
settings.tags.protection.pattern.description=Vous pouvez utiliser au choix un nom unique, un motif de glob ou une expression régulière qui correspondra à plusieurs étiquettes. Pour plus d’informations, consultez le <a target="_blank" rel="noopener" href="https://forgejo.org/docs/latest/user/protection/#protected-tags">guide sur les étiquettes protégées</a>.
|
||||
settings.bot_token=Jeton de bot
|
||||
settings.bot_token=Jeton (token) de bot
|
||||
settings.chat_id=ID de conversation
|
||||
settings.thread_id=ID du fil
|
||||
settings.matrix.homeserver_url=URL du serveur d'accueil
|
||||
|
@ -2725,19 +2734,23 @@ issues.num_participants_one = %d participant
|
|||
issues.archived_label_description = (Archivé) %s
|
||||
settings.add_webhook.invalid_path = L'emplacement ne peut pas contenir ni ".", ni "..", ni être vide, et ne peut pas commencer ou se terminer par un slash.
|
||||
settings.sourcehut_builds.secrets_helper = Permettre au job d'accéder aux secrets de build (nécessite la permission SECRETS:RO)
|
||||
size_format = %[1]s : %[2]s ; %[3]s : %[4]s
|
||||
size_format = %[1]s : %[2]s, %[3]s : %[4]s ; %[3]s : %[4]s
|
||||
settings.sourcehut_builds.visibility = Visibilité du job
|
||||
settings.sourcehut_builds.secrets = Secrets
|
||||
settings.sourcehut_builds.manifest_path = Construire le chemin du manifeste
|
||||
settings.sourcehut_builds.manifest_path = Chemin du manifest de build
|
||||
settings.sourcehut_builds.graphql_url = URL GraphQL (e.g. https://builds.sr.ht/query)
|
||||
release.download_count_one = %s téléchargement
|
||||
release.download_count_few = %s téléchargements
|
||||
release.system_generated = Cet attachement a été généré automatiquement.
|
||||
settings.enforce_on_admins_desc = Les administrateurs du dépôt ne peuvent pas contourner cette règle.
|
||||
settings.web_hook_name_sourcehut_builds = SourceHut Builds
|
||||
settings.enforce_on_admins = Contraindre les administrateurs du dépôt par cette règle
|
||||
settings.enforce_on_admins_desc = Les administrateurs du dépôt ne peuvent pas passer outre cette règle
|
||||
settings.web_hook_name_sourcehut_builds = Builds SourceHut
|
||||
settings.enforce_on_admins = Appliquer cette règles aux administrateurs du dépôt
|
||||
settings.rename_branch_failed_protected = Impossible de renommer la branche %s car il s'agit d'une branche protégée.
|
||||
settings.event_pull_request_enforcement = Amélioration
|
||||
settings.graphql_url = URL GraphQL
|
||||
settings.matrix.room_id_helper = L'identifiant du salon peut être obtenu dans le client web Element. Par exemple : %s.
|
||||
settings.sourcehut_builds.access_token_helper = Un jeton d'accès ayant des permissions JOBS:RW. Génère un <a target="_blank" rel="noopener noreferrer" href="%s">jeton builds.sr.ht</a> ou un <a target="_blank" rel="noopener noreferrer" href="%s">jeton builds.sr.ht token ayant accès aux secrets</a> sur meta.sr.ht.
|
||||
settings.matrix.access_token_helper = Il est recommandé de créer un compte Matrix dédié pour cela. Le jeton d'accès peut être obtenu depuis le client web Element (dans un onglet privé/incognito). Il faut ensuite fermer l'onglet privé/icognito (se déconnecter invaliderait le jeton).
|
||||
|
||||
[graphs]
|
||||
component_loading=Chargement de %s…
|
||||
|
@ -2951,7 +2964,7 @@ dashboard.heap_memory_released=Mémoire tas (Heap) libérée
|
|||
dashboard.heap_objects=Objets tas (Heap)
|
||||
dashboard.bootstrap_stack_usage=Utilisation pile bootstrap
|
||||
dashboard.stack_memory_obtained=Mémoire pile obtenue
|
||||
dashboard.mspan_structures_usage=Utilisation des Structures MSpan
|
||||
dashboard.mspan_structures_usage=Utilisation des structures MSpan
|
||||
dashboard.mspan_structures_obtained=Structures MSpan obtenues
|
||||
dashboard.mcache_structures_usage=Utilisation des structures MCache
|
||||
dashboard.mcache_structures_obtained=Structures MCache obtenues
|
||||
|
@ -3026,9 +3039,9 @@ users.list_status_filter.reset=Réinitialiser
|
|||
users.list_status_filter.is_active=Actif
|
||||
users.list_status_filter.not_active=Inactif
|
||||
users.list_status_filter.is_admin=Administrateur
|
||||
users.list_status_filter.not_admin=Non Administrateur
|
||||
users.list_status_filter.not_admin=Non administrateur
|
||||
users.list_status_filter.is_restricted=Restreint
|
||||
users.list_status_filter.not_restricted=Non restraint
|
||||
users.list_status_filter.not_restricted=Non restreint
|
||||
users.list_status_filter.is_prohibit_login=Interdit de connexion
|
||||
users.list_status_filter.not_prohibit_login=Autorisé à se connecter
|
||||
users.list_status_filter.is_2fa_enabled=2FA Activé
|
||||
|
@ -3112,7 +3125,7 @@ auths.attribute_username=Attribut nom d'utilisateur
|
|||
auths.attribute_username_placeholder=Laisser vide afin d'utiliser le nom d'utilisateur spécifié dans Forgejo.
|
||||
auths.attribute_name=Attribut prénom
|
||||
auths.attribute_surname=Attribut nom de famille
|
||||
auths.attribute_mail=Attribut e-mail
|
||||
auths.attribute_mail=Attribut courriel
|
||||
auths.attribute_ssh_public_key=Attribut clef SSH publique
|
||||
auths.attribute_avatar=Attribut de l'avatar
|
||||
auths.attributes_in_bind=Aller chercher les attributs dans le contexte de liaison DN
|
||||
|
@ -3227,7 +3240,7 @@ config.repo_root_path=Emplacement des Dépôts
|
|||
config.lfs_root_path=Répertoire racine LFS
|
||||
config.log_file_root_path=Chemin des fichiers logs
|
||||
config.script_type=Type de script
|
||||
config.reverse_auth_user=Annuler l'authentification de l'utilisateur
|
||||
config.reverse_auth_user=Annuler l'authentification par proxy de l'utilisateur
|
||||
|
||||
config.ssh_config=Configuration SSH
|
||||
config.ssh_enabled=Activé
|
||||
|
@ -3297,10 +3310,10 @@ config.mailer_sendmail_args=Arguments supplémentaires pour Sendmail
|
|||
config.mailer_sendmail_timeout=Délai d’attente de Sendmail
|
||||
config.mailer_use_dummy=Factice
|
||||
config.test_email_placeholder=E-mail (ex: test@example.com)
|
||||
config.send_test_mail=Envoyer un e-mail de test
|
||||
config.send_test_mail=Envoyer un courriel de test
|
||||
config.send_test_mail_submit=Envoyer
|
||||
config.test_mail_failed=Impossible d'envoyer un email de test à "%s" : %v
|
||||
config.test_mail_sent=Un e-mail de test a été envoyé à "%s".
|
||||
config.test_mail_failed=Impossible d'envoyer un courriel de test à "%s" : %v
|
||||
config.test_mail_sent=Un courriel de test a été envoyé à "%s".
|
||||
|
||||
config.oauth_config=Configuration OAuth
|
||||
config.oauth_enabled=Activé
|
||||
|
@ -3308,7 +3321,7 @@ 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.cache_conn=Connexion du cache
|
||||
config.cache_item_ttl=Durée de vie des éléments dans le cache
|
||||
|
||||
config.session_config=Configuration de session
|
||||
|
@ -3374,7 +3387,7 @@ monitor.queue.type=Type
|
|||
monitor.queue.exemplar=Type d'exemple
|
||||
monitor.queue.numberworkers=Nombre de processus
|
||||
monitor.queue.activeworkers=Processus actifs
|
||||
monitor.queue.maxnumberworkers=Nombre maximale de processus
|
||||
monitor.queue.maxnumberworkers=Nombre maximal de processus
|
||||
monitor.queue.numberinqueue=Position dans la queue
|
||||
monitor.queue.review_add=Examiner / ajouter des processus
|
||||
monitor.queue.settings.title=Paramètres du réservoir
|
||||
|
@ -3390,7 +3403,7 @@ monitor.queue.settings.remove_all_items_done=Tous les éléments de la file d'at
|
|||
notices.system_notice_list=Notifications systèmes
|
||||
notices.view_detail_header=Voir les détails de la notification
|
||||
notices.operations=Opérations
|
||||
notices.select_all=Tout Sélectionner
|
||||
notices.select_all=Tout sélectionner
|
||||
notices.deselect_all=Tout désélectionner
|
||||
notices.inverse_selection=Inverser la sélection
|
||||
notices.delete_selected=Supprimer les éléments sélectionnés
|
||||
|
@ -3412,11 +3425,13 @@ self_check.database_fix_mysql = Les utilisateurs de MySQL/MariaDB peuvent utilis
|
|||
|
||||
self_check.no_problem_found=Aucun problème trouvé pour l’instant.
|
||||
self_check.database_collation_mismatch=Exige que la base de données utilise la collation %s.
|
||||
self_check.database_collation_case_insensitive=La base de données utilise la collation %s, insensible à la casse. Bien que Gitea soit compatible, il peut y avoir quelques rares cas qui ne fonctionnent pas comme prévu.
|
||||
self_check.database_collation_case_insensitive=La base de données utilise la collation %s, insensible à la casse. Bien que Forgejo soit compatible, il peut y avoir quelques rares cas qui ne fonctionnent pas comme prévu.
|
||||
self_check.database_inconsistent_collation_columns=La base de données utilise la collation %s, mais ces colonnes utilisent des collations différentes. Cela peut causer des problèmes imprévus.
|
||||
self_check.database_fix_mysql=Pour les utilisateurs de MySQL ou MariaDB, vous pouvez utiliser la commande « gitea doctor convert » dans un terminal ou exécuter une requête du type « ALTER … COLLATE ... » pour résoudre les problèmes de collation.
|
||||
self_check.database_fix_mysql=Pour les utilisateurs de MySQL ou MariaDB, vous pouvez utiliser la commande « forgejo doctor convert » dans un terminal ou exécuter une requête du type « ALTER … COLLATE ... » pour résoudre les problèmes de collation.
|
||||
config_settings = Paramètres
|
||||
config_summary = Résumé
|
||||
auths.tips.gmail_settings = Paramètres Gmail :
|
||||
auths.tip.gitlab_new = Enregistrer une nouvelle application sur https://gitlab.com/-/profile/applications
|
||||
|
||||
[action]
|
||||
create_repo=a créé le dépôt <a href="%s">%s</a>
|
||||
|
@ -3530,7 +3545,7 @@ details=Détails
|
|||
details.author=Auteur
|
||||
details.project_site=Site du projet
|
||||
details.repository_site=Site du dépôt
|
||||
details.documentation_site=Site de documentation
|
||||
details.documentation_site=Site de la documentation
|
||||
details.license=Licence
|
||||
assets=Ressources
|
||||
versions=Versions
|
||||
|
@ -3661,6 +3676,7 @@ owner.settings.chef.keypair.description=Une paire de clés est nécessaire pour
|
|||
rpm.repository = Information sur le dépôt
|
||||
rpm.repository.architectures = Architectures
|
||||
rpm.repository.multiple_groups = Ce paquet est disponible dans plusieurs groupes.
|
||||
owner.settings.cargo.rebuild.no_index = Incapable de reconstruire, index non initialisé.
|
||||
|
||||
[secrets]
|
||||
secrets=Secrets
|
||||
|
@ -3769,7 +3785,7 @@ variables.creation.success=La variable « %s » a été ajoutée.
|
|||
variables.update.failed=Impossible d’éditer la variable.
|
||||
variables.update.success=La variable a bien été modifiée.
|
||||
runs.no_workflows.quick_start = Vous ne savez pas comment commencer avec Forgejo Action ? Consultez <a target="_blank" rel="noopener noreferrer" href="%s">le guide de démarrage rapide</a>.
|
||||
runs.no_workflows.documentation = Pour plus d’informations sur les Actions Forgejo, voir <a target="_blank" rel="noopener noreferrer" href="%s">la documentation</a>.
|
||||
runs.no_workflows.documentation = Pour plus d’informations sur Forgejo Actions, voir <a target="_blank" rel="noopener noreferrer" href="%s">la documentation</a>.
|
||||
variables.id_not_exist = La variable numéro %d n’existe pas.
|
||||
runs.workflow = Workflow
|
||||
|
||||
|
@ -3804,14 +3820,14 @@ recent_commits.what = commits récents
|
|||
search = Rechercher...
|
||||
type_tooltip = Type de recherche
|
||||
fuzzy = Approximatif
|
||||
code_search_by_git_grep = Les résultats de recherche dans le code sont fournis par "git grep". Les résultats pourraient être plus pertinents si l'administrateur du site active les indexeurs de dépôt.
|
||||
code_search_by_git_grep = Les résultats de recherche dans le code sont fournis par "git grep". Les résultats pourraient être plus pertinents si l'administrateur du site active les indexeurs de code source.
|
||||
runner_kind = Chercher les runners...
|
||||
no_results = Aucun résultat n'a été trouvé.
|
||||
keyword_search_unavailable = La recherche par mot-clé n'est pas disponible actuellement. Veuillez contacter l'administrateur du site.
|
||||
fuzzy_tooltip = Inclure les résultats proches des termes recherchés
|
||||
match = Correspondance
|
||||
match_tooltip = Uniquement inclure les résultats correspondant exactement aux termes recherchés
|
||||
repo_kind = Chercher dans le dépôt...
|
||||
repo_kind = Chercher dans les dépôt...
|
||||
user_kind = Chercher les utilisateurs...
|
||||
org_kind = Chercher les organisations...
|
||||
team_kind = Chercher les équipes...
|
||||
|
@ -3821,3 +3837,12 @@ package_kind = Chercher les paquets...
|
|||
project_kind = Chercher les projets...
|
||||
branch_kind = Chercher les branches...
|
||||
commit_kind = Chercher les commits...
|
||||
|
||||
|
||||
[munits.data]
|
||||
b = o
|
||||
|
||||
[markup]
|
||||
filepreview.line = Ligne %[1]d dans %[2]s
|
||||
filepreview.lines = Lignes %[1]d jusqu'à %[2]d dans %[3]s
|
||||
filepreview.truncated = L'aperçu a été tronqué
|
|
@ -143,13 +143,13 @@ confirm_delete_selected=選択したすべてのアイテムを削除してよ
|
|||
name=名称
|
||||
value=値
|
||||
filter.is_archived = アーカイブ
|
||||
filter.not_archived = 非アーカイブ
|
||||
filter.not_archived = アーカイブされていない
|
||||
filter.is_fork = フォーク
|
||||
filter.is_mirror = ミラー
|
||||
filter.not_mirror = 非ミラー
|
||||
filter.not_mirror = ミラーされていない
|
||||
filter.is_template = テンプレート
|
||||
filter = フィルター
|
||||
filter.not_fork = 非フォーク
|
||||
filter.not_fork = フォークされていない
|
||||
filter.clear = フィルタをクリアする
|
||||
filter.public = 公開
|
||||
filter.private = 非公開
|
||||
|
@ -157,6 +157,7 @@ toggle_menu = トグルメニュー
|
|||
filter.not_template = テンプレートではない
|
||||
invalid_data = 無効なデータ: %v
|
||||
more_items = さらに表示
|
||||
copy_generic = クリップボード
|
||||
|
||||
[aria]
|
||||
navbar=ナビゲーションバー
|
||||
|
@ -169,6 +170,8 @@ number_of_contributions_in_the_last_12_months=過去 12 か月間で %s 件の
|
|||
contributions_zero=貢献なし
|
||||
less=少
|
||||
more=多
|
||||
contributions_one = 貢献
|
||||
contributions_few = 貢献
|
||||
|
||||
[editor]
|
||||
buttons.heading.tooltip=見出し追加
|
||||
|
@ -240,7 +243,7 @@ err_admin_name_pattern_not_allowed=管理者のユーザー名が不正です。
|
|||
err_admin_name_is_invalid=管理者のユーザー名が不正です
|
||||
|
||||
general_title=基本設定
|
||||
app_name=インスタンスの名前
|
||||
app_name=インスタンス名
|
||||
app_name_helper=企業名をここに入れることができます。
|
||||
repo_path=リポジトリのルートパス
|
||||
repo_path_helper=リモートGitリポジトリはこのディレクトリに保存されます。
|
||||
|
@ -332,7 +335,7 @@ switch_dashboard_context=ダッシュボードのコンテキスト切替
|
|||
my_repos=リポジトリ
|
||||
show_more_repos=リポジトリをさらに表示…
|
||||
collaborative_repos=共同リポジトリ
|
||||
my_orgs=自分の組織
|
||||
my_orgs=組織
|
||||
my_mirrors=自分のミラー
|
||||
view_home=%s を表示
|
||||
search_repos=リポジトリを探す…
|
||||
|
@ -373,6 +376,10 @@ code_search_results=`"%s" の検索結果`
|
|||
code_last_indexed_at=最終取得 %s
|
||||
relevant_repositories_tooltip=フォークリポジトリや、トピック、アイコン、説明のいずれも無いリポジトリは表示されません。
|
||||
relevant_repositories=妥当と思われるリポジトリのみを表示しています。 <a href="%s">フィルタリングしない結果を表示</a>。
|
||||
stars_few = %d のスター
|
||||
stars_one = %d のスター
|
||||
forks_one = %d のフォーク
|
||||
forks_few = %d のフォーク
|
||||
|
||||
[auth]
|
||||
create_new_account=アカウントを登録
|
||||
|
@ -448,11 +455,13 @@ change_unconfirmed_email = 登録時に間違ったメール アドレスを入
|
|||
change_unconfirmed_email_error = メール アドレスを変更できません: %v
|
||||
change_unconfirmed_email_summary = アクティベーションメールの送信先メールアドレスを変更します。
|
||||
last_admin=最後の管理者は削除できません。少なくとも一人の管理者が必要です。
|
||||
tab_signin = サインイン
|
||||
tab_signup = サインアップ
|
||||
|
||||
[mail]
|
||||
view_it_on=%s で見る
|
||||
reply=またはこのメールに直接返信してください
|
||||
link_not_working_do_paste=開かないですか? コピーしてブラウザーに貼り付けてみてください。
|
||||
link_not_working_do_paste=リンクが開きませんか? コピーしてブラウザーのURLバーに貼り付けてみてください。
|
||||
hi_user_x=こんにちは、<b>%s</b> さん。
|
||||
|
||||
activate_account=あなたのアカウントをアクティベートしてください。
|
||||
|
@ -468,7 +477,7 @@ register_notify=Forgejoへようこそ
|
|||
register_notify.title=%[1]s さん、%[2]s にようこそ
|
||||
register_notify.text_1=これは %s への登録確認メールです!
|
||||
register_notify.text_2=あなたはユーザー名 %s でログインできるようになりました。
|
||||
register_notify.text_3=このアカウントがあなたに作成されたものであれば、最初に<a href="%s">パスワードを設定</a>してください。
|
||||
register_notify.text_3=他の人があなたのアカウントを作成した場合、最初に<a href="%s">パスワードを設定</a>してください。
|
||||
|
||||
reset_password=アカウントを回復
|
||||
reset_password.title=%s さん、あなたのアカウントの復元がリクエストされました
|
||||
|
@ -502,8 +511,8 @@ release.downloads=ダウンロード:
|
|||
release.download.zip=ソースコード (ZIP)
|
||||
release.download.targz=ソースコード (TAR.GZ)
|
||||
|
||||
repo.transfer.subject_to=%s が "%s" を %s に移転しようとしています
|
||||
repo.transfer.subject_to_you=%s が "%s" をあなたに移転しようとしています
|
||||
repo.transfer.subject_to=%s が "%s" を %s に移譲しようとしています
|
||||
repo.transfer.subject_to_you=%s が "%s" をあなたに移譲しようとしています
|
||||
repo.transfer.to_you=あなた
|
||||
repo.transfer.body=承認または拒否するには %s を開きます。 もしくは単に無視してもかまいません。
|
||||
|
||||
|
@ -621,6 +630,15 @@ username_error_no_dots = `英数字 (「0-9」、「a-z」、「A-Z」)、ダッ
|
|||
admin_cannot_delete_self=あなたが管理者である場合、自分自身を削除することはできません。最初に管理者権限を削除してください。
|
||||
unset_password = ログインしたユーザーにパスワードが設定されていません。
|
||||
unsupported_login_type = このログインタイプでは、アカウントの削除はサポートされていません。
|
||||
required_prefix = "%s"から始まる必要があります
|
||||
AccessToken = アクセストークン
|
||||
FullName = 氏名
|
||||
Description = 説明
|
||||
Pronouns = 代名詞
|
||||
Biography = 経歴
|
||||
Website = ウェブサイト
|
||||
Location = 場所
|
||||
To = ブランチ名
|
||||
|
||||
[user]
|
||||
change_avatar=アバターを変更…
|
||||
|
@ -628,8 +646,8 @@ joined_on=%sに登録
|
|||
repositories=リポジトリ
|
||||
activity=公開アクティビティ
|
||||
followers_few=%d フォロワー
|
||||
starred=スター付きリポジトリ
|
||||
watched=ウォッチ中リポジトリ
|
||||
starred=スターを付けたリポジトリ
|
||||
watched=ウォッチ中のリポジトリ
|
||||
code=コード
|
||||
projects=プロジェクト
|
||||
overview=概要
|
||||
|
@ -654,6 +672,8 @@ block_user = ユーザーをブロック
|
|||
unblock = ブロックを解除
|
||||
block = ブロック
|
||||
block_user.detail = このユーザーをブロックした場合、下記の事などが起こります。例えば:
|
||||
followers_one = %d のフォロワー
|
||||
following_one = %d のフォロワー
|
||||
|
||||
[settings]
|
||||
profile=プロフィール
|
||||
|
@ -682,7 +702,7 @@ password_username_disabled=非ローカルユーザーのユーザー名は変
|
|||
full_name=フルネーム
|
||||
website=Webサイト
|
||||
location=場所
|
||||
update_theme=テーマを更新
|
||||
update_theme=テーマを変更
|
||||
update_profile=プロフィール更新
|
||||
update_language=言語を更新
|
||||
update_language_not_found=言語 "%s" は利用できません。
|
||||
|
@ -972,6 +992,14 @@ user_unblock_success = このユーザーをアンブロックするのに成功
|
|||
blocked_since = %s からブロック中
|
||||
user_block_success = このユーザーをブロックするのに成功しました。
|
||||
change_password = パスワードを変更
|
||||
pronouns = 代名詞
|
||||
pronouns_custom = カスタム
|
||||
pronouns_unspecified = 未指定
|
||||
update_hints = アップデートのヒント
|
||||
additional_repo_units_hint_description = 利用可能なすべての機能が有効になっていないリポジトリに対して、「機能を追加...」ボタンを表示します。
|
||||
update_hints_success = ヒントが更新されました。
|
||||
hints = ヒント
|
||||
additional_repo_units_hint = リポジトリでより多くの機能を有効にすることを推奨する
|
||||
|
||||
[repo]
|
||||
new_repo_helper=リポジトリには、プロジェクトのすべてのファイルとリビジョン履歴が入ります。 すでにほかの場所でホストしていますか? <a href="%s">リポジトリを移行</a> もどうぞ。
|
||||
|
@ -2660,8 +2688,50 @@ settings.units.add_more = さらに...
|
|||
settings.wiki_globally_editable = 誰にでもWikiの編集を許す
|
||||
settings.confirmation_string = 確認
|
||||
settings.wiki_rename_branch_main_notices_1 = この操作は 取り消し<strong>できません</strong> 。
|
||||
stars = スター
|
||||
n_tag_few = %s のタグ
|
||||
settings.graphql_url = GraphQL URL
|
||||
n_branch_one = %s のブランチ
|
||||
settings.units.units = リポジトリ機能
|
||||
settings.wiki_rename_branch_main_notices_2 = これにより、%s のリポジトリ wiki の内部ブランチの名前が永久に変更されます。既存のチェックアウトを更新する必要があります。
|
||||
settings.sourcehut_builds.access_token_helper = JOBS:RW 権限を持つアクセス トークン。meta.sr.ht で <a target="_blank" rel="noopener noreferrer" href="%s">builds.sr.ht トークン</a> または <a target="_blank" rel="noopener noreferrer" href="%s">シークレット アクセスを持つ builds.sr.ht トークン</a> を生成します。
|
||||
settings.enforce_on_admins = リポジトリ管理者にこのルールを適用する
|
||||
activity.navbar.code_frequency = コードの更新頻度
|
||||
settings.wiki_branch_rename_failure = リポジトリ wiki のブランチ名を正規化できませんでした。
|
||||
settings.ignore_stale_approvals = 古い承認を無視する
|
||||
open_with_editor = %s で開く
|
||||
release.download_count_one = %s のダウンロード
|
||||
release.download_count_few = %s のダウンロード
|
||||
release.system_generated = この添付ファイルは自動的に生成されます。
|
||||
settings.archive.mirrors_unavailable = リポジトリがアーカイブされている場合、ミラーは利用できません。
|
||||
settings.rename_branch_failed_protected = 保護されたブランチのため、ブランチ %s の名前を変更できません。
|
||||
n_tag_one = %s のタグ
|
||||
n_branch_few = %s のブランチ
|
||||
n_commit_few = %s のコミット
|
||||
settings.confirm_wiki_branch_rename = Wikiブランチの名前を変更する
|
||||
settings.add_collaborator_blocked_our = リポジトリ所有者が共同作業者をブロックしているため、共同作業者を追加できません。
|
||||
settings.sourcehut_builds.visibility = ジョブの可視性
|
||||
settings.sourcehut_builds.secrets = シークレット
|
||||
settings.ignore_stale_approvals_desc = 古いコミット (古いレビュー) に対して行われた承認を、PR の承認数にカウントしないでください。古いレビューがすでに却下されている場合は関係ありません。
|
||||
settings.enforce_on_admins_desc = リポジトリ管理者はこのルールを回避できません。
|
||||
release.hide_archive_links = 自動生成されたアーカイブを非表示にする
|
||||
n_commit_one = %s のコミット
|
||||
settings.wiki_branch_rename_success = リポジトリ wiki のブランチ名が正常に正規化されました。
|
||||
settings.add_collaborator_blocked_them = リポジトリ所有者がブロックされているため、共同作業者を追加できません。
|
||||
settings.add_webhook.invalid_path = パスには「.」や「..」や空の文字列を含めることはできません。また、スラッシュで開始または終了することはできません。
|
||||
settings.sourcehut_builds.manifest_path = Build manifestのパス
|
||||
settings.sourcehut_builds.secrets_helper = ジョブにビルドシークレットへのアクセス権を付与します (SECRETS:RO 権限が必要です)
|
||||
release.hide_archive_links_helper = このリリース用に自動的に生成されたソース コード アーカイブを非表示にします。たとえば、独自のソース コードをアップロードする場合などです。
|
||||
error.broken_git_hook = このリポジトリの Git フックが壊れているようです。<a target="_blank" rel="noreferrer" href="%s">ドキュメント</a>に従って修正し、コミットをいくつかプッシュしてステータスを更新してください。
|
||||
|
||||
[graphs]
|
||||
component_loading = %s の読み込み中...
|
||||
component_loading_failed = %s を読み込めませんでした
|
||||
component_loading_info = 少し時間がかかるかもしれません…
|
||||
component_failed_to_load = 予期しないエラーが発生しました。
|
||||
code_frequency.what = コード頻度
|
||||
contributors.what = 貢献者
|
||||
recent_commits.what = 最近のコミット
|
||||
|
||||
[org]
|
||||
org_name_holder=組織名
|
||||
|
@ -2786,6 +2856,7 @@ teams.all_repositories_admin_permission_desc=このチームは<strong>すべて
|
|||
teams.invite.title=あなたは組織 <strong>%[2]s</strong> 内のチーム <strong>%[1]s</strong> への参加に招待されました。
|
||||
teams.invite.by=%s からの招待
|
||||
teams.invite.description=下のボタンをクリックしてチームに参加してください。
|
||||
follow_blocked_user = この組織によってブロックされているため、この組織をフォローすることはできません。
|
||||
|
||||
[admin]
|
||||
dashboard=ダッシュボード
|
||||
|
@ -3314,6 +3385,13 @@ notices.type_2=タスク
|
|||
notices.desc=説明
|
||||
notices.op=操作
|
||||
notices.delete_success=システム通知を削除しました。
|
||||
config.open_with_editor_app_help = クローン メニューの「~で開く」エディター。空のままにすると、デフォルトが使用されます。展開してデフォルトを表示します。
|
||||
dashboard.sync_repo_tags = Gitデータからデータベースにタグを同期する
|
||||
dashboard.sync_tag.started = タグの同期が開始されました
|
||||
self_check = セルフチェック
|
||||
auths.tips.gmail_settings = Gmail設定:
|
||||
self_check.no_problem_found = まだ問題は見つかりません。
|
||||
auths.tip.gitlab_new = https://gitlab.com/-/profile/applications で新しいアプリケーションを登録します
|
||||
|
||||
|
||||
[action]
|
||||
|
@ -3555,6 +3633,8 @@ owner.settings.cleanuprules.success.delete=クリーンアップルールが削
|
|||
owner.settings.chef.title=Chefレジストリ
|
||||
owner.settings.chef.keypair=キーペアを生成
|
||||
owner.settings.chef.keypair.description=Chefレジストリの認証にはキーペアが必要です。 すでにキーペアを生成していた場合、新しいキーペアを生成すると古いキーペアは破棄されます。
|
||||
rpm.repository.multiple_groups = このパッケージは複数のグループで利用できます。
|
||||
owner.settings.cargo.rebuild.no_index = 再構築できません、インデックスが初期化されていません。
|
||||
|
||||
[secrets]
|
||||
secrets=シークレット
|
||||
|
@ -3665,6 +3745,7 @@ runs.no_workflows.quick_start = Forgejo Action の始め方がわからない?
|
|||
runs.no_workflows.documentation = Forgejo Action の詳細については、<a target="_blank" rel="noopener noreferrer" href="%s">ドキュメント</a>を参照してください。
|
||||
variables.id_not_exist = idが%dの変数は存在しません。
|
||||
runs.workflow = ワークフロー
|
||||
runs.no_job_without_needs = ワークフローには、依存関係のないジョブが少なくとも 1 つ含まれている必要があります。
|
||||
|
||||
[projects]
|
||||
type-1.display_name=個人プロジェクト
|
||||
|
@ -3685,3 +3766,32 @@ submodule=サブモジュール
|
|||
[search]
|
||||
search = 検索...
|
||||
type_tooltip = 検索タイプ
|
||||
org_kind = 組織の検索...
|
||||
code_kind = コードの検索...
|
||||
fuzzy = あいまい
|
||||
repo_kind = リポジトリの検索...
|
||||
code_search_unavailable = コード検索は現在利用できません。サイト管理者にお問い合わせください。
|
||||
branch_kind = ブランチの検索...
|
||||
commit_kind = コミットの検索...
|
||||
user_kind = ユーザーの検索...
|
||||
team_kind = チームの検索...
|
||||
code_search_by_git_grep = 現在のコード検索結果は「git grep」によって提供されます。サイト管理者がコード インデクサーを有効にすると、より良い結果が得られる可能性があります。
|
||||
package_kind = パッケージの検索...
|
||||
project_kind = プロジェクトの検索...
|
||||
keyword_search_unavailable = キーワードによる検索は現在ご利用いただけません。サイト管理者にお問い合わせください。
|
||||
runner_kind = ランナーの検索...
|
||||
no_results = 一致する結果が見つかりませんでした。
|
||||
|
||||
|
||||
[munits.data]
|
||||
pib = PiB
|
||||
tib = TiB
|
||||
eib = EiB
|
||||
kib = KiB
|
||||
mib = MiB
|
||||
gib = GiB
|
||||
b = B
|
||||
|
||||
[markup]
|
||||
filepreview.lines = %[3]s の %[1]d 行目から %[2]d 行目
|
||||
filepreview.line = %[2]s の %[1]d 行目
|
|
@ -84,6 +84,9 @@ concept_user_organization=조직
|
|||
|
||||
|
||||
name=이름
|
||||
active_stopwatch = 진행중인 타임 트래커
|
||||
sign_in_with_provider = %으로 로그인
|
||||
logo = 로고
|
||||
|
||||
[aria]
|
||||
|
||||
|
|
|
@ -117,10 +117,56 @@ logo = Logo
|
|||
sign_in_with_provider = Zaloguj się za pomocą %s
|
||||
enable_javascript = Ta strona wymaga JavaScript.
|
||||
value = Wartość
|
||||
remove_label_str = Usuń element "%s"
|
||||
locked = Zablokowany
|
||||
copy_type_unsupported = Ten plik nie może być skopiowany
|
||||
pin = Przypnij
|
||||
new_project_column = Nowa kolumna
|
||||
rerun = Uruchom ponownie
|
||||
rerun_all = Uruchom ponownie wszystkie zadania
|
||||
retry = Ponów
|
||||
view = Widok
|
||||
go_back = Wróć
|
||||
filter = Filtr
|
||||
confirm_delete_artifact = Jesteś penwy że chcesz usunąć artefakt "%s"?
|
||||
concept_system_global = Globalne
|
||||
concept_user_individual = Indywidualny
|
||||
filter.clear = Wyczyść filtry
|
||||
copy_hash = Skopiuj hash
|
||||
copy_content = Skopiuj zawartość
|
||||
invalid_data = Nieprawidłowe dane: %v
|
||||
unknown = Nieznane
|
||||
rss_feed = Kanał RSS
|
||||
unpin = Odepnij
|
||||
artifacts = Artefakty
|
||||
show_log_seconds = Pokaż sekundy
|
||||
show_full_screen = Pokaż pełny ekran
|
||||
download_logs = Pobierz logi
|
||||
confirm_delete_selected = Potwierdzić usunięcie wszystkich wybranych elementów?
|
||||
filter.is_template = Szablon
|
||||
filter.public = Publiczne
|
||||
filter.private = Prywatne
|
||||
copy_generic = Skopiuj do schowka
|
||||
toggle_menu = Przełącz menu
|
||||
tracked_time_summary = Podsumowanie śledzonego czasu na podstawie filtrów listy problemów
|
||||
show_timestamps = Pokaż znaczniki czasu
|
||||
filter.not_archived = Nie zarchiwizowane
|
||||
filter.not_mirror = Nie lustrzane odbicie
|
||||
filter.not_template = Nie szablon
|
||||
filter.is_archived = Zarchiwizowane
|
||||
filter.is_mirror = Lustrzane odbicie
|
||||
more_items = Więcej elementów
|
||||
|
||||
[aria]
|
||||
navbar = Pasek nawigacji
|
||||
footer = Stopka
|
||||
footer.software = O Oprogramoiwaniu
|
||||
footer.links = Linki
|
||||
|
||||
[heatmap]
|
||||
contributions_format = {contributions} w dniu {month} {day}, {year}
|
||||
less = Mniej
|
||||
more = Więcej
|
||||
|
||||
[editor]
|
||||
buttons.heading.tooltip = Dodaj nagłówek
|
||||
|
@ -135,8 +181,12 @@ buttons.list.task.tooltip = Dodaj listę zadań
|
|||
buttons.ref.tooltip = Dodaj odniesienie do zgłoszenia lub pull requestu
|
||||
buttons.mention.tooltip = Dodaj wzmiankę o użytkowniku lub zespole
|
||||
buttons.switch_to_legacy.tooltip = Zamiast tego użyj starego edytora
|
||||
buttons.disable_monospace_font = Wyłącz czcionkę monospace
|
||||
buttons.enable_monospace_font = Włącz czcionkę monospace
|
||||
|
||||
[filter]
|
||||
string.asc = A - Z
|
||||
string.desc = Z - A
|
||||
|
||||
[error]
|
||||
occurred=Wystąpił błąd
|
||||
|
@ -145,16 +195,18 @@ invalid_csrf=Błędne żądanie: nieprawidłowy token CSRF
|
|||
not_found=Nie można odnaleźć celu.
|
||||
network_error=Błąd sieci
|
||||
report_message = Jeśli podejrzewasz że jest to bug w Forgejo, przeszukaj zgłoszenia na <a href="https://codeberg.org/forgejo/forgejo/issues" target="_blank">Codeberg</a> lub otwórz nowe zgłoszenie w razie potrzeby.
|
||||
server_internal = Wewnętrzny błąd serwera
|
||||
|
||||
[startpage]
|
||||
app_desc=Bezbolesna usługa Git na własnym serwerze
|
||||
install=Łatwa instalacja
|
||||
platform=Wieloplatformowość
|
||||
platform_desc=Forgejo ruszy gdziekolwiek <a target="_blank" rel="noopener noreferrer" href="http://golang.org/">Go</a> jest możliwe do skompilowania: Windows, macOS, Linux, ARM, itd. Wybierz swój ulubiony system!
|
||||
platform_desc=Forgejo ruszy gdziekolwiek <a target="_blank" rel="noopener noreferrer" href="https://go.dev/">Go</a> jest możliwe do skompilowania: Windows, macOS, Linux, ARM, itd. Wybierz swój ulubiony system!
|
||||
lightweight=Niskie wymagania
|
||||
lightweight_desc=Forgejo ma niskie minimalne wymagania i może działać na niedrogim Raspberry Pi. Oszczędzaj energię swojego komputera!
|
||||
license=Otwarte źródło
|
||||
license_desc=Pobierz na <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download">Forgejo</a>! Dołącz do nas dzięki <a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/forgejo/forgejo">swojemu wkładowi</a>, aby uczynić ten projekt jeszcze lepszym. Nie wstydź się zostać współtwórcą!
|
||||
install_desc = Po prostu <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download/#installation-from-binary">uruchom plik binarny</a> dla swojej platformy, dostarcz ją za pomocą <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download/#container-image">Dockera</a>, lub weż wersję<a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download">zapakowaną</a>.
|
||||
|
||||
[install]
|
||||
install=Instalacja
|
||||
|
@ -192,14 +244,14 @@ repo_path=Katalog repozytoriów
|
|||
repo_path_helper=Zdalne repozytoria Git zostaną zapisane w tym katalogu.
|
||||
lfs_path=Ścieżka główna Git LFS
|
||||
lfs_path_helper=W tym katalogu będą przechowywane pliki śledzone za pomocą Git LFS. Pozostaw puste, aby wyłączyć LFS.
|
||||
run_user=Uruchom jako nazwa użytkownika
|
||||
run_user=Uruchom jako użytkownik
|
||||
domain=Domena serwera
|
||||
domain_helper=Adres domeny lub hosta serwera.
|
||||
ssh_port=Port serwera SSH
|
||||
ssh_port_helper=Numer portu, na którym nasłuchuje Twój serwer SSH. Pozostaw puste, aby wyłączyć.
|
||||
http_port=Port nasłuchiwania HTTP Forgejo
|
||||
http_port_helper=Numer portu nasłuchiwania serwera Forgejo.
|
||||
app_url=Podstawowy adres URL Forgejo
|
||||
ssh_port_helper=Numer portu, który zostanie użyty dla serwera SSH. Pozostaw puste, aby wyłączyć.
|
||||
http_port=Port nasłuchiwania HTTP
|
||||
http_port_helper=Numer portu, który będzie używany przez serwer internetowy Forgejo.
|
||||
app_url=Podstawowy adres URL
|
||||
app_url_helper=Podstawowy adres dla klonowania adresów URL HTTP(S) oraz powiadomień e-mail.
|
||||
log_root_path=Ścieżka dla logów
|
||||
log_root_path_helper=Pliki logów będą zapisywane w tym katalogu.
|
||||
|
@ -212,7 +264,7 @@ smtp_from=Wyślij e-mail jako
|
|||
smtp_from_helper=Adres e-mail, z którego Forgejo będzie korzystać. Wpisz prosty adres e-mail, lub użyj formatu "Nazwa" <email@example.com>.
|
||||
mailer_user=Nazwa użytkownika SMTP
|
||||
mailer_password=Hasło SMTP
|
||||
register_confirm=Wymagają potwierdzenia e-mail przy rejestracji
|
||||
register_confirm=Wymagaj potwierdzenia e-mail przy rejestracji
|
||||
mail_notify=Włącz powiadomienia e-mail
|
||||
server_service_title=Ustawienia serwera i innych usług
|
||||
offline_mode=Włącz tryb lokalny
|
||||
|
@ -221,16 +273,16 @@ disable_gravatar=Wyłącz Gravatar
|
|||
disable_gravatar_popup=Wyłącz Gravatar i inne usługi zewnętrzne awatarów. Zostanie zastosowany domyślny awatar, chyba że użytkownik prześle swój własny.
|
||||
federated_avatar_lookup=Włącz zewnętrzne awatary
|
||||
federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
|
||||
disable_registration=Wyłącz rejestrację dwuskładnikową
|
||||
disable_registration=Wyłącz samodzielną rejestrację
|
||||
disable_registration_popup=Wyłącz samodzielną rejestrację użytkowników. Tylko administratorzy będą w stanie tworzyć nowe konta.
|
||||
allow_only_external_registration_popup=Włącz rejestrację wyłącznie za pomocą zewnętrznych usług
|
||||
openid_signin=Włącz logowanie za pomocą OpenID
|
||||
openid_signin=Włącz logowanie za pomocą OpenID
|
||||
openid_signin_popup=Włącz logowanie użytkowników za pomocą OpenID.
|
||||
openid_signup=Włącz samodzielną rejestrację za pomocą OpenID
|
||||
openid_signup=Włącz samodzielną rejestrację za pomocą OpenID
|
||||
openid_signup_popup=Włącz samodzielną rejestrację opartą o OpenID.
|
||||
enable_captcha=Włącz CAPTCHA przy rejestracji
|
||||
enable_captcha_popup=Wymagaj walidacji CAPTCHA przy samodzielnej rejestracji użytkownika.
|
||||
require_sign_in_view=Wymagaj zalogowania w celu przeglądania stron
|
||||
require_sign_in_view=Wymagaj zalogowania się, aby wyświetlić zawartość instancji
|
||||
admin_setting_desc=Tworzenie konta administratora jest opcjonalne. Pierwszy zarejestrowany użytkownik automatycznie zostanie administratorem.
|
||||
admin_title=Ustawienia konta administratora
|
||||
admin_name=Nazwa użytkownika administratora
|
||||
|
@ -238,7 +290,7 @@ admin_password=Hasło
|
|||
confirm_password=Potwierdź hasło
|
||||
admin_email=Adres e-mail
|
||||
install_btn_confirm=Zainstaluj Forgejo
|
||||
test_git_failed=Nie udało się przetestować polecenia „git”: %v
|
||||
test_git_failed=Nie udało się przetestować polecenia "git": %v
|
||||
sqlite3_not_available=Twoje wydanie Forgejo nie obsługuje SQLite3. Pobierz oficjalne wydanie z %s (NIE wersję "gobuild").
|
||||
invalid_db_setting=Nieprawidłowe ustawienia bazy danych: %v
|
||||
invalid_repo_path=Ścieżka repozytorium nie jest poprawna: %v
|
||||
|
@ -258,15 +310,27 @@ default_enable_timetracking_popup=Domyślnie włącz śledzenie czasu dla nowych
|
|||
no_reply_address=Ukryta domena e-mail
|
||||
no_reply_address_helper=Nazwa domeny dla użytkowników z ukrytym adresem e-mail. Przykładowo, użytkownik "jan" będzie zalogowany na Git'cie jako "jan@noreply.example.org", jeśli domena ukrytego adresu e-mail jest ustawiona na "noreply.example.org".
|
||||
password_algorithm=Algorytm hashowania haseł
|
||||
invalid_db_table = Tabela bazy danych "%s" jest nieprawidłowa: %v
|
||||
allow_dots_in_usernames = Zezwolenie użytkownikom na używanie kropek w nazwach użytkowników. Nie ma to wpływu na istniejące konta.
|
||||
invalid_password_algorithm = Nieprawidłowy algorytm hashowania haseł
|
||||
smtp_from_invalid = Adres "Wyślij e-mail jako" jest nieprawidłowy
|
||||
env_config_keys_prompt = Następujące zmienne środowiskowe zostaną również zastosowane do pliku konfiguracyjnego:
|
||||
enable_update_checker_helper_forgejo = Będzie on okresowo sprawdzał dostępność nowych wersji Forgejo poprzez sprawdzanie rekordu TXT DNS pod adresem release.forgejo.org.
|
||||
config_location_hint = Te opcje konfiguracji zostaną zapisane w:
|
||||
password_algorithm_helper = Ustaw algorytm haszowania haseł. Algorytmy mają różne wymagania i siłę. Algorytm argon2 jest dość bezpieczny, ale zużywa dużo pamięci i może być nieodpowiedni dla małych systemów.
|
||||
enable_update_checker = Włącz sprawdzanie aktualizacji
|
||||
env_config_keys = Konfiguracja środowiska
|
||||
run_user_helper = Nazwa użytkownika systemu operacyjnego, pod którą działa Forgejo. Należy pamiętać, że ten użytkownik musi mieć dostęp do ścieżki głównej repozytorium.
|
||||
require_sign_in_view_popup = Ogranicz dostęp do strony jedynie do zalogowanych użytkowników. Odwiedzający zobaczą tylko strony logowania i rejestracji.
|
||||
|
||||
[home]
|
||||
uname_holder=Nazwa użytkownika lub adres email
|
||||
uname_holder=Nazwa użytkownika lub adres e-mail
|
||||
password_holder=Hasło
|
||||
switch_dashboard_context=Przełącz kontekst pulpitu
|
||||
my_repos=Repozytoria
|
||||
show_more_repos=Pokaż więcej repozytoriów…
|
||||
collaborative_repos=Wspólne repozytoria
|
||||
my_orgs=Moje organizacje
|
||||
my_orgs=Organizacje
|
||||
my_mirrors=Moje kopie lustrzane
|
||||
view_home=Zobacz %s
|
||||
search_repos=Znajdź repozytorium…
|
||||
|
@ -299,6 +363,10 @@ user_no_results=Nie znaleziono pasującego użytkowników.
|
|||
org_no_results=Nie znaleziono pasujących organizacji.
|
||||
code_no_results=Nie znaleziono kodu źródłowego odpowiadającego Twojej frazie wyszukiwania.
|
||||
code_last_indexed_at=Ostatnio indeksowane %s
|
||||
go_to = Przejdź do
|
||||
relevant_repositories = Wyświetlane są tylko istotne repozytoria, <a href="%s">pokaż niefiltrowane wyniki</a>.
|
||||
stars_one = %d gwiazdka
|
||||
stars_few = %d gwiazdek
|
||||
|
||||
[auth]
|
||||
create_new_account=Zarejestruj konto
|
||||
|
@ -316,7 +384,7 @@ allow_password_change=Użytkownik musi zmienić hasło (zalecane)
|
|||
reset_password_mail_sent_prompt=E-mail potwierdzający został wysłany na adres <b>%s</b>. Sprawdź swoją skrzynkę odbiorczą w przeciągu %s, aby ukończyć proces odzyskiwania konta.
|
||||
active_your_account=Aktywuj swoje konto
|
||||
account_activated=Konto zostało aktywowane
|
||||
prohibit_login=Logowanie zabronione
|
||||
prohibit_login=Logowanie jest zabronione
|
||||
resent_limit_prompt=Zażądano już wiadomości aktywacyjnej. Zaczekaj 3 minuty i spróbuj ponownie.
|
||||
has_unconfirmed_mail=Witaj, %s, masz niepotwierdzony adres e-mail (<b>%s</b>). Jeśli nie otrzymałeś wiadomości e-mail z potwierdzeniem lub potrzebujesz wysłać nową, kliknij na poniższy przycisk.
|
||||
resend_mail=Kliknij tutaj, aby wysłać e-mail aktywacyjny
|
||||
|
@ -357,6 +425,12 @@ authorize_title=Zezwolić "%s" na dostęp do Twojego konta?
|
|||
authorization_failed=Autoryzacja nie powiodła się
|
||||
sspi_auth_failed=Uwierzytelnianie SSPI nie powiodło się
|
||||
password_pwned_err=Nie udało się ukończyć żądania do HaveIBeenPwned
|
||||
remember_me.compromised = Token logowania nie jest już ważny, co może wskazywać na naruszenie bezpieczeństwa konta. Sprawdź swoje konto pod kątem podejrzanych działań.
|
||||
sign_up_successful = Konto zostało pomyślnie utworzone. Witamy!
|
||||
prohibit_login_desc = Twoje konto jest zablokowane, skontaktuj się z administratorem witryny.
|
||||
change_unconfirmed_email_summary = Zmień adres e-mail, na który zostanie wysłana wiadomość aktywacyjna.
|
||||
manual_activation_only = Skontaktuj się z administratorem witryny, aby dokończyć aktywację.
|
||||
change_unconfirmed_email = Jeśli podczas rejestracji podałeś nieprawidłowy adres e-mail, możesz go zmienić poniżej, a potwierdzenie zostanie wysłane na nowy adres.
|
||||
|
||||
[mail]
|
||||
view_it_on=Zobacz na %s
|
||||
|
@ -2546,3 +2620,26 @@ runs.commit=Commit
|
|||
symbolic_link=Dowiązanie symboliczne
|
||||
executable_file = Plik wykonywalny
|
||||
|
||||
|
||||
|
||||
[search]
|
||||
search = Wyszukaj...
|
||||
type_tooltip = Typ wyszukiwania
|
||||
fuzzy = Fuzzy
|
||||
package_kind = Wyszukaj paczki...
|
||||
fuzzy_tooltip = Uwzględnij wyniki, które również pasują do wyszukiwanego hasła
|
||||
match = Dopasuj
|
||||
match_tooltip = Uwzględniaj tylko wyniki pasujące do wyszukiwanego hasła
|
||||
repo_kind = Wyszukaj repozytoria...
|
||||
user_kind = Wyszukaj użytkownilków...
|
||||
code_search_unavailable = Wyszukiwanie kodu jest obecnie niedostępne. Skontakuj sie z administratorem strony.
|
||||
no_results = Nie znaleziono pasujących wyników.
|
||||
org_kind = Wyszukaj organizacje...
|
||||
team_kind = Wyszukaj zespoły...
|
||||
code_kind = Wyszukaj kod...
|
||||
code_search_by_git_grep = Obecne wyniki wyszukiwania kodu są dostarczane przez "git grep". Wyniki mogą być lepsze, jeśli administrator witryny włączy indeksator kodu.
|
||||
project_kind = Wyszukaj projekty...
|
||||
branch_kind = Wyszukaj gałęzie...
|
||||
commit_kind = Wyszukaj commity...
|
||||
runner_kind = Wyszukaj runnery...
|
||||
keyword_search_unavailable = Wyszukiwanie według słów kluczowych jest obecnie niedostępne. Skontaktuj się z administratorem strony.
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue