mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-02 23:20:13 +00:00
Compare commits
484 commits
Author | SHA1 | Date | |
---|---|---|---|
|
e1e88f9ad1 | ||
|
f91b4dd959 | ||
|
6ef986d474 | ||
|
c03b1e2854 | ||
|
3ff3c5ba78 | ||
|
58a0ba711d | ||
|
b4a6c6fd7a | ||
|
3fd15aeff2 | ||
|
0873088223 | ||
|
ff27ca32ca | ||
|
eb302deb18 | ||
|
aae96cc62b | ||
|
5f7b6b55a5 | ||
|
408c92938b | ||
|
b9dd5dd471 | ||
|
440be51a45 | ||
|
00ea9af8e1 | ||
|
c044510ca8 | ||
|
85f31eb643 | ||
|
8242c3c88c | ||
|
0cbbcf20e3 | ||
|
47dc4598a3 | ||
|
817d5e4d30 | ||
|
31ab839a65 | ||
|
df23ec0f8b | ||
|
e0a9a921af | ||
|
e03cf66e8b | ||
|
61db562a5f | ||
|
538efb9df7 | ||
|
5e3581f073 | ||
|
bb9860307f | ||
|
bb2640c485 | ||
|
462ae88fc2 | ||
|
1e4d5a5594 | ||
|
6124c78de0 | ||
|
12b429c0d1 | ||
|
8c31456a87 | ||
|
4bfc43ef8d | ||
|
93e105a228 | ||
|
e8b6d28ab9 | ||
|
346b662305 | ||
|
25b0c99a41 | ||
|
bfc7c8a598 | ||
|
1f89763744 | ||
|
a129c0c06c | ||
|
bd7de0c4e4 | ||
|
6651d2d87a | ||
|
76b6754c3a | ||
|
0b5a4e7db4 | ||
|
b6a2b9594a | ||
|
6ee58a0ac2 | ||
|
2f1eb619bc | ||
|
9db426ad8c | ||
|
a8277cfc8f | ||
|
5667ef9aab | ||
|
02df269d24 | ||
|
4ef7e496b8 | ||
|
b519e4750b | ||
|
b84303ef6e | ||
|
2b059f493e | ||
|
5ca2971ccb | ||
|
63ec6facea | ||
|
971eab18fa | ||
|
86cd94cba6 | ||
|
8723389028 | ||
|
401cc394d5 | ||
|
3a8877c058 | ||
|
a86d9337e9 | ||
|
8d08558783 | ||
|
730cd2dee4 | ||
|
65b9ffe3c0 | ||
|
c293e34df0 | ||
|
9abba8c11a | ||
|
5477728282 | ||
|
b43ce53a23 | ||
|
222f93822e | ||
|
eabcfd3f7d | ||
|
2df38af752 | ||
|
dc48eb070b | ||
|
06dc26167a | ||
|
9456deb512 | ||
|
c758a8afba | ||
|
83327e043a | ||
|
78cb09deda | ||
|
0f35cb5a2a | ||
|
0b3d6c399c | ||
|
f98a1b851c | ||
|
e75594f7a6 | ||
|
a1c0b3a02e | ||
|
6624f257d3 | ||
|
35db5a373b | ||
|
5043ad54c7 | ||
|
727435743a | ||
|
829b807a91 | ||
|
874cdcc974 | ||
|
e20023af58 | ||
|
4435d8a4b6 | ||
|
6ca8cb590d | ||
|
65e2811859 | ||
|
b78f5fc60f | ||
|
511298e452 | ||
|
7ea2ffaf16 | ||
|
fdb0d03083 | ||
|
ed5e0c8c27 | ||
|
0870e0bc9b | ||
|
c0b97d0485 | ||
|
f80ea95eb5 | ||
|
dcb9c38568 | ||
|
c4a86b20a4 | ||
|
f634982d23 | ||
|
9379352db6 | ||
|
e940443b27 | ||
|
2762921e73 | ||
|
78f41e4fc4 | ||
|
c01b266d86 | ||
|
e2eac7574f | ||
|
5b8b22bd75 | ||
|
f79530c50e | ||
|
39735c43a8 | ||
|
3604b7d8ad | ||
|
d41d367c35 | ||
|
7e0299b4fd | ||
|
933cc4da64 | ||
|
fea6bd130e | ||
|
906a722fca | ||
|
8cd83ff391 | ||
|
d823465d94 | ||
|
dd8bc1d61d | ||
|
0ac3186267 | ||
|
732d511e04 | ||
|
1aaeec6da7 | ||
|
315155fab0 | ||
|
9a4d283e9a | ||
|
fb7f28e9a7 | ||
|
c9b2aaed0e | ||
|
19a08c7fe2 | ||
|
f0d34cd3b9 | ||
|
7ed79b748f | ||
|
b9b2ae214d | ||
|
aadbbf4358 | ||
|
8e957e5f1d | ||
|
8def405047 | ||
|
5ac41026f9 | ||
|
333d02ddfd | ||
|
5d1abdce3e | ||
|
2588d73ebf | ||
|
a0b9bd2feb | ||
|
c398c25b18 | ||
|
2048363f9e | ||
|
b8e6cffd31 | ||
|
1ddcaedb88 | ||
|
7291fecab3 | ||
|
c33886b710 | ||
|
d6eb6c90f4 | ||
|
55c53080d1 | ||
|
8766f65add | ||
|
e95006848e | ||
|
9210ce4045 | ||
|
cebf55f6b1 | ||
|
b508813fe4 | ||
|
fd1edb9d9d | ||
|
633996db8e | ||
|
7f0ce2dfc7 | ||
|
b7c944b9e4 | ||
|
cf9a416d62 | ||
|
8c7bda8755 | ||
|
b7e32b2382 | ||
|
e3dfb512d6 | ||
|
0d50f27469 | ||
|
62f2d717b7 | ||
|
89960c3dfb | ||
|
8b5c9186a5 | ||
|
8b4abb1719 | ||
|
f4923854f6 | ||
|
d590607106 | ||
|
4746291b08 | ||
|
022552d5b6 | ||
|
376fa0d8c4 | ||
|
be541d9877 | ||
|
ae99233db0 | ||
|
cbf366643b | ||
|
df694f6a7d | ||
|
84282c608c | ||
|
d1db2b7251 | ||
|
6493085aee | ||
|
fbf29f29b5 | ||
|
6e29242ebb | ||
|
56e722f825 | ||
|
80e564087d | ||
|
571822b6ec | ||
|
2a0fbe23b8 | ||
|
95901a99c0 | ||
|
cb33623bb6 | ||
|
9f0c709637 | ||
|
5e9fd0ab5e | ||
|
f220f4231a | ||
|
bce27d0a31 | ||
|
12f418a7e8 | ||
|
9865aa2394 | ||
|
def178ce32 | ||
|
2399b4d483 | ||
|
ad2cb9863c | ||
|
7f833d8f71 | ||
|
e67c819cf4 | ||
|
83457805bb | ||
|
3c79315cf2 | ||
|
3e1bd61000 | ||
|
18da3f8483 | ||
|
2165729d16 | ||
|
683b95f0da | ||
|
ff565a787f | ||
|
f7cca2a290 | ||
|
373e78895e | ||
|
8ec232817c | ||
|
a5c7ac9980 | ||
|
bf983735fd | ||
|
7a2786ca6c | ||
|
b2588338f0 | ||
|
8a46a6417e | ||
|
5b104a5533 | ||
|
f2add36a29 | ||
|
564068aa99 | ||
|
6a559ad634 | ||
|
4dd39eb54a | ||
|
acc8100d47 | ||
|
1a3803effd | ||
|
1183002b32 | ||
|
1fc6bc1be2 | ||
|
2360c7ec6c | ||
|
8ca32dc873 | ||
|
47f9b3f484 | ||
|
16263af971 | ||
|
f096635622 | ||
|
932e282e15 | ||
|
d9aeb1f09d | ||
|
411310d698 | ||
|
6d002f8e1e | ||
|
4462628a26 | ||
|
a3f403f438 | ||
|
8ee1ed877b | ||
|
2c2e00899d | ||
|
6cbb6f303a | ||
|
6af698fb81 | ||
|
94a05a492d | ||
|
6de862abdf | ||
|
b47482d58e | ||
|
74ab798033 | ||
|
97a0bf151a | ||
|
5e2bae7716 | ||
|
96d3fcf179 | ||
|
265f485295 | ||
|
f144521aea | ||
|
6f4d5c0b8c | ||
|
1ec622db24 | ||
|
40d51188c0 | ||
|
87db4a47c8 | ||
|
cd2dd5a67d | ||
|
46beb7f33f | ||
|
3107093394 | ||
|
272ae03341 | ||
|
b56a9f6ded | ||
|
c5c44d0951 | ||
|
8f2805f757 | ||
|
5eaf91e919 | ||
|
b7e3adc66c | ||
|
5b5f8aab19 | ||
|
fef34790bb | ||
|
8b590de186 | ||
|
5105d2093c | ||
|
08445d5d86 | ||
|
b71d4c3ec0 | ||
|
bf537adf8a | ||
|
8c8c24f8eb | ||
|
fee9c05ed3 | ||
|
e15fe85335 | ||
|
4f5122a7fe | ||
|
84e65afffd | ||
|
d2908b2794 | ||
|
24e03a125d | ||
|
76e892317b | ||
|
5001f63c07 | ||
|
6d22ca15ab | ||
|
ea9f5a57e4 | ||
|
96141e4e55 | ||
|
ca5f0c93c6 | ||
|
196100a07a | ||
|
bc3d8bff73 | ||
|
7f81110461 | ||
|
5ed0eefc9a | ||
|
4b89c0f996 | ||
|
7cae4dfc00 | ||
|
28b8e0b43e | ||
|
23838c2c2e | ||
|
f9763f1366 | ||
|
a2314ca9c5 | ||
|
994ba35f11 | ||
|
447422fe27 | ||
|
9bfee5014b | ||
|
7128929a0d | ||
|
efcbaf8fa8 | ||
|
c997e90738 | ||
|
ffab076b72 | ||
|
117d9a117f | ||
|
f8c5f202b7 | ||
|
7213506680 | ||
|
1f82be6604 | ||
|
56bedf2bcc | ||
|
f7567f798d | ||
|
93ede4bc83 | ||
|
9f63d27ec4 | ||
|
073d8c50dd | ||
|
bc6477b36b | ||
|
09efce9da2 | ||
|
124a9957d0 | ||
|
d72e20627d | ||
|
00cd5ba6f4 | ||
|
eef4148935 | ||
|
d4122712f7 | ||
|
97f4239a94 | ||
|
58d71cdd6f | ||
|
2691b345e6 | ||
|
60b51d0648 | ||
|
824d40edc6 | ||
|
46ac04ce9d | ||
|
cc7b9eb085 | ||
|
7aafe5e0b4 | ||
|
9e15955c68 | ||
|
6eadad8222 | ||
|
a8e505a44b | ||
|
e47b31c691 | ||
|
49f82ac4e3 | ||
|
81d233d987 | ||
|
2f56ab7999 | ||
|
61d3d9205b | ||
|
28e3d0b0d3 | ||
|
4c67c05480 | ||
|
cf7374c079 | ||
|
8d0a4d7e9d | ||
|
9ca1853495 | ||
|
d6f7c49b8b | ||
|
c074af6a6d | ||
|
39596115da | ||
|
352906b448 | ||
|
6637bbf510 | ||
|
6ac2ade97d | ||
|
18a782f73d | ||
|
6af6f81780 | ||
|
d282f5dab8 | ||
|
f3f56d570b | ||
|
3c03b7db50 | ||
|
ac22116211 | ||
|
25bc3d562a | ||
|
991c959110 | ||
|
2d2a5657ef | ||
|
977f5db28e | ||
|
487c573c28 | ||
|
25acbfed36 | ||
|
9dd8f34707 | ||
|
77bd3acb65 | ||
|
95db95ef91 | ||
|
ffab2b7e4f | ||
|
cb9e10f971 | ||
|
5087de1a5c | ||
|
f2bac791db | ||
|
c279f8aab7 | ||
|
9f2b8c7ead | ||
|
48e3aec862 | ||
|
aabcf2d7ad | ||
|
6919a02ab7 | ||
|
1848858a1e | ||
|
a398089301 | ||
|
8885108c42 | ||
|
993178b45f | ||
|
345d70f7e4 | ||
|
6dce671d02 | ||
|
6cef7a767b | ||
|
6befca1695 | ||
|
89d3766d22 | ||
|
9b14f1a8ed | ||
|
0b8b0072a2 | ||
|
dab40cd5f4 | ||
|
5b80157aad | ||
|
bf76216de1 | ||
|
21c3513d49 | ||
|
8cf7548a18 | ||
|
066aee28a5 | ||
|
148f6e3776 | ||
|
fa6941cf8c | ||
|
54dccbeb2e | ||
|
9f228704a3 | ||
|
21f1e223d8 | ||
|
63a321b83a | ||
|
844ab9a441 | ||
|
7ec7c733c7 | ||
|
4986dc8351 | ||
|
1380a46623 | ||
|
f19feb0f47 | ||
|
9da92835d1 | ||
|
478e7042f5 | ||
|
63587a4aef | ||
|
29d3949271 | ||
|
71f091ef97 | ||
|
9a64a24f29 | ||
|
d8513fc312 | ||
|
8c969cdf9c | ||
|
4c9f7d0710 | ||
|
a1ee172fb0 | ||
|
fb5ae2ab94 | ||
|
8419897fba | ||
|
17698d4a62 | ||
|
0fb7294027 | ||
|
8e1ef5787f | ||
|
65020fdf7f | ||
|
5b670d83e1 | ||
|
9207331f4d | ||
|
44aca6a65a | ||
|
aaf35ee49c | ||
|
a9d547f55b | ||
|
51001d9ffe | ||
|
1ff6b7783c | ||
|
99e2071eeb | ||
|
1dd84ec3a1 | ||
|
290440e1ee | ||
|
881a844c9d | ||
|
d5da0e622c | ||
|
8c6464e39b | ||
|
4f02b4a7b9 | ||
|
7dc5ab2e95 | ||
|
28d970e4a6 | ||
|
4e824a735e | ||
|
eea79ce586 | ||
|
e9340ce9bc | ||
|
de387102b4 | ||
|
79c17d8b6a | ||
|
006c15fb5f | ||
|
0c4f97c112 | ||
|
f9395eaa08 | ||
|
f13a294b47 | ||
|
84ee02faa7 | ||
|
f77b4cb4a2 | ||
|
7ea7f2b37f | ||
|
c61b9c5f3c | ||
|
e719bf8ead | ||
|
9903b8d7ec | ||
|
77ccd215e2 | ||
|
71d1bfea7f | ||
|
b00489886d | ||
|
9b698362a3 | ||
|
1a923c95dd | ||
|
a6a79add68 | ||
|
d74fba8175 | ||
|
e4cf9d22a7 | ||
|
755369df56 | ||
|
42f7c2ad89 | ||
|
fee8522052 | ||
|
34c440996d | ||
|
283b19bad5 | ||
|
f0045f4113 | ||
|
0abd78e6a8 | ||
|
fc7d3f7315 | ||
|
597b04fe2f | ||
|
2774a2afc6 | ||
|
89b6f20bf8 | ||
|
37c7780e85 | ||
|
e0832da7fa | ||
|
daaf0ad473 | ||
|
9fc24a8f5e | ||
|
a1029cb2ca | ||
|
134c7636ef | ||
|
88271167d6 | ||
|
a8086f6148 | ||
|
f4f6885c1f | ||
|
64c0a6a4e2 | ||
|
2181b3713e | ||
|
2084c3933d | ||
|
b6dab855f5 | ||
|
e9fcdf822c | ||
|
7750a7313d | ||
|
81ae35aa4f | ||
|
2e49a4da48 | ||
|
8d9e2d07f3 | ||
|
b34727c632 | ||
|
0ca233258d | ||
|
c3b7120042 |
1191 changed files with 22189 additions and 19767 deletions
|
@ -13,46 +13,42 @@ groups:
|
||||||
-
|
-
|
||||||
name: BREAKING
|
name: BREAKING
|
||||||
labels:
|
labels:
|
||||||
- kind/breaking
|
- pr/breaking
|
||||||
-
|
-
|
||||||
name: SECURITY
|
name: SECURITY
|
||||||
labels:
|
labels:
|
||||||
- kind/security
|
- topic/security
|
||||||
-
|
-
|
||||||
name: FEATURES
|
name: FEATURES
|
||||||
labels:
|
labels:
|
||||||
- kind/feature
|
- type/feature
|
||||||
-
|
-
|
||||||
name: API
|
name: API
|
||||||
labels:
|
labels:
|
||||||
- kind/api
|
- modifies/api
|
||||||
-
|
-
|
||||||
name: ENHANCEMENTS
|
name: ENHANCEMENTS
|
||||||
labels:
|
labels:
|
||||||
- kind/enhancement
|
- type/enhancement
|
||||||
- kind/refactor
|
- type/refactoring
|
||||||
- kind/ui
|
- topic/ui
|
||||||
-
|
-
|
||||||
name: BUGFIXES
|
name: BUGFIXES
|
||||||
labels:
|
labels:
|
||||||
- kind/bug
|
- type/bug
|
||||||
-
|
-
|
||||||
name: TESTING
|
name: TESTING
|
||||||
labels:
|
labels:
|
||||||
- kind/testing
|
- type/testing
|
||||||
-
|
|
||||||
name: TRANSLATION
|
|
||||||
labels:
|
|
||||||
- kind/translation
|
|
||||||
-
|
-
|
||||||
name: BUILD
|
name: BUILD
|
||||||
labels:
|
labels:
|
||||||
- kind/build
|
- topic/build
|
||||||
- kind/lint
|
- topic/code-linting
|
||||||
-
|
-
|
||||||
name: DOCS
|
name: DOCS
|
||||||
labels:
|
labels:
|
||||||
- kind/docs
|
- type/docs
|
||||||
-
|
-
|
||||||
name: MISC
|
name: MISC
|
||||||
default: true
|
default: true
|
||||||
|
|
425
.drone.yml
425
.drone.yml
|
@ -1,425 +0,0 @@
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: release-version
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
workspace:
|
|
||||||
base: /source
|
|
||||||
path: /
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: deps
|
|
||||||
temp: {}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: fetch-tags
|
|
||||||
image: docker:git
|
|
||||||
pull: always
|
|
||||||
commands:
|
|
||||||
- git fetch --tags --force
|
|
||||||
|
|
||||||
- name: deps-frontend
|
|
||||||
image: node:20
|
|
||||||
pull: always
|
|
||||||
commands:
|
|
||||||
- make deps-frontend
|
|
||||||
|
|
||||||
- name: deps-backend
|
|
||||||
image: gitea/test_env:linux-1.20-amd64
|
|
||||||
pull: always
|
|
||||||
commands:
|
|
||||||
- make deps-backend
|
|
||||||
volumes:
|
|
||||||
- name: deps
|
|
||||||
path: /go
|
|
||||||
|
|
||||||
- name: static
|
|
||||||
image: techknowlogick/xgo:go-1.21.x
|
|
||||||
pull: always
|
|
||||||
commands:
|
|
||||||
- curl -sL https://deb.nodesource.com/setup_20.x | bash - && apt-get -qqy install nodejs
|
|
||||||
- export PATH=$PATH:$GOPATH/bin
|
|
||||||
- make release
|
|
||||||
environment:
|
|
||||||
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
|
||||||
TAGS: bindata sqlite sqlite_unlock_notify
|
|
||||||
DEBIAN_FRONTEND: noninteractive
|
|
||||||
depends_on: [fetch-tags]
|
|
||||||
volumes:
|
|
||||||
- name: deps
|
|
||||||
path: /go
|
|
||||||
|
|
||||||
- name: gpg-sign
|
|
||||||
image: plugins/gpgsign:1
|
|
||||||
pull: always
|
|
||||||
settings:
|
|
||||||
detach_sign: true
|
|
||||||
excludes:
|
|
||||||
- "dist/release/*.sha256"
|
|
||||||
files:
|
|
||||||
- "dist/release/*"
|
|
||||||
environment:
|
|
||||||
GPGSIGN_KEY:
|
|
||||||
from_secret: gpgsign_key
|
|
||||||
GPGSIGN_PASSPHRASE:
|
|
||||||
from_secret: gpgsign_passphrase
|
|
||||||
depends_on: [static]
|
|
||||||
|
|
||||||
- name: release-tag
|
|
||||||
image: woodpeckerci/plugin-s3:latest
|
|
||||||
pull: always
|
|
||||||
settings:
|
|
||||||
acl:
|
|
||||||
from_secret: aws_s3_acl
|
|
||||||
region:
|
|
||||||
from_secret: aws_s3_region
|
|
||||||
bucket:
|
|
||||||
from_secret: aws_s3_bucket
|
|
||||||
endpoint:
|
|
||||||
from_secret: aws_s3_endpoint
|
|
||||||
path_style:
|
|
||||||
from_secret: aws_s3_path_style
|
|
||||||
source: "dist/release/*"
|
|
||||||
strip_prefix: dist/release/
|
|
||||||
target: "/gitea/${DRONE_TAG##v}"
|
|
||||||
environment:
|
|
||||||
AWS_ACCESS_KEY_ID:
|
|
||||||
from_secret: aws_access_key_id
|
|
||||||
AWS_SECRET_ACCESS_KEY:
|
|
||||||
from_secret: aws_secret_access_key
|
|
||||||
depends_on: [gpg-sign]
|
|
||||||
|
|
||||||
- name: github
|
|
||||||
image: plugins/github-release:latest
|
|
||||||
pull: always
|
|
||||||
settings:
|
|
||||||
files:
|
|
||||||
- "dist/release/*"
|
|
||||||
file_exists: overwrite
|
|
||||||
environment:
|
|
||||||
GITHUB_TOKEN:
|
|
||||||
from_secret: github_token
|
|
||||||
depends_on: [gpg-sign]
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: docker-linux-amd64-release-version
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/tags/**"
|
|
||||||
exclude:
|
|
||||||
- "refs/tags/**-rc*"
|
|
||||||
paths:
|
|
||||||
exclude:
|
|
||||||
- "docs/**"
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: fetch-tags
|
|
||||||
image: docker:git
|
|
||||||
pull: always
|
|
||||||
commands:
|
|
||||||
- git fetch --tags --force
|
|
||||||
|
|
||||||
- name: publish
|
|
||||||
image: plugins/docker:latest
|
|
||||||
pull: always
|
|
||||||
settings:
|
|
||||||
auto_tag: true
|
|
||||||
auto_tag_suffix: linux-amd64
|
|
||||||
repo: gitea/gitea
|
|
||||||
build_args:
|
|
||||||
- GOPROXY=https://goproxy.io
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
environment:
|
|
||||||
PLUGIN_MIRROR:
|
|
||||||
from_secret: plugin_mirror
|
|
||||||
DOCKER_BUILDKIT: 1
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
- name: publish-rootless
|
|
||||||
image: plugins/docker:latest
|
|
||||||
settings:
|
|
||||||
dockerfile: Dockerfile.rootless
|
|
||||||
auto_tag: true
|
|
||||||
auto_tag_suffix: linux-amd64-rootless
|
|
||||||
repo: gitea/gitea
|
|
||||||
build_args:
|
|
||||||
- GOPROXY=https://goproxy.io
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
environment:
|
|
||||||
PLUGIN_MIRROR:
|
|
||||||
from_secret: plugin_mirror
|
|
||||||
DOCKER_BUILDKIT: 1
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
---
|
|
||||||
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: docker-linux-amd64-release-candidate-version
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
ref:
|
|
||||||
- "refs/tags/**-rc*"
|
|
||||||
paths:
|
|
||||||
exclude:
|
|
||||||
- "docs/**"
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: fetch-tags
|
|
||||||
image: docker:git
|
|
||||||
pull: always
|
|
||||||
commands:
|
|
||||||
- git fetch --tags --force
|
|
||||||
|
|
||||||
- name: publish
|
|
||||||
image: plugins/docker:latest
|
|
||||||
pull: always
|
|
||||||
settings:
|
|
||||||
tags: ${DRONE_TAG##v}-linux-amd64
|
|
||||||
repo: gitea/gitea
|
|
||||||
build_args:
|
|
||||||
- GOPROXY=https://goproxy.io
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
environment:
|
|
||||||
PLUGIN_MIRROR:
|
|
||||||
from_secret: plugin_mirror
|
|
||||||
DOCKER_BUILDKIT: 1
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
- name: publish-rootless
|
|
||||||
image: plugins/docker:latest
|
|
||||||
settings:
|
|
||||||
dockerfile: Dockerfile.rootless
|
|
||||||
tags: ${DRONE_TAG##v}-linux-amd64-rootless
|
|
||||||
repo: gitea/gitea
|
|
||||||
build_args:
|
|
||||||
- GOPROXY=https://goproxy.io
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
environment:
|
|
||||||
PLUGIN_MIRROR:
|
|
||||||
from_secret: plugin_mirror
|
|
||||||
DOCKER_BUILDKIT: 1
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: docker-linux-arm64-release-version
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: arm64
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/tags/**"
|
|
||||||
exclude:
|
|
||||||
- "refs/tags/**-rc*"
|
|
||||||
paths:
|
|
||||||
exclude:
|
|
||||||
- "docs/**"
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: fetch-tags
|
|
||||||
image: docker:git
|
|
||||||
pull: always
|
|
||||||
commands:
|
|
||||||
- git fetch --tags --force
|
|
||||||
|
|
||||||
- name: publish
|
|
||||||
image: plugins/docker:latest
|
|
||||||
pull: always
|
|
||||||
settings:
|
|
||||||
auto_tag: true
|
|
||||||
auto_tag_suffix: linux-arm64
|
|
||||||
repo: gitea/gitea
|
|
||||||
build_args:
|
|
||||||
- GOPROXY=https://goproxy.io
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
environment:
|
|
||||||
PLUGIN_MIRROR:
|
|
||||||
from_secret: plugin_mirror
|
|
||||||
DOCKER_BUILDKIT: 1
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
- name: publish-rootless
|
|
||||||
image: plugins/docker:latest
|
|
||||||
settings:
|
|
||||||
dockerfile: Dockerfile.rootless
|
|
||||||
auto_tag: true
|
|
||||||
auto_tag_suffix: linux-arm64-rootless
|
|
||||||
repo: gitea/gitea
|
|
||||||
build_args:
|
|
||||||
- GOPROXY=https://goproxy.io
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
environment:
|
|
||||||
PLUGIN_MIRROR:
|
|
||||||
from_secret: plugin_mirror
|
|
||||||
DOCKER_BUILDKIT: 1
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: docker-linux-arm64-release-candidate-version
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: arm64
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
ref:
|
|
||||||
- "refs/tags/**-rc*"
|
|
||||||
paths:
|
|
||||||
exclude:
|
|
||||||
- "docs/**"
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: fetch-tags
|
|
||||||
image: docker:git
|
|
||||||
pull: always
|
|
||||||
commands:
|
|
||||||
- git fetch --tags --force
|
|
||||||
|
|
||||||
- name: publish
|
|
||||||
image: plugins/docker:latest
|
|
||||||
pull: always
|
|
||||||
settings:
|
|
||||||
tags: ${DRONE_TAG##v}-linux-arm64
|
|
||||||
repo: gitea/gitea
|
|
||||||
build_args:
|
|
||||||
- GOPROXY=https://goproxy.io
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
environment:
|
|
||||||
PLUGIN_MIRROR:
|
|
||||||
from_secret: plugin_mirror
|
|
||||||
DOCKER_BUILDKIT: 1
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
- name: publish-rootless
|
|
||||||
image: plugins/docker:latest
|
|
||||||
settings:
|
|
||||||
dockerfile: Dockerfile.rootless
|
|
||||||
tags: ${DRONE_TAG##v}-linux-arm64-rootless
|
|
||||||
repo: gitea/gitea
|
|
||||||
build_args:
|
|
||||||
- GOPROXY=https://goproxy.io
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
environment:
|
|
||||||
PLUGIN_MIRROR:
|
|
||||||
from_secret: plugin_mirror
|
|
||||||
DOCKER_BUILDKIT: 1
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: docker-manifest-version
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: manifest-rootless
|
|
||||||
image: plugins/manifest
|
|
||||||
pull: always
|
|
||||||
settings:
|
|
||||||
auto_tag: true
|
|
||||||
ignore_missing: true
|
|
||||||
spec: docker/manifest.rootless.tmpl
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
|
|
||||||
- name: manifest
|
|
||||||
image: plugins/manifest
|
|
||||||
settings:
|
|
||||||
auto_tag: true
|
|
||||||
ignore_missing: true
|
|
||||||
spec: docker/manifest.tmpl
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
ref:
|
|
||||||
- "refs/tags/**"
|
|
||||||
paths:
|
|
||||||
exclude:
|
|
||||||
- "docs/**"
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- docker-linux-amd64-release-version
|
|
||||||
- docker-linux-amd64-release-candidate-version
|
|
||||||
- docker-linux-arm64-release-version
|
|
||||||
- docker-linux-arm64-release-candidate-version
|
|
|
@ -11,7 +11,6 @@ parserOptions:
|
||||||
plugins:
|
plugins:
|
||||||
- "@eslint-community/eslint-plugin-eslint-comments"
|
- "@eslint-community/eslint-plugin-eslint-comments"
|
||||||
- eslint-plugin-array-func
|
- eslint-plugin-array-func
|
||||||
- eslint-plugin-custom-elements
|
|
||||||
- eslint-plugin-import
|
- eslint-plugin-import
|
||||||
- eslint-plugin-jquery
|
- eslint-plugin-jquery
|
||||||
- eslint-plugin-no-jquery
|
- eslint-plugin-no-jquery
|
||||||
|
@ -19,6 +18,7 @@ plugins:
|
||||||
- eslint-plugin-regexp
|
- eslint-plugin-regexp
|
||||||
- eslint-plugin-sonarjs
|
- eslint-plugin-sonarjs
|
||||||
- eslint-plugin-unicorn
|
- eslint-plugin-unicorn
|
||||||
|
- eslint-plugin-vitest-globals
|
||||||
- eslint-plugin-wc
|
- eslint-plugin-wc
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
@ -46,6 +46,9 @@ overrides:
|
||||||
- files: ["*.config.*"]
|
- files: ["*.config.*"]
|
||||||
rules:
|
rules:
|
||||||
import/no-unused-modules: [0]
|
import/no-unused-modules: [0]
|
||||||
|
- files: ["**/*.test.*", "web_src/js/test/setup.js"]
|
||||||
|
env:
|
||||||
|
vitest-globals/env: true
|
||||||
- files: ["web_src/js/modules/fetch.js", "web_src/js/standalone/**/*"]
|
- files: ["web_src/js/modules/fetch.js", "web_src/js/standalone/**/*"]
|
||||||
rules:
|
rules:
|
||||||
no-restricted-syntax: [2, WithStatement, ForInStatement, LabeledStatement, SequenceExpression]
|
no-restricted-syntax: [2, WithStatement, ForInStatement, LabeledStatement, SequenceExpression]
|
||||||
|
@ -88,19 +91,6 @@ rules:
|
||||||
consistent-this: [0]
|
consistent-this: [0]
|
||||||
constructor-super: [2]
|
constructor-super: [2]
|
||||||
curly: [0]
|
curly: [0]
|
||||||
custom-elements/expose-class-on-global: [0]
|
|
||||||
custom-elements/extends-correct-class: [2]
|
|
||||||
custom-elements/file-name-matches-element: [2]
|
|
||||||
custom-elements/no-constructor: [2]
|
|
||||||
custom-elements/no-customized-built-in-elements: [2]
|
|
||||||
custom-elements/no-dom-traversal-in-attributechangedcallback: [2]
|
|
||||||
custom-elements/no-dom-traversal-in-connectedcallback: [2]
|
|
||||||
custom-elements/no-exports-with-element: [2]
|
|
||||||
custom-elements/no-method-prefixed-with-on: [2]
|
|
||||||
custom-elements/no-unchecked-define: [0]
|
|
||||||
custom-elements/one-element-per-file: [0]
|
|
||||||
custom-elements/tag-name-matches-class: [2]
|
|
||||||
custom-elements/valid-tag-name: [2]
|
|
||||||
default-case-last: [2]
|
default-case-last: [2]
|
||||||
default-case: [0]
|
default-case: [0]
|
||||||
default-param-last: [0]
|
default-param-last: [0]
|
||||||
|
@ -486,7 +476,7 @@ rules:
|
||||||
prefer-exponentiation-operator: [2]
|
prefer-exponentiation-operator: [2]
|
||||||
prefer-named-capture-group: [0]
|
prefer-named-capture-group: [0]
|
||||||
prefer-numeric-literals: [2]
|
prefer-numeric-literals: [2]
|
||||||
prefer-object-has-own: [0]
|
prefer-object-has-own: [2]
|
||||||
prefer-object-spread: [2]
|
prefer-object-spread: [2]
|
||||||
prefer-promise-reject-errors: [2, {allowEmptyReject: false}]
|
prefer-promise-reject-errors: [2, {allowEmptyReject: false}]
|
||||||
prefer-regex-literals: [2]
|
prefer-regex-literals: [2]
|
||||||
|
@ -740,14 +730,27 @@ rules:
|
||||||
valid-typeof: [2, {requireStringLiterals: true}]
|
valid-typeof: [2, {requireStringLiterals: true}]
|
||||||
vars-on-top: [0]
|
vars-on-top: [0]
|
||||||
wc/attach-shadow-constructor: [2]
|
wc/attach-shadow-constructor: [2]
|
||||||
|
wc/define-tag-after-class-definition: [0]
|
||||||
|
wc/expose-class-on-global: [0]
|
||||||
|
wc/file-name-matches-element: [2]
|
||||||
|
wc/guard-define-call: [0]
|
||||||
wc/guard-super-call: [2]
|
wc/guard-super-call: [2]
|
||||||
|
wc/max-elements-per-file: [0]
|
||||||
|
wc/no-child-traversal-in-attributechangedcallback: [2]
|
||||||
|
wc/no-child-traversal-in-connectedcallback: [2]
|
||||||
wc/no-closed-shadow-root: [2]
|
wc/no-closed-shadow-root: [2]
|
||||||
wc/no-constructor-attributes: [2]
|
wc/no-constructor-attributes: [2]
|
||||||
wc/no-constructor-params: [2]
|
wc/no-constructor-params: [2]
|
||||||
wc/no-invalid-element-name: [0] # covered by custom-elements/valid-tag-name
|
wc/no-constructor: [2]
|
||||||
|
wc/no-customized-built-in-elements: [2]
|
||||||
|
wc/no-exports-with-element: [0]
|
||||||
|
wc/no-invalid-element-name: [2]
|
||||||
|
wc/no-invalid-extends: [2]
|
||||||
|
wc/no-method-prefixed-with-on: [2]
|
||||||
wc/no-self-class: [2]
|
wc/no-self-class: [2]
|
||||||
wc/no-typos: [2]
|
wc/no-typos: [2]
|
||||||
wc/require-listener-teardown: [2]
|
wc/require-listener-teardown: [2]
|
||||||
|
wc/tag-name-matches-class: [2]
|
||||||
wrap-iife: [2, inside]
|
wrap-iife: [2, inside]
|
||||||
wrap-regex: [0]
|
wrap-regex: [0]
|
||||||
yield-star-spacing: [2, after]
|
yield-star-spacing: [2, after]
|
||||||
|
|
1
.github/actionlint.yaml
vendored
1
.github/actionlint.yaml
vendored
|
@ -2,3 +2,4 @@ self-hosted-runner:
|
||||||
labels:
|
labels:
|
||||||
- actuated-4cpu-8gb
|
- actuated-4cpu-8gb
|
||||||
- actuated-4cpu-16gb
|
- actuated-4cpu-16gb
|
||||||
|
- nscloud
|
||||||
|
|
87
.github/labeler.yml
vendored
87
.github/labeler.yml
vendored
|
@ -1,35 +1,84 @@
|
||||||
kind/docs:
|
modifies/docs:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
- "**/*.md"
|
- "**/*.md"
|
||||||
- "docs/**"
|
- "docs/**"
|
||||||
|
|
||||||
kind/ui:
|
modifies/frontend:
|
||||||
- "web_src/**/*"
|
- changed-files:
|
||||||
- all: ["templates/**", "!templates/swagger/v1_json.tmpl"]
|
- any-glob-to-any-file:
|
||||||
|
- "web_src/**"
|
||||||
|
- "tailwind.config.js"
|
||||||
|
- "webpack.config.js"
|
||||||
|
|
||||||
kind/api:
|
modifies/templates:
|
||||||
- "templates/swagger/v1_json.tmpl"
|
- changed-files:
|
||||||
|
- all-globs-to-any-file:
|
||||||
|
- "templates/**"
|
||||||
|
- "!templates/swagger/v1_json.tmpl"
|
||||||
|
|
||||||
|
modifies/api:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
- "routers/api/**"
|
- "routers/api/**"
|
||||||
|
- "templates/swagger/v1_json.tmpl"
|
||||||
|
|
||||||
kind/build:
|
modifies/cli:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- "cmd/**"
|
||||||
|
|
||||||
|
modifies/translation:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- "options/locale/*.ini"
|
||||||
|
|
||||||
|
modifies/migrations:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- "models/migrations/**"
|
||||||
|
|
||||||
|
modifies/internal:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- ".air.toml"
|
||||||
- "Makefile"
|
- "Makefile"
|
||||||
- "Dockerfile"
|
- "Dockerfile"
|
||||||
- "Dockerfile.rootless"
|
- "Dockerfile.rootless"
|
||||||
|
- ".dockerignore"
|
||||||
- "docker/**"
|
- "docker/**"
|
||||||
- "webpack.config.js"
|
- ".editorconfig"
|
||||||
|
|
||||||
theme/package-registry:
|
|
||||||
- "modules/packages/**"
|
|
||||||
- "services/packages/**"
|
|
||||||
- "routers/api/packages/**"
|
|
||||||
- "routers/web/shared/packages/**"
|
|
||||||
|
|
||||||
kind/cli:
|
|
||||||
- "cmd/**"
|
|
||||||
|
|
||||||
kind/lint:
|
|
||||||
- ".eslintrc.yaml"
|
- ".eslintrc.yaml"
|
||||||
- ".golangci.yml"
|
- ".golangci.yml"
|
||||||
|
- ".gitpod.yml"
|
||||||
- ".markdownlint.yaml"
|
- ".markdownlint.yaml"
|
||||||
- ".spectral.yaml"
|
- ".spectral.yaml"
|
||||||
- ".stylelintrc.yaml"
|
- ".stylelintrc.yaml"
|
||||||
- ".yamllint.yaml"
|
- ".yamllint.yaml"
|
||||||
|
- ".github/**"
|
||||||
|
- ".gitea/"
|
||||||
|
- ".devcontainer/**"
|
||||||
|
- "build.go"
|
||||||
|
- "build/**"
|
||||||
|
- "contrib/**"
|
||||||
|
|
||||||
|
modifies/dependencies:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- "package.json"
|
||||||
|
- "package-lock.json"
|
||||||
|
- "poetry.toml"
|
||||||
|
- "poetry.lock"
|
||||||
|
- "go.mod"
|
||||||
|
- "go.sum"
|
||||||
|
- "pyproject.toml"
|
||||||
|
|
||||||
|
modifies/go:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- "**/*.go"
|
||||||
|
|
||||||
|
modifies/js:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- "**/*.js"
|
||||||
|
|
36
.github/workflows/disk-clean.yml
vendored
Normal file
36
.github/workflows/disk-clean.yml
vendored
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
name: disk-clean
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
triage:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# FIXME: https://github.com/jlumbroso/free-disk-space/issues/17
|
||||||
|
- name: same as 'large-packages' but without 'google-cloud-sdk'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo apt-get remove -y '^dotnet-.*'
|
||||||
|
sudo apt-get remove -y '^llvm-.*'
|
||||||
|
sudo apt-get remove -y 'php.*'
|
||||||
|
sudo apt-get remove -y '^mongodb-.*'
|
||||||
|
sudo apt-get remove -y '^mysql-.*'
|
||||||
|
sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri
|
||||||
|
sudo apt-get autoremove -y
|
||||||
|
sudo apt-get clean
|
||||||
|
- name: Free Disk Space (Ubuntu)
|
||||||
|
uses: jlumbroso/free-disk-space@main
|
||||||
|
with:
|
||||||
|
# this might remove tools that are actually needed,
|
||||||
|
# if set to "true" but frees about 6 GB
|
||||||
|
tool-cache: false
|
||||||
|
|
||||||
|
# all of these default to true, but feel free to set to
|
||||||
|
# "false" if necessary for your workflow
|
||||||
|
android: true
|
||||||
|
dotnet: true
|
||||||
|
haskell: true
|
||||||
|
large-packages: false
|
||||||
|
docker-images: false
|
||||||
|
swap-storage: true
|
12
.github/workflows/pull-compliance.yml
vendored
12
.github/workflows/pull-compliance.yml
vendored
|
@ -64,6 +64,18 @@ jobs:
|
||||||
- run: make deps-frontend
|
- run: make deps-frontend
|
||||||
- run: make lint-swagger
|
- run: make lint-swagger
|
||||||
|
|
||||||
|
lint-spell:
|
||||||
|
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.frontend == 'true' || needs.files-changed.outputs.actions == 'true' || needs.files-changed.outputs.docs == 'true' || needs.files-changed.outputs.templates == 'true'
|
||||||
|
needs: files-changed
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version-file: go.mod
|
||||||
|
check-latest: true
|
||||||
|
- run: make lint-spell
|
||||||
|
|
||||||
lint-go-windows:
|
lint-go-windows:
|
||||||
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
|
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
|
||||||
needs: files-changed
|
needs: files-changed
|
||||||
|
|
18
.github/workflows/pull-db-tests.yml
vendored
18
.github/workflows/pull-db-tests.yml
vendored
|
@ -49,7 +49,10 @@ jobs:
|
||||||
- run: make backend
|
- run: make backend
|
||||||
env:
|
env:
|
||||||
TAGS: bindata
|
TAGS: bindata
|
||||||
- run: make test-pgsql-migration test-pgsql
|
- name: run migration tests
|
||||||
|
run: make test-pgsql-migration
|
||||||
|
- name: run tests
|
||||||
|
run: make test-pgsql
|
||||||
timeout-minutes: 50
|
timeout-minutes: 50
|
||||||
env:
|
env:
|
||||||
TAGS: bindata gogit
|
TAGS: bindata gogit
|
||||||
|
@ -72,7 +75,10 @@ jobs:
|
||||||
- run: make backend
|
- run: make backend
|
||||||
env:
|
env:
|
||||||
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
||||||
- run: make test-sqlite-migration test-sqlite
|
- name: run migration tests
|
||||||
|
run: make test-sqlite-migration
|
||||||
|
- name: run tests
|
||||||
|
run: make test-sqlite
|
||||||
timeout-minutes: 50
|
timeout-minutes: 50
|
||||||
env:
|
env:
|
||||||
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
||||||
|
@ -189,8 +195,10 @@ jobs:
|
||||||
- run: make backend
|
- run: make backend
|
||||||
env:
|
env:
|
||||||
TAGS: bindata
|
TAGS: bindata
|
||||||
|
- name: run migration tests
|
||||||
|
run: make test-mysql-migration
|
||||||
- name: run tests
|
- name: run tests
|
||||||
run: make test-mysql-migration integration-test-coverage
|
run: make integration-test-coverage
|
||||||
env:
|
env:
|
||||||
TAGS: bindata
|
TAGS: bindata
|
||||||
RACE_ENABLED: true
|
RACE_ENABLED: true
|
||||||
|
@ -252,7 +260,9 @@ jobs:
|
||||||
- run: make backend
|
- run: make backend
|
||||||
env:
|
env:
|
||||||
TAGS: bindata
|
TAGS: bindata
|
||||||
- run: make test-mssql-migration test-mssql
|
- run: make test-mssql-migration
|
||||||
|
- name: run tests
|
||||||
|
run: make test-mssql
|
||||||
timeout-minutes: 50
|
timeout-minutes: 50
|
||||||
env:
|
env:
|
||||||
TAGS: bindata
|
TAGS: bindata
|
||||||
|
|
5
.github/workflows/pull-labeler.yml
vendored
5
.github/workflows/pull-labeler.yml
vendored
|
@ -9,13 +9,12 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
label:
|
labeler:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/labeler@v4
|
- uses: actions/labeler@v5
|
||||||
with:
|
with:
|
||||||
dot: true
|
|
||||||
sync-labels: true
|
sync-labels: true
|
||||||
|
|
24
.github/workflows/release-nightly.yml
vendored
24
.github/workflows/release-nightly.yml
vendored
|
@ -1,4 +1,4 @@
|
||||||
name: release-nightly-assets
|
name: release-nightly
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
@ -10,7 +10,7 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
nightly-binary:
|
nightly-binary:
|
||||||
runs-on: actuated-4cpu-16gb
|
runs-on: nscloud
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
||||||
|
@ -46,17 +46,17 @@ jobs:
|
||||||
REF_NAME=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///' -e 's/refs\/tags\///' -e 's/release\/v//')
|
REF_NAME=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///' -e 's/refs\/tags\///' -e 's/release\/v//')
|
||||||
echo "Cleaned name is ${REF_NAME}"
|
echo "Cleaned name is ${REF_NAME}"
|
||||||
echo "branch=${REF_NAME}" >> "$GITHUB_OUTPUT"
|
echo "branch=${REF_NAME}" >> "$GITHUB_OUTPUT"
|
||||||
|
- name: configure aws
|
||||||
|
uses: aws-actions/configure-aws-credentials@v4
|
||||||
|
with:
|
||||||
|
aws-region: ${{ secrets.AWS_REGION }}
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
- name: upload binaries to s3
|
- name: upload binaries to s3
|
||||||
uses: jakejarvis/s3-sync-action@master
|
run: |
|
||||||
env:
|
aws s3 sync dist/release s3://${{ secrets.AWS_S3_BUCKET }}/gitea/${{ steps.clean_name.outputs.branch }} --no-progress
|
||||||
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
AWS_REGION: ${{ secrets.AWS_REGION }}
|
|
||||||
SOURCE_DIR: dist/release
|
|
||||||
DEST_DIR: gitea/${{ steps.clean_name.outputs.branch }}
|
|
||||||
nightly-docker-rootful:
|
nightly-docker-rootful:
|
||||||
runs-on: actuated-4cpu-16gb
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
||||||
|
@ -93,7 +93,7 @@ jobs:
|
||||||
push: true
|
push: true
|
||||||
tags: gitea/gitea:${{ steps.clean_name.outputs.branch }}
|
tags: gitea/gitea:${{ steps.clean_name.outputs.branch }}
|
||||||
nightly-docker-rootless:
|
nightly-docker-rootless:
|
||||||
runs-on: actuated-4cpu-16gb
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
||||||
|
|
132
.github/workflows/release-tag-rc.yml
vendored
Normal file
132
.github/workflows/release-tag-rc.yml
vendored
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
name: release-tag-rc
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v1*-rc*'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
binary:
|
||||||
|
runs-on: nscloud
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
||||||
|
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567
|
||||||
|
- run: git fetch --unshallow --quiet --tags --force
|
||||||
|
- uses: actions/setup-go@v4
|
||||||
|
with:
|
||||||
|
go-version: "~1.21"
|
||||||
|
check-latest: true
|
||||||
|
- uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
- run: make deps-frontend deps-backend
|
||||||
|
# xgo build
|
||||||
|
- run: make release
|
||||||
|
env:
|
||||||
|
TAGS: bindata sqlite sqlite_unlock_notify
|
||||||
|
- name: import gpg key
|
||||||
|
id: import_gpg
|
||||||
|
uses: crazy-max/ghaction-import-gpg@v5
|
||||||
|
with:
|
||||||
|
gpg_private_key: ${{ secrets.GPGSIGN_KEY }}
|
||||||
|
passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }}
|
||||||
|
- name: sign binaries
|
||||||
|
run: |
|
||||||
|
for f in dist/release/*; do
|
||||||
|
echo '${{ secrets.GPGSIGN_PASSPHRASE }}' | gpg --pinentry-mode loopback --passphrase-fd 0 --batch --yes --detach-sign -u ${{ steps.import_gpg.outputs.fingerprint }} --output "$f.asc" "$f"
|
||||||
|
done
|
||||||
|
# clean branch name to get the folder name in S3
|
||||||
|
- name: Get cleaned branch name
|
||||||
|
id: clean_name
|
||||||
|
run: |
|
||||||
|
REF_NAME=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///' -e 's/refs\/tags\/v//' -e 's/release\/v//')
|
||||||
|
echo "Cleaned name is ${REF_NAME}"
|
||||||
|
echo "branch=${REF_NAME}" >> "$GITHUB_OUTPUT"
|
||||||
|
- name: configure aws
|
||||||
|
uses: aws-actions/configure-aws-credentials@v4
|
||||||
|
with:
|
||||||
|
aws-region: ${{ secrets.AWS_REGION }}
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
- name: upload binaries to s3
|
||||||
|
run: |
|
||||||
|
aws s3 sync dist/release s3://${{ secrets.AWS_S3_BUCKET }}/gitea/${{ steps.clean_name.outputs.branch }} --no-progress
|
||||||
|
- name: Install GH CLI
|
||||||
|
uses: dev-hanz-ops/install-gh-cli-action@v0.1.0
|
||||||
|
with:
|
||||||
|
gh-cli-version: 2.39.1
|
||||||
|
- name: create github release
|
||||||
|
run: |
|
||||||
|
gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --draft --notes-from-tag dist/release/*
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||||
|
docker-rootful:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
||||||
|
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567
|
||||||
|
- run: git fetch --unshallow --quiet --tags --force
|
||||||
|
- uses: docker/setup-qemu-action@v2
|
||||||
|
- uses: docker/setup-buildx-action@v2
|
||||||
|
- uses: docker/metadata-action@v5
|
||||||
|
id: meta
|
||||||
|
with:
|
||||||
|
images: gitea/gitea
|
||||||
|
flavor: |
|
||||||
|
latest=false
|
||||||
|
# 1.2.3-rc0
|
||||||
|
tags: |
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: build rootful docker image
|
||||||
|
uses: docker/build-push-action@v4
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
docker-rootless:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
||||||
|
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567
|
||||||
|
- run: git fetch --unshallow --quiet --tags --force
|
||||||
|
- uses: docker/setup-qemu-action@v2
|
||||||
|
- uses: docker/setup-buildx-action@v2
|
||||||
|
- uses: docker/metadata-action@v5
|
||||||
|
id: meta
|
||||||
|
with:
|
||||||
|
images: gitea/gitea
|
||||||
|
# each tag below will have the suffix of -rootless
|
||||||
|
flavor: |
|
||||||
|
latest=false
|
||||||
|
suffix=-rootless
|
||||||
|
# 1.2.3-rc0
|
||||||
|
tags: |
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: build rootless docker image
|
||||||
|
uses: docker/build-push-action@v4
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
file: Dockerfile.rootless
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
143
.github/workflows/release-tag-version.yml
vendored
Normal file
143
.github/workflows/release-tag-version.yml
vendored
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
name: release-tag-version
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v1.*'
|
||||||
|
- '!v1*-rc*'
|
||||||
|
- '!v1*-dev'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
binary:
|
||||||
|
runs-on: nscloud
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
||||||
|
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567
|
||||||
|
- run: git fetch --unshallow --quiet --tags --force
|
||||||
|
- uses: actions/setup-go@v4
|
||||||
|
with:
|
||||||
|
go-version: "~1.21"
|
||||||
|
check-latest: true
|
||||||
|
- uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
- run: make deps-frontend deps-backend
|
||||||
|
# xgo build
|
||||||
|
- run: make release
|
||||||
|
env:
|
||||||
|
TAGS: bindata sqlite sqlite_unlock_notify
|
||||||
|
- name: import gpg key
|
||||||
|
id: import_gpg
|
||||||
|
uses: crazy-max/ghaction-import-gpg@v5
|
||||||
|
with:
|
||||||
|
gpg_private_key: ${{ secrets.GPGSIGN_KEY }}
|
||||||
|
passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }}
|
||||||
|
- name: sign binaries
|
||||||
|
run: |
|
||||||
|
for f in dist/release/*; do
|
||||||
|
echo '${{ secrets.GPGSIGN_PASSPHRASE }}' | gpg --pinentry-mode loopback --passphrase-fd 0 --batch --yes --detach-sign -u ${{ steps.import_gpg.outputs.fingerprint }} --output "$f.asc" "$f"
|
||||||
|
done
|
||||||
|
# clean branch name to get the folder name in S3
|
||||||
|
- name: Get cleaned branch name
|
||||||
|
id: clean_name
|
||||||
|
run: |
|
||||||
|
REF_NAME=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///' -e 's/refs\/tags\/v//' -e 's/release\/v//')
|
||||||
|
echo "Cleaned name is ${REF_NAME}"
|
||||||
|
echo "branch=${REF_NAME}" >> "$GITHUB_OUTPUT"
|
||||||
|
- name: configure aws
|
||||||
|
uses: aws-actions/configure-aws-credentials@v4
|
||||||
|
with:
|
||||||
|
aws-region: ${{ secrets.AWS_REGION }}
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
- name: upload binaries to s3
|
||||||
|
run: |
|
||||||
|
aws s3 sync dist/release s3://${{ secrets.AWS_S3_BUCKET }}/gitea/${{ steps.clean_name.outputs.branch }} --no-progress
|
||||||
|
- name: Install GH CLI
|
||||||
|
uses: dev-hanz-ops/install-gh-cli-action@v0.1.0
|
||||||
|
with:
|
||||||
|
gh-cli-version: 2.39.1
|
||||||
|
- name: create github release
|
||||||
|
run: |
|
||||||
|
gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --notes-from-tag dist/release/*
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||||
|
docker-rootful:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
||||||
|
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567
|
||||||
|
- run: git fetch --unshallow --quiet --tags --force
|
||||||
|
- uses: docker/setup-qemu-action@v2
|
||||||
|
- uses: docker/setup-buildx-action@v2
|
||||||
|
- uses: docker/metadata-action@v5
|
||||||
|
id: meta
|
||||||
|
with:
|
||||||
|
images: gitea/gitea
|
||||||
|
# this will generate tags in the following format:
|
||||||
|
# latest
|
||||||
|
# 1
|
||||||
|
# 1.2
|
||||||
|
# 1.2.3
|
||||||
|
tags: |
|
||||||
|
type=semver,pattern={{major}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: build rootful docker image
|
||||||
|
uses: docker/build-push-action@v4
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
docker-rootless:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
|
||||||
|
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567
|
||||||
|
- run: git fetch --unshallow --quiet --tags --force
|
||||||
|
- uses: docker/setup-qemu-action@v2
|
||||||
|
- uses: docker/setup-buildx-action@v2
|
||||||
|
- uses: docker/metadata-action@v5
|
||||||
|
id: meta
|
||||||
|
with:
|
||||||
|
images: gitea/gitea
|
||||||
|
# each tag below will have the suffix of -rootless
|
||||||
|
flavor: |
|
||||||
|
suffix=-rootless,onlatest=true
|
||||||
|
# this will generate tags in the following format (with -rootless suffix added):
|
||||||
|
# latest
|
||||||
|
# 1
|
||||||
|
# 1.2
|
||||||
|
# 1.2.3
|
||||||
|
tags: |
|
||||||
|
type=semver,pattern={{major}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: build rootless docker image
|
||||||
|
uses: docker/build-push-action@v4
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
file: Dockerfile.rootless
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
|
@ -6,7 +6,6 @@ line-length: {code_blocks: false, tables: false, stern: true, line_length: -1}
|
||||||
no-alt-text: false
|
no-alt-text: false
|
||||||
no-bare-urls: false
|
no-bare-urls: false
|
||||||
no-blanks-blockquote: false
|
no-blanks-blockquote: false
|
||||||
no-duplicate-header: {allow_different_nesting: true}
|
|
||||||
no-emphasis-as-header: false
|
no-emphasis-as-header: false
|
||||||
no-empty-links: false
|
no-empty-links: false
|
||||||
no-hard-tabs: {code_blocks: false}
|
no-hard-tabs: {code_blocks: false}
|
||||||
|
|
|
@ -24,8 +24,6 @@ rules:
|
||||||
document-start:
|
document-start:
|
||||||
level: error
|
level: error
|
||||||
present: false
|
present: false
|
||||||
ignore: |
|
|
||||||
/.drone.yml
|
|
||||||
|
|
||||||
document-end:
|
document-end:
|
||||||
present: false
|
present: false
|
||||||
|
@ -44,5 +42,3 @@ rules:
|
||||||
ignore: |
|
ignore: |
|
||||||
.venv
|
.venv
|
||||||
node_modules
|
node_modules
|
||||||
/models/fixtures
|
|
||||||
/models/migrations/fixtures
|
|
||||||
|
|
|
@ -42,13 +42,13 @@ GARGS = "--no-print-directory"
|
||||||
|
|
||||||
# The GNU convention is to use the lowercased `prefix` variable/macro to
|
# The GNU convention is to use the lowercased `prefix` variable/macro to
|
||||||
# specify the installation directory. Humor them.
|
# specify the installation directory. Humor them.
|
||||||
GPREFIX = ""
|
GPREFIX =
|
||||||
.if defined(PREFIX) && ! defined(prefix)
|
.if defined(PREFIX) && ! defined(prefix)
|
||||||
GPREFIX = 'prefix = "$(PREFIX)"'
|
GPREFIX = 'prefix = "$(PREFIX)"'
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.BEGIN: .SILENT
|
.BEGIN: .SILENT
|
||||||
which $(GMAKE) || printf "Error: GNU Make is required!\n\n" 1>&2 && false
|
which $(GMAKE) || (printf "Error: GNU Make is required!\n\n" 1>&2 && false)
|
||||||
|
|
||||||
.PHONY: FRC
|
.PHONY: FRC
|
||||||
$(.TARGETS): FRC
|
$(.TARGETS): FRC
|
||||||
|
|
803
CHANGELOG.md
803
CHANGELOG.md
|
@ -4,6 +4,808 @@ This changelog goes through all the changes that have been made in each release
|
||||||
without substantial changes to our git log; to see the highlights of what has
|
without substantial changes to our git log; to see the highlights of what has
|
||||||
been added to each release, please refer to the [blog](https://blog.gitea.com).
|
been added to each release, please refer to the [blog](https://blog.gitea.com).
|
||||||
|
|
||||||
|
## [1.21.9](https://github.com/go-gitea/gitea/releases/tag/1.21.9) - 2024-03-21
|
||||||
|
|
||||||
|
* PERFORMANCE
|
||||||
|
* Only do counting when count_only=true for repo dashboard (#29884) (#29905)
|
||||||
|
* Add cache for dashboard commit status (#29932)
|
||||||
|
* ENHANCEMENT
|
||||||
|
* Make runs-on support variable expression (#29468) (#29782)
|
||||||
|
* Show Actions post step when it's running (#29926) (#29928)
|
||||||
|
* BUGFIXES
|
||||||
|
* Fix PR creation via API between branches of the same repo with head field namespaced (#26986) (#29857)
|
||||||
|
* Fix and rewrite markup anchor processing (#29931) (#29946)
|
||||||
|
* Notify reviewers added via CODEOWNERS (#29842) (#29902)
|
||||||
|
* Fix template error when comment review doesn't exist (#29888) (#29889)
|
||||||
|
* Fix user id column case (#29863) (#29867)
|
||||||
|
* Make meilisearch do exact search for issues (#29740 & #29671) (#29846)
|
||||||
|
* Fix the `for` attribute not pointing to the ID of the color picker (#29813) (#29815)
|
||||||
|
* Fix codeowner detected diff base branch to mergebase (#29783) (#29807)
|
||||||
|
* Fix Safari spinner rendering (#29801) (#29802)
|
||||||
|
* Fix missing translation on milestones (#29785) (#29789)
|
||||||
|
* Fix user router possible panic (#29751) (#29786)
|
||||||
|
* Fix possible NPE in ToPullReviewList (#29759) (#29775)
|
||||||
|
* Fix the wrong default value of ENABLE_OPENID_SIGNIN on docs (#29925) (#29927)
|
||||||
|
* Solving the issue of UI disruption when the review is deleted without refreshing (#29951) (#29968)
|
||||||
|
* Fix loadOneBranch panic (#29938) (#29939)
|
||||||
|
* Fix invalid link of the commit status when ref is tagged (#29752) (#29908)
|
||||||
|
* Editor error message misleading due to re-used key. (#29859) (#29876)
|
||||||
|
* Fix double border and border-radius on empty action steps (#29845) (#29850)
|
||||||
|
* Use `Temporal.PlainDate` for absolute dates (#29804) (#29808)
|
||||||
|
* Fix incorrect package link method calls in templates (#29580) (#29764)
|
||||||
|
* Fix the bug that the user may log out if GetUserByID returns unknown error (#29962) (#29964)
|
||||||
|
* Performance improvements for pull request list page (#29900) (#29972)
|
||||||
|
* Fix bugs in rerunning jobs (#29983) (#29955)
|
||||||
|
|
||||||
|
## [1.21.8](https://github.com/go-gitea/gitea/releases/tag/1.21.8) - 2024-03-12
|
||||||
|
|
||||||
|
* SECURITY
|
||||||
|
* Only use supported sort orders for "/explore/users" page (#29430) (#29443)
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Fix wrong line number in code search result (#29260) (#29623)
|
||||||
|
* BUGFIXES
|
||||||
|
* Use Get but not Post to get actions artifacts (#29734) (#29737)
|
||||||
|
* Fix inconsistent rendering of block mathematical expressions (#29677) (#29711)
|
||||||
|
* Fix rendering internal file links in org (#29669) (#29705)
|
||||||
|
* Don't show AbortErrors on logout (#29639) (#29667)
|
||||||
|
* Fix user-defined markup links targets (#29305) (#29666)
|
||||||
|
* Fix incorrect rendering csv file when file size is larger than UI.CSV.MaxFileSize (#29653) (#29663)
|
||||||
|
* Fix hidden test's failure (#29254) (#29662)
|
||||||
|
* Add empty repo check-in DetectAndHandleSchedules (#29606) (#29659)
|
||||||
|
* Fix 500 when deleting an account with an incorrect password or unsupported login type (#29579) (#29656)
|
||||||
|
* Use strict protocol check when redirect (#29642) (#29644)
|
||||||
|
* Avoid issue info panic (#29625) (#29632)
|
||||||
|
* Avoid unexpected panic in graceful manager (#29629) (#29630)
|
||||||
|
* Make "/user/login" page redirect if the current user has signed in (#29583) (#29599)
|
||||||
|
* Fix workflow trigger event IssueChangeXXX bug (#29559) (#29565)
|
||||||
|
* Fix incorrect cookie path for AppSubURL (#29534) (#29552)
|
||||||
|
* Fix queue worker incorrectly stopped when there are still more items in the queue (#29532) (#29546)
|
||||||
|
* Fix incorrect redirection when creating a PR fails (#29537) (#29543)
|
||||||
|
* Fix incorrect subpath in links (#29535) (#29541)
|
||||||
|
* Fix issue link does not support quotes (#29484) (#29487) (#29536)
|
||||||
|
* Fix issue & comment history bugs (#29525) (#29527)
|
||||||
|
* Set pre-step status to `skipped` if the job is skipped (#29489) (#29523)
|
||||||
|
* Fix/Improve `processWindowErrorEvent` (#29407) (#29480)
|
||||||
|
* Fix counter display number incorrectly displayed on the page (#29448) (#29478)
|
||||||
|
* Fix workflow trigger event bugs (#29467) (#29475)
|
||||||
|
* Fix URL calculation in the clone input box (#29470) (#29473)
|
||||||
|
* The job should always run when `if` is `always()` (#29464) (#29469)
|
||||||
|
* Fix template bug (#27581) (#29446)
|
||||||
|
* Not trigger all jobs anymore when re-running the first job (#29439) (#29441)
|
||||||
|
* Ignore empty repo for CreateRepository in action notifier (#29416) (#29424)
|
||||||
|
* Fix incorrect tree path value for patch editor (#29377) (#29421)
|
||||||
|
* Add missing database transaction for new issues (#29490) (#29607)
|
||||||
|
* Fix 500 when pushing release to an empty repo (#29554) (#29564)
|
||||||
|
* Fix incorrect relative/absolute URL usages (#29531) (#29547)
|
||||||
|
* Fix wrong test usage of `AppSubURL` (#29459) (#29488)
|
||||||
|
* Fix missed return (#29450) (#29453)
|
||||||
|
* Fixing the issue when status checks per rule matches multiple actions (#29631) (#29655)
|
||||||
|
* Improve contrast on blame timestamp, fix double border (#29482) (#29485)
|
||||||
|
|
||||||
|
## [1.21.7](https://github.com/go-gitea/gitea/releases/tag/1.21.7) - 2024-02-26
|
||||||
|
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Users with `read` permission of pull requests can be assigned too (#27263) (#29372)
|
||||||
|
* BUGFIXES
|
||||||
|
* Do not double close reader (#29354) (#29370)
|
||||||
|
* Display friendly error message (#29105) (#29363)
|
||||||
|
* Fix project counter in organization/individual profile (#28068) (#29361)
|
||||||
|
* Fix validity of the FROM email address not being checked (#29347) (#29360)
|
||||||
|
* Fix tarball/zipball download bug (#29342) (#29352)
|
||||||
|
* DOCS
|
||||||
|
* Docker Tag Information in Docs (#29047) (#29362)
|
||||||
|
* MISC
|
||||||
|
* Enforce maxlength in frontend (#29389) (#29396)
|
||||||
|
|
||||||
|
## [1.21.6](https://github.com/go-gitea/gitea/releases/tag/v1.21.6) - 2024-02-22
|
||||||
|
|
||||||
|
* SECURITY
|
||||||
|
* Fix XSS vulnerabilities (#29336)
|
||||||
|
* Use general token signing secret (#29205) (#29325)
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Refactor git version functions and check compatibility (#29155) (#29157)
|
||||||
|
* Improve user experience for outdated comments (#29050) (#29086)
|
||||||
|
* Hide code links on release page if user cannot read code (#29064) (#29066)
|
||||||
|
* Wrap contained tags and branches again (#29021) (#29026)
|
||||||
|
* Fix incorrect button CSS usages (#29015) (#29023)
|
||||||
|
* Strip trailing newline in markdown code copy (#29019) (#29022)
|
||||||
|
* Implement some action notifier functions (#29173) (#29308)
|
||||||
|
* Load outdated comments when (un)resolving conversation on PR timeline (#29203) (#29221)
|
||||||
|
* BUGFIXES
|
||||||
|
* Refactor issue template parsing and fix API endpoint (#29069) (#29140)
|
||||||
|
* Fix swift packages not resolving (#29095) (#29102)
|
||||||
|
* Remove SSH workaround (#27893) (#29332)
|
||||||
|
* Only log error when tag sync fails (#29295) (#29327)
|
||||||
|
* Fix SSPI user creation (#28948) (#29323)
|
||||||
|
* Improve the `issue_comment` workflow trigger event (#29277) (#29322)
|
||||||
|
* Discard unread data of `git cat-file` (#29297) (#29310)
|
||||||
|
* Fix error display when merging PRs (#29288) (#29309)
|
||||||
|
* Prevent double use of `git cat-file` session. (#29298) (#29301)
|
||||||
|
* Fix missing link on outgoing new release notifications (#29079) (#29300)
|
||||||
|
* Fix debian InRelease Acquire-By-Hash newline (#29204) (#29299)
|
||||||
|
* Always write proc-receive hook for all git versions (#29287) (#29291)
|
||||||
|
* Do not show delete button when time tracker is disabled (#29257) (#29279)
|
||||||
|
* Workaround to clean up old reviews on creating a new one (#28554) (#29264)
|
||||||
|
* Fix bug when the linked account was disactived and list the linked accounts (#29263)
|
||||||
|
* Do not use lower tag names to find releases/tags (#29261) (#29262)
|
||||||
|
* Fix missed edit issues event for actions (#29237) (#29251)
|
||||||
|
* Only delete scheduled workflows when needed (#29091) (#29235)
|
||||||
|
* Make submit event code work with both jQuery event and native event (#29223) (#29234)
|
||||||
|
* Fix push to create with capitalize repo name (#29090) (#29206)
|
||||||
|
* Use ghost user if user was not found (#29161) (#29169)
|
||||||
|
* Dont load Review if Comment is CommentTypeReviewRequest (#28551) (#29160)
|
||||||
|
* Refactor parseSignatureFromCommitLine (#29054) (#29108)
|
||||||
|
* Avoid showing unnecessary JS errors when there are elements with different origin on the page (#29081) (#29089)
|
||||||
|
* Fix gitea-origin-url with default ports (#29085) (#29088)
|
||||||
|
* Fix orgmode link resolving (#29024) (#29076)
|
||||||
|
* Fix Elasticsearh Request Entity Too Large #28117 (#29062) (#29075)
|
||||||
|
* Do not render empty comments (#29039) (#29049)
|
||||||
|
* Avoid sending update/delete release notice when it is draft (#29008) (#29025)
|
||||||
|
* Fix gitea-action user avatar broken on edited menu (#29190) (#29307)
|
||||||
|
* Disallow merge when required checked are missing (#29143) (#29268)
|
||||||
|
* Fix incorrect link to swift doc and swift package-registry login command (#29096) (#29103)
|
||||||
|
* Convert visibility to number (#29226) (#29244)
|
||||||
|
* DOCS
|
||||||
|
* Remove outdated docs from some languages (#27530) (#29208)
|
||||||
|
* Fix typos in the documentation (#29048) (#29056)
|
||||||
|
* Explained where create issue/PR template (#29035)
|
||||||
|
|
||||||
|
## [1.21.5](https://github.com/go-gitea/gitea/releases/tag/v1.21.5) - 2024-01-31
|
||||||
|
|
||||||
|
* SECURITY
|
||||||
|
* Prevent anonymous container access if `RequireSignInView` is enabled (#28877) (#28882)
|
||||||
|
* Update go dependencies and fix go-git (#28893) (#28934)
|
||||||
|
* BUGFIXES
|
||||||
|
* Revert "Speed up loading the dashboard on mysql/mariadb (#28546)" (#29006) (#29007)
|
||||||
|
* Fix an actions schedule bug (#28942) (#28999)
|
||||||
|
* Fix update enable_prune even if mirror_interval is not provided (#28905) (#28929)
|
||||||
|
* Fix uploaded artifacts should be overwritten (#28726) backport v1.21 (#28832)
|
||||||
|
* Preserve BOM in web editor (#28935) (#28959)
|
||||||
|
* Strip `/` from relative links (#28932) (#28952)
|
||||||
|
* Don't remove all mirror repository's releases when mirroring (#28817) (#28939)
|
||||||
|
* Implement `MigrateRepository` for the actions notifier (#28920) (#28923)
|
||||||
|
* Respect branch info for relative links (#28909) (#28922)
|
||||||
|
* Don't reload timeline page when (un)resolving or replying conversation (#28654) (#28917)
|
||||||
|
* Only migrate the first 255 chars of a Github issue title (#28902) (#28912)
|
||||||
|
* Fix sort bug on repository issues list (#28897) (#28901)
|
||||||
|
* Fix `DeleteCollaboration` transaction behaviour (#28886) (#28889)
|
||||||
|
* Fix schedule not trigger bug because matching full ref name with short ref name (#28874) (#28888)
|
||||||
|
* Fix migrate storage bug (#28830) (#28867)
|
||||||
|
* Fix archive creating LFS hooks and breaking pull requests (#28848) (#28851)
|
||||||
|
* Fix reverting a merge commit failing (#28794) (#28825)
|
||||||
|
* Upgrade xorm to v1.3.7 to fix a resource leak problem caused by Iterate (#28891) (#28895)
|
||||||
|
* Fix incorrect PostgreSQL connection string for Unix sockets (#28865) (#28870)
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Make loading animation less aggressive (#28955) (#28956)
|
||||||
|
* Avoid duplicate JS error messages on UI (#28873) (#28881)
|
||||||
|
* Bump `@github/relative-time-element` to 4.3.1 (#28819) (#28826)
|
||||||
|
* MISC
|
||||||
|
* Warn that `DISABLE_QUERY_AUTH_TOKEN` is false only if it's explicitly defined (#28783) (#28868)
|
||||||
|
* Remove duplicated checkinit on git module (#28824) (#28831)
|
||||||
|
|
||||||
|
## [1.21.4](https://github.com/go-gitea/gitea/releases/tag/v1.21.4) - 2024-01-16
|
||||||
|
|
||||||
|
* SECURITY
|
||||||
|
* Update github.com/cloudflare/circl (#28789) (#28790)
|
||||||
|
* Require token for GET subscription endpoint (#28765) (#28768)
|
||||||
|
* BUGFIXES
|
||||||
|
* Use refname:strip-2 instead of refname:short when syncing tags (#28797) (#28811)
|
||||||
|
* Fix links in issue card (#28806) (#28807)
|
||||||
|
* Fix nil pointer panic when exec some gitea cli command (#28791) (#28795)
|
||||||
|
* Require token for GET subscription endpoint (#28765) (#28778)
|
||||||
|
* Fix button size in "attached header right" (#28770) (#28774)
|
||||||
|
* Fix `convert.ToTeams` on empty input (#28426) (#28767)
|
||||||
|
* Hide code related setting options in repository when code unit is disabled (#28631) (#28749)
|
||||||
|
* Fix incorrect URL for "Reference in New Issue" (#28716) (#28723)
|
||||||
|
* Fix panic when parsing empty pgsql host (#28708) (#28709)
|
||||||
|
* Upgrade xorm to new version which supported update join for all supported databases (#28590) (#28668)
|
||||||
|
* Fix alpine package files are not rebuilt (#28638) (#28665)
|
||||||
|
* Avoid cycle-redirecting user/login page (#28636) (#28658)
|
||||||
|
* Fix empty ref for cron workflow runs (#28640) (#28647)
|
||||||
|
* Remove unnecessary syncbranchToDB with tests (#28624) (#28629)
|
||||||
|
* Use known issue IID to generate new PR index number when migrating from GitLab (#28616) (#28618)
|
||||||
|
* Fix flex container width (#28603) (#28605)
|
||||||
|
* Fix the scroll behavior for emoji/mention list (#28597) (#28601)
|
||||||
|
* Fix wrong due date rendering in issue list page (#28588) (#28591)
|
||||||
|
* Fix `status_check_contexts` matching bug (#28582) (#28589)
|
||||||
|
* Fix 500 error of searching commits (#28576) (#28579)
|
||||||
|
* Use information from previous blame parts (#28572) (#28577)
|
||||||
|
* Update mermaid for 1.21 (#28571)
|
||||||
|
* Fix 405 method not allowed CORS / OIDC (#28583) (#28586) (#28587) (#28611)
|
||||||
|
* Fix `GetCommitStatuses` (#28787) (#28804)
|
||||||
|
* Forbid removing the last admin user (#28337) (#28793)
|
||||||
|
* Fix schedule tasks bugs (#28691) (#28780)
|
||||||
|
* Fix issue dependencies (#27736) (#28776)
|
||||||
|
* Fix system webhooks API bug (#28531) (#28666)
|
||||||
|
* Fix when private user following user, private user will not be counted in his own view (#28037) (#28792)
|
||||||
|
* Render code block in activity tab (#28816) (#28818)
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Rework markup link rendering (#26745) (#28803)
|
||||||
|
* Modernize merge button (#28140) (#28786)
|
||||||
|
* Speed up loading the dashboard on mysql/mariadb (#28546) (#28784)
|
||||||
|
* Assign pull request to project during creation (#28227) (#28775)
|
||||||
|
* Show description as tooltip instead of title for labels (#28754) (#28766)
|
||||||
|
* Make template `DateTime` show proper tooltip (#28677) (#28683)
|
||||||
|
* Switch destination directory for apt signing keys (#28639) (#28642)
|
||||||
|
* Include heap pprof in diagnosis report to help debugging memory leaks (#28596) (#28599)
|
||||||
|
* DOCS
|
||||||
|
* Suggest to use Type=simple for systemd service (#28717) (#28722)
|
||||||
|
* Extend description for ARTIFACT_RETENTION_DAYS (#28626) (#28630)
|
||||||
|
* MISC
|
||||||
|
* Add -F to commit search to treat keywords as strings (#28744) (#28748)
|
||||||
|
* Add download attribute to release attachments (#28739) (#28740)
|
||||||
|
* Concatenate error in `checkIfPRContentChanged` (#28731) (#28737)
|
||||||
|
* Improve 1.21 document for Database Preparation (#28643) (#28644)
|
||||||
|
|
||||||
|
## [1.21.3](https://github.com/go-gitea/gitea/releases/tag/v1.21.3) - 2023-12-21
|
||||||
|
|
||||||
|
* SECURITY
|
||||||
|
* Update golang.org/x/crypto (#28519)
|
||||||
|
* API
|
||||||
|
* chore(api): support ignore password if login source type is LDAP for creating user API (#28491) (#28525)
|
||||||
|
* Add endpoint for not implemented Docker auth (#28457) (#28462)
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Add option to disable ambiguous unicode characters detection (#28454) (#28499)
|
||||||
|
* Refactor SSH clone URL generation code (#28421) (#28480)
|
||||||
|
* Polyfill SubmitEvent for PaleMoon (#28441) (#28478)
|
||||||
|
* BUGFIXES
|
||||||
|
* Fix the issue ref rendering for wiki (#28556) (#28559)
|
||||||
|
* Fix duplicate ID when deleting repo (#28520) (#28528)
|
||||||
|
* Only check online runner when detecting matching runners in workflows (#28286) (#28512)
|
||||||
|
* Initalize stroage for orphaned repository doctor (#28487) (#28490)
|
||||||
|
* Fix possible nil pointer access (#28428) (#28440)
|
||||||
|
* Don't show unnecessary citation JS error on UI (#28433) (#28437)
|
||||||
|
* DOCS
|
||||||
|
* Update actions document about comparsion as Github Actions (#28560) (#28564)
|
||||||
|
* Fix documents for "custom/public/assets/" (#28465) (#28467)
|
||||||
|
* MISC
|
||||||
|
* Fix inperformant query on retrifing review from database. (#28552) (#28562)
|
||||||
|
* Improve the prompt for "ssh-keygen sign" (#28509) (#28510)
|
||||||
|
* Update docs for DISABLE_QUERY_AUTH_TOKEN (#28485) (#28488)
|
||||||
|
* Fix Chinese translation of config cheat sheet[API] (#28472) (#28473)
|
||||||
|
* Retry SSH key verification with additional CRLF if it failed (#28392) (#28464)
|
||||||
|
|
||||||
|
## [1.21.2](https://github.com/go-gitea/gitea/releases/tag/v1.21.2) - 2023-12-12
|
||||||
|
|
||||||
|
* SECURITY
|
||||||
|
* Rebuild with recently released golang version
|
||||||
|
* Fix missing check (#28406) (#28411)
|
||||||
|
* Do some missing checks (#28423) (#28432)
|
||||||
|
* BUGFIXES
|
||||||
|
* Fix margin in server signed signature verification view (#28379) (#28381)
|
||||||
|
* Fix object does not exist error when checking citation file (#28314) (#28369)
|
||||||
|
* Use `filepath` instead of `path` to create SQLite3 database file (#28374) (#28378)
|
||||||
|
* Fix the runs will not be displayed bug when the main branch have no workflows but other branches have (#28359) (#28365)
|
||||||
|
* Handle repository.size column being NULL in migration v263 (#28336) (#28363)
|
||||||
|
* Convert git commit summary to valid UTF8. (#28356) (#28358)
|
||||||
|
* Fix migration panic due to an empty review comment diff (#28334) (#28362)
|
||||||
|
* Add `HEAD` support for rpm repo files (#28309) (#28360)
|
||||||
|
* Fix RPM/Debian signature key creation (#28352) (#28353)
|
||||||
|
* Keep profile tab when clicking on Language (#28320) (#28331)
|
||||||
|
* Fix missing issue search index update when changing status (#28325) (#28330)
|
||||||
|
* Fix wrong link in `protect_branch_name_pattern_desc` (#28313) (#28315)
|
||||||
|
* Read `previous` info from git blame (#28306) (#28310)
|
||||||
|
* Ignore "non-existing" errors when getDirectorySize calculates the size (#28276) (#28285)
|
||||||
|
* Use appSubUrl for OAuth2 callback URL tip (#28266) (#28275)
|
||||||
|
* Meilisearch: require all query terms to be matched (#28293) (#28296)
|
||||||
|
* Fix required error for token name (#28267) (#28284)
|
||||||
|
* Fix issue will be detected as pull request when checking `First-time contributor` (#28237) (#28271)
|
||||||
|
* Use full width for project boards (#28225) (#28245)
|
||||||
|
* Increase "version" when update the setting value to a same value as before (#28243) (#28244)
|
||||||
|
* Also sync DB branches on push if necessary (#28361) (#28403)
|
||||||
|
* Make gogit Repository.GetBranchNames consistent (#28348) (#28386)
|
||||||
|
* Recover from panic in cron task (#28409) (#28425)
|
||||||
|
* Deprecate query string auth tokens (#28390) (#28430)
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Improve doctor cli behavior (#28422) (#28424)
|
||||||
|
* Fix margin in server signed signature verification view (#28379) (#28381)
|
||||||
|
* Refactor template empty checks (#28351) (#28354)
|
||||||
|
* Read `previous` info from git blame (#28306) (#28310)
|
||||||
|
* Use full width for project boards (#28225) (#28245)
|
||||||
|
* Enable system users search via the API (#28013) (#28018)
|
||||||
|
|
||||||
|
## [1.21.1](https://github.com/go-gitea/gitea/releases/tag/v1.21.1) - 2023-11-26
|
||||||
|
|
||||||
|
* SECURITY
|
||||||
|
* Fix comment permissions (#28213) (#28216)
|
||||||
|
* BUGFIXES
|
||||||
|
* Fix delete-orphaned-repos (#28200) (#28202)
|
||||||
|
* Make CORS work for oauth2 handlers (#28184) (#28185)
|
||||||
|
* Fix missing buttons (#28179) (#28181)
|
||||||
|
* Fix no ActionTaskOutput table waring (#28149) (#28152)
|
||||||
|
* Fix empty action run title (#28113) (#28148)
|
||||||
|
* Use "is-loading" to avoid duplicate form submit for code comment (#28143) (#28147)
|
||||||
|
* Fix Matrix and MSTeams nil dereference (#28089) (#28105)
|
||||||
|
* Fix incorrect pgsql conn builder behavior (#28085) (#28098)
|
||||||
|
* Fix system config cache expiration timing (#28072) (#28090)
|
||||||
|
* Restricted users only see repos in orgs which their team was assigned to (#28025) (#28051)
|
||||||
|
* API
|
||||||
|
* Fix permissions for Token DELETE endpoint to match GET and POST (#27610) (#28099)
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Do not display search box when there's no packages yet (#28146) (#28159)
|
||||||
|
* Add missing `packages.cleanup.success` (#28129) (#28132)
|
||||||
|
* DOCS
|
||||||
|
* Docs: Replace deprecated IS_TLS_ENABLED mailer setting in email setup (#28205) (#28208)
|
||||||
|
* Fix the description about the default setting for action in quick start document (#28160) (#28168)
|
||||||
|
* Add guide page to actions when there's no workflows (#28145) (#28153)
|
||||||
|
* MISC
|
||||||
|
* Use full width for PR comparison (#28182) (#28186)
|
||||||
|
|
||||||
|
## [1.21.0](https://github.com/go-gitea/gitea/releases/tag/v1.21.0) - 2023-11-14
|
||||||
|
|
||||||
|
* BREAKING
|
||||||
|
* Restrict certificate type for builtin SSH server (#26789)
|
||||||
|
* Refactor to use urfave/cli/v2 (#25959)
|
||||||
|
* Move public asset files to the proper directory (#25907)
|
||||||
|
* Remove commit status running and warning to align GitHub (#25839) (partially reverted: Restore warning commit status (#27504) (#27529))
|
||||||
|
* Remove "CHARSET" config option for MySQL, always use "utf8mb4" (#25413)
|
||||||
|
* Set SSH_AUTHORIZED_KEYS_BACKUP to false (#25412)
|
||||||
|
* FEATURES
|
||||||
|
* User details page (#26713)
|
||||||
|
* Chore(actions): support cron schedule task (#26655)
|
||||||
|
* Support rebuilding issue indexer manually (#26546)
|
||||||
|
* Allow to archive labels (#26478)
|
||||||
|
* Add disable workflow feature (#26413)
|
||||||
|
* Support `.git-blame-ignore-revs` file (#26395)
|
||||||
|
* Pre-register OAuth2 applications for git credential helpers (#26291)
|
||||||
|
* Add `Retry` button when creating a mirror-repo fails (#26228)
|
||||||
|
* Artifacts retention and auto clean up (#26131)
|
||||||
|
* Serve pre-defined files in "public", add "security.txt", add CORS header for ".well-known" (#25974)
|
||||||
|
* Implement auto-cancellation of concurrent jobs if the event is push (#25716)
|
||||||
|
* Newly pushed branches hints on repository home page (#25715)
|
||||||
|
* Display branch commit status (#25608)
|
||||||
|
* Add direct serving of package content (#25543)
|
||||||
|
* Add commits dropdown in PR files view and allow commit by commit review (#25528)
|
||||||
|
* Allow package cleanup from admin page (#25307)
|
||||||
|
* Batch delete issue and improve tippy opts (#25253)
|
||||||
|
* Show branches and tags that contain a commit (#25180)
|
||||||
|
* Add actor and status dropdowns to run list (#25118)
|
||||||
|
* Allow Organisations to have a E-Mail (#25082)
|
||||||
|
* Add codeowners feature (#24910)
|
||||||
|
* Actions Artifacts support uploading multiple files and directories (#24874)
|
||||||
|
* Support configuration variables on Gitea Actions (#24724)
|
||||||
|
* Support downloading raw task logs (#24451)
|
||||||
|
* API
|
||||||
|
* Unify two factor check (#27915) (#27929)
|
||||||
|
* Fix package webhook (#27839) (#27855)
|
||||||
|
* Fix/upload artifact error windows (#27802) (#27840)
|
||||||
|
* Fix bad method call when deleting user secrets via API (#27829) (#27831)
|
||||||
|
* Do not force creation of _cargo-index repo on publish (#27266) (#27765)
|
||||||
|
* Delete repos of org when purge delete user (#27273) (#27728)
|
||||||
|
* Fix org team endpoint (#27721) (#27727)
|
||||||
|
* Api: GetPullRequestCommits: return file list (#27483) (#27539)
|
||||||
|
* Don't let API add 2 exclusive labels from same scope (#27433) (#27460)
|
||||||
|
* Redefine the meaning of column is_active to make Actions Registration Token generation easier (#27143) (#27304)
|
||||||
|
* Fix PushEvent NullPointerException jenkinsci/github-plugin (#27203) (#27251)
|
||||||
|
* Fix organization field being null in POST /orgs/{orgid}/teams (#27150) (#27163)
|
||||||
|
* Allow empty Conan files (#27092)
|
||||||
|
* Fix token endpoints ignore specified account (#27080)
|
||||||
|
* Reduce usage of `db.DefaultContext` (#27073) (#27083) (#27089) (#27103) (#27262) (#27265) (#27347) (#26076)
|
||||||
|
* Make SSPI auth mockable (#27036)
|
||||||
|
* Extract auth middleware from service (#27028)
|
||||||
|
* Add `RemoteAddress` to mirrors (#26952)
|
||||||
|
* Feat(API): add routes and functions for managing user's secrets (#26909)
|
||||||
|
* Feat(API): add secret deletion functionality for repository (#26808)
|
||||||
|
* Feat(API): add route and implementation for creating/updating repository secret (#26766)
|
||||||
|
* Add Upload URL to release API (#26663)
|
||||||
|
* Feat(API): update and delete secret for managing organization secrets (#26660)
|
||||||
|
* Feat: implement organization secret creation API (#26566)
|
||||||
|
* Add API route to list org secrets (#26485)
|
||||||
|
* Set commit id when ref used explicitly (#26447)
|
||||||
|
* PATCH branch-protection updates check list even when checks are disabled (#26351)
|
||||||
|
* Add file status for API "Get a single commit from a repository" (#16205) (#25831)
|
||||||
|
* Add API for changing Avatars (#25369)
|
||||||
|
* BUGFIXES
|
||||||
|
* Fix viewing wiki commit on empty repo (#28040) (#28044)
|
||||||
|
* Enable system users for comment.LoadPoster (#28014) (#28032)
|
||||||
|
* Fixed duplicate attachments on dump on windows (#28019) (#28031)
|
||||||
|
* Fix wrong xorm Delete usage(backport for 1.21) (#28002)
|
||||||
|
* Add word-break to repo description in home page (#27924) (#27957)
|
||||||
|
* Fix rendering assignee changed comments without assignee (#27927) (#27952)
|
||||||
|
* Add word break to release title (#27942) (#27947)
|
||||||
|
* Fix JS NPE when viewing specific range of PR commits (#27912) (#27923)
|
||||||
|
* Show correct commit sha when viewing single commit diff (#27916) (#27921)
|
||||||
|
* Fix 500 when deleting a dismissed review (#27903) (#27910)
|
||||||
|
* Fix DownloadFunc when migrating releases (#27887) (#27890)
|
||||||
|
* Fix http protocol auth (#27875) (#27876)
|
||||||
|
* Refactor postgres connection string building (#27723) (#27869)
|
||||||
|
* Close all hashed buffers (#27787) (#27790)
|
||||||
|
* Fix label render containing invalid HTML (#27752) (#27762)
|
||||||
|
* Fix duplicate project board when hitting `enter` key (#27746) (#27751)
|
||||||
|
* Fix `link-action` redirect network error (#27734) (#27749)
|
||||||
|
* Fix sticky diff header background (#27697) (#27712)
|
||||||
|
* Always delete existing scheduled action tasks (#27662) (#27688)
|
||||||
|
* Support allowed hosts for webhook to work with proxy (#27655) (#27675)
|
||||||
|
* Fix poster is not loaded in get default merge message (#27657) (#27666)
|
||||||
|
* Improve dropdown button alignment and fix hover bug (#27632) (#27637)
|
||||||
|
* Improve retrying index issues (#27554) (#27634)
|
||||||
|
* Fix 404 when deleting Docker package with an internal version (#27615) (#27630)
|
||||||
|
* Backport manually for a tmpl issue in v1.21 (#27612)
|
||||||
|
* Don't show Link to TOTP if not set up (#27585) (#27588)
|
||||||
|
* Fix data-race bug when accessing task.LastRun (#27584) (#27586)
|
||||||
|
* Fix attachment download bug (#27486) (#27571)
|
||||||
|
* Respect SSH.KeygenPath option when calculating ssh key fingerprints (#27536) (#27551)
|
||||||
|
* Improve dropdown's behavior when there is a search input in menu (#27526) (#27534)
|
||||||
|
* Fix panic in storageHandler (#27446) (#27479)
|
||||||
|
* When comparing with an non-exist repository, return 404 but 500 (#27437) (#27442)
|
||||||
|
* Fix pr template (#27436) (#27440)
|
||||||
|
* Fix git 2.11 error when checking IsEmpty (#27393) (#27397)
|
||||||
|
* Allow get release download files and lfs files with oauth2 token format (#26430) (#27379)
|
||||||
|
* Fix missing ctx for GetRepoLink in dashboard (#27372) (#27375)
|
||||||
|
* Absolute positioned checkboxes overlay floated elements (#26870) (#27366)
|
||||||
|
* Introduce fixes and more rigorous tests for 'Show on a map' feature (#26803) (#27365)
|
||||||
|
* Fix repo count in org action settings (#27245) (#27353)
|
||||||
|
* Add logs for data broken of comment review (#27326) (#27345)
|
||||||
|
* Fix the approval count of PR when there is no protection branch rule (#27272) (#27343)
|
||||||
|
* Fix Bug in Issue Config when only contact links are set (#26521) (#27334)
|
||||||
|
* Improve issue history dialog and make poster can delete their own history (#27323) (#27327)
|
||||||
|
* Fix orphan check for deleted branch (#27310) (#27321)
|
||||||
|
* Fix protected branch icon location (#26576) (#27317)
|
||||||
|
* Fix yaml test (#27297) (#27303)
|
||||||
|
* Fix some animation bugs (#27287) (#27294)
|
||||||
|
* Fix incorrect change from #27231 (#27275) (#27282)
|
||||||
|
* Add missing public user visibility in user details page (#27246) (#27250)
|
||||||
|
* Fix EOL handling in web editor (#27141) (#27234)
|
||||||
|
* Fix issues on action runners page (#27226) (#27233)
|
||||||
|
* Quote table `release` in sql queries (#27205) (#27218)
|
||||||
|
* Fix release URL in webhooks (#27182) (#27185)
|
||||||
|
* Fix review request number and add more tests (#27104) (#27168)
|
||||||
|
* Fix the variable regexp pattern on web page (#27161) (#27164)
|
||||||
|
* Fix: treat tab "overview" as "repositories" in user profiles without readme (#27124)
|
||||||
|
* Fix NPE when editing OAuth2 applications (#27078)
|
||||||
|
* Fix the incorrect route path in the user edit page. (#27007)
|
||||||
|
* Fix the secret regexp pattern on web page (#26910)
|
||||||
|
* Allow users with write permissions for issues to add attachments with API (#26837)
|
||||||
|
* Make "link-action" backend code respond correct JSON content (#26680)
|
||||||
|
* Use line-height: normal by default (#26635)
|
||||||
|
* Fix NPM packages name validation (#26595)
|
||||||
|
* Rewrite the DiffFileTreeItem and fix misalignment (#26565)
|
||||||
|
* Return empty when searching issues with no repos (#26545)
|
||||||
|
* Explain SearchOptions and fix ToSearchOptions (#26542)
|
||||||
|
* Add missing triggers to update issue indexer (#26539)
|
||||||
|
* Handle base64 decoding correctly to avoid panic (#26483)
|
||||||
|
* Avoiding accessing undefined mentionValues (#26461)
|
||||||
|
* Fix incorrect redirection in new issue using references (#26440)
|
||||||
|
* Fix the bug when getting files changed for `pull_request_target` event (#26320)
|
||||||
|
* Remove IsWarning in tmpl (#26120)
|
||||||
|
* Fix loading `LFS_JWT_SECRET` from wrong section (#26109)
|
||||||
|
* Fixing redirection issue for logged-in users (#26105)
|
||||||
|
* Improve "gitea doctor" sub-command and fix "help" commands (#26072)
|
||||||
|
* Fix the truncate and alignment problem for some admin tables (#26042)
|
||||||
|
* Update minimum password length requirements (#25946)
|
||||||
|
* Do not "guess" the file encoding/BOM when using API to upload files (#25828)
|
||||||
|
* Restructure issue list template, styles (#25750)
|
||||||
|
* Fix `ref` for workflows triggered by `pull_request_target` (#25743)
|
||||||
|
* Fix issues indexer document mapping (#25619)
|
||||||
|
* Use JSON response for "user/logout" (#25522)
|
||||||
|
* Fix migrate page layout on mobile (#25507)
|
||||||
|
* Link to existing PR when trying to open a new PR on the same branches (#25494)
|
||||||
|
* Do not publish docker release images on `-dev` tags (#25471)
|
||||||
|
* Support `pull_request_target` event (#25229)
|
||||||
|
* Modify the content format of the Feishu webhook (#25106)
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Render email addresses as such if followed by punctuation (#27987) (#27992)
|
||||||
|
* Show error toast when file size exceeds the limits (#27985) (#27986)
|
||||||
|
* Fix citation error when the file size is larger than 1024 bytes (#27958) (#27965)
|
||||||
|
* Remove action runners on user deletion (#27902) (#27908)
|
||||||
|
* Remove set tabindex on view issue (#27892) (#27896)
|
||||||
|
* Reduce margin/padding on flex-list items and divider (#27872) (#27874)
|
||||||
|
* Change katex limits (#27823) (#27868)
|
||||||
|
* Clean up template locale usage (#27856) (#27857)
|
||||||
|
* Add dedicated class for empty placeholders (#27788) (#27792)
|
||||||
|
* Add gap between diff boxes (#27776) (#27781)
|
||||||
|
* Fix incorrect "tab" parameter for repo search sub-template (#27755) (#27764)
|
||||||
|
* Enable followCursor for language stats bar (#27713) (#27739)
|
||||||
|
* Improve diff tree spacing (#27714) (#27719)
|
||||||
|
* Feed UI Improvements (#27356) (#27717)
|
||||||
|
* Improve feed icons and feed merge text color (#27498) (#27716)
|
||||||
|
* [FIX] resolve confusing colors in languages stats by insert a gap (#27704) (#27715)
|
||||||
|
* Add doctor dbconsistency fix to delete repos with no owner (#27290) (#27693)
|
||||||
|
* Fix required checkboxes in issue forms (#27592) (#27692)
|
||||||
|
* Hide archived labels by default from the suggestions when assigning labels for an issue (#27451) (#27661)
|
||||||
|
* Cleanup repo details icons/labels (#27644) (#27654)
|
||||||
|
* Keep filter when showing unfiltered results on explore page (#27192) (#27589)
|
||||||
|
* Show manual cron run's last time (#27544) (#27577)
|
||||||
|
* Revert "Fix pr template (#27436)" (#27567)
|
||||||
|
* Increase queue length (#27555) (#27562)
|
||||||
|
* Avoid run change title process when the title is same (#27467) (#27558)
|
||||||
|
* Remove max-width and add hide text overflow (#27359) (#27550)
|
||||||
|
* Add hover background to wiki list page (#27507) (#27521)
|
||||||
|
* Fix mermaid flowchart margin issue (#27503) (#27516)
|
||||||
|
* Refactor system setting (#27000) (#27452)
|
||||||
|
* Fix missing `ctx` in new_form.tmpl (#27434) (#27438)
|
||||||
|
* Add Index to `action.user_id` (#27403) (#27425)
|
||||||
|
* Don't use subselect in `DeleteIssuesByRepoID` (#27332) (#27408)
|
||||||
|
* Add support for HEAD ref in /src/branch and /src/commit routes (#27384) (#27407)
|
||||||
|
* Make Actions tasks/jobs timeouts configurable by the user (#27400) (#27402)
|
||||||
|
* Hide archived labels when filtering by labels on the issue list (#27115) (#27381)
|
||||||
|
* Highlight user details link (#26998) (#27376)
|
||||||
|
* Add protected branch name description (#27257) (#27351)
|
||||||
|
* Improve tree not found page (#26570) (#27346)
|
||||||
|
* Add Index to `comment.dependent_issue_id` (#27325) (#27340)
|
||||||
|
* Improve branch list UI (#27319) (#27324)
|
||||||
|
* Fix divider in subscription page (#27298) (#27301)
|
||||||
|
* Add missed return to actions view fetch (#27289) (#27293)
|
||||||
|
* Backport ctx locale refactoring manually (#27231) (#27259) (#27260)
|
||||||
|
* Disable `Test Delivery` and `Replay` webhook buttons when webhook is inactive (#27211) (#27253)
|
||||||
|
* Use mask-based fade-out effect for `.new-menu` (#27181) (#27243)
|
||||||
|
* Cleanup locale function usage (#27227) (#27240)
|
||||||
|
* Fix z-index on markdown completion (#27237) (#27239)
|
||||||
|
* Fix Fomantic UI dropdown icon bug when there is a search input in menu (#27225) (#27228)
|
||||||
|
* Allow copying issue comment link on archived repos and when not logged in (#27193) (#27210)
|
||||||
|
* Fix: text decorator on issue sidebar menu label (#27206) (#27209)
|
||||||
|
* Fix dropdown icon position (#27175) (#27177)
|
||||||
|
* Add index to `issue_user.issue_id` (#27154) (#27158)
|
||||||
|
* Increase auth provider icon size on login page (#27122)
|
||||||
|
* Remove a `gt-float-right` and some unnecessary helpers (#27110)
|
||||||
|
* Change green buttons to primary color (#27099)
|
||||||
|
* Use db.WithTx for AddTeamMember to avoid ctx abuse (#27095)
|
||||||
|
* Use `print` instead of `printf` (#27093)
|
||||||
|
* Remove the useless function `GetUserIssueStats` and move relevant tests to `indexer_test.go` (#27067)
|
||||||
|
* Search branches (#27055)
|
||||||
|
* Display all user types and org types on admin management UI (#27050)
|
||||||
|
* Ui correction in mobile view nav bar left aligned items. (#27046)
|
||||||
|
* Chroma color tweaks (#26978)
|
||||||
|
* Move some functions to service layer (#26969)
|
||||||
|
* Improve "language stats" UI (#26968)
|
||||||
|
* Replace `util.SliceXxx` with `slices.Xxx` (#26958)
|
||||||
|
* Refactor dashboard/feed.tmpl (#26956)
|
||||||
|
* Move repository deletion to service layer (#26948)
|
||||||
|
* Fix the missing repo count (#26942)
|
||||||
|
* Improve hint when uploading a too large avatar (#26935)
|
||||||
|
* Extract common code to new template (#26933)
|
||||||
|
* Move createrepository from module to service layer (#26927)
|
||||||
|
* Move notification interface to services layer (#26915)
|
||||||
|
* Move feed notification service layer (#26908)
|
||||||
|
* Move ui notification to service layer (#26907)
|
||||||
|
* Move indexer notification to service layer (#26906)
|
||||||
|
* Move mail notification logic to service layer (#26905)
|
||||||
|
* Extract common code to new template (#26903)
|
||||||
|
* Show queue's active worker number (#26896)
|
||||||
|
* Fix media description render for orgmode (#26895)
|
||||||
|
* Remove CSS `has` selector and improve various styles (#26891)
|
||||||
|
* Relocate the `RSS user feed` button (#26882)
|
||||||
|
* Refactor "shortsha" (#26877)
|
||||||
|
* Refactor `og:description` to limit the max length (#26876)
|
||||||
|
* Move web/api context related testing function into a separate package (#26859)
|
||||||
|
* Redable error on S3 storage connection failure (#26856)
|
||||||
|
* Improve opengraph previews (#26851)
|
||||||
|
* Add more descriptive error on forgot password page (#26848)
|
||||||
|
* Show always repo count in header (#26842)
|
||||||
|
* Remove "TODO" tasks from CSS file (#26835)
|
||||||
|
* Render code blocks in repo description (#26830)
|
||||||
|
* Minor dashboard tweaks, fix flex-list margins (#26829)
|
||||||
|
* Remove polluted `.ui.right` (#26825)
|
||||||
|
* Display archived labels specially when listing labels (#26820)
|
||||||
|
* Remove polluted ".ui.left" style (#26809)
|
||||||
|
* Make it posible to customize nav text color via css var (#26807)
|
||||||
|
* Refactor lfs requests (#26783)
|
||||||
|
* Improve flex list item padding (#26779)
|
||||||
|
* Remove fomantic `text` module (#26777)
|
||||||
|
* Remove fomantic `item` module (#26775)
|
||||||
|
* Remove redundant nil check in `WalkGitLog` (#26773)
|
||||||
|
* Reduce some allocations in type conversion (#26772)
|
||||||
|
* Refactor some CSS styles and simplify code (#26771)
|
||||||
|
* Unify `border-radius` behavior (#26770)
|
||||||
|
* Improve modal dialog UI (#26764)
|
||||||
|
* Allow "latest" to be used in release vTag when downloading file (#26748)
|
||||||
|
* Adding hint `Archived` to archive label. (#26741)
|
||||||
|
* Move `modules/mirror` to `services` (#26737)
|
||||||
|
* Add "dir=auto" for input/textarea elements by default (#26735)
|
||||||
|
* Add auth-required to config.json for Cargo http registry (#26729)
|
||||||
|
* Simplify helper CSS classes and avoid abuse (#26728)
|
||||||
|
* Make web context initialize correctly for different cases (#26726)
|
||||||
|
* Focus editor on "Write" tab click (#26714)
|
||||||
|
* Remove incorrect CSS helper classes (#26712)
|
||||||
|
* Fix review bar misalignment (#26711)
|
||||||
|
* Add reverseproxy auth for API back with default disabled (#26703)
|
||||||
|
* Add default label in branch select list (#26697)
|
||||||
|
* Improve Image Diff UI (#26696)
|
||||||
|
* Fixed text overflow in dropdown menu (#26694)
|
||||||
|
* [Refactor] getIssueStatsChunk to move inner function into own one (#26671)
|
||||||
|
* Remove fomantic loader module (#26670)
|
||||||
|
* Add `member`, `collaborator`, `contributor`, and `first-time contributor` roles and tooltips (#26658)
|
||||||
|
* Improve some flex layouts (#26649)
|
||||||
|
* Improve the branch selector tab UI (#26631)
|
||||||
|
* Improve show role (#26621)
|
||||||
|
* Remove avatarHTML from template helpers (#26598)
|
||||||
|
* Allow text selection in actions step header (#26588)
|
||||||
|
* Improve translation of milestone filters (#26569)
|
||||||
|
* Add optimistic lock to ActionRun table (#26563)
|
||||||
|
* Update team invitation email link (#26550)
|
||||||
|
* Differentiate better between user settings and admin settings (#26538)
|
||||||
|
* Check disabled workflow when rerun jobs (#26535)
|
||||||
|
* Improve deadline icon location in milestone list page (#26532)
|
||||||
|
* Improve repo sub menu (#26531)
|
||||||
|
* Fix the display of org level badges (#26504)
|
||||||
|
* Rename `Sync2` -> `Sync` (#26479)
|
||||||
|
* Fix stderr usages (#26477)
|
||||||
|
* Remove fomantic transition module (#26469)
|
||||||
|
* Refactor tests (#26464)
|
||||||
|
* Refactor project templates (#26448)
|
||||||
|
* Fall back to esbuild for css minify (#26445)
|
||||||
|
* Always show usernames in reaction tooltips (#26444)
|
||||||
|
* Use correct pull request commit link instead of a generic commit link (#26434)
|
||||||
|
* Refactor "editorconfig" (#26391)
|
||||||
|
* Make `user-content-* ` consistent with github (#26388)
|
||||||
|
* Remove unnecessary template helper repoAvatar (#26387)
|
||||||
|
* Remove unnecessary template helper DisableGravatar (#26386)
|
||||||
|
* Use template context function for avatar rendering (#26385)
|
||||||
|
* Rename code_langauge.go to code_language.go (#26377)
|
||||||
|
* Use more `IssueList` instead of `[]*Issue` (#26369)
|
||||||
|
* Do not highlight `#number` in documents (#26365)
|
||||||
|
* Fix display problems of members and teams unit (#26363)
|
||||||
|
* Fix 404 error when remove self from an organization (#26362)
|
||||||
|
* Improve CLI and messages (#26341)
|
||||||
|
* Refactor backend SVG package and add tests (#26335)
|
||||||
|
* Add link to job details and tooltip to commit status in repo list in dashboard (#26326)
|
||||||
|
* Use yellow if an approved review is stale (#26312)
|
||||||
|
* Remove commit load branches and tags in wiki repo (#26304)
|
||||||
|
* Add highlight to selected repos in milestone dashboard (#26300)
|
||||||
|
* Delete `issue_service.CreateComment` (#26298)
|
||||||
|
* Do not show Profile README when repository is private (#26295)
|
||||||
|
* Tweak actions menu (#26278)
|
||||||
|
* Start using template context function (#26254)
|
||||||
|
* Use calendar icon for `Joined on...` in profiles (#26215)
|
||||||
|
* Add 'Show on a map' button to Location in profile, fix layout (#26214)
|
||||||
|
* Render plaintext task list items for markdown files (#26186)
|
||||||
|
* Add tooltip to describe LFS table column and color `delete LFS file` button red (#26181)
|
||||||
|
* Release attachments duplicated check (#26176)
|
||||||
|
* De-emphasize issue sidebar buttons (#26171)
|
||||||
|
* Fixing the align of commit stats in commit_page template. (#26161)
|
||||||
|
* Allow editing push mirrors after creation (#26151)
|
||||||
|
* Move web JSON functions to web context and simplify code (#26132)
|
||||||
|
* Refactor improve NoBetterThan (#26126)
|
||||||
|
* Improve clickable area in repo action view page (#26115)
|
||||||
|
* Add context parameter to some database functions (#26055)
|
||||||
|
* Docusaurus-ify (#26051)
|
||||||
|
* Improve text for empty issue/pr description (#26047)
|
||||||
|
* Categorize admin settings sidebar panel (#26030)
|
||||||
|
* Remove redundant "RouteMethods" method (#26024)
|
||||||
|
* Refactor and enhance issue indexer to support both searching, filtering and paging (#26012)
|
||||||
|
* Add a link to OpenID Issuer URL in WebFinger response (#26000)
|
||||||
|
* Fix UI for release tag page / wiki page / subscription page (#25948)
|
||||||
|
* Support copy protected branch from template repository (#25889)
|
||||||
|
* Improve display of Labels/Projects/Assignees sort options (#25886)
|
||||||
|
* Fix margin on the new/edit project page. (#25885)
|
||||||
|
* Show image size on view page (#25884)
|
||||||
|
* Remove ref name in PR commits page (#25876)
|
||||||
|
* Allow the use of alternative net.Listener implementations by downstreams (#25855)
|
||||||
|
* Refactor "Content" for file uploading (#25851)
|
||||||
|
* Add error info if no user can fork the repo (#25820)
|
||||||
|
* Show edit title button on commits tab of PR, too (#25791)
|
||||||
|
* Introduce `flex-list` & `flex-item` elements for Gitea UI (#25790)
|
||||||
|
* Don't stack PR tab menu on small screens (#25789)
|
||||||
|
* Repository Archived text title center align (#25767)
|
||||||
|
* Make route middleware/handler mockable (#25766)
|
||||||
|
* Move issue filters to shared template (#25729)
|
||||||
|
* Use frontend fetch for branch dropdown component (#25719)
|
||||||
|
* Add open/closed field support for issue index (#25708)
|
||||||
|
* Some less naked returns (#25682)
|
||||||
|
* Fix inconsistent user profile layout across tabs (#25625)
|
||||||
|
* Get latest commit statuses from database instead of git data on dashboard for repositories (#25605)
|
||||||
|
* Adding branch-name copy to clipboard branches screen. (#25596)
|
||||||
|
* Update emoji set to Unicode 15 (#25595)
|
||||||
|
* Move some files under repo/setting (#25585)
|
||||||
|
* Add custom ansi colors and CSS variables for them (#25546)
|
||||||
|
* Add log line anchor for action logs (#25532)
|
||||||
|
* Use flex instead of float for sort button and search input (#25519)
|
||||||
|
* Update octicons and use `octicon-file-directory-symlink` (#25453)
|
||||||
|
* Add toasts to UI (#25449)
|
||||||
|
* Fine tune project board label colors and modal content background (#25419)
|
||||||
|
* Import additional secrets via file uri (#25408)
|
||||||
|
* Switch to ansi_up for ansi rendering in actions (#25401)
|
||||||
|
* Store and use seconds for timeline time comments (#25392)
|
||||||
|
* Support displaying diff stats in PR tab bar (#25387)
|
||||||
|
* Use fetch form action for lock/unlock/pin/unpin on sidebar (#25380)
|
||||||
|
* Refactor: TotalTimes return seconds (#25370)
|
||||||
|
* Navbar styling rework (#25343)
|
||||||
|
* Introduce shared template for search inputs (#25338)
|
||||||
|
* Only show 'Manage Account Links' when necessary (#25311)
|
||||||
|
* Improve 'Privacy' section in profile settings (#25309)
|
||||||
|
* Substitute variables in path names of template repos too (#25294)
|
||||||
|
* Fix tags line no margin see #25255 (#25280)
|
||||||
|
* Use fetch to send requests to create issues/comments (#25258)
|
||||||
|
* Change form actions to fetch for submit review box (#25219)
|
||||||
|
* Improve AJAX link and modal confirm dialog (#25210)
|
||||||
|
* Reduce unnecessary DB queries for Actions tasks (#25199)
|
||||||
|
* Disable `Create column` button while the column name is empty (#25192)
|
||||||
|
* Refactor indexer (#25174)
|
||||||
|
* Adjust style for action run list (align icons, adjust padding) (#25170)
|
||||||
|
* Remove duplicated functions when deleting a branch (#25128)
|
||||||
|
* Make confusable character warning less jarring (#25069)
|
||||||
|
* Highlight viewed files differently in the PR filetree (#24956)
|
||||||
|
* Support changing labels of Actions runner without re-registration (#24806)
|
||||||
|
* Fix duplicate Reviewed-by trailers (#24796)
|
||||||
|
* Resolve issue with sort icons on admin/users and admin/runners (#24360)
|
||||||
|
* Split lfs size from repository size (#22900)
|
||||||
|
* Sync branches into databases (#22743)
|
||||||
|
* Disable run user change in installation page (#22499)
|
||||||
|
* Add merge files files to GetCommitFileStatus (#20515)
|
||||||
|
* Show OpenID Connect and OAuth on signup page (#20242)
|
||||||
|
* SECURITY
|
||||||
|
* Dont leak private users via extensions (#28023) (#28029)
|
||||||
|
* Expanded minimum RSA Keylength to 3072 (#26604)
|
||||||
|
* TESTING
|
||||||
|
* Add user secrets API integration tests (#27832) (#27852)
|
||||||
|
* Add tests for db indexer in indexer_test.go (#27087)
|
||||||
|
* Speed up TestEventSourceManagerRun (#26262)
|
||||||
|
* Add unit test for user renaming (#26261)
|
||||||
|
* Add some Wiki unit tests (#26260)
|
||||||
|
* Improve unit test for caching (#26185)
|
||||||
|
* Add unit test for `HashAvatar` (#25662)
|
||||||
|
* TRANSLATION
|
||||||
|
* Backport translations to v1.21 (#27899)
|
||||||
|
* Fix issues in translation file (#27699) (#27737)
|
||||||
|
* Add locale for deleted head branch (#26296)
|
||||||
|
* Improve multiple strings in en-US locale (#26213)
|
||||||
|
* Fix broken translations for package documantion (#25742)
|
||||||
|
* Correct translation wrong format (#25643)
|
||||||
|
* BUILD
|
||||||
|
* Dockerfile small refactor (#27757) (#27826)
|
||||||
|
* Fix build errors on BSD (in BSDMakefile) (#27594) (#27608)
|
||||||
|
* Fully replace drone with actions (#27556) (#27575)
|
||||||
|
* Enable markdownlint `no-duplicate-header` (#27500) (#27506)
|
||||||
|
* Enable production source maps for index.js, fix CSS sourcemaps (#27291) (#27295)
|
||||||
|
* Update snap package (#27021)
|
||||||
|
* Bump go to 1.21 (#26608)
|
||||||
|
* Bump xgo to go-1.21.x and node to 20 in release-version (#26589)
|
||||||
|
* Add template linting via djlint (#25212)
|
||||||
|
* DOCS
|
||||||
|
* Change default size of issue/pr attachments and repo file (#27946) (#28017)
|
||||||
|
* Remove `known issue` section in Gitea Actions Doc (#27930) (#27938)
|
||||||
|
* Remove outdated paragraphs when comparing Gitea Actions to GitHub Actions (#27119)
|
||||||
|
* Update brew installation documentation since gitea moved to brew core package (#27070)
|
||||||
|
* Actions are no longer experimental, so enable them by default (#27054)
|
||||||
|
* Add a documentation note for Windows Service (#26938)
|
||||||
|
* Add sparse url in cargo package guide (#26937)
|
||||||
|
* Update nginx recommendations (#26924)
|
||||||
|
* Update backup instructions to align with archive structure (#26902)
|
||||||
|
* Expanding documentation in queue.go (#26889)
|
||||||
|
* Update info regarding internet connection for build (#26776)
|
||||||
|
* Docs: template variables (#26547)
|
||||||
|
* Update index doc (#26455)
|
||||||
|
* Update zh-cn documentation (#26406)
|
||||||
|
* Fix typos and grammer problems for actions documentation (#26328)
|
||||||
|
* Update documentation for 1.21 actions (#26317)
|
||||||
|
* Doc update swagger doc for POST /orgs/{org}/teams (#26155)
|
||||||
|
* Doc sync authentication.md to zh-cn (#26117)
|
||||||
|
* Doc guide the user to create the appropriate level runner (#26091)
|
||||||
|
* Make organization redirect warning more clear (#26077)
|
||||||
|
* Update blog links (#25843)
|
||||||
|
* Fix default value for LocalURL (#25426)
|
||||||
|
* Update `from-source.zh-cn.md` & `from-source.en-us.md` - Cross Compile Using Zig (#25194)
|
||||||
|
* MISC
|
||||||
|
* Replace deprecated `elliptic.Marshal` (#26800)
|
||||||
|
* Add elapsed time on debug for slow git commands (#25642)
|
||||||
|
|
||||||
|
## [1.20.5](https://github.com/go-gitea/gitea/releases/tag/v1.20.5) - 2023-10-03
|
||||||
|
|
||||||
|
* ENHANCEMENTS
|
||||||
|
* Fix z-index on markdown completion (#27237) (#27242 & #27238)
|
||||||
|
* Use secure cookie for HTTPS sites (#26999) (#27013)
|
||||||
|
* BUGFIXES
|
||||||
|
* Fix git 2.11 error when checking IsEmpty (#27393) (#27396)
|
||||||
|
* Allow get release download files and lfs files with oauth2 token format (#26430) (#27378)
|
||||||
|
* Fix orphan check for deleted branch (#27310) (#27320)
|
||||||
|
* Quote table `release` in sql queries (#27205) (#27219)
|
||||||
|
* Fix release URL in webhooks (#27182) (#27184)
|
||||||
|
* Fix successful return value for `SyncAndGetUserSpecificDiff` (#27152) (#27156)
|
||||||
|
* fix pagination for followers and following (#27127) (#27138)
|
||||||
|
* Fix issue templates when blank isses are disabled (#27061) (#27082)
|
||||||
|
* Fix context cache bug & enable context cache for dashabord commits' authors(#26991) (#27017)
|
||||||
|
* Fix INI parsing for value with trailing slash (#26995) (#27001)
|
||||||
|
* Fix PushEvent NullPointerException jenkinsci/github-plugin (#27203) (#27249)
|
||||||
|
* Fix organization field being null in POST /orgs/{orgid}/teams (#27150) (#27167 & #27162)
|
||||||
|
* Fix bug of review request number (#27406) (#27104)
|
||||||
|
* TESTING
|
||||||
|
* services/wiki: Close() after error handling (#27129) (#27137)
|
||||||
|
* DOCS
|
||||||
|
* Improve actions docs related to `pull_request` event (#27126) (#27145)
|
||||||
|
* MISC
|
||||||
|
* Add logs for data broken of comment review (#27326) (#27344)
|
||||||
|
* Load reviewer before sending notification (#27063) (#27064)
|
||||||
|
|
||||||
## [1.20.4](https://github.com/go-gitea/gitea/releases/tag/v1.20.4) - 2023-09-08
|
## [1.20.4](https://github.com/go-gitea/gitea/releases/tag/v1.20.4) - 2023-09-08
|
||||||
|
|
||||||
* SECURITY
|
* SECURITY
|
||||||
|
@ -428,7 +1230,6 @@ been added to each release, please refer to the [blog](https://blog.gitea.com).
|
||||||
* Add option to search for users is active join a team (#24093)
|
* Add option to search for users is active join a team (#24093)
|
||||||
* Add PDF rendering via PDFObject (#24086)
|
* Add PDF rendering via PDFObject (#24086)
|
||||||
* Refactor web route (#24080)
|
* Refactor web route (#24080)
|
||||||
* Make more functions use ctx instead of db.DefaultContext (#24068)
|
|
||||||
* Make HTML template functions support context (#24056)
|
* Make HTML template functions support context (#24056)
|
||||||
* Refactor rename user and rename organization (#24052)
|
* Refactor rename user and rename organization (#24052)
|
||||||
* Localize milestone related time strings (#24051)
|
* Localize milestone related time strings (#24051)
|
||||||
|
|
36
Dockerfile
36
Dockerfile
|
@ -1,4 +1,4 @@
|
||||||
#Build stage
|
# Build stage
|
||||||
FROM docker.io/library/golang:1.21-alpine3.18 AS build-env
|
FROM docker.io/library/golang:1.21-alpine3.18 AS build-env
|
||||||
|
|
||||||
ARG GOPROXY
|
ARG GOPROXY
|
||||||
|
@ -9,20 +9,38 @@ ARG TAGS="sqlite sqlite_unlock_notify"
|
||||||
ENV TAGS "bindata timetzdata $TAGS"
|
ENV TAGS "bindata timetzdata $TAGS"
|
||||||
ARG CGO_EXTRA_CFLAGS
|
ARG CGO_EXTRA_CFLAGS
|
||||||
|
|
||||||
#Build deps
|
# Build deps
|
||||||
RUN apk --no-cache add build-base git nodejs npm
|
RUN apk --no-cache add \
|
||||||
|
build-base \
|
||||||
|
git \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
&& rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
#Setup repo
|
# Setup repo
|
||||||
COPY . ${GOPATH}/src/code.gitea.io/gitea
|
COPY . ${GOPATH}/src/code.gitea.io/gitea
|
||||||
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
|
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
|
||||||
|
|
||||||
#Checkout version if set
|
# Checkout version if set
|
||||||
RUN if [ -n "${GITEA_VERSION}" ]; then git checkout "${GITEA_VERSION}"; fi \
|
RUN if [ -n "${GITEA_VERSION}" ]; then git checkout "${GITEA_VERSION}"; fi \
|
||||||
&& make clean-all build
|
&& make clean-all build
|
||||||
|
|
||||||
# Begin env-to-ini build
|
# Begin env-to-ini build
|
||||||
RUN go build contrib/environment-to-ini/environment-to-ini.go
|
RUN go build contrib/environment-to-ini/environment-to-ini.go
|
||||||
|
|
||||||
|
# Copy local files
|
||||||
|
COPY docker/root /tmp/local
|
||||||
|
|
||||||
|
# Set permissions
|
||||||
|
RUN chmod 755 /tmp/local/usr/bin/entrypoint \
|
||||||
|
/tmp/local/usr/local/bin/gitea \
|
||||||
|
/tmp/local/etc/s6/gitea/* \
|
||||||
|
/tmp/local/etc/s6/openssh/* \
|
||||||
|
/tmp/local/etc/s6/.s6-svscan/* \
|
||||||
|
/go/src/code.gitea.io/gitea/gitea \
|
||||||
|
/go/src/code.gitea.io/gitea/environment-to-ini
|
||||||
|
RUN chmod 644 /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete
|
||||||
|
|
||||||
FROM docker.io/library/alpine:3.18
|
FROM docker.io/library/alpine:3.18
|
||||||
LABEL maintainer="maintainers@gitea.io"
|
LABEL maintainer="maintainers@gitea.io"
|
||||||
|
|
||||||
|
@ -39,7 +57,8 @@ RUN apk --no-cache add \
|
||||||
s6 \
|
s6 \
|
||||||
sqlite \
|
sqlite \
|
||||||
su-exec \
|
su-exec \
|
||||||
gnupg
|
gnupg \
|
||||||
|
&& rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
RUN addgroup \
|
RUN addgroup \
|
||||||
-S -g 1000 \
|
-S -g 1000 \
|
||||||
|
@ -61,10 +80,7 @@ VOLUME ["/data"]
|
||||||
ENTRYPOINT ["/usr/bin/entrypoint"]
|
ENTRYPOINT ["/usr/bin/entrypoint"]
|
||||||
CMD ["/bin/s6-svscan", "/etc/s6"]
|
CMD ["/bin/s6-svscan", "/etc/s6"]
|
||||||
|
|
||||||
COPY docker/root /
|
COPY --from=build-env /tmp/local /
|
||||||
COPY --from=build-env /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea
|
COPY --from=build-env /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea
|
||||||
COPY --from=build-env /go/src/code.gitea.io/gitea/environment-to-ini /usr/local/bin/environment-to-ini
|
COPY --from=build-env /go/src/code.gitea.io/gitea/environment-to-ini /usr/local/bin/environment-to-ini
|
||||||
COPY --from=build-env /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete /etc/profile.d/gitea_bash_autocomplete.sh
|
COPY --from=build-env /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete /etc/profile.d/gitea_bash_autocomplete.sh
|
||||||
RUN chmod 755 /usr/bin/entrypoint /app/gitea/gitea /usr/local/bin/gitea /usr/local/bin/environment-to-ini
|
|
||||||
RUN chmod 755 /etc/s6/gitea/* /etc/s6/openssh/* /etc/s6/.s6-svscan/*
|
|
||||||
RUN chmod 644 /etc/profile.d/gitea_bash_autocomplete.sh
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#Build stage
|
# Build stage
|
||||||
FROM docker.io/library/golang:1.21-alpine3.18 AS build-env
|
FROM docker.io/library/golang:1.21-alpine3.18 AS build-env
|
||||||
|
|
||||||
ARG GOPROXY
|
ARG GOPROXY
|
||||||
|
@ -10,19 +10,35 @@ ENV TAGS "bindata timetzdata $TAGS"
|
||||||
ARG CGO_EXTRA_CFLAGS
|
ARG CGO_EXTRA_CFLAGS
|
||||||
|
|
||||||
#Build deps
|
#Build deps
|
||||||
RUN apk --no-cache add build-base git nodejs npm
|
RUN apk --no-cache add \
|
||||||
|
build-base \
|
||||||
|
git \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
&& rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
#Setup repo
|
# Setup repo
|
||||||
COPY . ${GOPATH}/src/code.gitea.io/gitea
|
COPY . ${GOPATH}/src/code.gitea.io/gitea
|
||||||
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
|
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
|
||||||
|
|
||||||
#Checkout version if set
|
# Checkout version if set
|
||||||
RUN if [ -n "${GITEA_VERSION}" ]; then git checkout "${GITEA_VERSION}"; fi \
|
RUN if [ -n "${GITEA_VERSION}" ]; then git checkout "${GITEA_VERSION}"; fi \
|
||||||
&& make clean-all build
|
&& make clean-all build
|
||||||
|
|
||||||
# Begin env-to-ini build
|
# Begin env-to-ini build
|
||||||
RUN go build contrib/environment-to-ini/environment-to-ini.go
|
RUN go build contrib/environment-to-ini/environment-to-ini.go
|
||||||
|
|
||||||
|
# Copy local files
|
||||||
|
COPY docker/rootless /tmp/local
|
||||||
|
|
||||||
|
# Set permissions
|
||||||
|
RUN chmod 755 /tmp/local/usr/local/bin/docker-entrypoint.sh \
|
||||||
|
/tmp/local/usr/local/bin/docker-setup.sh \
|
||||||
|
/tmp/local/usr/local/bin/gitea \
|
||||||
|
/go/src/code.gitea.io/gitea/gitea \
|
||||||
|
/go/src/code.gitea.io/gitea/environment-to-ini
|
||||||
|
RUN chmod 644 /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete
|
||||||
|
|
||||||
FROM docker.io/library/alpine:3.18
|
FROM docker.io/library/alpine:3.18
|
||||||
LABEL maintainer="maintainers@gitea.io"
|
LABEL maintainer="maintainers@gitea.io"
|
||||||
|
|
||||||
|
@ -35,7 +51,8 @@ RUN apk --no-cache add \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
curl \
|
curl \
|
||||||
gnupg
|
gnupg \
|
||||||
|
&& rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
RUN addgroup \
|
RUN addgroup \
|
||||||
-S -g 1000 \
|
-S -g 1000 \
|
||||||
|
@ -51,21 +68,19 @@ RUN addgroup \
|
||||||
RUN mkdir -p /var/lib/gitea /etc/gitea
|
RUN mkdir -p /var/lib/gitea /etc/gitea
|
||||||
RUN chown git:git /var/lib/gitea /etc/gitea
|
RUN chown git:git /var/lib/gitea /etc/gitea
|
||||||
|
|
||||||
COPY docker/rootless /
|
COPY --from=build-env /tmp/local /
|
||||||
COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea
|
COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea
|
||||||
COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/environment-to-ini /usr/local/bin/environment-to-ini
|
COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/environment-to-ini /usr/local/bin/environment-to-ini
|
||||||
COPY --from=build-env /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete /etc/profile.d/gitea_bash_autocomplete.sh
|
COPY --from=build-env /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete /etc/profile.d/gitea_bash_autocomplete.sh
|
||||||
RUN chmod 755 /usr/local/bin/docker-entrypoint.sh /usr/local/bin/docker-setup.sh /app/gitea/gitea /usr/local/bin/gitea /usr/local/bin/environment-to-ini
|
|
||||||
RUN chmod 644 /etc/profile.d/gitea_bash_autocomplete.sh
|
|
||||||
|
|
||||||
#git:git
|
# git:git
|
||||||
USER 1000:1000
|
USER 1000:1000
|
||||||
ENV GITEA_WORK_DIR /var/lib/gitea
|
ENV GITEA_WORK_DIR /var/lib/gitea
|
||||||
ENV GITEA_CUSTOM /var/lib/gitea/custom
|
ENV GITEA_CUSTOM /var/lib/gitea/custom
|
||||||
ENV GITEA_TEMP /tmp/gitea
|
ENV GITEA_TEMP /tmp/gitea
|
||||||
ENV TMPDIR /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)
|
# 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
|
ENV GITEA_APP_INI /etc/gitea/app.ini
|
||||||
ENV HOME "/var/lib/gitea/git"
|
ENV HOME "/var/lib/gitea/git"
|
||||||
VOLUME ["/var/lib/gitea", "/etc/gitea"]
|
VOLUME ["/var/lib/gitea", "/etc/gitea"]
|
||||||
|
@ -73,4 +88,3 @@ WORKDIR /var/lib/gitea
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--", "/usr/local/bin/docker-entrypoint.sh"]
|
ENTRYPOINT ["/usr/bin/dumb-init", "--", "/usr/local/bin/docker-entrypoint.sh"]
|
||||||
CMD []
|
CMD []
|
||||||
|
|
||||||
|
|
48
Makefile
48
Makefile
|
@ -30,7 +30,7 @@ EDITORCONFIG_CHECKER_PACKAGE ?= github.com/editorconfig-checker/editorconfig-che
|
||||||
GOFUMPT_PACKAGE ?= mvdan.cc/gofumpt@v0.5.0
|
GOFUMPT_PACKAGE ?= mvdan.cc/gofumpt@v0.5.0
|
||||||
GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/golangci-lint@v1.54.1
|
GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/golangci-lint@v1.54.1
|
||||||
GXZ_PACKAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.11
|
GXZ_PACKAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.11
|
||||||
MISSPELL_PACKAGE ?= github.com/client9/misspell/cmd/misspell@v0.3.4
|
MISSPELL_PACKAGE ?= github.com/golangci/misspell/cmd/misspell@v0.4.1
|
||||||
SWAGGER_PACKAGE ?= github.com/go-swagger/go-swagger/cmd/swagger@v0.30.5
|
SWAGGER_PACKAGE ?= github.com/go-swagger/go-swagger/cmd/swagger@v0.30.5
|
||||||
XGO_PACKAGE ?= src.techknowlogick.com/xgo@latest
|
XGO_PACKAGE ?= src.techknowlogick.com/xgo@latest
|
||||||
GO_LICENSES_PACKAGE ?= github.com/google/go-licenses@v1.6.0
|
GO_LICENSES_PACKAGE ?= github.com/google/go-licenses@v1.6.0
|
||||||
|
@ -111,6 +111,7 @@ LINUX_ARCHS ?= linux/amd64,linux/386,linux/arm-5,linux/arm-6,linux/arm64
|
||||||
|
|
||||||
GO_PACKAGES ?= $(filter-out code.gitea.io/gitea/tests/integration/migration-test code.gitea.io/gitea/tests code.gitea.io/gitea/tests/integration code.gitea.io/gitea/tests/e2e,$(shell $(GO) list ./... | grep -v /vendor/))
|
GO_PACKAGES ?= $(filter-out code.gitea.io/gitea/tests/integration/migration-test code.gitea.io/gitea/tests code.gitea.io/gitea/tests/integration code.gitea.io/gitea/tests/e2e,$(shell $(GO) list ./... | grep -v /vendor/))
|
||||||
GO_TEST_PACKAGES ?= $(filter-out $(shell $(GO) list code.gitea.io/gitea/models/migrations/...) code.gitea.io/gitea/tests/integration/migration-test code.gitea.io/gitea/tests code.gitea.io/gitea/tests/integration code.gitea.io/gitea/tests/e2e,$(shell $(GO) list ./... | grep -v /vendor/))
|
GO_TEST_PACKAGES ?= $(filter-out $(shell $(GO) list code.gitea.io/gitea/models/migrations/...) code.gitea.io/gitea/tests/integration/migration-test code.gitea.io/gitea/tests code.gitea.io/gitea/tests/integration code.gitea.io/gitea/tests/e2e,$(shell $(GO) list ./... | grep -v /vendor/))
|
||||||
|
MIGRATE_TEST_PACKAGES ?= $(shell $(GO) list code.gitea.io/gitea/models/migrations/...)
|
||||||
|
|
||||||
FOMANTIC_WORK_DIR := web_src/fomantic
|
FOMANTIC_WORK_DIR := web_src/fomantic
|
||||||
|
|
||||||
|
@ -142,6 +143,8 @@ TAR_EXCLUDES := .git data indexers queues log node_modules $(EXECUTABLE) $(FOMAN
|
||||||
GO_DIRS := build cmd models modules routers services tests
|
GO_DIRS := build cmd models modules routers services tests
|
||||||
WEB_DIRS := web_src/js web_src/css
|
WEB_DIRS := web_src/js web_src/css
|
||||||
|
|
||||||
|
SPELLCHECK_FILES := $(GO_DIRS) $(WEB_DIRS) docs/content templates options/locale/locale_en-US.ini .github
|
||||||
|
|
||||||
GO_SOURCES := $(wildcard *.go)
|
GO_SOURCES := $(wildcard *.go)
|
||||||
GO_SOURCES += $(shell find $(GO_DIRS) -type f -name "*.go" ! -path modules/options/bindata.go ! -path modules/public/bindata.go ! -path modules/templates/bindata.go)
|
GO_SOURCES += $(shell find $(GO_DIRS) -type f -name "*.go" ! -path modules/options/bindata.go ! -path modules/public/bindata.go ! -path modules/templates/bindata.go)
|
||||||
GO_SOURCES += $(GENERATED_GO_DEST)
|
GO_SOURCES += $(GENERATED_GO_DEST)
|
||||||
|
@ -219,6 +222,8 @@ help:
|
||||||
@echo " - lint-swagger lint swagger files"
|
@echo " - lint-swagger lint swagger files"
|
||||||
@echo " - lint-templates lint template files"
|
@echo " - lint-templates lint template files"
|
||||||
@echo " - lint-yaml lint yaml files"
|
@echo " - lint-yaml lint yaml files"
|
||||||
|
@echo " - lint-spell lint spelling"
|
||||||
|
@echo " - lint-spell-fix lint spelling and fix issues"
|
||||||
@echo " - checks run various consistency checks"
|
@echo " - checks run various consistency checks"
|
||||||
@echo " - checks-frontend check frontend files"
|
@echo " - checks-frontend check frontend files"
|
||||||
@echo " - checks-backend check backend files"
|
@echo " - checks-backend check backend files"
|
||||||
|
@ -226,6 +231,7 @@ help:
|
||||||
@echo " - test-frontend test frontend files"
|
@echo " - test-frontend test frontend files"
|
||||||
@echo " - test-backend test backend files"
|
@echo " - test-backend test backend files"
|
||||||
@echo " - test-e2e[\#TestSpecificName] test end to end using playwright"
|
@echo " - test-e2e[\#TestSpecificName] test end to end using playwright"
|
||||||
|
@echo " - update update js and py dependencies"
|
||||||
@echo " - update-js update js dependencies"
|
@echo " - update-js update js dependencies"
|
||||||
@echo " - update-py update py dependencies"
|
@echo " - update-py update py dependencies"
|
||||||
@echo " - webpack build webpack files"
|
@echo " - webpack build webpack files"
|
||||||
|
@ -308,10 +314,6 @@ fmt-check: fmt
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
.PHONY: misspell-check
|
|
||||||
misspell-check:
|
|
||||||
go run $(MISSPELL_PACKAGE) -error $(GO_DIRS) $(WEB_DIRS)
|
|
||||||
|
|
||||||
.PHONY: $(TAGS_EVIDENCE)
|
.PHONY: $(TAGS_EVIDENCE)
|
||||||
$(TAGS_EVIDENCE):
|
$(TAGS_EVIDENCE):
|
||||||
@mkdir -p $(MAKE_EVIDENCE_DIR)
|
@mkdir -p $(MAKE_EVIDENCE_DIR)
|
||||||
|
@ -351,13 +353,13 @@ checks: checks-frontend checks-backend
|
||||||
checks-frontend: lockfile-check svg-check
|
checks-frontend: lockfile-check svg-check
|
||||||
|
|
||||||
.PHONY: checks-backend
|
.PHONY: checks-backend
|
||||||
checks-backend: tidy-check swagger-check fmt-check misspell-check swagger-validate security-check
|
checks-backend: tidy-check swagger-check fmt-check swagger-validate security-check
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: lint
|
||||||
lint: lint-frontend lint-backend
|
lint: lint-frontend lint-backend lint-spell
|
||||||
|
|
||||||
.PHONY: lint-fix
|
.PHONY: lint-fix
|
||||||
lint-fix: lint-frontend-fix lint-backend-fix
|
lint-fix: lint-frontend-fix lint-backend-fix lint-spell-fix
|
||||||
|
|
||||||
.PHONY: lint-frontend
|
.PHONY: lint-frontend
|
||||||
lint-frontend: lint-js lint-css
|
lint-frontend: lint-js lint-css
|
||||||
|
@ -395,6 +397,14 @@ lint-swagger: node_modules
|
||||||
lint-md: node_modules
|
lint-md: node_modules
|
||||||
npx markdownlint docs *.md
|
npx markdownlint docs *.md
|
||||||
|
|
||||||
|
.PHONY: lint-spell
|
||||||
|
lint-spell:
|
||||||
|
@go run $(MISSPELL_PACKAGE) -error $(SPELLCHECK_FILES)
|
||||||
|
|
||||||
|
.PHONY: lint-spell-fix
|
||||||
|
lint-spell-fix:
|
||||||
|
@go run $(MISSPELL_PACKAGE) -w $(SPELLCHECK_FILES)
|
||||||
|
|
||||||
.PHONY: lint-go
|
.PHONY: lint-go
|
||||||
lint-go:
|
lint-go:
|
||||||
$(GO) run $(GOLANGCI_LINT_PACKAGE) run
|
$(GO) run $(GOLANGCI_LINT_PACKAGE) run
|
||||||
|
@ -739,9 +749,7 @@ migrations.sqlite.test: $(GO_SOURCES) generate-ini-sqlite
|
||||||
|
|
||||||
.PHONY: migrations.individual.mysql.test
|
.PHONY: migrations.individual.mysql.test
|
||||||
migrations.individual.mysql.test: $(GO_SOURCES)
|
migrations.individual.mysql.test: $(GO_SOURCES)
|
||||||
for pkg in $(shell $(GO) list code.gitea.io/gitea/models/migrations/...); do \
|
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' -p 1 $(MIGRATE_TEST_PACKAGES)
|
||||||
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg; \
|
|
||||||
done
|
|
||||||
|
|
||||||
.PHONY: migrations.individual.mysql8.test
|
.PHONY: migrations.individual.mysql8.test
|
||||||
migrations.individual.mysql8.test: $(GO_SOURCES)
|
migrations.individual.mysql8.test: $(GO_SOURCES)
|
||||||
|
@ -755,20 +763,15 @@ migrations.individual.sqlite.test\#%: $(GO_SOURCES) generate-ini-sqlite
|
||||||
|
|
||||||
.PHONY: migrations.individual.pgsql.test
|
.PHONY: migrations.individual.pgsql.test
|
||||||
migrations.individual.pgsql.test: $(GO_SOURCES)
|
migrations.individual.pgsql.test: $(GO_SOURCES)
|
||||||
for pkg in $(shell $(GO) list code.gitea.io/gitea/models/migrations/...); do \
|
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' -p 1 $(MIGRATE_TEST_PACKAGES)
|
||||||
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg; \
|
|
||||||
done
|
|
||||||
|
|
||||||
.PHONY: migrations.individual.pgsql.test\#%
|
.PHONY: migrations.individual.pgsql.test\#%
|
||||||
migrations.individual.pgsql.test\#%: $(GO_SOURCES) generate-ini-pgsql
|
migrations.individual.pgsql.test\#%: $(GO_SOURCES) generate-ini-pgsql
|
||||||
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' code.gitea.io/gitea/models/migrations/$*
|
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/pgsql.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' code.gitea.io/gitea/models/migrations/$*
|
||||||
|
|
||||||
|
|
||||||
.PHONY: migrations.individual.mssql.test
|
.PHONY: migrations.individual.mssql.test
|
||||||
migrations.individual.mssql.test: $(GO_SOURCES) generate-ini-mssql
|
migrations.individual.mssql.test: $(GO_SOURCES) generate-ini-mssql
|
||||||
for pkg in $(shell $(GO) list code.gitea.io/gitea/models/migrations/...); do \
|
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mssql.ini $(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' -p 1 $(MIGRATE_TEST_PACKAGES)
|
||||||
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mssql.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg -test.failfast; \
|
|
||||||
done
|
|
||||||
|
|
||||||
.PHONY: migrations.individual.mssql.test\#%
|
.PHONY: migrations.individual.mssql.test\#%
|
||||||
migrations.individual.mssql.test\#%: $(GO_SOURCES) generate-ini-mssql
|
migrations.individual.mssql.test\#%: $(GO_SOURCES) generate-ini-mssql
|
||||||
|
@ -776,9 +779,7 @@ migrations.individual.mssql.test\#%: $(GO_SOURCES) generate-ini-mssql
|
||||||
|
|
||||||
.PHONY: migrations.individual.sqlite.test
|
.PHONY: migrations.individual.sqlite.test
|
||||||
migrations.individual.sqlite.test: $(GO_SOURCES) generate-ini-sqlite
|
migrations.individual.sqlite.test: $(GO_SOURCES) generate-ini-sqlite
|
||||||
for pkg in $(shell $(GO) list code.gitea.io/gitea/models/migrations/...); do \
|
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' -p 1 $(MIGRATE_TEST_PACKAGES)
|
||||||
GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/sqlite.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg; \
|
|
||||||
done
|
|
||||||
|
|
||||||
.PHONY: migrations.individual.sqlite.test\#%
|
.PHONY: migrations.individual.sqlite.test\#%
|
||||||
migrations.individual.sqlite.test\#%: $(GO_SOURCES) generate-ini-sqlite
|
migrations.individual.sqlite.test\#%: $(GO_SOURCES) generate-ini-sqlite
|
||||||
|
@ -921,9 +922,12 @@ node_modules: package-lock.json
|
||||||
@touch node_modules
|
@touch node_modules
|
||||||
|
|
||||||
.venv: poetry.lock
|
.venv: poetry.lock
|
||||||
poetry install
|
poetry install --no-root
|
||||||
@touch .venv
|
@touch .venv
|
||||||
|
|
||||||
|
.PHONY: update
|
||||||
|
update: update-js update-py
|
||||||
|
|
||||||
.PHONY: update-js
|
.PHONY: update-js
|
||||||
update-js: node-check | node_modules
|
update-js: node-check | node_modules
|
||||||
npx updates -u -f package.json
|
npx updates -u -f package.json
|
||||||
|
|
20
assets/go-licenses.json
generated
20
assets/go-licenses.json
generated
File diff suppressed because one or more lines are too long
|
@ -389,7 +389,7 @@ func runRepoSyncReleases(_ *cli.Context) error {
|
||||||
}
|
}
|
||||||
log.Trace(" currentNumReleases is %d, running SyncReleasesWithTags", oldnum)
|
log.Trace(" currentNumReleases is %d, running SyncReleasesWithTags", oldnum)
|
||||||
|
|
||||||
if err = repo_module.SyncReleasesWithTags(repo, gitRepo); err != nil {
|
if err = repo_module.SyncReleasesWithTags(ctx, repo, gitRepo); err != nil {
|
||||||
log.Warn(" SyncReleasesWithTags: %v", err)
|
log.Warn(" SyncReleasesWithTags: %v", err)
|
||||||
gitRepo.Close()
|
gitRepo.Close()
|
||||||
continue
|
continue
|
||||||
|
@ -438,7 +438,7 @@ func runRegenerateKeys(_ *cli.Context) error {
|
||||||
if err := initDB(ctx); err != nil {
|
if err := initDB(ctx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return asymkey_model.RewriteAllPublicKeys()
|
return asymkey_model.RewriteAllPublicKeys(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseOAuth2Config(c *cli.Context) *oauth2.Source {
|
func parseOAuth2Config(c *cli.Context) *oauth2.Source {
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/migrations"
|
"code.gitea.io/gitea/models/migrations"
|
||||||
migrate_base "code.gitea.io/gitea/models/migrations/base"
|
migrate_base "code.gitea.io/gitea/models/migrations/base"
|
||||||
|
"code.gitea.io/gitea/modules/container"
|
||||||
"code.gitea.io/gitea/modules/doctor"
|
"code.gitea.io/gitea/modules/doctor"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
@ -22,6 +23,19 @@ import (
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// CmdDoctor represents the available doctor sub-command.
|
||||||
|
var CmdDoctor = &cli.Command{
|
||||||
|
Name: "doctor",
|
||||||
|
Usage: "Diagnose and optionally fix problems",
|
||||||
|
Description: "A command to diagnose problems with the current Gitea instance according to the given configuration. Some problems can optionally be fixed by modifying the database or data storage.",
|
||||||
|
|
||||||
|
Subcommands: []*cli.Command{
|
||||||
|
cmdDoctorCheck,
|
||||||
|
cmdRecreateTable,
|
||||||
|
cmdDoctorConvert,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
var cmdDoctorCheck = &cli.Command{
|
var cmdDoctorCheck = &cli.Command{
|
||||||
Name: "check",
|
Name: "check",
|
||||||
Usage: "Diagnose and optionally fix problems",
|
Usage: "Diagnose and optionally fix problems",
|
||||||
|
@ -60,19 +74,6 @@ var cmdDoctorCheck = &cli.Command{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// CmdDoctor represents the available doctor sub-command.
|
|
||||||
var CmdDoctor = &cli.Command{
|
|
||||||
Name: "doctor",
|
|
||||||
Usage: "Diagnose and optionally fix problems",
|
|
||||||
Description: "A command to diagnose problems with the current Gitea instance according to the given configuration. Some problems can optionally be fixed by modifying the database or data storage.",
|
|
||||||
|
|
||||||
Subcommands: []*cli.Command{
|
|
||||||
cmdDoctorCheck,
|
|
||||||
cmdRecreateTable,
|
|
||||||
cmdDoctorConvert,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var cmdRecreateTable = &cli.Command{
|
var cmdRecreateTable = &cli.Command{
|
||||||
Name: "recreate-table",
|
Name: "recreate-table",
|
||||||
Usage: "Recreate tables from XORM definitions and copy the data.",
|
Usage: "Recreate tables from XORM definitions and copy the data.",
|
||||||
|
@ -177,6 +178,7 @@ func runDoctorCheck(ctx *cli.Context) error {
|
||||||
if ctx.IsSet("list") {
|
if ctx.IsSet("list") {
|
||||||
w := tabwriter.NewWriter(os.Stdout, 0, 8, 1, '\t', 0)
|
w := tabwriter.NewWriter(os.Stdout, 0, 8, 1, '\t', 0)
|
||||||
_, _ = w.Write([]byte("Default\tName\tTitle\n"))
|
_, _ = w.Write([]byte("Default\tName\tTitle\n"))
|
||||||
|
doctor.SortChecks(doctor.Checks)
|
||||||
for _, check := range doctor.Checks {
|
for _, check := range doctor.Checks {
|
||||||
if check.IsDefault {
|
if check.IsDefault {
|
||||||
_, _ = w.Write([]byte{'*'})
|
_, _ = w.Write([]byte{'*'})
|
||||||
|
@ -192,25 +194,19 @@ func runDoctorCheck(ctx *cli.Context) error {
|
||||||
|
|
||||||
var checks []*doctor.Check
|
var checks []*doctor.Check
|
||||||
if ctx.Bool("all") {
|
if ctx.Bool("all") {
|
||||||
checks = doctor.Checks
|
checks = make([]*doctor.Check, len(doctor.Checks))
|
||||||
|
copy(checks, doctor.Checks)
|
||||||
} else if ctx.IsSet("run") {
|
} else if ctx.IsSet("run") {
|
||||||
addDefault := ctx.Bool("default")
|
addDefault := ctx.Bool("default")
|
||||||
names := ctx.StringSlice("run")
|
runNamesSet := container.SetOf(ctx.StringSlice("run")...)
|
||||||
for i, name := range names {
|
|
||||||
names[i] = strings.ToLower(strings.TrimSpace(name))
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, check := range doctor.Checks {
|
for _, check := range doctor.Checks {
|
||||||
if addDefault && check.IsDefault {
|
if (addDefault && check.IsDefault) || runNamesSet.Contains(check.Name) {
|
||||||
checks = append(checks, check)
|
checks = append(checks, check)
|
||||||
continue
|
runNamesSet.Remove(check.Name)
|
||||||
}
|
|
||||||
for _, name := range names {
|
|
||||||
if name == check.Name {
|
|
||||||
checks = append(checks, check)
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if len(runNamesSet) > 0 {
|
||||||
|
return fmt.Errorf("unknown checks: %q", strings.Join(runNamesSet.Values(), ","))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for _, check := range doctor.Checks {
|
for _, check := range doctor.Checks {
|
||||||
|
@ -219,6 +215,5 @@ func runDoctorCheck(ctx *cli.Context) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return doctor.RunChecks(stdCtx, colorize, ctx.Bool("fix"), checks)
|
return doctor.RunChecks(stdCtx, colorize, ctx.Bool("fix"), checks)
|
||||||
}
|
}
|
||||||
|
|
33
cmd/doctor_test.go
Normal file
33
cmd/doctor_test.go
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/modules/doctor"
|
||||||
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/urfave/cli/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestDoctorRun(t *testing.T) {
|
||||||
|
doctor.Register(&doctor.Check{
|
||||||
|
Title: "Test Check",
|
||||||
|
Name: "test-check",
|
||||||
|
Run: func(ctx context.Context, logger log.Logger, autofix bool) error { return nil },
|
||||||
|
|
||||||
|
SkipDatabaseInitialization: true,
|
||||||
|
})
|
||||||
|
app := cli.NewApp()
|
||||||
|
app.Commands = []*cli.Command{cmdDoctorCheck}
|
||||||
|
err := app.Run([]string{"./gitea", "check", "--run", "test-check"})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
err = app.Run([]string{"./gitea", "check", "--run", "no-such"})
|
||||||
|
assert.ErrorContains(t, err, `unknown checks: "no-such"`)
|
||||||
|
err = app.Run([]string{"./gitea", "check", "--run", "test-check,no-such"})
|
||||||
|
assert.ErrorContains(t, err, `unknown checks: "no-such"`)
|
||||||
|
}
|
|
@ -452,7 +452,7 @@ func addRecursiveExclude(w archiver.Writer, insidePath, absPath string, excludeA
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
currentAbsPath := path.Join(absPath, file.Name())
|
currentAbsPath := filepath.Join(absPath, file.Name())
|
||||||
currentInsidePath := path.Join(insidePath, file.Name())
|
currentInsidePath := path.Join(insidePath, file.Name())
|
||||||
if file.IsDir() {
|
if file.IsDir() {
|
||||||
if !util.SliceContainsString(excludeAbsPath, currentAbsPath) {
|
if !util.SliceContainsString(excludeAbsPath, currentAbsPath) {
|
||||||
|
|
|
@ -70,7 +70,7 @@ func runGenerateInternalToken(c *cli.Context) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func runGenerateLfsJwtSecret(c *cli.Context) error {
|
func runGenerateLfsJwtSecret(c *cli.Context) error {
|
||||||
_, jwtSecretBase64, err := generate.NewJwtSecretBase64()
|
_, jwtSecretBase64, err := generate.NewJwtSecretWithBase64()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,6 +110,9 @@ func migrateLFS(ctx context.Context, dstStorage storage.ObjectStorage) error {
|
||||||
|
|
||||||
func migrateAvatars(ctx context.Context, dstStorage storage.ObjectStorage) error {
|
func migrateAvatars(ctx context.Context, dstStorage storage.ObjectStorage) error {
|
||||||
return db.Iterate(ctx, nil, func(ctx context.Context, user *user_model.User) error {
|
return db.Iterate(ctx, nil, func(ctx context.Context, user *user_model.User) error {
|
||||||
|
if user.CustomAvatarRelativePath() == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
_, err := storage.Copy(dstStorage, user.CustomAvatarRelativePath(), storage.Avatars, user.CustomAvatarRelativePath())
|
_, err := storage.Copy(dstStorage, user.CustomAvatarRelativePath(), storage.Avatars, user.CustomAvatarRelativePath())
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
@ -117,6 +120,9 @@ func migrateAvatars(ctx context.Context, dstStorage storage.ObjectStorage) error
|
||||||
|
|
||||||
func migrateRepoAvatars(ctx context.Context, dstStorage storage.ObjectStorage) error {
|
func migrateRepoAvatars(ctx context.Context, dstStorage storage.ObjectStorage) error {
|
||||||
return db.Iterate(ctx, nil, func(ctx context.Context, repo *repo_model.Repository) error {
|
return db.Iterate(ctx, nil, func(ctx context.Context, repo *repo_model.Repository) error {
|
||||||
|
if repo.CustomAvatarRelativePath() == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
_, err := storage.Copy(dstStorage, repo.CustomAvatarRelativePath(), storage.RepoAvatars, repo.CustomAvatarRelativePath())
|
_, err := storage.Copy(dstStorage, repo.CustomAvatarRelativePath(), storage.RepoAvatars, repo.CustomAvatarRelativePath())
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/packages"
|
"code.gitea.io/gitea/models/packages"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
@ -30,7 +31,7 @@ func TestMigratePackages(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer buf.Close()
|
defer buf.Close()
|
||||||
|
|
||||||
v, f, err := packages_service.CreatePackageAndAddFile(&packages_service.PackageCreationInfo{
|
v, f, err := packages_service.CreatePackageAndAddFile(db.DefaultContext, &packages_service.PackageCreationInfo{
|
||||||
PackageInfo: packages_service.PackageInfo{
|
PackageInfo: packages_service.PackageInfo{
|
||||||
Owner: creator,
|
Owner: creator,
|
||||||
PackageType: packages.TypeGeneric,
|
PackageType: packages.TypeGeneric,
|
||||||
|
|
12
cmd/serv.go
12
cmd/serv.go
|
@ -216,16 +216,18 @@ func runServ(c *cli.Context) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// LowerCase and trim the repoPath as that's how they are stored.
|
|
||||||
repoPath = strings.ToLower(strings.TrimSpace(repoPath))
|
|
||||||
|
|
||||||
rr := strings.SplitN(repoPath, "/", 2)
|
rr := strings.SplitN(repoPath, "/", 2)
|
||||||
if len(rr) != 2 {
|
if len(rr) != 2 {
|
||||||
return fail(ctx, "Invalid repository path", "Invalid repository path: %v", repoPath)
|
return fail(ctx, "Invalid repository path", "Invalid repository path: %v", repoPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
username := strings.ToLower(rr[0])
|
username := rr[0]
|
||||||
reponame := strings.ToLower(strings.TrimSuffix(rr[1], ".git"))
|
reponame := strings.TrimSuffix(rr[1], ".git")
|
||||||
|
|
||||||
|
// LowerCase and trim the repoPath as that's how they are stored.
|
||||||
|
// This should be done after splitting the repoPath into username and reponame
|
||||||
|
// so that username and reponame are not affected.
|
||||||
|
repoPath = strings.ToLower(strings.TrimSpace(repoPath))
|
||||||
|
|
||||||
if alphaDashDotPattern.MatchString(reponame) {
|
if alphaDashDotPattern.MatchString(reponame) {
|
||||||
return fail(ctx, "Invalid repo name", "Invalid repo name: %s", reponame)
|
return fail(ctx, "Invalid repo name", "Invalid repo name: %s", reponame)
|
||||||
|
|
|
@ -47,22 +47,26 @@ func main() {
|
||||||
on the configuration cheat sheet.`
|
on the configuration cheat sheet.`
|
||||||
app.Flags = []cli.Flag{
|
app.Flags = []cli.Flag{
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "custom-path, C",
|
Name: "custom-path",
|
||||||
|
Aliases: []string{"C"},
|
||||||
Value: setting.CustomPath,
|
Value: setting.CustomPath,
|
||||||
Usage: "Custom path file path",
|
Usage: "Custom path file path",
|
||||||
},
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "config, c",
|
Name: "config",
|
||||||
|
Aliases: []string{"c"},
|
||||||
Value: setting.CustomConf,
|
Value: setting.CustomConf,
|
||||||
Usage: "Custom configuration file path",
|
Usage: "Custom configuration file path",
|
||||||
},
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "work-path, w",
|
Name: "work-path",
|
||||||
|
Aliases: []string{"w"},
|
||||||
Value: setting.AppWorkPath,
|
Value: setting.AppWorkPath,
|
||||||
Usage: "Set the gitea working path",
|
Usage: "Set the gitea working path",
|
||||||
},
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "out, o",
|
Name: "out",
|
||||||
|
Aliases: []string{"o"},
|
||||||
Value: "",
|
Value: "",
|
||||||
Usage: "Destination file to write to",
|
Usage: "Destination file to write to",
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Gitea (Git with a cup of tea)
|
Description=Gitea (Git with a cup of tea)
|
||||||
After=syslog.target
|
|
||||||
After=network.target
|
After=network.target
|
||||||
###
|
###
|
||||||
# Don't forget to add the database service dependencies
|
# Don't forget to add the database service dependencies
|
||||||
|
@ -52,7 +51,7 @@ After=network.target
|
||||||
# Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
|
# Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
|
||||||
# LimitNOFILE=524288:524288
|
# LimitNOFILE=524288:524288
|
||||||
RestartSec=2s
|
RestartSec=2s
|
||||||
Type=notify
|
Type=simple
|
||||||
User=git
|
User=git
|
||||||
Group=git
|
Group=git
|
||||||
WorkingDirectory=/var/lib/gitea/
|
WorkingDirectory=/var/lib/gitea/
|
||||||
|
@ -62,7 +61,6 @@ WorkingDirectory=/var/lib/gitea/
|
||||||
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
|
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
|
||||||
Restart=always
|
Restart=always
|
||||||
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
|
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
|
||||||
WatchdogSec=30s
|
|
||||||
# If you install Git to directory prefix other than default PATH (which happens
|
# If you install Git to directory prefix other than default PATH (which happens
|
||||||
# for example if you install other versions of Git side-to-side with
|
# for example if you install other versions of Git side-to-side with
|
||||||
# distribution version), uncomment below line and add that prefix to PATH
|
# distribution version), uncomment below line and add that prefix to PATH
|
||||||
|
|
|
@ -491,6 +491,11 @@ INTERNAL_TOKEN=
|
||||||
;; Cache successful token hashes. API tokens are stored in the DB as pbkdf2 hashes however, this means that there is a potentially significant hashing load when there are multiple API operations.
|
;; Cache successful token hashes. API tokens are stored in the DB as pbkdf2 hashes however, this means that there is a potentially significant hashing load when there are multiple API operations.
|
||||||
;; This cache will store the successfully hashed tokens in a LRU cache as a balance between performance and security.
|
;; This cache will store the successfully hashed tokens in a LRU cache as a balance between performance and security.
|
||||||
;SUCCESSFUL_TOKENS_CACHE_SIZE = 20
|
;SUCCESSFUL_TOKENS_CACHE_SIZE = 20
|
||||||
|
;;
|
||||||
|
;; Reject API tokens sent in URL query string (Accept Header-based API tokens only). This avoids security vulnerabilities
|
||||||
|
;; stemming from cached/logged plain-text API tokens.
|
||||||
|
;; In future releases, this will become the default behavior
|
||||||
|
;DISABLE_QUERY_AUTH_TOKEN = false
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
@ -1014,8 +1019,8 @@ LEVEL = Info
|
||||||
;; Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types.
|
;; Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types.
|
||||||
;ALLOWED_TYPES =
|
;ALLOWED_TYPES =
|
||||||
;;
|
;;
|
||||||
;; Max size of each file in megabytes. Defaults to 3MB
|
;; Max size of each file in megabytes. Defaults to 50MB
|
||||||
;FILE_MAX_SIZE = 3
|
;FILE_MAX_SIZE = 50
|
||||||
;;
|
;;
|
||||||
;; Max number of files per upload. Defaults to 5
|
;; Max number of files per upload. Defaults to 5
|
||||||
;MAX_FILES = 5
|
;MAX_FILES = 5
|
||||||
|
@ -1151,15 +1156,9 @@ LEVEL = Info
|
||||||
;; enable cors headers (disabled by default)
|
;; enable cors headers (disabled by default)
|
||||||
;ENABLED = false
|
;ENABLED = false
|
||||||
;;
|
;;
|
||||||
;; scheme of allowed requests
|
;; list of requesting origins that are allowed, eg: "https://*.example.com"
|
||||||
;SCHEME = http
|
|
||||||
;;
|
|
||||||
;; list of requesting domains that are allowed
|
|
||||||
;ALLOW_DOMAIN = *
|
;ALLOW_DOMAIN = *
|
||||||
;;
|
;;
|
||||||
;; allow subdomains of headers listed above to request
|
|
||||||
;ALLOW_SUBDOMAIN = false
|
|
||||||
;;
|
|
||||||
;; list of methods allowed to request
|
;; list of methods allowed to request
|
||||||
;METHODS = GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS
|
;METHODS = GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS
|
||||||
;;
|
;;
|
||||||
|
@ -1205,6 +1204,9 @@ LEVEL = Info
|
||||||
;; Max size of files to be displayed (default is 8MiB)
|
;; Max size of files to be displayed (default is 8MiB)
|
||||||
;MAX_DISPLAY_FILE_SIZE = 8388608
|
;MAX_DISPLAY_FILE_SIZE = 8388608
|
||||||
;;
|
;;
|
||||||
|
;; Detect ambiguous unicode characters in file contents and show warnings on the UI
|
||||||
|
;AMBIGUOUS_UNICODE_DETECTION = true
|
||||||
|
;;
|
||||||
;; Whether the email of the user should be shown in the Explore Users page
|
;; Whether the email of the user should be shown in the Explore Users page
|
||||||
;SHOW_USER_EMAIL = true
|
;SHOW_USER_EMAIL = true
|
||||||
;;
|
;;
|
||||||
|
@ -1219,6 +1221,9 @@ LEVEL = Info
|
||||||
;; For custom reactions, add a tightly cropped square image to public/assets/img/emoji/reaction_name.png
|
;; For custom reactions, add a tightly cropped square image to public/assets/img/emoji/reaction_name.png
|
||||||
;REACTIONS = +1, -1, laugh, hooray, confused, heart, rocket, eyes
|
;REACTIONS = +1, -1, laugh, hooray, confused, heart, rocket, eyes
|
||||||
;;
|
;;
|
||||||
|
;; Change the number of users that are displayed in reactions tooltip (triggered by mouse hover).
|
||||||
|
;REACTION_MAX_USER_NUM = 10
|
||||||
|
;;
|
||||||
;; Additional Emojis not defined in the utf8 standard
|
;; Additional Emojis not defined in the utf8 standard
|
||||||
;; By default we support gitea (:gitea:), to add more copy them to public/assets/img/emoji/emoji_name.png and add it to this config.
|
;; By default we support gitea (:gitea:), to add more copy them to public/assets/img/emoji/emoji_name.png and add it to this config.
|
||||||
;; Dont mistake it for Reactions.
|
;; Dont mistake it for Reactions.
|
||||||
|
@ -1420,7 +1425,7 @@ LEVEL = Info
|
||||||
;DATADIR = queues/ ; Relative paths will be made absolute against `%(APP_DATA_PATH)s`.
|
;DATADIR = queues/ ; Relative paths will be made absolute against `%(APP_DATA_PATH)s`.
|
||||||
;;
|
;;
|
||||||
;; Default queue length before a channel queue will block
|
;; Default queue length before a channel queue will block
|
||||||
;LENGTH = 100
|
;LENGTH = 100000
|
||||||
;;
|
;;
|
||||||
;; Batch size to send for batched queues
|
;; Batch size to send for batched queues
|
||||||
;BATCH_LENGTH = 20
|
;BATCH_LENGTH = 20
|
||||||
|
@ -1812,8 +1817,8 @@ LEVEL = Info
|
||||||
;; Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types.
|
;; Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types.
|
||||||
;ALLOWED_TYPES = .csv,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.xls,.xlsx,.zip
|
;ALLOWED_TYPES = .csv,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.xls,.xlsx,.zip
|
||||||
;;
|
;;
|
||||||
;; Max size of each file. Defaults to 4MB
|
;; Max size of each file. Defaults to 2048MB
|
||||||
;MAX_SIZE = 4
|
;MAX_SIZE = 2048
|
||||||
;;
|
;;
|
||||||
;; Max number of files per upload. Defaults to 5
|
;; Max number of files per upload. Defaults to 5
|
||||||
;MAX_FILES = 5
|
;MAX_FILES = 5
|
||||||
|
@ -2566,8 +2571,14 @@ LEVEL = Info
|
||||||
;;
|
;;
|
||||||
;; Default platform to get action plugins, `github` for `https://github.com`, `self` for the current Gitea instance.
|
;; Default platform to get action plugins, `github` for `https://github.com`, `self` for the current Gitea instance.
|
||||||
;DEFAULT_ACTIONS_URL = github
|
;DEFAULT_ACTIONS_URL = github
|
||||||
;; Default artifact retention time in days, default is 90 days
|
;; Default artifact retention time in days. Artifacts could have their own retention periods by setting the `retention-days` option in `actions/upload-artifact` step.
|
||||||
;ARTIFACT_RETENTION_DAYS = 90
|
;ARTIFACT_RETENTION_DAYS = 90
|
||||||
|
;; Timeout to stop the task which have running status, but haven't been updated for a long time
|
||||||
|
;ZOMBIE_TASK_TIMEOUT = 10m
|
||||||
|
;; Timeout to stop the tasks which have running status and continuous updates, but don't end for a long time
|
||||||
|
;ENDLESS_TASK_TIMEOUT = 3h
|
||||||
|
;; Timeout to cancel the jobs which have waiting status, but haven't been picked by a runner for a long time
|
||||||
|
;ABANDONED_JOB_TIMEOUT = 24h
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
|
@ -7,7 +7,7 @@ if [ ! -x /bin/sh ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${USER}" != "git" ]; then
|
if [ "${USER}" != "git" ]; then
|
||||||
# rename user
|
# Rename user
|
||||||
sed -i -e "s/^git\:/${USER}\:/g" /etc/passwd
|
sed -i -e "s/^git\:/${USER}\:/g" /etc/passwd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -19,13 +19,13 @@ if [ -z "${USER_UID}" ]; then
|
||||||
USER_UID="`id -u ${USER}`"
|
USER_UID="`id -u ${USER}`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Change GID for USER?
|
# Change GID for USER?
|
||||||
if [ -n "${USER_GID}" ] && [ "${USER_GID}" != "`id -g ${USER}`" ]; then
|
if [ -n "${USER_GID}" ] && [ "${USER_GID}" != "`id -g ${USER}`" ]; then
|
||||||
sed -i -e "s/^${USER}:\([^:]*\):[0-9]*/${USER}:\1:${USER_GID}/" /etc/group
|
sed -i -e "s/^${USER}:\([^:]*\):[0-9]*/${USER}:\1:${USER_GID}/" /etc/group
|
||||||
sed -i -e "s/^${USER}:\([^:]*\):\([0-9]*\):[0-9]*/${USER}:\1:\2:${USER_GID}/" /etc/passwd
|
sed -i -e "s/^${USER}:\([^:]*\):\([0-9]*\):[0-9]*/${USER}:\1:\2:${USER_GID}/" /etc/passwd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Change UID for USER?
|
# Change UID for USER?
|
||||||
if [ -n "${USER_UID}" ] && [ "${USER_UID}" != "`id -u ${USER}`" ]; then
|
if [ -n "${USER_UID}" ] && [ "${USER_UID}" != "`id -u ${USER}`" ]; then
|
||||||
sed -i -e "s/^${USER}:\([^:]*\):[0-9]*:\([0-9]*\)/${USER}:\1:${USER_UID}:\2/" /etc/passwd
|
sed -i -e "s/^${USER}:\([^:]*\):[0-9]*:\([0-9]*\)/${USER}:\1:${USER_UID}:\2/" /etc/passwd
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-08-23T09:00:00+02:00"
|
|
||||||
title: "Avancé"
|
|
||||||
slug: "administration"
|
|
||||||
sidebar_position: 30
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "Avancé"
|
|
||||||
sidebar_position: 20
|
|
||||||
identifier: "administration"
|
|
||||||
---
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-01T16:00:00+02:00"
|
|
||||||
title: "運維"
|
|
||||||
slug: "administration"
|
|
||||||
sidebar_position: 30
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "運維"
|
|
||||||
sidebar_position: 20
|
|
||||||
identifier: "administration"
|
|
||||||
---
|
|
|
@ -19,10 +19,10 @@ Some jurisdictions (such as EU), requires certain legal pages (e.g. Privacy Poli
|
||||||
|
|
||||||
## Getting Pages
|
## Getting Pages
|
||||||
|
|
||||||
Gitea source code ships with sample pages, available in `contrib/legal` directory. Copy them to `custom/public/`. For example, to add Privacy Policy:
|
Gitea source code ships with sample pages, available in `contrib/legal` directory. Copy them to `custom/public/assets/`. For example, to add Privacy Policy:
|
||||||
|
|
||||||
```
|
```
|
||||||
wget -O /path/to/custom/public/privacy.html https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/legal/privacy.html.sample
|
wget -O /path/to/custom/public/assets/privacy.html https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/legal/privacy.html.sample
|
||||||
```
|
```
|
||||||
|
|
||||||
Now you need to edit the page to meet your requirements. In particular you must change the email addresses, web addresses and references to "Your Gitea Instance" to match your situation.
|
Now you need to edit the page to meet your requirements. In particular you must change the email addresses, web addresses and references to "Your Gitea Instance" to match your situation.
|
||||||
|
|
|
@ -19,10 +19,10 @@ menu:
|
||||||
|
|
||||||
## 获取页面
|
## 获取页面
|
||||||
|
|
||||||
Gitea 源代码附带了示例页面,位于 `contrib/legal` 目录中。将它们复制到 `custom/public/` 目录下。例如,如果要添加隐私政策:
|
Gitea 源代码附带了示例页面,位于 `contrib/legal` 目录中。将它们复制到 `custom/public/assets/` 目录下。例如,如果要添加隐私政策:
|
||||||
|
|
||||||
```
|
```
|
||||||
wget -O /path/to/custom/public/privacy.html https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/legal/privacy.html.sample
|
wget -O /path/to/custom/public/assets/privacy.html https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/legal/privacy.html.sample
|
||||||
```
|
```
|
||||||
|
|
||||||
现在,你需要编辑该页面以满足你的需求。特别是,你必须更改电子邮件地址、网址以及与 "Your Gitea Instance" 相关的引用,以匹配你的情况。
|
现在,你需要编辑该页面以满足你的需求。特别是,你必须更改电子邮件地址、网址以及与 "Your Gitea Instance" 相关的引用,以匹配你的情况。
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-01-01T16:00:00+02:00"
|
|
||||||
title: "用法: 備份與還原"
|
|
||||||
slug: "backup-and-restore"
|
|
||||||
sidebar_position: 11
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/backup-and-restore
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "administration"
|
|
||||||
name: "備份與還原"
|
|
||||||
sidebar_position: 11
|
|
||||||
identifier: "backup-and-restore"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 備份與還原
|
|
||||||
|
|
||||||
Gitea 目前支援 `dump` 指令,用來將資料備份成 zip 檔案,後續會提供還原指令,讓你可以輕易的將備份資料及還原到另外一台機器。
|
|
||||||
|
|
||||||
## 備份指令 (`dump`)
|
|
||||||
|
|
||||||
首先,切換到執行 Gitea 的使用者: `su git` (請修改成您指定的使用者),並在安裝目錄內執行 `./gitea dump` 指令,你可以看到 console 畫面如下:
|
|
||||||
|
|
||||||
```
|
|
||||||
2016/12/27 22:32:09 Creating tmp work dir: /tmp/gitea-dump-417443001
|
|
||||||
2016/12/27 22:32:09 Dumping local repositories.../home/git/gitea-repositories
|
|
||||||
2016/12/27 22:32:22 Dumping database...
|
|
||||||
2016/12/27 22:32:22 Packing dump files...
|
|
||||||
2016/12/27 22:32:34 Removing tmp work dir: /tmp/gitea-dump-417443001
|
|
||||||
2016/12/27 22:32:34 Finish dumping in file gitea-dump-1482906742.zip
|
|
||||||
```
|
|
||||||
|
|
||||||
備份出來的 `gitea-dump-1482906742.zip` 檔案,檔案內會包含底下內容:
|
|
||||||
|
|
||||||
* `custom/conf/app.ini` - 伺服器設定檔。
|
|
||||||
* `gitea-db.sql` - SQL 備份檔案。
|
|
||||||
* `gitea-repo.zip` - 此 zip 檔案為全部的 repo 目錄。
|
|
||||||
請參考 Config -> repository -> `ROOT` 所設定的路徑。
|
|
||||||
* `log/` - 全部 logs 檔案,如果你要 migrate 到其他伺服器,此目錄不用保留。
|
|
||||||
|
|
||||||
你可以透過設定 `--tempdir` 指令參數來指定備份檔案目錄,或者是設定 `TMPDIR` 環境變數來達到此功能。
|
|
||||||
|
|
||||||
## 還原指令 (`restore`)
|
|
||||||
|
|
||||||
持續更新中: 此文件尚未完成.
|
|
||||||
|
|
||||||
例:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
unzip gitea-dump-1610949662.zip
|
|
||||||
cd gitea-dump-1610949662
|
|
||||||
mv data/conf/app.ini /etc/gitea/conf/app.ini
|
|
||||||
mv data/* /var/lib/gitea/data/
|
|
||||||
mv log/* /var/lib/gitea/log/
|
|
||||||
mv repos/* /var/lib/gitea/repositories/
|
|
||||||
chown -R gitea:gitea /etc/gitea/conf/app.ini /var/lib/gitea
|
|
||||||
|
|
||||||
# mysql
|
|
||||||
mysql --default-character-set=utf8mb4 -u$USER -p$PASS $DATABASE <gitea-db.sql
|
|
||||||
# sqlite3
|
|
||||||
sqlite3 $DATABASE_PATH <gitea-db.sql
|
|
||||||
# postgres
|
|
||||||
psql -U $USER -d $DATABASE < gitea-db.sql
|
|
||||||
|
|
||||||
service gitea restart
|
|
||||||
```
|
|
|
@ -50,7 +50,7 @@ a special meaning for your command shell.
|
||||||
|
|
||||||
If no pattern is provided, all files are listed.
|
If no pattern is provided, all files are listed.
|
||||||
|
|
||||||
### Example
|
### Example: Listing all embedded files
|
||||||
|
|
||||||
Listing all embedded files with `openid` in their path:
|
Listing all embedded files with `openid` in their path:
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ When Gitea is upgraded to a new version (by replacing the executable), many of t
|
||||||
embedded files will suffer changes. Gitea will honor and use any files found
|
embedded files will suffer changes. Gitea will honor and use any files found
|
||||||
in the `custom` directory, even if they are old and incompatible.
|
in the `custom` directory, even if they are old and incompatible.
|
||||||
|
|
||||||
### Example
|
### Example: Extracting mail templates
|
||||||
|
|
||||||
Extracting mail templates to a temporary directory:
|
Extracting mail templates to a temporary directory:
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ gitea embedded list [--include-vendored] [patterns...]
|
||||||
|
|
||||||
如果未提供模式,则列出所有文件。
|
如果未提供模式,则列出所有文件。
|
||||||
|
|
||||||
### 示例
|
### 示例:列出所有嵌入文件
|
||||||
|
|
||||||
列出所有路径中包含 `openid` 的嵌入文件:
|
列出所有路径中包含 `openid` 的嵌入文件:
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ gitea [--config {file}] embedded extract [--destination {dir}|--custom] [--overw
|
||||||
|
|
||||||
请确保**只提取需要自定义的文件**。位于 `custom` 目录中的文件不会受到 Gitea 的升级过程的影响。当 Gitea 升级到新版本(通过替换可执行文件)时,许多嵌入文件将发生变化。Gitea 将尊重并使用在 `custom` 目录中找到的任何文件,即使这些文件是旧的和不兼容的。
|
请确保**只提取需要自定义的文件**。位于 `custom` 目录中的文件不会受到 Gitea 的升级过程的影响。当 Gitea 升级到新版本(通过替换可执行文件)时,许多嵌入文件将发生变化。Gitea 将尊重并使用在 `custom` 目录中找到的任何文件,即使这些文件是旧的和不兼容的。
|
||||||
|
|
||||||
### 示例
|
### 示例:提取邮件模板
|
||||||
|
|
||||||
将邮件模板提取到临时目录:
|
将邮件模板提取到临时目录:
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ In addition, there is _`StaticRootPath`_ which can be set as a built-in at build
|
||||||
- `ENABLED`: **true**: Whether repository file uploads are enabled
|
- `ENABLED`: **true**: Whether repository file uploads are enabled
|
||||||
- `TEMP_PATH`: **data/tmp/uploads**: Path for uploads (content gets deleted on Gitea restart)
|
- `TEMP_PATH`: **data/tmp/uploads**: Path for uploads (content gets deleted on Gitea restart)
|
||||||
- `ALLOWED_TYPES`: **_empty_**: Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types.
|
- `ALLOWED_TYPES`: **_empty_**: Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types.
|
||||||
- `FILE_MAX_SIZE`: **3**: Max size of each file in megabytes.
|
- `FILE_MAX_SIZE`: **50**: Max size of each file in megabytes.
|
||||||
- `MAX_FILES`: **5**: Max number of files per upload
|
- `MAX_FILES`: **5**: Max number of files per upload
|
||||||
|
|
||||||
### Repository - Release (`repository.release`)
|
### Repository - Release (`repository.release`)
|
||||||
|
@ -196,9 +196,7 @@ The following configuration set `Content-Type: application/vnd.android.package-a
|
||||||
## CORS (`cors`)
|
## CORS (`cors`)
|
||||||
|
|
||||||
- `ENABLED`: **false**: enable cors headers (disabled by default)
|
- `ENABLED`: **false**: enable cors headers (disabled by default)
|
||||||
- `SCHEME`: **http**: scheme of allowed requests
|
- `ALLOW_DOMAIN`: **\***: list of requesting origins that are allowed, eg: "https://*.example.com"
|
||||||
- `ALLOW_DOMAIN`: **\***: list of requesting domains that are allowed
|
|
||||||
- `ALLOW_SUBDOMAIN`: **false**: allow subdomains of headers listed above to request
|
|
||||||
- `METHODS`: **GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS**: list of methods allowed to request
|
- `METHODS`: **GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS**: list of methods allowed to request
|
||||||
- `MAX_AGE`: **10m**: max time to cache response
|
- `MAX_AGE`: **10m**: max time to cache response
|
||||||
- `ALLOW_CREDENTIALS`: **false**: allow request with credentials
|
- `ALLOW_CREDENTIALS`: **false**: allow request with credentials
|
||||||
|
@ -220,9 +218,11 @@ The following configuration set `Content-Type: application/vnd.android.package-a
|
||||||
- `THEMES`: **auto,gitea,arc-green**: All available themes. Allow users select personalized themes.
|
- `THEMES`: **auto,gitea,arc-green**: All available themes. Allow users select personalized themes.
|
||||||
regardless of the value of `DEFAULT_THEME`.
|
regardless of the value of `DEFAULT_THEME`.
|
||||||
- `MAX_DISPLAY_FILE_SIZE`: **8388608**: Max size of files to be displayed (default is 8MiB)
|
- `MAX_DISPLAY_FILE_SIZE`: **8388608**: Max size of files to be displayed (default is 8MiB)
|
||||||
|
- `AMBIGUOUS_UNICODE_DETECTION`: **true**: Detect ambiguous unicode characters in file contents and show warnings on the UI
|
||||||
- `REACTIONS`: All available reactions users can choose on issues/prs and comments
|
- `REACTIONS`: All available reactions users can choose on issues/prs and comments
|
||||||
Values can be emoji alias (:smile:) or a unicode emoji.
|
Values can be emoji alias (:smile:) or a unicode emoji.
|
||||||
For custom reactions, add a tightly cropped square image to public/assets/img/emoji/reaction_name.png
|
For custom reactions, add a tightly cropped square image to public/assets/img/emoji/reaction_name.png
|
||||||
|
- `REACTION_MAX_USER_NUM`: **10**: Change the number of users that are displayed in reactions tooltip (triggered by mouse hover).
|
||||||
- `CUSTOM_EMOJIS`: **gitea, codeberg, gitlab, git, github, gogs**: Additional Emojis not defined in the utf8 standard.
|
- `CUSTOM_EMOJIS`: **gitea, codeberg, gitlab, git, github, gogs**: Additional Emojis not defined in the utf8 standard.
|
||||||
By default, we support Gitea (:gitea:), to add more copy them to public/assets/img/emoji/emoji_name.png and
|
By default, we support Gitea (:gitea:), to add more copy them to public/assets/img/emoji/emoji_name.png and
|
||||||
add it to this config.
|
add it to this config.
|
||||||
|
@ -340,7 +340,7 @@ The following configuration set `Content-Type: application/vnd.android.package-a
|
||||||
- `SSH_AUTHORIZED_PRINCIPALS_ALLOW`: **off** or **username, email**: \[off, username, email, anything\]: Specify the principals values that users are allowed to use as principal. When set to `anything` no checks are done on the principal string. When set to `off` authorized principal are not allowed to be set.
|
- `SSH_AUTHORIZED_PRINCIPALS_ALLOW`: **off** or **username, email**: \[off, username, email, anything\]: Specify the principals values that users are allowed to use as principal. When set to `anything` no checks are done on the principal string. When set to `off` authorized principal are not allowed to be set.
|
||||||
- `SSH_CREATE_AUTHORIZED_PRINCIPALS_FILE`: **false/true**: Gitea will create a authorized_principals file by default when it is not using the internal ssh server and `SSH_AUTHORIZED_PRINCIPALS_ALLOW` is not `off`.
|
- `SSH_CREATE_AUTHORIZED_PRINCIPALS_FILE`: **false/true**: Gitea will create a authorized_principals file by default when it is not using the internal ssh server and `SSH_AUTHORIZED_PRINCIPALS_ALLOW` is not `off`.
|
||||||
- `SSH_AUTHORIZED_PRINCIPALS_BACKUP`: **false/true**: Enable SSH Authorized Principals Backup when rewriting all keys, default is true if `SSH_AUTHORIZED_PRINCIPALS_ALLOW` is not `off`.
|
- `SSH_AUTHORIZED_PRINCIPALS_BACKUP`: **false/true**: Enable SSH Authorized Principals Backup when rewriting all keys, default is true if `SSH_AUTHORIZED_PRINCIPALS_ALLOW` is not `off`.
|
||||||
- `SSH_AUTHORIZED_KEYS_COMMAND_TEMPLATE`: **{{.AppPath}} --config={{.CustomConf}} serv key-{{.Key.ID}}**: Set the template for the command to passed on authorized keys. Possible keys are: AppPath, AppWorkPath, CustomConf, CustomPath, Key - where Key is a `models/asymkey.PublicKey` and the others are strings which are shellquoted.
|
- `SSH_AUTHORIZED_KEYS_COMMAND_TEMPLATE`: **`{{.AppPath}} --config={{.CustomConf}} serv key-{{.Key.ID}}`**: Set the template for the command to passed on authorized keys. Possible keys are: AppPath, AppWorkPath, CustomConf, CustomPath, Key - where Key is a `models/asymkey.PublicKey` and the others are strings which are shellquoted.
|
||||||
- `SSH_SERVER_CIPHERS`: **chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com**: For the built-in SSH server, choose the ciphers to support for SSH connections, for system SSH this setting has no effect.
|
- `SSH_SERVER_CIPHERS`: **chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com**: For the built-in SSH server, choose the ciphers to support for SSH connections, for system SSH this setting has no effect.
|
||||||
- `SSH_SERVER_KEY_EXCHANGES`: **curve25519-sha256, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1**: For the built-in SSH server, choose the key exchange algorithms to support for SSH connections, for system SSH this setting has no effect.
|
- `SSH_SERVER_KEY_EXCHANGES`: **curve25519-sha256, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1**: For the built-in SSH server, choose the key exchange algorithms to support for SSH connections, for system SSH this setting has no effect.
|
||||||
- `SSH_SERVER_MACS`: **hmac-sha2-256-etm@openssh.com, hmac-sha2-256, hmac-sha1**: For the built-in SSH server, choose the MACs to support for SSH connections, for system SSH this setting has no effect
|
- `SSH_SERVER_MACS`: **hmac-sha2-256-etm@openssh.com, hmac-sha2-256, hmac-sha1**: For the built-in SSH server, choose the MACs to support for SSH connections, for system SSH this setting has no effect
|
||||||
|
@ -423,7 +423,7 @@ The following configuration set `Content-Type: application/vnd.android.package-a
|
||||||
## Database (`database`)
|
## Database (`database`)
|
||||||
|
|
||||||
- `DB_TYPE`: **mysql**: The database type in use \[mysql, postgres, mssql, sqlite3\].
|
- `DB_TYPE`: **mysql**: The database type in use \[mysql, postgres, mssql, sqlite3\].
|
||||||
- `HOST`: **127.0.0.1:3306**: Database host address and port or absolute path for unix socket \[mysql, postgres\] (ex: /var/run/mysqld/mysqld.sock).
|
- `HOST`: **127.0.0.1:3306**: Database host address and port or absolute path for unix socket \[mysql, postgres[^1]\] (ex: /var/run/mysqld/mysqld.sock).
|
||||||
- `NAME`: **gitea**: Database name.
|
- `NAME`: **gitea**: Database name.
|
||||||
- `USER`: **root**: Database username.
|
- `USER`: **root**: Database username.
|
||||||
- `PASSWD`: **_empty_**: Database user password. Use \`your password\` or """your password""" for quoting if you use special characters in the password.
|
- `PASSWD`: **_empty_**: Database user password. Use \`your password\` or """your password""" for quoting if you use special characters in the password.
|
||||||
|
@ -454,6 +454,8 @@ The following configuration set `Content-Type: application/vnd.android.package-a
|
||||||
- `CONN_MAX_LIFETIME` **0 or 3s**: Sets the maximum amount of time a DB connection may be reused - default is 0, meaning there is no limit (except on MySQL where it is 3s - see #6804 & #7071).
|
- `CONN_MAX_LIFETIME` **0 or 3s**: Sets the maximum amount of time a DB connection may be reused - default is 0, meaning there is no limit (except on MySQL where it is 3s - see #6804 & #7071).
|
||||||
- `AUTO_MIGRATION` **true**: Whether execute database models migrations automatically.
|
- `AUTO_MIGRATION` **true**: Whether execute database models migrations automatically.
|
||||||
|
|
||||||
|
[^1]: It may be necessary to specify a hostport even when listening on a unix socket, as the port is part of the socket name. see [#24552](https://github.com/go-gitea/gitea/issues/24552#issuecomment-1681649367) for additional details.
|
||||||
|
|
||||||
Please see #8540 & #8273 for further discussion of the appropriate values for `MAX_OPEN_CONNS`, `MAX_IDLE_CONNS` & `CONN_MAX_LIFETIME` and their
|
Please see #8540 & #8273 for further discussion of the appropriate values for `MAX_OPEN_CONNS`, `MAX_IDLE_CONNS` & `CONN_MAX_LIFETIME` and their
|
||||||
relation to port exhaustion.
|
relation to port exhaustion.
|
||||||
|
|
||||||
|
@ -483,7 +485,7 @@ Configuration at `[queue]` will set defaults for queues with overrides for indiv
|
||||||
|
|
||||||
- `TYPE`: **level**: General queue type, currently support: `level` (uses a LevelDB internally), `channel`, `redis`, `dummy`. Invalid types are treated as `level`.
|
- `TYPE`: **level**: General queue type, currently support: `level` (uses a LevelDB internally), `channel`, `redis`, `dummy`. Invalid types are treated as `level`.
|
||||||
- `DATADIR`: **queues/common**: Base DataDir for storing level queues. `DATADIR` for individual queues can be set in `queue.name` sections. Relative paths will be made absolute against `%(APP_DATA_PATH)s`.
|
- `DATADIR`: **queues/common**: Base DataDir for storing level queues. `DATADIR` for individual queues can be set in `queue.name` sections. Relative paths will be made absolute against `%(APP_DATA_PATH)s`.
|
||||||
- `LENGTH`: **100**: Maximal queue size before channel queues block
|
- `LENGTH`: **100000**: Maximal queue size before channel queues block
|
||||||
- `BATCH_LENGTH`: **20**: Batch data before passing to the handler
|
- `BATCH_LENGTH`: **20**: Batch data before passing to the handler
|
||||||
- `CONN_STR`: **redis://127.0.0.1:6379/0**: Connection string for the redis queue type. For `redis-cluster` use `redis+cluster://127.0.0.1:6379/0`. Options can be set using query params. Similarly, LevelDB options can also be set using: **leveldb://relative/path?option=value** or **leveldb:///absolute/path?option=value**, and will override `DATADIR`
|
- `CONN_STR`: **redis://127.0.0.1:6379/0**: Connection string for the redis queue type. For `redis-cluster` use `redis+cluster://127.0.0.1:6379/0`. Options can be set using query params. Similarly, LevelDB options can also be set using: **leveldb://relative/path?option=value** or **leveldb:///absolute/path?option=value**, and will override `DATADIR`
|
||||||
- `QUEUE_NAME`: **_queue**: The suffix for default redis and disk queue name. Individual queues will default to **`name`**`QUEUE_NAME` but can be overridden in the specific `queue.name` section.
|
- `QUEUE_NAME`: **_queue**: The suffix for default redis and disk queue name. Individual queues will default to **`name`**`QUEUE_NAME` but can be overridden in the specific `queue.name` section.
|
||||||
|
@ -568,6 +570,7 @@ And the following unique queues:
|
||||||
- off - do not check password complexity
|
- off - do not check password complexity
|
||||||
- `PASSWORD_CHECK_PWN`: **false**: Check [HaveIBeenPwned](https://haveibeenpwned.com/Passwords) to see if a password has been exposed.
|
- `PASSWORD_CHECK_PWN`: **false**: Check [HaveIBeenPwned](https://haveibeenpwned.com/Passwords) to see if a password has been exposed.
|
||||||
- `SUCCESSFUL_TOKENS_CACHE_SIZE`: **20**: Cache successful token hashes. API tokens are stored in the DB as pbkdf2 hashes however, this means that there is a potentially significant hashing load when there are multiple API operations. This cache will store the successfully hashed tokens in a LRU cache as a balance between performance and security.
|
- `SUCCESSFUL_TOKENS_CACHE_SIZE`: **20**: Cache successful token hashes. API tokens are stored in the DB as pbkdf2 hashes however, this means that there is a potentially significant hashing load when there are multiple API operations. This cache will store the successfully hashed tokens in a LRU cache as a balance between performance and security.
|
||||||
|
- `DISABLE_QUERY_AUTH_TOKEN`: **false**: Reject API tokens sent in URL query string (Accept Header-based API tokens only). This setting will default to `true` in Gitea 1.23 and be deprecated in Gitea 1.24.
|
||||||
|
|
||||||
## Camo (`camo`)
|
## Camo (`camo`)
|
||||||
|
|
||||||
|
@ -578,7 +581,7 @@ And the following unique queues:
|
||||||
|
|
||||||
## OpenID (`openid`)
|
## OpenID (`openid`)
|
||||||
|
|
||||||
- `ENABLE_OPENID_SIGNIN`: **false**: Allow authentication in via OpenID.
|
- `ENABLE_OPENID_SIGNIN`: **true**: Allow authentication in via OpenID.
|
||||||
- `ENABLE_OPENID_SIGNUP`: **! DISABLE\_REGISTRATION**: Allow registering via OpenID.
|
- `ENABLE_OPENID_SIGNUP`: **! DISABLE\_REGISTRATION**: Allow registering via OpenID.
|
||||||
- `WHITELISTED_URIS`: **_empty_**: If non-empty, list of POSIX regex patterns matching
|
- `WHITELISTED_URIS`: **_empty_**: If non-empty, list of POSIX regex patterns matching
|
||||||
OpenID URI's to permit.
|
OpenID URI's to permit.
|
||||||
|
@ -617,7 +620,7 @@ And the following unique queues:
|
||||||
- `REQUIRE_SIGNIN_VIEW`: **false**: Enable this to force users to log in to view any page or to use API.
|
- `REQUIRE_SIGNIN_VIEW`: **false**: Enable this to force users to log in to view any page or to use API.
|
||||||
- `ENABLE_NOTIFY_MAIL`: **false**: Enable this to send e-mail to watchers of a repository when
|
- `ENABLE_NOTIFY_MAIL`: **false**: Enable this to send e-mail to watchers of a repository when
|
||||||
something happens, like creating issues. Requires `Mailer` to be enabled.
|
something happens, like creating issues. Requires `Mailer` to be enabled.
|
||||||
- `ENABLE_BASIC_AUTHENTICATION`: **true**: Disable this to disallow authenticaton using HTTP
|
- `ENABLE_BASIC_AUTHENTICATION`: **true**: Disable this to disallow authentication using HTTP
|
||||||
BASIC and the user's password. Please note if you disable this you will not be able to access the
|
BASIC and the user's password. Please note if you disable this you will not be able to access the
|
||||||
tokens API endpoints using a password. Further, this only disables BASIC authentication using the
|
tokens API endpoints using a password. Further, this only disables BASIC authentication using the
|
||||||
password - not tokens or OAuth Basic.
|
password - not tokens or OAuth Basic.
|
||||||
|
@ -819,7 +822,7 @@ Default templates for project boards:
|
||||||
|
|
||||||
- `ENABLED`: **true**: Whether issue and pull request attachments are enabled.
|
- `ENABLED`: **true**: Whether issue and pull request attachments are enabled.
|
||||||
- `ALLOWED_TYPES`: **.csv,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.xls,.xlsx,.zip**: Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types.
|
- `ALLOWED_TYPES`: **.csv,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.xls,.xlsx,.zip**: Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types.
|
||||||
- `MAX_SIZE`: **4**: Maximum size (MB).
|
- `MAX_SIZE`: **2048**: Maximum size (MB).
|
||||||
- `MAX_FILES`: **5**: Maximum number of attachments that can be uploaded at once.
|
- `MAX_FILES`: **5**: Maximum number of attachments that can be uploaded at once.
|
||||||
- `STORAGE_TYPE`: **local**: Storage type for attachments, `local` for local disk or `minio` for s3 compatible object storage service, default is `local` or other name defined with `[storage.xxx]`
|
- `STORAGE_TYPE`: **local**: Storage type for attachments, `local` for local disk or `minio` for s3 compatible object storage service, default is `local` or other name defined with `[storage.xxx]`
|
||||||
- `SERVE_DIRECT`: **false**: Allows the storage driver to redirect to authenticated URLs to serve files directly. Currently, only Minio/S3 is supported via signed URLs, local does nothing.
|
- `SERVE_DIRECT`: **false**: Allows the storage driver to redirect to authenticated URLs to serve files directly. Currently, only Minio/S3 is supported via signed URLs, local does nothing.
|
||||||
|
@ -1388,7 +1391,10 @@ PROXY_HOSTS = *.github.com
|
||||||
- `DEFAULT_ACTIONS_URL`: **github**: Default platform to get action plugins, `github` for `https://github.com`, `self` for the current Gitea instance.
|
- `DEFAULT_ACTIONS_URL`: **github**: Default platform to get action plugins, `github` for `https://github.com`, `self` for the current Gitea instance.
|
||||||
- `STORAGE_TYPE`: **local**: Storage type for actions logs, `local` for local disk or `minio` for s3 compatible object storage service, default is `local` or other name defined with `[storage.xxx]`
|
- `STORAGE_TYPE`: **local**: Storage type for actions logs, `local` for local disk or `minio` for s3 compatible object storage service, default is `local` or other name defined with `[storage.xxx]`
|
||||||
- `MINIO_BASE_PATH`: **actions_log/**: Minio base path on the bucket only available when STORAGE_TYPE is `minio`
|
- `MINIO_BASE_PATH`: **actions_log/**: Minio base path on the bucket only available when STORAGE_TYPE is `minio`
|
||||||
- `ARTIFACT_RETENTION_DAYS`: **90**: Number of days to keep artifacts. Set to 0 to disable artifact retention. Default is 90 days if not set.
|
- `ARTIFACT_RETENTION_DAYS`: **90**: Default number of days to keep artifacts. Artifacts could have their own retention periods by setting the `retention-days` option in `actions/upload-artifact` step.
|
||||||
|
- `ZOMBIE_TASK_TIMEOUT`: **10m**: Timeout to stop the task which have running status, but haven't been updated for a long time
|
||||||
|
- `ENDLESS_TASK_TIMEOUT`: **3h**: Timeout to stop the tasks which have running status and continuous updates, but don't end for a long time
|
||||||
|
- `ABANDONED_JOB_TIMEOUT`: **24h**: Timeout to cancel the jobs which have waiting status, but haven't been picked by a runner for a long time
|
||||||
|
|
||||||
`DEFAULT_ACTIONS_URL` indicates where the Gitea Actions runners should find the actions with relative path.
|
`DEFAULT_ACTIONS_URL` indicates where the Gitea Actions runners should find the actions with relative path.
|
||||||
For example, `uses: actions/checkout@v3` means `https://github.com/actions/checkout@v3` since the value of `DEFAULT_ACTIONS_URL` is `github`.
|
For example, `uses: actions/checkout@v3` means `https://github.com/actions/checkout@v3` since the value of `DEFAULT_ACTIONS_URL` is `github`.
|
||||||
|
@ -1398,7 +1404,7 @@ Please note that using `self` is not recommended for most cases, as it could mak
|
||||||
Additionally, it requires you to mirror all the actions you need to your Gitea instance, which may not be worth it.
|
Additionally, it requires you to mirror all the actions you need to your Gitea instance, which may not be worth it.
|
||||||
Therefore, please use `self` only if you understand what you are doing.
|
Therefore, please use `self` only if you understand what you are doing.
|
||||||
|
|
||||||
In earlier versions (<= 1.19), `DEFAULT_ACTIONS_URL` cound be set to any custom URLs like `https://gitea.com` or `http://your-git-server,https://gitea.com`, and the default value was `https://gitea.com`.
|
In earlier versions (`<= 1.19`), `DEFAULT_ACTIONS_URL` cound be set to any custom URLs like `https://gitea.com` or `http://your-git-server,https://gitea.com`, and the default value was `https://gitea.com`.
|
||||||
However, later updates removed those options, and now the only options are `github` and `self`, with the default value being `github`.
|
However, later updates removed those options, and now the only options are `github` and `self`, with the default value being `github`.
|
||||||
However, if you want to use actions from other git server, you can use a complete URL in `uses` field, it's supported by Gitea (but not GitHub).
|
However, if you want to use actions from other git server, you can use a complete URL in `uses` field, it's supported by Gitea (but not GitHub).
|
||||||
Like `uses: https://gitea.com/actions/checkout@v3` or `uses: http://your-git-server/actions/checkout@v3`.
|
Like `uses: https://gitea.com/actions/checkout@v3` or `uses: http://your-git-server/actions/checkout@v3`.
|
||||||
|
|
|
@ -29,7 +29,7 @@ menu:
|
||||||
[ini](https://github.com/go-ini/ini/#recursive-values) 这里的说明。
|
[ini](https://github.com/go-ini/ini/#recursive-values) 这里的说明。
|
||||||
标注了 :exclamation: 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。
|
标注了 :exclamation: 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。
|
||||||
|
|
||||||
在下面的默认值中,`$XYZ`代表环境变量`XYZ`的值(详见:`enviroment-to-ini`)。 _`XxYyZz`_是指默认配置的一部分列出的值。这些在 app.ini 文件中不起作用,仅在此处列出作为文档说明。
|
在下面的默认值中,`$XYZ`代表环境变量`XYZ`的值(详见:`environment-to-ini`)。 _`XxYyZz`_是指默认配置的一部分列出的值。这些在 app.ini 文件中不起作用,仅在此处列出作为文档说明。
|
||||||
|
|
||||||
包含`#`或者`;`的变量必须使用引号(`` ` ``或者`""""`)包裹,否则会被解析为注释。
|
包含`#`或者`;`的变量必须使用引号(`` ` ``或者`""""`)包裹,否则会被解析为注释。
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ menu:
|
||||||
- `ENABLED`: **true**: 是否启用仓库文件上传。
|
- `ENABLED`: **true**: 是否启用仓库文件上传。
|
||||||
- `TEMP_PATH`: **data/tmp/uploads**: 文件上传的临时保存路径(在Gitea重启的时候该目录会被清空)。
|
- `TEMP_PATH`: **data/tmp/uploads**: 文件上传的临时保存路径(在Gitea重启的时候该目录会被清空)。
|
||||||
- `ALLOWED_TYPES`: **_empty_**: 以逗号分割的列表,代表支持上传的文件类型。(`.zip`), mime类型 (`text/plain`) or 通配符类型 (`image/*`, `audio/*`, `video/*`). 为空或者 `*/*`代表允许所有类型文件。
|
- `ALLOWED_TYPES`: **_empty_**: 以逗号分割的列表,代表支持上传的文件类型。(`.zip`), mime类型 (`text/plain`) or 通配符类型 (`image/*`, `audio/*`, `video/*`). 为空或者 `*/*`代表允许所有类型文件。
|
||||||
- `FILE_MAX_SIZE`: **3**: 每个文件的最大大小(MB)。
|
- `FILE_MAX_SIZE`: **50**: 每个文件的最大大小(MB)。
|
||||||
- `MAX_FILES`: **5**: 每次上传的最大文件数。
|
- `MAX_FILES`: **5**: 每次上传的最大文件数。
|
||||||
|
|
||||||
### 仓库 - 版本发布 (`repository.release`)
|
### 仓库 - 版本发布 (`repository.release`)
|
||||||
|
@ -195,9 +195,7 @@ menu:
|
||||||
## 跨域 (`cors`)
|
## 跨域 (`cors`)
|
||||||
|
|
||||||
- `ENABLED`: **false**: 启用 CORS 头部(默认禁用)
|
- `ENABLED`: **false**: 启用 CORS 头部(默认禁用)
|
||||||
- `SCHEME`: **http**: 允许请求的协议
|
|
||||||
- `ALLOW_DOMAIN`: **\***: 允许请求的域名列表
|
- `ALLOW_DOMAIN`: **\***: 允许请求的域名列表
|
||||||
- `ALLOW_SUBDOMAIN`: **false**: 允许上述列出的头部的子域名发出请求。
|
|
||||||
- `METHODS`: **GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS**: 允许发起的请求方式列表
|
- `METHODS`: **GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS**: 允许发起的请求方式列表
|
||||||
- `MAX_AGE`: **10m**: 缓存响应的最大时间
|
- `MAX_AGE`: **10m**: 缓存响应的最大时间
|
||||||
- `ALLOW_CREDENTIALS`: **false**: 允许带有凭据的请求
|
- `ALLOW_CREDENTIALS`: **false**: 允许带有凭据的请求
|
||||||
|
@ -335,7 +333,7 @@ menu:
|
||||||
- `SSH_AUTHORIZED_PRINCIPALS_ALLOW`: **off** 或 **username, email**:\[off, username, email, anything\]:指定允许用户用作 principal 的值。当设置为 `anything` 时,对 principal 字符串不执行任何检查。当设置为 `off` 时,不允许设置授权的 principal。
|
- `SSH_AUTHORIZED_PRINCIPALS_ALLOW`: **off** 或 **username, email**:\[off, username, email, anything\]:指定允许用户用作 principal 的值。当设置为 `anything` 时,对 principal 字符串不执行任何检查。当设置为 `off` 时,不允许设置授权的 principal。
|
||||||
- `SSH_CREATE_AUTHORIZED_PRINCIPALS_FILE`: **false/true**:当 Gitea 不使用内置 SSH 服务器且 `SSH_AUTHORIZED_PRINCIPALS_ALLOW` 不为 `off` 时,默认情况下 Gitea 会创建一个 authorized_principals 文件。
|
- `SSH_CREATE_AUTHORIZED_PRINCIPALS_FILE`: **false/true**:当 Gitea 不使用内置 SSH 服务器且 `SSH_AUTHORIZED_PRINCIPALS_ALLOW` 不为 `off` 时,默认情况下 Gitea 会创建一个 authorized_principals 文件。
|
||||||
- `SSH_AUTHORIZED_PRINCIPALS_BACKUP`: **false/true**:在重写所有密钥时启用 SSH 授权 principal 备份,默认值为 true(如果 `SSH_AUTHORIZED_PRINCIPALS_ALLOW` 不为 `off`)。
|
- `SSH_AUTHORIZED_PRINCIPALS_BACKUP`: **false/true**:在重写所有密钥时启用 SSH 授权 principal 备份,默认值为 true(如果 `SSH_AUTHORIZED_PRINCIPALS_ALLOW` 不为 `off`)。
|
||||||
- `SSH_AUTHORIZED_KEYS_COMMAND_TEMPLATE`: **{{.AppPath}} --config={{.CustomConf}} serv key-{{.Key.ID}}**:设置用于传递授权密钥的命令模板。可能的密钥是:AppPath、AppWorkPath、CustomConf、CustomPath、Key,其中 Key 是 `models/asymkey.PublicKey`,其他是 shellquoted 字符串。
|
- `SSH_AUTHORIZED_KEYS_COMMAND_TEMPLATE`: **`{{.AppPath}} --config={{.CustomConf}} serv key-{{.Key.ID}}`**:设置用于传递授权密钥的命令模板。可能的密钥是:AppPath、AppWorkPath、CustomConf、CustomPath、Key,其中 Key 是 `models/asymkey.PublicKey`,其他是 shellquoted 字符串。
|
||||||
- `SSH_SERVER_CIPHERS`: **chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com**:对于内置的 SSH 服务器,选择支持的 SSH 连接的加密方法,对于系统 SSH,此设置无效。
|
- `SSH_SERVER_CIPHERS`: **chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com**:对于内置的 SSH 服务器,选择支持的 SSH 连接的加密方法,对于系统 SSH,此设置无效。
|
||||||
- `SSH_SERVER_KEY_EXCHANGES`: **curve25519-sha256, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1**:对于内置 SSH 服务器,选择支持的 SSH 连接的密钥交换算法,对于系统 SSH,此设置无效。
|
- `SSH_SERVER_KEY_EXCHANGES`: **curve25519-sha256, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1**:对于内置 SSH 服务器,选择支持的 SSH 连接的密钥交换算法,对于系统 SSH,此设置无效。
|
||||||
- `SSH_SERVER_MACS`: **hmac-sha2-256-etm@openssh.com, hmac-sha2-256, hmac-sha1**:对于内置 SSH 服务器,选择支持的 SSH 连接的 MAC 算法,对于系统 SSH,此设置无效。
|
- `SSH_SERVER_MACS`: **hmac-sha2-256-etm@openssh.com, hmac-sha2-256, hmac-sha1**:对于内置 SSH 服务器,选择支持的 SSH 连接的 MAC 算法,对于系统 SSH,此设置无效。
|
||||||
|
@ -472,7 +470,7 @@ menu:
|
||||||
|
|
||||||
- `TYPE`:**level**:通用队列类型,当前支持:`level`(在内部使用 LevelDB)、`channel`、`redis`、`dummy`。无效的类型将视为 `level`。
|
- `TYPE`:**level**:通用队列类型,当前支持:`level`(在内部使用 LevelDB)、`channel`、`redis`、`dummy`。无效的类型将视为 `level`。
|
||||||
- `DATADIR`:**queues/common**:用于存储 level 队列的基本 DataDir。单独的队列的 `DATADIR` 可以在 `queue.name` 部分进行设置。相对路径将根据 `%(APP_DATA_PATH)s` 变为绝对路径。
|
- `DATADIR`:**queues/common**:用于存储 level 队列的基本 DataDir。单独的队列的 `DATADIR` 可以在 `queue.name` 部分进行设置。相对路径将根据 `%(APP_DATA_PATH)s` 变为绝对路径。
|
||||||
- `LENGTH`:**100**:通道队列阻塞之前的最大队列大小
|
- `LENGTH`:**100000**:通道队列阻塞之前的最大队列大小
|
||||||
- `BATCH_LENGTH`:**20**:在传递给处理程序之前批处理数据
|
- `BATCH_LENGTH`:**20**:在传递给处理程序之前批处理数据
|
||||||
- `CONN_STR`:**redis://127.0.0.1:6379/0**:redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地,LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR`。
|
- `CONN_STR`:**redis://127.0.0.1:6379/0**:redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地,LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR`。
|
||||||
- `QUEUE_NAME`:**_queue**:默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。
|
- `QUEUE_NAME`:**_queue**:默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。
|
||||||
|
@ -561,7 +559,7 @@ Gitea 创建以下非唯一队列:
|
||||||
|
|
||||||
## OpenID (`openid`)
|
## OpenID (`openid`)
|
||||||
|
|
||||||
- `ENABLE_OPENID_SIGNIN`: **false**:允许通过OpenID进行身份验证。
|
- `ENABLE_OPENID_SIGNIN`: **true**:允许通过OpenID进行身份验证。
|
||||||
- `ENABLE_OPENID_SIGNUP`: **! DISABLE\_REGISTRATION**:允许通过OpenID进行注册。
|
- `ENABLE_OPENID_SIGNUP`: **! DISABLE\_REGISTRATION**:允许通过OpenID进行注册。
|
||||||
- `WHITELISTED_URIS`: **_empty_**:如果非空,是一组匹配OpenID URI的POSIX正则表达式模式,用于允许访问。
|
- `WHITELISTED_URIS`: **_empty_**:如果非空,是一组匹配OpenID URI的POSIX正则表达式模式,用于允许访问。
|
||||||
- `BLACKLISTED_URIS`: **_empty_**:如果非空,是一组匹配OpenID URI的POSIX正则表达式模式,用于阻止访问。
|
- `BLACKLISTED_URIS`: **_empty_**:如果非空,是一组匹配OpenID URI的POSIX正则表达式模式,用于阻止访问。
|
||||||
|
@ -784,7 +782,7 @@ Gitea 创建以下非唯一队列:
|
||||||
|
|
||||||
- `ENABLED`: **true**: 是否允许用户上传附件。
|
- `ENABLED`: **true**: 是否允许用户上传附件。
|
||||||
- `ALLOWED_TYPES`: **.csv,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.xls,.xlsx,.zip**: 允许的文件扩展名(`.zip`)、mime 类型(`text/plain`)或通配符类型(`image/*`、`audio/*`、`video/*`)的逗号分隔列表。空值或 `*/*` 允许所有类型。
|
- `ALLOWED_TYPES`: **.csv,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.xls,.xlsx,.zip**: 允许的文件扩展名(`.zip`)、mime 类型(`text/plain`)或通配符类型(`image/*`、`audio/*`、`video/*`)的逗号分隔列表。空值或 `*/*` 允许所有类型。
|
||||||
- `MAX_SIZE`: **4**: 附件的最大限制(MB)。
|
- `MAX_SIZE`: **2048**: 附件的最大限制(MB)。
|
||||||
- `MAX_FILES`: **5**: 一次最多上传的附件数量。
|
- `MAX_FILES`: **5**: 一次最多上传的附件数量。
|
||||||
- `STORAGE_TYPE`: **local**: 附件的存储类型,`local` 表示本地磁盘,`minio` 表示兼容 S3 的对象存储服务,如果未设置将使用默认值 `local` 或其他在 `[storage.xxx]` 中定义的名称。
|
- `STORAGE_TYPE`: **local**: 附件的存储类型,`local` 表示本地磁盘,`minio` 表示兼容 S3 的对象存储服务,如果未设置将使用默认值 `local` 或其他在 `[storage.xxx]` 中定义的名称。
|
||||||
- `SERVE_DIRECT`: **false**: 允许存储驱动器重定向到经过身份验证的 URL 以直接提供文件。目前,只支持 Minio/S3 通过签名 URL 提供支持,local 不会执行任何操作。
|
- `SERVE_DIRECT`: **false**: 允许存储驱动器重定向到经过身份验证的 URL 以直接提供文件。目前,只支持 Minio/S3 通过签名 URL 提供支持,local 不会执行任何操作。
|
||||||
|
@ -1040,10 +1038,11 @@ Gitea 创建以下非唯一队列:
|
||||||
|
|
||||||
## API (`api`)
|
## API (`api`)
|
||||||
|
|
||||||
- `ENABLE_SWAGGER`: **true**: 是否启用swagger路由 (`/api/swagger`, `/api/v1/swagger`, …)。
|
- `ENABLE_SWAGGER`: **true**: 启用API文档接口 (`/api/swagger`, `/api/v1/swagger`, …). True or false。
|
||||||
- `MAX_RESPONSE_ITEMS`: **50**: 单个页面的最大 Feed.
|
- `MAX_RESPONSE_ITEMS`: **50**: API分页的最大单页项目数。
|
||||||
- `ENABLE_OPENID_SIGNIN`: **false**: 允许使用OpenID登录,当设置为`true`时可以通过 `/user/login` 页面进行OpenID登录。
|
- `DEFAULT_PAGING_NUM`: **30**: API分页的默认分页数。
|
||||||
- `DISABLE_REGISTRATION`: **false**: 关闭用户注册。
|
- `DEFAULT_GIT_TREES_PER_PAGE`: **1000**: Git trees API的默认单页项目数。
|
||||||
|
- `DEFAULT_MAX_BLOB_SIZE`: **10485760** (10MiB): blobs API的默认最大文件大小。
|
||||||
|
|
||||||
## OAuth2 (`oauth2`)
|
## OAuth2 (`oauth2`)
|
||||||
|
|
||||||
|
@ -1344,7 +1343,7 @@ PROXY_HOSTS = *.github.com
|
||||||
此外,它要求您将所有所需的操作镜像到您的 Gitea 实例,这可能不值得。
|
此外,它要求您将所有所需的操作镜像到您的 Gitea 实例,这可能不值得。
|
||||||
因此,请仅在您了解自己在做什么的情况下使用 `self`。
|
因此,请仅在您了解自己在做什么的情况下使用 `self`。
|
||||||
|
|
||||||
在早期版本(<= 1.19)中,`DEFAULT_ACTIONS_URL` 可以设置为任何自定义 URL,例如 `https://gitea.com` 或 `http://your-git-server,https://gitea.com`,默认值为 `https://gitea.com`。
|
在早期版本(`<= 1.19`)中,`DEFAULT_ACTIONS_URL` 可以设置为任何自定义 URL,例如 `https://gitea.com` 或 `http://your-git-server,https://gitea.com`,默认值为 `https://gitea.com`。
|
||||||
然而,后来的更新删除了这些选项,现在唯一的选项是 `github` 和 `self`,默认值为 `github`。
|
然而,后来的更新删除了这些选项,现在唯一的选项是 `github` 和 `self`,默认值为 `github`。
|
||||||
但是,如果您想要使用其他 Git 服务器中的操作,您可以在 `uses` 字段中使用完整的 URL,Gitea 支持此功能(GitHub 不支持)。
|
但是,如果您想要使用其他 Git 服务器中的操作,您可以在 `uses` 字段中使用完整的 URL,Gitea 支持此功能(GitHub 不支持)。
|
||||||
例如 `uses: https://gitea.com/actions/checkout@v3` 或 `uses: http://your-git-server/actions/checkout@v3`。
|
例如 `uses: https://gitea.com/actions/checkout@v3` 或 `uses: http://your-git-server/actions/checkout@v3`。
|
||||||
|
|
|
@ -312,7 +312,7 @@ receive.certNonceSeed = <randomstring>
|
||||||
|
|
||||||
### Labels
|
### Labels
|
||||||
|
|
||||||
Starting with Gitea 1.19, you can add a file that follows the [YAML label format](https://github.com/go-gitea/gitea/blob/main/options/label/Advanced.yaml) to `$GITEA_CUSTOM/options/label`:
|
Starting with Gitea 1.19, you can add a file that follows the [YAML label format](https://github.com/go-gitea/gitea/blob/main/options/label/Advanced.yaml) in the directory `$GITEA_CUSTOM/options/label/`:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
labels:
|
labels:
|
||||||
|
@ -330,7 +330,7 @@ For more information, see the [labels documentation](usage/labels.md).
|
||||||
|
|
||||||
### Licenses
|
### Licenses
|
||||||
|
|
||||||
To add a custom license, add a file with the license text to `$GITEA_CUSTOM/options/license`
|
To add a custom license, add a file with the license text in the directory `$GITEA_CUSTOM/options/license/`
|
||||||
|
|
||||||
### Locales
|
### Locales
|
||||||
|
|
||||||
|
|
|
@ -42,11 +42,11 @@ Gitea 引用 `custom` 目录中的自定义配置文件来覆盖配置、模板
|
||||||
|
|
||||||
将自定义的公共文件(比如页面和图片)作为 webroot 放在 `custom/public/` 中来让 Gitea 提供这些自定义内容(符号链接将被追踪)。
|
将自定义的公共文件(比如页面和图片)作为 webroot 放在 `custom/public/` 中来让 Gitea 提供这些自定义内容(符号链接将被追踪)。
|
||||||
|
|
||||||
举例说明:`image.png` 存放在 `custom/public/`中,那么它可以通过链接 http://gitea.domain.tld/assets/image.png 访问。
|
举例说明:`image.png` 存放在 `custom/public/assets/`中,那么它可以通过链接 http://gitea.domain.tld/assets/image.png 访问。
|
||||||
|
|
||||||
## 修改默认头像
|
## 修改默认头像
|
||||||
|
|
||||||
替换以下目录中的 png 图片: `custom/public/img/avatar\_default.png`
|
替换以下目录中的 png 图片: `custom/public/assets/img/avatar\_default.png`
|
||||||
|
|
||||||
## 自定义 Gitea 页面
|
## 自定义 Gitea 页面
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ Please note: authentication is only supported when the SMTP server communication
|
||||||
|
|
||||||
- STARTTLS (also known as Opportunistic TLS) via port 587. Initial connection is done over cleartext, but then be upgraded over TLS if the server supports it.
|
- STARTTLS (also known as Opportunistic TLS) via port 587. Initial connection is done over cleartext, but then be upgraded over TLS if the server supports it.
|
||||||
- SMTPS connection (SMTP over TLS) via the default port 465. Connection to the server use TLS from the beginning.
|
- SMTPS connection (SMTP over TLS) via the default port 465. Connection to the server use TLS from the beginning.
|
||||||
- Forced SMTPS connection with `IS_TLS_ENABLED=true`. (These are both known as Implicit TLS.)
|
- Forced SMTPS connection with `PROTOCOL=smtps`. (These are both known as Implicit TLS.)
|
||||||
This is due to protections imposed by the Go internal libraries against STRIPTLS attacks.
|
This is due to protections imposed by the Go internal libraries against STRIPTLS attacks.
|
||||||
|
|
||||||
Note that Implicit TLS is recommended by [RFC8314](https://tools.ietf.org/html/rfc8314#section-3) since 2018.
|
Note that Implicit TLS is recommended by [RFC8314](https://tools.ietf.org/html/rfc8314#section-3) since 2018.
|
||||||
|
|
|
@ -55,13 +55,13 @@ PASSWD = `password`
|
||||||
|
|
||||||
要发送测试邮件以验证设置,请转到 Gitea > 站点管理 > 配置 > SMTP 邮件配置。
|
要发送测试邮件以验证设置,请转到 Gitea > 站点管理 > 配置 > SMTP 邮件配置。
|
||||||
|
|
||||||
有关所有选项的完整列表,请查看[配置速查表](doc/administration/config-cheat-sheet.zh-cn.md)。
|
有关所有选项的完整列表,请查看[配置速查表](administration/config-cheat-sheet.md)。
|
||||||
|
|
||||||
请注意:只有在使用 TLS 或 `HOST=localhost` 加密 SMTP 服务器通信时才支持身份验证。TLS 加密可以通过以下方式进行:
|
请注意:只有在使用 TLS 或 `HOST=localhost` 加密 SMTP 服务器通信时才支持身份验证。TLS 加密可以通过以下方式进行:
|
||||||
|
|
||||||
- 通过端口 587 的 STARTTLS(也称为 Opportunistic TLS)。初始连接是明文的,但如果服务器支持,则可以升级为 TLS。
|
- 通过端口 587 的 STARTTLS(也称为 Opportunistic TLS)。初始连接是明文的,但如果服务器支持,则可以升级为 TLS。
|
||||||
- 通过默认端口 465 的 SMTPS 连接。连接到服务器从一开始就使用 TLS。
|
- 通过默认端口 465 的 SMTPS 连接。连接到服务器从一开始就使用 TLS。
|
||||||
- 使用 `IS_TLS_ENABLED=true` 进行强制的 SMTPS 连接。(这两种方式都被称为 Implicit TLS)
|
- 使用 `PROTOCOL=smtps` 进行强制的 SMTPS 连接。(这两种方式都被称为 Implicit TLS)
|
||||||
这是由于 Go 内部库对 STRIPTLS 攻击的保护机制。
|
这是由于 Go 内部库对 STRIPTLS 攻击的保护机制。
|
||||||
|
|
||||||
请注意,自2018年起,[RFC8314](https://tools.ietf.org/html/rfc8314#section-3) 推荐使用 Implicit TLS。
|
请注意,自2018年起,[RFC8314](https://tools.ietf.org/html/rfc8314#section-3) 推荐使用 Implicit TLS。
|
||||||
|
|
|
@ -194,7 +194,7 @@ ALLOW_DATA_URI_IMAGES = true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
将您的样式表添加到自定义目录中,例如 `custom/public/css/my-style-XXXXX.css`,并使用自定义的头文件 `custom/templates/custom/header.tmpl` 进行导入:
|
将您的样式表添加到自定义目录中,例如 `custom/public/assets/css/my-style-XXXXX.css`,并使用自定义的头文件 `custom/templates/custom/header.tmpl` 进行导入:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<link rel="stylesheet" href="{{AppSubUrl}}/assets/css/my-style-XXXXX.css" />
|
<link rel="stylesheet" href="{{AppSubUrl}}/assets/css/my-style-XXXXX.css" />
|
||||||
|
|
|
@ -33,7 +33,7 @@ CERT_FILE = cert.pem
|
||||||
KEY_FILE = key.pem
|
KEY_FILE = key.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
请注意,如果您的证书由第三方证书颁发机构签名(即不是自签名的),则 cert.pem 应包含证书链。服务器证书必须是 cert.pem 中的第一个条目,后跟中介(如果有)。不必包含根证书,因为连接客户端必须已经拥有根证书才能建立信任关系。要了解有关配置值的更多信息,请查看 [配置备忘单](../config-cheat-sheet#server-server)。
|
请注意,如果您的证书由第三方证书颁发机构签名(即不是自签名的),则 cert.pem 应包含证书链。服务器证书必须是 cert.pem 中的第一个条目,后跟中介(如果有)。不必包含根证书,因为连接客户端必须已经拥有根证书才能建立信任关系。要了解有关配置值的更多信息,请查看 [配置备忘单](administration/config-cheat-sheet#server-server)。
|
||||||
|
|
||||||
对于“CERT_FILE”或“KEY_FILE”字段,当文件路径是相对路径时,文件路径相对于“GITEA_CUSTOM”环境变量。它也可以是绝对路径。
|
对于“CERT_FILE”或“KEY_FILE”字段,当文件路径是相对路径时,文件路径相对于“GITEA_CUSTOM”环境变量。它也可以是绝对路径。
|
||||||
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2021-01-22T00:00:00+02:00"
|
|
||||||
title: "Übersetzung"
|
|
||||||
slug: "contributing"
|
|
||||||
sidebar_position: 35
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "Übersetzung"
|
|
||||||
sidebar_position: 50
|
|
||||||
identifier: "contributing"
|
|
||||||
---
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2021-01-22T00:00:00+02:00"
|
|
||||||
title: "貢獻"
|
|
||||||
slug: "contributing"
|
|
||||||
sidebar_position: 35
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "貢獻"
|
|
||||||
sidebar_position: 50
|
|
||||||
identifier: "contributing"
|
|
||||||
---
|
|
|
@ -48,11 +48,12 @@ We recommend [Google HTML/CSS Style Guide](https://google.github.io/styleguide/h
|
||||||
10. Avoid mixing different events in one event listener, prefer to use individual event listeners for every event.
|
10. Avoid mixing different events in one event listener, prefer to use individual event listeners for every event.
|
||||||
11. Custom event names are recommended to use `ce-` prefix.
|
11. Custom event names are recommended to use `ce-` prefix.
|
||||||
12. Gitea's tailwind-style CSS classes use `gt-` prefix (`gt-relative`), while Gitea's own private framework-level CSS classes use `g-` prefix (`g-modal-confirm`).
|
12. Gitea's tailwind-style CSS classes use `gt-` prefix (`gt-relative`), while Gitea's own private framework-level CSS classes use `g-` prefix (`g-modal-confirm`).
|
||||||
|
13. Avoid inline scripts & styles as much as possible, it's recommended to put JS code into JS files and use CSS classes. If inline scripts & styles are unavoidable, explain the reason why it can't be avoided.
|
||||||
|
|
||||||
### Accessibility / ARIA
|
### Accessibility / ARIA
|
||||||
|
|
||||||
In history, Gitea heavily uses Fomantic UI which is not an accessibility-friendly framework.
|
In history, Gitea heavily uses Fomantic UI which is not an accessibility-friendly framework.
|
||||||
Gitea uses some patches to make Fomantic UI more accessible (see the `aria.js` and `aria.md`),
|
Gitea uses some patches to make Fomantic UI more accessible (see `aria.md` and related JS files),
|
||||||
but there are still many problems which need a lot of work and time to fix.
|
but there are still many problems which need a lot of work and time to fix.
|
||||||
|
|
||||||
### Framework Usage
|
### Framework Usage
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-01T16:00:00+02:00"
|
|
||||||
title: "在地化"
|
|
||||||
slug: "localization"
|
|
||||||
sidebar_position: 70
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/localization
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "contributing"
|
|
||||||
name: "在地化"
|
|
||||||
sidebar_position: 70
|
|
||||||
identifier: "localization"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 在地化
|
|
||||||
|
|
||||||
我們在 [Crowdin 專案](https://crowdin.com/project/gitea)上進行在地化工作。
|
|
||||||
|
|
||||||
**英語系**的翻譯,可在修改[英文語言檔](https://github.com/go-gitea/gitea/blob/main/options/locale/locale_en-US.ini)後提出合併請求。
|
|
||||||
|
|
||||||
**非英語系**的翻譯,請前往上述的 Crowdin 專案。
|
|
||||||
|
|
||||||
## 已支援的語言
|
|
||||||
|
|
||||||
上述 Crowdin 專案中列出的語言在翻譯超過 25% 後將被支援。
|
|
||||||
|
|
||||||
翻譯被認可後將在下次 Crowdin 同步後進入到主儲存庫,通常是在任何合併請求被合併之後。
|
|
||||||
|
|
||||||
這表示更改的翻譯要到下次 Gitea 發佈後才會出現。
|
|
||||||
|
|
||||||
如果您使用的是最新建置,它將會在同步完成、您更新後出現。
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-01T16:00:00+02:00"
|
|
||||||
title: "開發"
|
|
||||||
slug: "development"
|
|
||||||
sidebar_position: 40
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "開發"
|
|
||||||
sidebar_position: 40
|
|
||||||
identifier: "development"
|
|
||||||
---
|
|
|
@ -19,10 +19,7 @@ menu:
|
||||||
|
|
||||||
## Enabling/configuring API access
|
## Enabling/configuring API access
|
||||||
|
|
||||||
By default, `ENABLE_SWAGGER` is true, and
|
By default, `ENABLE_SWAGGER` is true, and `MAX_RESPONSE_ITEMS` is set to 50. See [Config Cheat Sheet](administration/config-cheat-sheet.md) for more information.
|
||||||
`MAX_RESPONSE_ITEMS` is set to 50. See [Config Cheat
|
|
||||||
Sheet](administration/config-cheat-sheet.md) for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
## Authentication
|
## Authentication
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,7 @@ menu:
|
||||||
|
|
||||||
## 开启/配置 API 访问
|
## 开启/配置 API 访问
|
||||||
|
|
||||||
通常情况下, `ENABLE_SWAGGER` 默认开启并且参数 `MAX_RESPONSE_ITEMS` 默认为 50。您可以从 [Config Cheat
|
通常情况下, `ENABLE_SWAGGER` 默认开启并且参数 `MAX_RESPONSE_ITEMS` 默认为 50。您可以从 [Config Cheat Sheet](administration/config-cheat-sheet.md) 中获取更多配置相关信息。
|
||||||
Sheet](administration/config-cheat-sheet.md) 中获取更多配置相关信息。
|
|
||||||
|
|
||||||
## 通过 API 认证
|
## 通过 API 认证
|
||||||
|
|
||||||
|
|
|
@ -243,10 +243,10 @@ documentation using:
|
||||||
make generate-swagger
|
make generate-swagger
|
||||||
```
|
```
|
||||||
|
|
||||||
You should validate your generated Swagger file and spell-check it with:
|
You should validate your generated Swagger file:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make swagger-validate misspell-check
|
make swagger-validate
|
||||||
```
|
```
|
||||||
|
|
||||||
You should commit the changed swagger JSON file. The continuous integration
|
You should commit the changed swagger JSON file. The continuous integration
|
||||||
|
|
|
@ -228,10 +228,10 @@ Gitea Logo的 PNG 和 SVG 版本是使用 `TAGS="gitea" make generate-images`
|
||||||
make generate-swagger
|
make generate-swagger
|
||||||
```
|
```
|
||||||
|
|
||||||
您应该验证生成的 Swagger 文件并使用以下命令对其进行拼写检查:
|
您应该验证生成的 Swagger 文件:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make swagger-validate misspell-check
|
make swagger-validate
|
||||||
```
|
```
|
||||||
|
|
||||||
您应该提交更改后的 swagger JSON 文件。持续集成服务器将使用以下方法检查是否已完成:
|
您应该提交更改后的 swagger JSON 文件。持续集成服务器将使用以下方法检查是否已完成:
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
---
|
|
||||||
date: "2019-04-15T17:29:00+08:00"
|
|
||||||
title: "整合"
|
|
||||||
slug: "integrations"
|
|
||||||
sidebar_position: 65
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/integrations
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "development"
|
|
||||||
name: "整合"
|
|
||||||
sidebar_position: 65
|
|
||||||
identifier: "integrations"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 整合
|
|
||||||
|
|
||||||
Gitea 有著很棒的第三方整合社群, 以及其它有著一流支援的專案。
|
|
||||||
|
|
||||||
我們持續的整理一份清單以追蹤他們!請到 [awesome-gitea](https://gitea.com/gitea/awesome-gitea) 查看。
|
|
||||||
|
|
||||||
如果您正在找尋有關 [CI/CD](https://gitea.com/gitea/awesome-gitea#user-content-devops)、[SDK](https://gitea.com/gitea/awesome-gitea#user-content-sdk) 或是其它佈景主題,您可以在存儲庫 [awesome-gitea](https://gitea.com/gitea/awesome-gitea) 找到他們。
|
|
|
@ -1,41 +0,0 @@
|
||||||
---
|
|
||||||
date: "2019-04-15T17:29:00+08:00"
|
|
||||||
title: "遷移介面"
|
|
||||||
slug: "migrations-interfaces"
|
|
||||||
sidebar_position: 55
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/migrations-interfaces
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "development"
|
|
||||||
name: "遷移介面"
|
|
||||||
sidebar_position: 55
|
|
||||||
identifier: "migrations-interfaces"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 遷移功能
|
|
||||||
|
|
||||||
完整的遷移從 Gitea 1.9.0 開始提供。它定義了兩個介面用來從其它 Git 託管平臺遷移儲存庫資料到 Gitea,未來或許會提供遷移到其它 git 託管平臺。
|
|
||||||
目前已實作了從 Github, Gitlab 和其它 Gitea 遷移資料。
|
|
||||||
|
|
||||||
Gitea 定義了一些基本物件於套件 [modules/migration](https://github.com/go-gitea/gitea/tree/master/modules/migration)。
|
|
||||||
分別是 `Repository`, `Milestone`, `Release`, `ReleaseAsset`, `Label`, `Issue`, `Comment`, `PullRequest`, `Reaction`, `Review`, `ReviewComment`。
|
|
||||||
|
|
||||||
## Downloader 介面
|
|
||||||
|
|
||||||
從新的 Git 託管平臺遷移,有兩個新的步驟。
|
|
||||||
|
|
||||||
- 您必須實作一個 `Downloader`,它用來取得儲存庫資訊。
|
|
||||||
- 您必須實作一個 `DownloaderFactory`,它用來偵測 URL 是否符合並建立上述的 `Downloader`。
|
|
||||||
- 您需要在 `init()` 透過 `RegisterDownloaderFactory` 來註冊 `DownloaderFactory`。
|
|
||||||
|
|
||||||
您可以在 [downloader.go](https://github.com/go-gitea/gitea/blob/main/modules/migration/downloader.go) 中找到這些介面。
|
|
||||||
|
|
||||||
## Uploader 介面
|
|
||||||
|
|
||||||
目前只有 `GiteaLocalUploader` 被實作出來,所以我們只能通過 `Uploader` 儲存已下載的資料到本地的 Gitea 實例。
|
|
||||||
目前尚未支援其它 Uploader。
|
|
||||||
|
|
||||||
您可以在 [uploader.go](https://github.com/go-gitea/gitea/blob/main/modules/migration/uploader.go) 中找到這些介面。
|
|
|
@ -1,96 +0,0 @@
|
||||||
---
|
|
||||||
date: "2019-04-19:44:00+01:00"
|
|
||||||
title: "OAuth2 提供者"
|
|
||||||
slug: "oauth2-provider"
|
|
||||||
sidebar_position: 41
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/oauth2-provider
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "development"
|
|
||||||
name: "OAuth2 提供者"
|
|
||||||
sidebar_position: 41
|
|
||||||
identifier: "oauth2-provider"
|
|
||||||
---
|
|
||||||
|
|
||||||
# OAuth2 提供者
|
|
||||||
|
|
||||||
**目錄**
|
|
||||||
|
|
||||||
Gitea 支援作為 OAuth2 提供者,能讓第三方程式能在使用者同意下存取 Gitea 的資源。此功能自 1.8.0 版開始提供。
|
|
||||||
|
|
||||||
## Endpoint
|
|
||||||
|
|
||||||
| Endpoint | URL |
|
|
||||||
| ---------------------- | --------------------------- |
|
|
||||||
| Authorization Endpoint | `/login/oauth/authorize` |
|
|
||||||
| Access Token Endpoint | `/login/oauth/access_token` |
|
|
||||||
|
|
||||||
## 支援的 OAuth2 Grant
|
|
||||||
|
|
||||||
目前 Gitea 只支援 [**Authorization Code Grant**](https://tools.ietf.org/html/rfc6749#section-1.3.1) 標準並額外支援下列擴充標準:
|
|
||||||
|
|
||||||
- [Proof Key for Code Exchange (PKCE)](https://tools.ietf.org/html/rfc7636)
|
|
||||||
- [OpenID Connect (OIDC)](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth)
|
|
||||||
|
|
||||||
若想要讓第三方程式使用 Authorization Code Grant,需先在「設定」(`/user/settings/applications`)中註冊一個新的應用程式。
|
|
||||||
|
|
||||||
## Scope
|
|
||||||
|
|
||||||
目前 Gitea 尚未支援 scope (參見 [#4300](https://github.com/go-gitea/gitea/issues/4300)),所有的第三方程式都可獲得該使用者及他所屬的組織中所有資源的存取權。
|
|
||||||
|
|
||||||
## 範例
|
|
||||||
|
|
||||||
**備註:** 此範例未使用 PKCE。
|
|
||||||
|
|
||||||
1. 重新導向使用者到 authorization endpoint 以獲得他同意授權存取資源:
|
|
||||||
<!-- 1. Redirect to user to the authorization endpoint in order to get their consent for accessing the resources: -->
|
|
||||||
|
|
||||||
```curl
|
|
||||||
https://[YOUR-GITEA-URL]/login/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI& response_type=code&state=STATE
|
|
||||||
```
|
|
||||||
|
|
||||||
在設定中註冊應用程式以獲得 `CLIENT_ID`。`STATE` 是一個隨機的字串,它將在使用者授權後發送回您的應用程式。`state` 參數是選用的,但應該要用它來防止 CSRF 攻擊。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
使用者將會被詢問是否授權給您的應用程式。如果它們同意了,使用者將被重新導向到 `REDIRECT_URL`,例如:
|
|
||||||
|
|
||||||
```curl
|
|
||||||
https://[REDIRECT_URI]?code=RETURNED_CODE&state=STATE
|
|
||||||
```
|
|
||||||
|
|
||||||
1. 使用重新導向提供的 `code`,您可以要求一個新的應用程式和 Refresh Token。Access Token Endpoint 接受 POST 請求使用 `application/json` 或 `application/x-www-form-urlencoded` 類型的請求內容,例如:
|
|
||||||
|
|
||||||
```curl
|
|
||||||
POST https://[YOUR-GITEA-URL]/login/oauth/access_token
|
|
||||||
```
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"client_id": "YOUR_CLIENT_ID",
|
|
||||||
"client_secret": "YOUR_CLIENT_SECRET",
|
|
||||||
"code": "RETURNED_CODE",
|
|
||||||
"grant_type": "authorization_code",
|
|
||||||
"redirect_uri": "REDIRECT_URI"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
回應:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"access_token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJnbnQiOjIsInR0IjowLCJleHAiOjE1NTUxNzk5MTIsImlhdCI6MTU1NTE3NjMxMn0.0-iFsAwBtxuckA0sNZ6QpBQmywVPz129u75vOM7wPJecw5wqGyBkmstfJHAjEOqrAf_V5Z-1QYeCh_Cz4RiKug",
|
|
||||||
"token_type": "bearer",
|
|
||||||
"expires_in": 3600,
|
|
||||||
"refresh_token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJnbnQiOjIsInR0IjoxLCJjbnQiOjEsImV4cCI6MTU1NzgwNDMxMiwiaWF0IjoxNTU1MTc2MzEyfQ.S_HZQBy4q9r5SEzNGNIoFClT43HPNDbUdHH-GYNYYdkRfft6XptJBkUQscZsGxOW975Yk6RbgtGvq1nkEcklOw"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
`CLIENT_SECRET` 是產生給此應用程式的唯一密鑰。請記住該密鑰只會在您於 Gitea 建立/註冊應用程式時出現一次。若您遺失密鑰,您必須在該應用程式的設定中重新產生密鑰。
|
|
||||||
|
|
||||||
`access_token` 請求中的 `REDIRECT_URI` 必須符合 `authorize` 請求中的 `REDIRECT_URI`。
|
|
||||||
|
|
||||||
1. 發送 [API requests](development/api-usage.md#oauth2-provider) 時使用 `access_token` 以存取使用者的資源。
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-01-20T15:00:00+08:00"
|
|
||||||
title: "Aide"
|
|
||||||
slug: "help"
|
|
||||||
sidebar_position: 5
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "Aide"
|
|
||||||
sidebar_position: 100
|
|
||||||
identifier: "help"
|
|
||||||
---
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-01-20T15:00:00+08:00"
|
|
||||||
title: "幫助"
|
|
||||||
slug: "help"
|
|
||||||
sidebar_position: 5
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "幫助"
|
|
||||||
sidebar_position: 100
|
|
||||||
identifier: "help"
|
|
||||||
---
|
|
|
@ -138,9 +138,9 @@ All Gitea instances have the built-in API and there is no way to disable it comp
|
||||||
You can, however, disable showing its documentation by setting `ENABLE_SWAGGER` to `false` in the `api` section of your `app.ini`.
|
You can, however, disable showing its documentation by setting `ENABLE_SWAGGER` to `false` in the `api` section of your `app.ini`.
|
||||||
For more information, refer to Gitea's [API docs](development/api-usage.md).
|
For more information, refer to Gitea's [API docs](development/api-usage.md).
|
||||||
|
|
||||||
You can see the latest API (for example) on <https://try.gitea.io/api/swagger>.
|
You can see the latest API (for example) on https://try.gitea.io/api/swagger
|
||||||
|
|
||||||
You can also see an example of the `swagger.json` file at <https://try.gitea.io/swagger.v1.json>.
|
You can also see an example of the `swagger.json` file at https://try.gitea.io/swagger.v1.json
|
||||||
|
|
||||||
## Adjusting your server for public/private use
|
## Adjusting your server for public/private use
|
||||||
|
|
||||||
|
@ -222,9 +222,11 @@ Our translations are currently crowd-sourced on our [Crowdin project](https://cr
|
||||||
|
|
||||||
Whether you want to change a translation or add a new one, it will need to be there as all translations are overwritten in our CI via the Crowdin integration.
|
Whether you want to change a translation or add a new one, it will need to be there as all translations are overwritten in our CI via the Crowdin integration.
|
||||||
|
|
||||||
## Push Hook / Webhook aren't running
|
## Push Hook / Webhook / Actions aren't running
|
||||||
|
|
||||||
If you can push but can't see push activities on the home dashboard, or the push doesn't trigger webhook, there are a few possibilities:
|
If you can push but can't see push activities on the home dashboard, or the push doesn't trigger webhook and Actions workflows, it's likely that the git hooks are not working.
|
||||||
|
|
||||||
|
There are a few possibilities:
|
||||||
|
|
||||||
1. The git hooks are out of sync: run "Resynchronize pre-receive, update and post-receive hooks of all repositories" on the site admin panel
|
1. The git hooks are out of sync: run "Resynchronize pre-receive, update and post-receive hooks of all repositories" on the site admin panel
|
||||||
2. The git repositories (and hooks) are stored on some filesystems (ex: mounted by NAS) which don't support script execution, make sure the filesystem supports `chmod a+x any-script`
|
2. The git repositories (and hooks) are stored on some filesystems (ex: mounted by NAS) which don't support script execution, make sure the filesystem supports `chmod a+x any-script`
|
||||||
|
|
|
@ -142,9 +142,9 @@ Gitea不提供内置的Pages服务器。您需要一个专用的域名来提供
|
||||||
但是,您可以在app.ini的api部分将ENABLE_SWAGGER设置为false,以禁用其文档显示。
|
但是,您可以在app.ini的api部分将ENABLE_SWAGGER设置为false,以禁用其文档显示。
|
||||||
有关更多信息,请参阅Gitea的[API文档](development/api-usage.md)。
|
有关更多信息,请参阅Gitea的[API文档](development/api-usage.md)。
|
||||||
|
|
||||||
您可以在上查看最新的API(例如)<https://try.gitea.io/api/swagger>。
|
您可以在上查看最新的API(例如)https://try.gitea.io/api/swagger
|
||||||
|
|
||||||
您还可以在上查看`swagger.json`文件的示例 <https://try.gitea.io/swagger.v1.json>。
|
您还可以在上查看`swagger.json`文件的示例 https://try.gitea.io/swagger.v1.json
|
||||||
|
|
||||||
## 调整服务器用于公共/私有使用
|
## 调整服务器用于公共/私有使用
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ Gitea 目前支持三个官方主题,分别是 `gitea`(亮色)、`arc-gree
|
||||||
|
|
||||||
假设我们的主题是 `arc-blue`(这是一个真实的主题,可以在[此问题](https://github.com/go-gitea/gitea/issues/6011)中找到)
|
假设我们的主题是 `arc-blue`(这是一个真实的主题,可以在[此问题](https://github.com/go-gitea/gitea/issues/6011)中找到)
|
||||||
|
|
||||||
将`.css`文件命名为`theme-arc-blue.css`并将其添加到`custom/public/css`文件夹中
|
将`.css`文件命名为`theme-arc-blue.css`并将其添加到`custom/public/assets/css`文件夹中
|
||||||
|
|
||||||
通过将`arc-blue`添加到`app.ini`中的`THEMES`列表中,允许用户使用该主题
|
通过将`arc-blue`添加到`app.ini`中的`THEMES`列表中,允许用户使用该主题
|
||||||
|
|
||||||
|
@ -226,9 +226,11 @@ Gitea还提供了自己的SSH服务器,用于在SSHD不可用时使用。
|
||||||
|
|
||||||
无论您想要更改翻译还是添加新的翻译,都需要在Crowdin集成中进行,因为所有翻译都会被CI覆盖。
|
无论您想要更改翻译还是添加新的翻译,都需要在Crowdin集成中进行,因为所有翻译都会被CI覆盖。
|
||||||
|
|
||||||
## 推送钩子/ Webhook未运行
|
## 推送钩子/ Webhook / Actions 未运行
|
||||||
|
|
||||||
如果您可以推送但无法在主页仪表板上看到推送活动,或者推送不触发Webhook,有几种可能性:
|
如果您可以推送但无法在主页仪表板上看到推送活动,或者推送不触发 Webhook 和 Actions,可能是 git 钩子不工作而导致的。
|
||||||
|
|
||||||
|
这可能是由于以下原因:
|
||||||
|
|
||||||
1. Git钩子不同步:在站点管理面板上运行“重新同步所有仓库的pre-receive、update和post-receive钩子”
|
1. Git钩子不同步:在站点管理面板上运行“重新同步所有仓库的pre-receive、update和post-receive钩子”
|
||||||
2. Git仓库(和钩子)存储在一些不支持脚本执行的文件系统上(例如由NAS挂载),请确保文件系统支持`chmod a+x any-script`
|
2. Git仓库(和钩子)存储在一些不支持脚本执行的文件系统上(例如由NAS挂载),请确保文件系统支持`chmod a+x any-script`
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
---
|
|
||||||
date: "2018-05-21T15:00:00+00:00"
|
|
||||||
title: "取得協助"
|
|
||||||
slug: "support"
|
|
||||||
sidebar_position: 20
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/seek-help
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "help"
|
|
||||||
name: "取得協助"
|
|
||||||
sidebar_position: 20
|
|
||||||
identifier: "support"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 取得協助
|
|
||||||
|
|
||||||
- [Discord 聊天室](https://discord.gg/Gitea)
|
|
||||||
- [Discourse 討論區](https://discourse.gitea.io/)
|
|
||||||
|
|
||||||
**備註:** 尋求支援時,若能先備妥下列資訊將可讓提供協助的人能快速地分析您的問題:
|
|
||||||
|
|
||||||
1. 您的 `app.ini` (必要時清除掉任何機密資訊)
|
|
||||||
2. `gitea.log` (以及任何有關的日誌檔案)
|
|
||||||
- 例:如果錯誤和資料庫相關,提供 `xorm.log` 可能會有幫助
|
|
||||||
3. 您看到的任何錯誤訊息
|
|
||||||
4. 儘可能地在 [try.gitea.io](https://try.gitea.io) 觸發您的問題並記下步驟,以便其他人能重現那個問題。
|
|
||||||
- 這將讓我們更有機會快速地找出問題的根源並解決它。
|
|
||||||
5. 堆棧跟踪,[請參考英文文檔](https://docs.gitea.com/help/support)
|
|
||||||
|
|
||||||
## 錯誤回報
|
|
||||||
|
|
||||||
如果您發現錯誤,請到 [GitHub 的 Issue](https://github.com/go-gitea/gitea/issues) 回報。
|
|
|
@ -1,36 +0,0 @@
|
||||||
---
|
|
||||||
date: "2023-01-07T22:03:00+01:00"
|
|
||||||
title: "Dokumentation"
|
|
||||||
slug: /
|
|
||||||
sidebar_position: 10
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
---
|
|
||||||
|
|
||||||
# Was ist Gitea?
|
|
||||||
|
|
||||||
Gitea ist ein einfacher, selbst gehosteter Git-Service. Änlich wie GitHub, Bitbucket oder GitLab.
|
|
||||||
|
|
||||||
Gitea ist ein [Gogs](http://gogs.io)-Fork.
|
|
||||||
|
|
||||||
## Ziele
|
|
||||||
|
|
||||||
* Einfach zu installieren
|
|
||||||
* Plattformübergreifend
|
|
||||||
* Leichtgewichtig
|
|
||||||
* Quelloffen
|
|
||||||
|
|
||||||
## System Voraussetzungen
|
|
||||||
|
|
||||||
* Ein Raspberry Pi 3 ist leistungsstark genug, um Gitea für kleine Belastungen laufen zu lassen.
|
|
||||||
* 2 CPU Kerne und 1GB RAM sind für kleine Teams/Projekte ausreichend.
|
|
||||||
* Gitea sollte unter einem seperaten nicht-root Account auf UNIX-Systemen ausgeführt werden.
|
|
||||||
* Achtung: Gitea verwaltet die `~/.ssh/authorized_keys` Datei. Gitea unter einem normalen Benutzer auszuführen könnte dazu führen, dass dieser sich nicht mehr anmelden kann.
|
|
||||||
* [Git](https://git-scm.com/) Version 2.0 oder aktueller wird benötigt.
|
|
||||||
* Wenn Git >= 2.1.2 und [Git LFS](https://git-lfs.github.com/) vorhanden ist, dann wird Git LFS Support automatisch für Gitea aktiviert.
|
|
||||||
* Wenn Git >= 2.18, dann wird das Rendern von Commit-Graphen automatisch aktiviert.
|
|
||||||
|
|
||||||
## Browser Unterstützung
|
|
||||||
|
|
||||||
* Die neuesten zwei Versionen von Chrome, Firefox, Safari und Edge
|
|
||||||
* Firefox ESR
|
|
|
@ -1,273 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-08-23T09:00:00+02:00"
|
|
||||||
title: "Documentation"
|
|
||||||
slug: /
|
|
||||||
sidebar_position: 10
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
---
|
|
||||||
|
|
||||||
# A propos de Gitea
|
|
||||||
|
|
||||||
Gitea est un service Git auto-hébergé très simple à installer et à utiliser. Il est similaire à GitHub, Bitbucket ou Gitlab. Le développement initial provient sur [Gogs] (http://gogs.io), mais nous l'avons forké puis renommé Gitea. Si vous souhaitez en savoir plus sur les raisons pour lesquelles nous avons fait cela, lisez [cette publication] (https://blog.gitea.com/welcome-to-gitea/) sur le blog.
|
|
||||||
|
|
||||||
## Objectif
|
|
||||||
|
|
||||||
Le but de ce projet est de fournir de la manière la plus simple, la plus rapide et sans complication un service Git auto-hébergé. Grâce à Go, cela peut se faire via un binaire indépendant fonctionnant sur toutes les plateformes que Go prend en charge, y compris Linux, macOS et Windows, même sur des architectures comme ARM ou PowerPC.
|
|
||||||
|
|
||||||
## Fonctionalités
|
|
||||||
|
|
||||||
- Tableau de bord de l'utilisateur
|
|
||||||
- Choix du contexte (organisation ou utilisateur actuel)
|
|
||||||
- Chronologie de l'activité
|
|
||||||
- Révisions (_Commits_)
|
|
||||||
- Tickets
|
|
||||||
- Demande d'ajout (_Pull request_)
|
|
||||||
- Création de dépôts
|
|
||||||
- Liste des dépôts
|
|
||||||
- Liste de vos organisations
|
|
||||||
- Liste des dépôts miroires
|
|
||||||
- Tableau de bord des tickets
|
|
||||||
- Choix du contexte (organisation ou utilisateur actuel)
|
|
||||||
- Filtres
|
|
||||||
- Ouvert
|
|
||||||
- Fermé
|
|
||||||
- Vos dépôts
|
|
||||||
- Tickets assignés
|
|
||||||
- Vos tickets
|
|
||||||
- Dépôts
|
|
||||||
- Options de tri
|
|
||||||
- Plus vieux
|
|
||||||
- Dernière mise à jour
|
|
||||||
- Nombre de commentaires
|
|
||||||
- Tableau de bord des demandes d'ajout
|
|
||||||
- Identique au tableau de bord des tickets
|
|
||||||
- Types de dépôt
|
|
||||||
- Miroire
|
|
||||||
- Normal
|
|
||||||
- Migré
|
|
||||||
- Notifications (courriel et web)
|
|
||||||
- Lu
|
|
||||||
- Non lu
|
|
||||||
- Épinglé
|
|
||||||
- Page d'exploration
|
|
||||||
- Utilisateurs
|
|
||||||
- Dépôts
|
|
||||||
- Organisations
|
|
||||||
- Moteur de recherche
|
|
||||||
- Interface personnalisables
|
|
||||||
- Fichiers publiques remplaçables (logo, css, etc)
|
|
||||||
- Protection CSRF et XSS
|
|
||||||
- Support d'HTTPS
|
|
||||||
- Configuration des types et de la taille maximale des fichiers téléversés
|
|
||||||
- Journalisation (_Log_)
|
|
||||||
- Configuration
|
|
||||||
- Base de données
|
|
||||||
- MySQL
|
|
||||||
- PostgreSQL
|
|
||||||
- SQLite3
|
|
||||||
- MSSQL
|
|
||||||
- [TiDB](https://github.com/pingcap/tidb) (MySQL protocol)
|
|
||||||
- Fichier de configuration
|
|
||||||
- Voir [ici](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
|
|
||||||
- Panel d'administration
|
|
||||||
- Statistiques
|
|
||||||
- Actions
|
|
||||||
- Suppression des comptes inactifs
|
|
||||||
- Suppression des dépôts archivés
|
|
||||||
- Suppression des dépôts pour lesquels il manque leurs fichiers
|
|
||||||
- Exécution du _garbage collector_ sur les dépôts
|
|
||||||
- Ré-écriture des clefs SSH
|
|
||||||
- Resynchronisation des hooks
|
|
||||||
- Recreation des dépôts manquants
|
|
||||||
- Status du server
|
|
||||||
- Temps de disponibilité
|
|
||||||
- Mémoire
|
|
||||||
- Nombre de goroutines
|
|
||||||
- et bien plus...
|
|
||||||
- Gestion des utilisateurs
|
|
||||||
- Recherche
|
|
||||||
- Tri
|
|
||||||
- Dernière connexion
|
|
||||||
- Méthode d'authentification
|
|
||||||
- Nombre maximum de dépôts
|
|
||||||
- Désactivation du compte
|
|
||||||
- Permissions d'administration
|
|
||||||
- Permission pour crééer des hooks
|
|
||||||
- Permission pour crééer des organisations
|
|
||||||
- Permission pour importer des dépôts
|
|
||||||
- Gestion des organisations
|
|
||||||
- Membres
|
|
||||||
- Équipes
|
|
||||||
- Avatar
|
|
||||||
- Hooks
|
|
||||||
- Gestion des depôts
|
|
||||||
- Voir toutes les informations pour un dépôt donné et gérer tous les dépôts
|
|
||||||
- Méthodes d'authentification
|
|
||||||
- OAuth
|
|
||||||
- PAM
|
|
||||||
- LDAP
|
|
||||||
- SMTP
|
|
||||||
- Visualisation de la configuration
|
|
||||||
- Tout ce que contient le fichier de configuration
|
|
||||||
- Alertes du système
|
|
||||||
- Quand quelque chose d'inattendu survient
|
|
||||||
- Surveillance
|
|
||||||
- Processus courrants
|
|
||||||
- Tâches CRON
|
|
||||||
- Mise à jour des dépôts miroires
|
|
||||||
- Vérification de l'état des dépôts
|
|
||||||
- Vérification des statistiques des dépôts
|
|
||||||
- Nettoyage des anciennes archives
|
|
||||||
- Variables d'environement
|
|
||||||
- Options de ligne de commande
|
|
||||||
- Internationalisation ([21 langues](https://github.com/go-gitea/gitea/tree/master/options/locale))
|
|
||||||
- Courriel
|
|
||||||
- Notifications
|
|
||||||
- Confirmation d'inscription
|
|
||||||
- Ré-initialisation du mot de passe
|
|
||||||
- Support de _reverse proxy_
|
|
||||||
- _subpaths_ inclus
|
|
||||||
- Utilisateurs
|
|
||||||
- Profil
|
|
||||||
- Nom
|
|
||||||
- Prénom
|
|
||||||
- Courriel
|
|
||||||
- Site internet
|
|
||||||
- Date de création
|
|
||||||
- Abonnés et abonnements
|
|
||||||
- Organisations
|
|
||||||
- Dépôts
|
|
||||||
- Activité
|
|
||||||
- Dépôts suivis
|
|
||||||
- Paramètres
|
|
||||||
- Identiques au profil avec en plus les éléments ci-dessous
|
|
||||||
- Rendre l'adresse de courriel privée
|
|
||||||
- Avatar
|
|
||||||
- Gravatar
|
|
||||||
- Libravatar
|
|
||||||
- Personnalisé
|
|
||||||
- Mot de passe
|
|
||||||
- Courriels multiples
|
|
||||||
- Clefs SSH
|
|
||||||
- Applications connectées
|
|
||||||
- Authentification à double facteurs
|
|
||||||
- Identités OAuth2 attachées
|
|
||||||
- Suppression du compte
|
|
||||||
- Dépôts
|
|
||||||
- Clone à partir de SSH / HTTP / HTTPS
|
|
||||||
- Git LFS
|
|
||||||
- Suivre, Voter, Fork
|
|
||||||
- Voir les personnes qui suivent, les votes et les forks
|
|
||||||
- Code
|
|
||||||
- Navigation entre les branches
|
|
||||||
- Création ou téléversement de fichier depuis le navigateur
|
|
||||||
- URLs pour clôner le dépôt
|
|
||||||
- Téléchargement
|
|
||||||
- ZIP
|
|
||||||
- TAR.GZ
|
|
||||||
- Édition en ligne
|
|
||||||
- Éditeur Markdown
|
|
||||||
- Éditeur de texte
|
|
||||||
- Coloration syntaxique
|
|
||||||
- Visualisation des Diffs
|
|
||||||
- Visualisation
|
|
||||||
- Possibilité de choisir où sauvegarder la révision
|
|
||||||
- Historiques des fichiers
|
|
||||||
- Suppression de fichiers
|
|
||||||
- Voir le fichier brut
|
|
||||||
- Tickets
|
|
||||||
- Modèle de ticket
|
|
||||||
- Jalons
|
|
||||||
- Étiquettes
|
|
||||||
- Affecter des tickets
|
|
||||||
- Filtres
|
|
||||||
- Ouvert
|
|
||||||
- Ferme
|
|
||||||
- Personne assignée
|
|
||||||
- Créer par vous
|
|
||||||
- Qui vous mentionne
|
|
||||||
- Tri
|
|
||||||
- Plus vieux
|
|
||||||
- Dernière mise à jour
|
|
||||||
- Nombre de commentaires
|
|
||||||
- Moteur de recherche
|
|
||||||
- Commentaires
|
|
||||||
- Joindre des fichiers
|
|
||||||
- Demande d’ajout (_Pull request_)
|
|
||||||
- Les mêmes fonctionnalités que pour les tickets
|
|
||||||
- Révisions (_Commits_)
|
|
||||||
- Representation graphique des révisions
|
|
||||||
- Révisions par branches
|
|
||||||
- Moteur de recherche
|
|
||||||
- Voir les différences
|
|
||||||
- Voir les numéro de révision SHA
|
|
||||||
- Voir l'auteur
|
|
||||||
- Naviguer dans les fichiers d'une révision donnée
|
|
||||||
- Publication
|
|
||||||
- Pièces jointes
|
|
||||||
- Titre
|
|
||||||
- Contenu
|
|
||||||
- Suppression
|
|
||||||
- Définir comme une pré-publication
|
|
||||||
- Choix de la branche
|
|
||||||
- Wiki
|
|
||||||
- Import
|
|
||||||
- Éditeur Markdown
|
|
||||||
- Paramètres
|
|
||||||
- Options
|
|
||||||
- Nom
|
|
||||||
- Description
|
|
||||||
- Privé / Publique
|
|
||||||
- Site internet
|
|
||||||
- Wiki
|
|
||||||
- Activé / Désactivé
|
|
||||||
- Interne / externe
|
|
||||||
- Tickets
|
|
||||||
- Activé / Désactivé
|
|
||||||
- Interne / externe
|
|
||||||
- URL personnalisable pour une meilleur intégration avec un gestionnaire de tickets externe
|
|
||||||
- Activer / désactiver les demandes d'ajout (_Pull request_)
|
|
||||||
- Transfert du dépôt
|
|
||||||
- Suppression du wiki
|
|
||||||
- Suppression du dépôt
|
|
||||||
- Collaboration
|
|
||||||
- Lecture / Écriture / Administration
|
|
||||||
- Branches
|
|
||||||
- Branche par défaut
|
|
||||||
- Protection
|
|
||||||
- Webhooks
|
|
||||||
- Git hooks
|
|
||||||
- Clefs de déploiement
|
|
||||||
|
|
||||||
## Configuration requise
|
|
||||||
|
|
||||||
- Un simple Raspberry Pi est assez puissant pour les fonctionnalités de base.
|
|
||||||
- Un processeur double coeurs et 1Gb de RAM est une bonne base pour une utilisation en équipe.
|
|
||||||
- Gitea est censé être exécuté avec un compte utilisateur dédié et non root, aucun autre mode de fonctionnement n'est pris en charge. (**NOTE**: Dans le cas où vous l'exécutez avec votre propre compte d'utilisateur et que le serveur SSH intégré est désactivé, Gitea modifie le fichier `~ /.ssh /authorized_keys` afin que vous ne soyez **plus capable** de vous connecter interactivement).
|
|
||||||
|
|
||||||
## Navigateurs supportés
|
|
||||||
|
|
||||||
- Chrome, Firefox, Safari, Edge
|
|
||||||
|
|
||||||
## Composants
|
|
||||||
|
|
||||||
- Framework web : [Chi](http://github.com/go-chi/chi)
|
|
||||||
- ORM: [XORM](https://xorm.io)
|
|
||||||
- Interface graphique :
|
|
||||||
- [jQuery](https://jquery.com)
|
|
||||||
- [Fomantic UI](https://fomantic-ui.com)
|
|
||||||
- [Vue3](https://vuejs.org)
|
|
||||||
- [CodeMirror](https://codemirror.net)
|
|
||||||
- [EasyMDE](https://github.com/Ionaru/easy-markdown-editor)
|
|
||||||
- [Monaco Editor](https://microsoft.github.io/monaco-editor)
|
|
||||||
- ... (package.json)
|
|
||||||
- Connecteurs de base de données :
|
|
||||||
- [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql)
|
|
||||||
- [github.com/lib/pq](https://github.com/lib/pq)
|
|
||||||
- [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3)
|
|
||||||
- [github.com/denisenkom/go-mssqldb](https://github.com/denisenkom/go-mssqldb)
|
|
||||||
|
|
||||||
## Logiciels et services
|
|
||||||
|
|
||||||
- [Drone](https://github.com/drone/drone) (Intégration continue)
|
|
|
@ -1,79 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-11-08T16:00:00+02:00"
|
|
||||||
title: "文件"
|
|
||||||
slug: /
|
|
||||||
sidebar_position: 10
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
---
|
|
||||||
|
|
||||||
# 關於 Gitea
|
|
||||||
|
|
||||||
Gitea 是一個可自行託管的 Git 服務。你可以拿 GitHub、Bitbucket 或 Gitlab 來比較看看。
|
|
||||||
Gitea 是從 [Gogs](http://gogs.io) Fork 出來的,請閱讀部落格文章 [Gitea 公告](https://blog.gitea.com/welcome-to-gitea/)以了解我們 Fork 的理由。
|
|
||||||
|
|
||||||
## 目標
|
|
||||||
|
|
||||||
本專案的首要目標是建立一個容易安裝,執行快速,安装和使用體驗良好的自建 Git 服務。我們採用 GO 為後端語言,Go 可以產生各平台使用的執行檔。它支援 Linux、macOS 和 Windows 外,處理器架構包含 amd64、i386、ARM 和 PowerPC 等。
|
|
||||||
|
|
||||||
## 功能
|
|
||||||
|
|
||||||
- 代碼託管:Gitea 支援建立和管理存儲庫、瀏覽提交歷史和程式碼檔案、審查和合併程式碼提交、管理協作者、處理分支等。它還支援許多常見的 Git 功能,如標籤、Cherry-pick、鉤子、集成協作工具等。
|
|
||||||
|
|
||||||
- 輕量級和快速:Gitea 的設計目標之一就是輕量級和快速響應。與某些大型代碼託管平台不同,它保持了精簡,在速度方面表現出色,適用於資源有限的伺服器環境。由於其輕量級設計,Gitea 的資源消耗相對較低,在資源受限的環境中表現出色。
|
|
||||||
|
|
||||||
- 易於部署和維護:它可以輕鬆地部署在各種伺服器上,無需複雜的配置或依賴。這使得個人開發者或小團隊可以方便地設置和管理自己的 Git 服務。
|
|
||||||
|
|
||||||
- 安全性:Gitea 強調安全性,提供用戶權限管理、訪問控制列表等功能,確保程式碼和數據的安全性。
|
|
||||||
|
|
||||||
- 代碼審查:代碼審查同時支援拉取請求工作流和 AGit 工作流。審查者可以在線瀏覽程式碼並提供審查意見或反饋。提交者可以接收審查意見並在線回覆或修改程式碼。代碼審查可以幫助個人和組織提升程式碼質量。
|
|
||||||
|
|
||||||
- CI/CD:Gitea Actions 支援 CI/CD 功能,與 GitHub Actions 相容。用戶可以使用熟悉的 YAML 格式編寫工作流程,並重複使用各種現有的 Actions 插件。Actions 插件支援從任何 Git 網站下載。
|
|
||||||
|
|
||||||
- 專案管理:Gitea 通過看板和工單來追蹤一個專案的需求、功能和錯誤。工單支援分支、標籤、里程碑、指派、時間追蹤、到期日期、依賴關係等功能。
|
|
||||||
|
|
||||||
- 制品庫:Gitea 支援超過 20 種不同類型的公有或私有軟體包管理,包括:Cargo、Chef、Composer、Conan、Conda、Container、Helm、Maven、npm、NuGet、Pub、PyPI、RubyGems、Vagrant 等。
|
|
||||||
|
|
||||||
- 開源社區支援:Gitea 是一個基於 MIT 許可證的開源專案,擁有活躍的開源社區,能夠持續進行開發和改進,同時也積極接受社區貢獻,保持了平台的更新和創新。
|
|
||||||
|
|
||||||
- 多語言支援:Gitea 提供多種語言界面,適應全球範圍內的用戶,促進了國際化和本地化。
|
|
||||||
|
|
||||||
更多功能特性:詳見:https://docs.gitea.com/installation/comparison#general-features
|
|
||||||
|
|
||||||
## 系統需求
|
|
||||||
|
|
||||||
- Raspberry Pi 3 的效能足夠讓 Gitea 承擔小型工作負載。
|
|
||||||
- 雙核心 CPU 和 1GB 記憶體通常足以應付小型團隊/專案。
|
|
||||||
- 在類 UNIX 系統上, 應該以專用的非 root 系統帳號來執行 Gitea。
|
|
||||||
- 備註:Gitea 管理著 `~/.ssh/authorized_keys` 檔案。以一般身份使用者執行 Gitea 可能會破壞該使用者的登入能力。
|
|
||||||
|
|
||||||
- [Git](https://git-scm.com/) 的最低需求為 2.0 或更新版本。
|
|
||||||
- 當 git 版本 >= 2.1.2 時,可啟用 Git [large file storage](https://git-lfs.github.com/)。
|
|
||||||
- 當 git 版本 >= 2.18 時,將自動啟用 Git 提交線圖渲染。
|
|
||||||
|
|
||||||
## 瀏覽器支援
|
|
||||||
|
|
||||||
- 最近 2 個版本的 Chrome, Firefox, Safari, Edge
|
|
||||||
- Firefox ESR
|
|
||||||
|
|
||||||
## 元件
|
|
||||||
|
|
||||||
- Web 框架: [Chi](http://github.com/go-chi/chi)
|
|
||||||
- ORM: [XORM](https://xorm.io)
|
|
||||||
- UI 元件:
|
|
||||||
- [jQuery](https://jquery.com)
|
|
||||||
- [Fomantic UI](https://fomantic-ui.com)
|
|
||||||
- [Vue3](https://vuejs.org)
|
|
||||||
- [CodeMirror](https://codemirror.net)
|
|
||||||
- [EasyMDE](https://github.com/Ionaru/easy-markdown-editor)
|
|
||||||
- [Monaco Editor](https://microsoft.github.io/monaco-editor)
|
|
||||||
- ... (package.json)
|
|
||||||
- 資料庫驅動程式:
|
|
||||||
- [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql)
|
|
||||||
- [github.com/lib/pq](https://github.com/lib/pq)
|
|
||||||
- [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3)
|
|
||||||
- [github.com/denisenkom/go-mssqldb](https://github.com/denisenkom/go-mssqldb)
|
|
||||||
|
|
||||||
## 集成支持
|
|
||||||
|
|
||||||
請訪問 [Awesome Gitea](https://gitea.com/gitea/awesome-gitea/) 獲得更多的第三方集成支持
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-08-23T09:00:00+02:00"
|
|
||||||
title: "Installation"
|
|
||||||
slug: "installation"
|
|
||||||
sidebar_position: 10
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "Installation"
|
|
||||||
sidebar_position: 10
|
|
||||||
identifier: "installation"
|
|
||||||
---
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-01T16:00:00+02:00"
|
|
||||||
title: "安裝"
|
|
||||||
slug: "installation"
|
|
||||||
sidebar_position: 10
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "安裝"
|
|
||||||
sidebar_position: 10
|
|
||||||
identifier: "installation"
|
|
||||||
---
|
|
|
@ -1,137 +0,0 @@
|
||||||
---
|
|
||||||
date: "2018-05-07T13:00:00+02:00"
|
|
||||||
title: "比較 Gitea 和其它自託管 Git 服務"
|
|
||||||
slug: "comparison"
|
|
||||||
sidebar_position: 5
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/comparison
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "比較"
|
|
||||||
sidebar_position: 5
|
|
||||||
identifier: "comparison"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 比較 Gitea 和其它自託管 Git 服務
|
|
||||||
|
|
||||||
**目錄**
|
|
||||||
|
|
||||||
為了幫助您判斷 Gitea 是否適合您的需求,這裡列出了它和其它自託管 Git 服務的比較。
|
|
||||||
|
|
||||||
請注意我們不會經常檢查其它產品的功能異動,所以這份清單可能過期,如果您在下方表格中找到需要更新的資料,請在 [GitHub 的 Issue](https://github.com/go-gitea/gitea/issues) 回報。
|
|
||||||
|
|
||||||
表格中使用的符號:
|
|
||||||
|
|
||||||
- ✓ - 支援
|
|
||||||
|
|
||||||
- ⁄ - 有限度的支援
|
|
||||||
|
|
||||||
- ✘ - 不支援
|
|
||||||
|
|
||||||
- _⚙️ - 由第三方服務或外掛程式支援_
|
|
||||||
|
|
||||||
## 一般功能
|
|
||||||
|
|
||||||
| 功能 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
|
||||||
| ------------------------ | -------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ |
|
|
||||||
| 免費及開放原始碼 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ |
|
|
||||||
| 低資源使用 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
|
|
||||||
| 支援多種資料庫 | ✓ | ✓ | ✘ | ⁄ | ⁄ | ✓ | ✓ |
|
|
||||||
| 支援多種作業系統 | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ |
|
|
||||||
| 簡單的升級程序 | ✓ | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ |
|
|
||||||
| 支援 Markdown | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 支援 Orgmode | ✓ | ✘ | ✓ | ✘ | ✘ | ✘ | ? |
|
|
||||||
| 支援 CSV | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ | ? |
|
|
||||||
| 支援第三方渲染工具 | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ | ? |
|
|
||||||
| Git 驅動的靜態頁面 | [⚙️][gitea-pages-server], [⚙️][gitea-caddy-plugin] | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| Git 驅動的整合 wiki | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 部署 Token | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 有寫入權限的儲存庫 Token | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✓ |
|
|
||||||
| 內建 Container Registry | [✘](https://github.com/go-gitea/gitea/issues/2316) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 對外部 Git 鏡像 | ✓ | ✓ | ✘ | ✘ | ✓ | ✓ | ✓ |
|
|
||||||
| FIDO (2FA) | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 內建 CI/CD | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 子群組: 群組中的群組 | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✓ |
|
|
||||||
|
|
||||||
## 程式碼管理
|
|
||||||
|
|
||||||
| 功能 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
|
||||||
| ----------------------------------------- | ------------------------------------------------ | ---- | --------- | --------- | --------- | --------- | ------------ |
|
|
||||||
| 儲存庫主題描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 儲存庫程式碼搜尋 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 全域程式碼搜尋 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |
|
|
||||||
| Git LFS 2.0 | ✓ | ✘ | ✓ | ✓ | ✓ | ⁄ | ✓ |
|
|
||||||
| 群組里程碑 | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 精細的使用者權限(程式碼, 問題, Wiki 等) | ✓ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 驗證提交者 | ⁄ | ✘ | ? | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| GPG 簽署提交 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 拒絕未經簽署的提交 | [✓](https://github.com/go-gitea/gitea/pull/9708) | ✘ | ✓ | ✓ | ✓ | ✘ | ✓ |
|
|
||||||
| 儲存庫動態頁 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 分支管理 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 建立新分支 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 網頁程式碼編輯器 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 提交線圖 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 儲存庫範本 | [✓](https://github.com/go-gitea/gitea/pull/8768) | ✘ | ✓ | ✘ | ✓ | ✓ | ✘ |
|
|
||||||
|
|
||||||
## 問題追蹤器
|
|
||||||
|
|
||||||
| 功能 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
|
||||||
| -------------------- | -------------------------------------------------- | --------------------------------------------- | --------- | ----------------------------------------------------------------------- | --------- | --------- | ------------ |
|
|
||||||
| 問題追蹤器 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 問題範本 | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 標籤 | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 時間追蹤 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 指派問題給多個成員 | ✓ | ✘ | ✓ | ✘ | ✓ | ✘ | ✘ |
|
|
||||||
| 相關問題 | ✘ | ✘ | ⁄ | [✓](https://docs.gitlab.com/ce/user/project/issues/related_issues.html) | ✓ | ✘ | ✘ |
|
|
||||||
| 機密問題 | [✘](https://github.com/go-gitea/gitea/issues/3217) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 對留言的反應 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 鎖定對話 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 批次處理問題 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 問題看板(看板方法) | [✓](https://github.com/go-gitea/gitea/pull/8346) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 從問題建立新分支 | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 問題搜尋 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 全域問題搜尋 | [✘](https://github.com/go-gitea/gitea/issues/2434) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 問題相依 | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
|
|
||||||
| 從電子郵件建立問題 | [✘](https://github.com/go-gitea/gitea/issues/6226) | [✘](https://github.com/gogs/gogs/issues/2602) | ✘ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 服務台 | [✘](https://github.com/go-gitea/gitea/issues/6219) | ✘ | ✘ | [✓](https://gitlab.com/groups/gitlab-org/-/epics/3103) | ✓ | ✘ | ✘ |
|
|
||||||
|
|
||||||
## 拉取/合併請求
|
|
||||||
|
|
||||||
| 功能 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
|
||||||
| -------------------------- | -------------------------------------------------- | ---- | --------- | --------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------ | ------------ |
|
|
||||||
| 拉取/合併請求 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| Squash 合併 | ✓ | ✘ | ✓ | [✓](https://docs.gitlab.com/ce/user/project/merge_requests/squash_and_merge.html) | ✓ | ✓ | ✓ |
|
|
||||||
| Rebase 合併 | ✓ | ✓ | ✓ | ✘ | ⁄ | ✘ | ✓ |
|
|
||||||
| 拉取/合併請求的行內留言 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 拉取/合併請求的核可 | ✓ | ✘ | ⁄ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 解決合併衝突 | [✘](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 限制某些使用者的推送及合併 | ✓ | ✘ | ✓ | ⁄ | ✓ | ✓ | ✓ |
|
|
||||||
| 還原指定的提交或合併請求 | [✘](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 拉取/合併請求範本 | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| Cherry-picking 變更 | [✘](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 下載 Patch | ✓ | ✘ | ✓ | ✓ | ✓ | [/](https://jira.atlassian.com/plugins/servlet/mobile#issue/BCLOUD-8323) | ✘ |
|
|
||||||
|
|
||||||
## 第三方整合
|
|
||||||
|
|
||||||
| 功能 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
|
||||||
| ------------------------- | ------------------------------------------------ | ---- | --------- | --------- | --------- | --------- | ------------ |
|
|
||||||
| 支援 Webhook | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 自訂 Git Hook | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 整合 AD / LDAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 支援多重 LDAP / AD 伺服器 | ✓ | ✓ | ✘ | ✘ | ✓ | ✓ | ✓ |
|
|
||||||
| 同步 LDAP 使用者 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| SAML 2.0 service provider | [✘](https://github.com/go-gitea/gitea/issues/5512) | [✘](https://github.com/gogs/gogs/issues/1221) | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 支援 OpenId Connect | ✓ | ✘ | ✓ | ✓ | ✓ | ? | ✘ |
|
|
||||||
| 整合 OAuth 2.0 (外部驗證) | ✓ | ✘ | ⁄ | ✓ | ✓ | ? | ✓ |
|
|
||||||
| 成為 OAuth 2.0 提供者 | [✓](https://github.com/go-gitea/gitea/pull/5378) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 兩步驟驗證 (2FA) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 整合 Mattermost/Slack | ✓ | ✓ | ⁄ | ✓ | ✓ | ⁄ | ✓ |
|
|
||||||
| 整合 Discord | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
|
||||||
| 整合 Microsoft Teams | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
|
|
||||||
| 顯示外部 CI/CD 狀態 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
|
|
||||||
[gitea-caddy-plugin]: https://github.com/42wim/caddy-gitea
|
|
||||||
[gitea-pages-server]: https://codeberg.org/Codeberg/pages-server
|
|
|
@ -17,13 +17,15 @@ menu:
|
||||||
|
|
||||||
# Database Preparation
|
# Database Preparation
|
||||||
|
|
||||||
You need a database to use Gitea. Gitea supports PostgreSQL (>=10), MySQL (>=5.7), SQLite, and MSSQL (>=2008R2 SP3). This page will guide into preparing database. Only PostgreSQL and MySQL will be covered here since those database engines are widely-used in production. If you plan to use SQLite, you can ignore this chapter.
|
You need a database to use Gitea. Gitea supports PostgreSQL (>= 12), MySQL (>= 8.0), MariaDB (>= 10.4), SQLite (builtin), and MSSQL (>= 2012 SP4). This page will guide into preparing database. Only PostgreSQL and MySQL will be covered here since those database engines are widely-used in production. If you plan to use SQLite, you can ignore this chapter.
|
||||||
|
|
||||||
|
If you use an unsupported database version, please [get in touch](/help/support) with us for information on our Extended Support Contracts. We can provide testing and support for older databases and integrate those fixes into the Gitea codebase.
|
||||||
|
|
||||||
Database instance can be on same machine as Gitea (local database setup), or on different machine (remote database).
|
Database instance can be on same machine as Gitea (local database setup), or on different machine (remote database).
|
||||||
|
|
||||||
Note: All steps below requires that the database engine of your choice is installed on your system. For remote database setup, install the server application on database instance and client program on your Gitea server. The client program is used to test connection to the database from Gitea server, while Gitea itself use database driver provided by Go to accomplish the same thing. In addition, make sure you use same engine version for both server and client for some engine features to work. For security reason, protect `root` (MySQL) or `postgres` (PostgreSQL) database superuser with secure password. The steps assumes that you run Linux for both database and Gitea servers.
|
Note: All steps below requires that the database engine of your choice is installed on your system. For remote database setup, install the server application on database instance and client program on your Gitea server. The client program is used to test connection to the database from Gitea server, while Gitea itself use database driver provided by Go to accomplish the same thing. In addition, make sure you use same engine version for both server and client for some engine features to work. For security reason, protect `root` (MySQL) or `postgres` (PostgreSQL) database superuser with secure password. The steps assumes that you run Linux for both database and Gitea servers.
|
||||||
|
|
||||||
## MySQL
|
## MySQL/MariaDB
|
||||||
|
|
||||||
1. For remote database setup, you will need to make MySQL listen to your IP address. Edit `bind-address` option on `/etc/mysql/my.cnf` on database instance to:
|
1. For remote database setup, you will need to make MySQL listen to your IP address. Edit `bind-address` option on `/etc/mysql/my.cnf` on database instance to:
|
||||||
|
|
||||||
|
@ -45,7 +47,7 @@ Note: All steps below requires that the database engine of your choice is instal
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
SET old_passwords=0;
|
SET old_passwords=0;
|
||||||
CREATE USER 'gitea' IDENTIFIED BY 'gitea';
|
CREATE USER 'gitea'@'%' IDENTIFIED BY 'gitea';
|
||||||
```
|
```
|
||||||
|
|
||||||
For remote database:
|
For remote database:
|
||||||
|
@ -182,7 +184,7 @@ If the communication between Gitea and your database instance is performed throu
|
||||||
- On the database server certificate, one of `Subject Alternative Name` or `Common Name` entries must be the fully-qualified domain name (FQDN) of the database instance (e.g. `db.example.com`). On the database client certificate, one of the entries mentioned above must contain the database username that Gitea will be using to connect.
|
- On the database server certificate, one of `Subject Alternative Name` or `Common Name` entries must be the fully-qualified domain name (FQDN) of the database instance (e.g. `db.example.com`). On the database client certificate, one of the entries mentioned above must contain the database username that Gitea will be using to connect.
|
||||||
- You need domain name mappings of both Gitea and database servers to their respective IP addresses. Either set up DNS records for them or add local mappings to `/etc/hosts` (`%WINDIR%\System32\drivers\etc\hosts` in Windows) on each system. This allows the database connections to be performed by domain name instead of IP address. See documentation of your system for details.
|
- You need domain name mappings of both Gitea and database servers to their respective IP addresses. Either set up DNS records for them or add local mappings to `/etc/hosts` (`%WINDIR%\System32\drivers\etc\hosts` in Windows) on each system. This allows the database connections to be performed by domain name instead of IP address. See documentation of your system for details.
|
||||||
|
|
||||||
### PostgreSQL
|
### PostgreSQL TLS
|
||||||
|
|
||||||
The PostgreSQL driver used by Gitea supports two-way TLS. In two-way TLS, both database client and server authenticate each other by sending their respective certificates to their respective opposite for validation. In other words, the server verifies client certificate, and the client verifies server certificate.
|
The PostgreSQL driver used by Gitea supports two-way TLS. In two-way TLS, both database client and server authenticate each other by sending their respective certificates to their respective opposite for validation. In other words, the server verifies client certificate, and the client verifies server certificate.
|
||||||
|
|
||||||
|
@ -250,7 +252,7 @@ The PostgreSQL driver used by Gitea supports two-way TLS. In two-way TLS, both d
|
||||||
|
|
||||||
You should be prompted to enter password for the database user, and then be connected to the database.
|
You should be prompted to enter password for the database user, and then be connected to the database.
|
||||||
|
|
||||||
### MySQL
|
### MySQL/MariaDB TLS
|
||||||
|
|
||||||
While the MySQL driver used by Gitea also supports two-way TLS, Gitea currently supports only one-way TLS. See issue #10828 for details.
|
While the MySQL driver used by Gitea also supports two-way TLS, Gitea currently supports only one-way TLS. See issue #10828 for details.
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ menu:
|
||||||
|
|
||||||
注意:以下所有步骤要求您的选择的数据库引擎已安装在您的系统上。对于远程数据库设置,请在数据库实例上安装服务器应用程序,在 Gitea 服务器上安装客户端程序。客户端程序用于测试 Gitea 服务器与数据库之间的连接,而 Gitea 本身使用 Go 提供的数据库驱动程序完成相同的任务。此外,请确保服务器和客户端使用相同的引擎版本,以使某些引擎功能正常工作。出于安全原因,请使用安全密码保护 `root`(MySQL)或 `postgres`(PostgreSQL)数据库超级用户。以下步骤假设您在数据库和 Gitea 服务器上都使用 Linux。
|
注意:以下所有步骤要求您的选择的数据库引擎已安装在您的系统上。对于远程数据库设置,请在数据库实例上安装服务器应用程序,在 Gitea 服务器上安装客户端程序。客户端程序用于测试 Gitea 服务器与数据库之间的连接,而 Gitea 本身使用 Go 提供的数据库驱动程序完成相同的任务。此外,请确保服务器和客户端使用相同的引擎版本,以使某些引擎功能正常工作。出于安全原因,请使用安全密码保护 `root`(MySQL)或 `postgres`(PostgreSQL)数据库超级用户。以下步骤假设您在数据库和 Gitea 服务器上都使用 Linux。
|
||||||
|
|
||||||
## MySQL
|
## MySQL/MariaDB
|
||||||
|
|
||||||
1. 对于远程数据库设置,您需要让 MySQL 监听您的 IP 地址。编辑数据库实例上的 `/etc/mysql/my.cnf` 文件中的 `bind-address` 选项为:
|
1. 对于远程数据库设置,您需要让 MySQL 监听您的 IP 地址。编辑数据库实例上的 `/etc/mysql/my.cnf` 文件中的 `bind-address` 选项为:
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ menu:
|
||||||
- 在数据库服务器证书中,`Subject Alternative Name` 或 `Common Name` 条目之一必须是数据库实例的完全限定域名(FQDN)(例如 `db.example.com`)。在数据库客户端证书中,上述提到的条目之一必须包含 Gitea 将用于连接的数据库用户名。
|
- 在数据库服务器证书中,`Subject Alternative Name` 或 `Common Name` 条目之一必须是数据库实例的完全限定域名(FQDN)(例如 `db.example.com`)。在数据库客户端证书中,上述提到的条目之一必须包含 Gitea 将用于连接的数据库用户名。
|
||||||
- 您需要将 Gitea 和数据库服务器的域名映射到它们各自的 IP 地址。可以为它们设置 DNS 记录,也可以在每个系统上的 `/etc/hosts`(Windows 中的 `%WINDIR%\System32\drivers\etc\hosts`)中添加本地映射。这样可以通过域名而不是 IP 地址进行数据库连接。有关详细信息,请参阅您系统的文档。
|
- 您需要将 Gitea 和数据库服务器的域名映射到它们各自的 IP 地址。可以为它们设置 DNS 记录,也可以在每个系统上的 `/etc/hosts`(Windows 中的 `%WINDIR%\System32\drivers\etc\hosts`)中添加本地映射。这样可以通过域名而不是 IP 地址进行数据库连接。有关详细信息,请参阅您系统的文档。
|
||||||
|
|
||||||
### PostgreSQL
|
### PostgreSQL TLS
|
||||||
|
|
||||||
Gitea 使用的 PostgreSQL 驱动程序支持双向 TLS。在双向 TLS 中,数据库客户端和服务器通过将各自的证书发送给对方进行验证来相互认证。换句话说,服务器验证客户端证书,客户端验证服务器证书。
|
Gitea 使用的 PostgreSQL 驱动程序支持双向 TLS。在双向 TLS 中,数据库客户端和服务器通过将各自的证书发送给对方进行验证来相互认证。换句话说,服务器验证客户端证书,客户端验证服务器证书。
|
||||||
|
|
||||||
|
@ -250,7 +250,7 @@ Gitea 使用的 PostgreSQL 驱动程序支持双向 TLS。在双向 TLS 中,
|
||||||
|
|
||||||
您将被提示输入数据库用户的密码,然后连接到数据库。
|
您将被提示输入数据库用户的密码,然后连接到数据库。
|
||||||
|
|
||||||
### MySQL
|
### MySQL/MariaDB TLS
|
||||||
|
|
||||||
虽然 Gitea 使用的MySQL驱动程序也支持双向 TLS,但目前 Gitea 仅支持单向 TLS。有关详细信息,请参见工单#10828。
|
虽然 Gitea 使用的MySQL驱动程序也支持双向 TLS,但目前 Gitea 仅支持单向 TLS。有关详细信息,请参见工单#10828。
|
||||||
|
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-08-23T09:00:00+02:00"
|
|
||||||
title: "Installation avec le binaire pré-compilé"
|
|
||||||
slug: "install-from-binary"
|
|
||||||
sidebar_position: 15
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /fr-fr/install-from-binary
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Binaire pré-compilé"
|
|
||||||
sidebar_position: 15
|
|
||||||
identifier: "install-from-binary"
|
|
||||||
---
|
|
||||||
|
|
||||||
# Installation avec le binaire pré-compilé
|
|
||||||
|
|
||||||
Tous les binaires sont livrés avec le support de SQLite, MySQL et PostgreSQL, et sont construits avec les ressources incorporées. Gardez à l'esprit que cela peut être différent pour les versions antérieures. L'installation basée sur nos binaires est assez simple, il suffit de choisir le fichier correspondant à votre plateforme à partir de la [page de téléchargement](https://dl.gitea.com/gitea). Copiez l'URL et remplacer l'URL dans les commandes suivantes par la nouvelle:
|
|
||||||
|
|
||||||
```
|
|
||||||
wget -O gitea https://dl.gitea.com/gitea/@version@/gitea-@version@-linux-amd64
|
|
||||||
chmod +x gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
## Test
|
|
||||||
|
|
||||||
Après avoir suivi les étapes ci-dessus, vous aurez un binaire `gitea` dans votre répertoire de travail. En premier lieu, vous pouvez tester si le binaire fonctionne comme prévu et ensuite vous pouvez le copier vers la destination où vous souhaitez le stocker. Lorsque vous lancez Gitea manuellement à partir de votre CLI, vous pouvez toujours le tuer en appuyant sur `Ctrl + C`.
|
|
||||||
|
|
||||||
```
|
|
||||||
./gitea web
|
|
||||||
```
|
|
||||||
|
|
||||||
## Dépannage
|
|
||||||
|
|
||||||
### Anciennes version de glibc
|
|
||||||
|
|
||||||
Les anciennes distributions Linux (comme Debian 7 ou CentOS 6) peuvent ne pas être capable d'exécuter le binaire Gitea, résultant généralement une erreur du type ```./gitea: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./gitea)```. Cette erreur est due au driver SQLite que nous intégrons dans le binaire Gitea. Dans le futur, nous fournirons des binaires sans la dépendance pour la bibliothèque glibc. En attendant, vous pouvez mettre à jour votre distribution ou installer Gitea depuis le [code source](installation/from-source.md).
|
|
||||||
|
|
||||||
### Exécuter Gitea avec un autre port
|
|
||||||
|
|
||||||
Si vous obtenez l'erreur `702 runWeb()] [E] Failed to start server: listen tcp 0.0.0.0:3000: bind: address already in use`, Gitea à besoin d'utiliser un autre port. Vous pouvez changer le port par défaut en utilisant `./gitea web -p $PORT`.
|
|
||||||
|
|
||||||
## Il manque quelque chose ?
|
|
||||||
|
|
||||||
Est-ce que nous avons oublié quelque chose sur cette page ? N'hésitez pas à nous contacter sur notre [serveur Discord](https://discord.gg/Gitea), vous obtiendrez des réponses à toute vos questions assez rapidement.
|
|
|
@ -117,7 +117,7 @@ chmod 770 /etc/gitea
|
||||||
- 使用 `gitea generate secret` 创建 `SECRET_KEY` 和 `INTERNAL_TOKEN`
|
- 使用 `gitea generate secret` 创建 `SECRET_KEY` 和 `INTERNAL_TOKEN`
|
||||||
- 提供所有必要的密钥
|
- 提供所有必要的密钥
|
||||||
|
|
||||||
详情参考 [命令行文档](/zh-cn/command-line/) 中有关 `gitea generate secret` 的内容。
|
详情参考 [命令行文档](administration/command-line.md) 中有关 `gitea generate secret` 的内容。
|
||||||
|
|
||||||
### 配置 Gitea 工作路径
|
### 配置 Gitea 工作路径
|
||||||
|
|
||||||
|
@ -209,6 +209,6 @@ remote: ./hooks/pre-receive.d/gitea: line 2: [...]: No such file or directory
|
||||||
|
|
||||||
如果您没有使用 Gitea 内置的 SSH 服务器,您还需要通过在管理选项中运行任务 `Update the '.ssh/authorized_keys' file with Gitea SSH keys.` 来重新编写授权密钥文件。
|
如果您没有使用 Gitea 内置的 SSH 服务器,您还需要通过在管理选项中运行任务 `Update the '.ssh/authorized_keys' file with Gitea SSH keys.` 来重新编写授权密钥文件。
|
||||||
|
|
||||||
> 更多经验总结,请参考英文版 [Troubleshooting](/en-us/install-from-binary/#troubleshooting)
|
> 更多经验总结,请参考英文版 [Troubleshooting](https://docs.gitea.com/installation/install-from-binary#troubleshooting)
|
||||||
|
|
||||||
如果从本页中没有找到你需要的内容,请访问 [帮助页面](help/support.md)
|
如果从本页中没有找到你需要的内容,请访问 [帮助页面](help/support.md)
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-01T16:00:00+02:00"
|
|
||||||
title: "執行檔安裝"
|
|
||||||
slug: "install-from-binary"
|
|
||||||
sidebar_position: 15
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/install-from-binary
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "執行檔"
|
|
||||||
sidebar_position: 15
|
|
||||||
identifier: "install-from-binary"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 從執行檔安裝
|
|
||||||
|
|
||||||
所有的執行檔皆支援 SQLite, MySQL and PostgreSQL,且所有檔案都已經包在執行檔內,這一點跟之前的版本有所不同。關於執行檔的安裝方式非常簡單,只要從[下載頁面](https://dl.gitea.com/gitea)選擇相對應平台,複製下載連結,使用底下指令就可以完成了:
|
|
||||||
|
|
||||||
```
|
|
||||||
wget -O gitea https://dl.gitea.com/gitea/@version@/gitea-@version@-linux-amd64
|
|
||||||
chmod +x gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
## 測試
|
|
||||||
|
|
||||||
執行完上述步驟,您將會得到 `gita` 執行檔,在複製到遠端伺服器前,您可以先測試看看,在命令列執行完成後,可以透過 `Ctrl + C` 關閉程式。
|
|
||||||
|
|
||||||
```
|
|
||||||
./gitea web
|
|
||||||
```
|
|
||||||
|
|
||||||
## 需要協助?
|
|
||||||
|
|
||||||
如果本頁中無法解決您的問題,請直接到 [Discord server](https://discord.gg/Gitea),在那邊可以快速得到協助。
|
|
|
@ -1,58 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-01T16:00:00+02:00"
|
|
||||||
title: "Installation depuis le gestionnaire de paquets"
|
|
||||||
slug: "install-from-package"
|
|
||||||
sidebar_position: 20
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /fr-fr/install-from-package
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Gestionnaire de paquets"
|
|
||||||
sidebar_position: 20
|
|
||||||
identifier: "install-from-package"
|
|
||||||
---
|
|
||||||
|
|
||||||
# Installation depuis le gestionnaire de paquets
|
|
||||||
|
|
||||||
## Linux
|
|
||||||
|
|
||||||
Nous n'avons pas encore publié de paquet pour Linux, nous allons mettre à jour cette page directement lorsque nous commencerons à publier des paquets pour toutes distributions Linux. En attendant, vous devriez suivre les [instructions d'installation](installation/from-binary.md) avec le binaire pré-compilé.
|
|
||||||
|
|
||||||
## Windows
|
|
||||||
|
|
||||||
Nous n'avons pas encore publié de paquet pour Windows, nous allons mettre à jour cette page directement lorsque nous commencerons à publier des paquets sous la forme de fichiers `MSI` ou via [Chocolatey](https://chocolatey.org/). En attendant, vous devriez suivre les [instructions d'installation](installation/from-binary.md) avec le binaire pré-compilé.
|
|
||||||
|
|
||||||
## macOS
|
|
||||||
|
|
||||||
Actuellement, nous ne supportons que l'installation via `brew` pour macOS. Si vous n'utilisez pas [Homebrew](http://brew.sh/), vous pouvez suivre les [instructions d'installation](installation/from-binary.md) avec le binaire pré-compilé. Pour installer Gitea depuis `brew`, utilisez les commandes suivantes :
|
|
||||||
|
|
||||||
```
|
|
||||||
brew install gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
## FreeBSD
|
|
||||||
|
|
||||||
Le portage FreeBSD `www/gitea` est disponible. Vous pouvez également installer le paquet pré-compilé avec la commande suivante:
|
|
||||||
|
|
||||||
```
|
|
||||||
pkg install gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour une version plus récente, ou pour les instructions de compilations, veuillez consulter la documentation officielle de FreeBSD : [install it from the port](https://www.freebsd.org/doc/handbook/ports-using.html)
|
|
||||||
|
|
||||||
```
|
|
||||||
su -
|
|
||||||
cd /usr/ports/www/gitea
|
|
||||||
make install clean
|
|
||||||
```
|
|
||||||
|
|
||||||
Le port utilise la schéma standard du système de fichiers FreeBSD : Les fichiers de configuration sont localisés dans le répertoire `/usr/local/etc/gitea`, les modèles, options, plugins et thèmes sont localisés dans le répertoire `/usr/local/share/gitea`, et le script de démarrage se situe dans `/usr/local/etc/rc.d/gitea`.
|
|
||||||
|
|
||||||
Pour exécuter Gitea en tant que service, utilisez la commande `sysrc gitea_enable=YES` et la commande `service gitea start` pour démarrer le service.
|
|
||||||
|
|
||||||
## Il manque quelque chose ?
|
|
||||||
|
|
||||||
Est-ce que nous avons oublié quelque chose sur cette page ? N'hésitez pas à nous contacter sur notre [serveur Discord](https://discord.gg/Gitea), vous obtiendrez des réponses à toute vos questions assez rapidement.
|
|
|
@ -1,60 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-01T16:00:00+02:00"
|
|
||||||
title: "套件安裝"
|
|
||||||
slug: "install-from-package"
|
|
||||||
sidebar_position: 20
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/install-from-package
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "套件安裝"
|
|
||||||
sidebar_position: 20
|
|
||||||
identifier: "install-from-package"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 從套件安裝
|
|
||||||
|
|
||||||
## Linux
|
|
||||||
|
|
||||||
目前尚未發佈任何 Linux 套件,如果我們發佈了,會直接更新此網頁。在這之前請先參考[執行檔安裝](installation/from-binary.md)方式。
|
|
||||||
|
|
||||||
## Windows
|
|
||||||
|
|
||||||
在 Windows 作業系統你可以透過 [Chocolatey](https://chocolatey.org/) 套件管理器安裝 [Gitea](https://chocolatey.org/packages/gitea) 套件:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
choco install gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
也可以參考[執行檔安裝](installation/from-binary.md)方式。
|
|
||||||
|
|
||||||
## macOS
|
|
||||||
|
|
||||||
目前我們只支援透過 `brew` 來安裝套件。假如您尚未使用 [Homebrew](http://brew.sh/),您就必須參考[執行檔安裝](installation/from-binary.md)方式。透過 `brew` 安裝 Gitea,您只需要執行底下指令:
|
|
||||||
|
|
||||||
```
|
|
||||||
brew install gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
## FreeBSD
|
|
||||||
|
|
||||||
下載 FreeBSD port `www/gitea` 套件。你可以安裝 pre-built 執行檔:
|
|
||||||
|
|
||||||
```
|
|
||||||
pkg install gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
對於最新版本或想要自行編譯特定選項,請使用 [port 安裝](https://www.freebsd.org/doc/handbook/ports-using.html):
|
|
||||||
|
|
||||||
```
|
|
||||||
su -
|
|
||||||
cd /usr/ports/www/gitea
|
|
||||||
make install clean
|
|
||||||
```
|
|
||||||
|
|
||||||
## 需要協助?
|
|
||||||
|
|
||||||
如果本頁中無法解決您的問題,請直接到 [Discord server](https://discord.gg/Gitea),在那邊可以快速得到協助。
|
|
|
@ -27,13 +27,7 @@ Next, [install Node.js with npm](https://nodejs.org/en/download/) which is
|
||||||
required to build the JavaScript and CSS files. The minimum supported Node.js
|
required to build the JavaScript and CSS files. The minimum supported Node.js
|
||||||
version is @minNodeVersion@ and the latest LTS version is recommended.
|
version is @minNodeVersion@ and the latest LTS version is recommended.
|
||||||
|
|
||||||
**Note**: When executing make tasks that require external tools, like
|
**Note**: Go version @minGoVersion@ or higher is required. However, it is recommended to
|
||||||
`make misspell-check`, Gitea will automatically download and build these as
|
|
||||||
necessary. To be able to use these, you must have the `"$GOPATH/bin"` directory
|
|
||||||
on the executable path. If you don't add the go bin directory to the
|
|
||||||
executable path, you will have to manage this yourself.
|
|
||||||
|
|
||||||
**Note 2**: Go version @minGoVersion@ or higher is required. However, it is recommended to
|
|
||||||
obtain the same version as our continuous integration, see the advice given in
|
obtain the same version as our continuous integration, see the advice given in
|
||||||
[Hacking on Gitea](development/hacking-on-gitea.md)
|
[Hacking on Gitea](development/hacking-on-gitea.md)
|
||||||
|
|
||||||
|
@ -128,8 +122,6 @@ If pre-built frontend files are present it is possible to only build the backend
|
||||||
TAGS="bindata" make backend
|
TAGS="bindata" make backend
|
||||||
```
|
```
|
||||||
|
|
||||||
Webpack source maps are by default enabled in development builds and disabled in production builds. They can be enabled by setting the `ENABLE_SOURCEMAP=true` environment variable.
|
|
||||||
|
|
||||||
## Test
|
## Test
|
||||||
|
|
||||||
After following the steps above, a `gitea` binary will be available in the working directory.
|
After following the steps above, a `gitea` binary will be available in the working directory.
|
||||||
|
@ -260,3 +252,11 @@ GOARCH=amd64 \
|
||||||
TAGS="bindata sqlite sqlite_unlock_notify" \
|
TAGS="bindata sqlite sqlite_unlock_notify" \
|
||||||
make build
|
make build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Source Maps
|
||||||
|
|
||||||
|
By default, gitea generates reduced source maps for frontend files to conserve space. This can be controlled with the `ENABLE_SOURCEMAP` environment variable:
|
||||||
|
|
||||||
|
- `ENABLE_SOURCEMAP=true` generates all source maps, the default for development builds
|
||||||
|
- `ENABLE_SOURCEMAP=reduced` generates limited source maps, the default for production builds
|
||||||
|
- `ENABLE_SOURCEMAP=false` generates no source maps
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-08-23T09:00:00+02:00"
|
|
||||||
title: "Installation depuis le code source"
|
|
||||||
slug: "install-from-source"
|
|
||||||
sidebar_position: 30
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /fr-fr/install-from-source
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Code source"
|
|
||||||
sidebar_position: 30
|
|
||||||
identifier: "install-from-source"
|
|
||||||
---
|
|
||||||
|
|
||||||
# Installation depuis le code source
|
|
||||||
|
|
||||||
Nous ne couvrirons pas les bases de la configuration de Golang dans ce guide. Si vous ne savez pas comment démarrer un environnement fonctionnel, vous devrez suivre les [instructions d'installation](https://golang.org/doc/install) officielles.
|
|
||||||
|
|
||||||
**Attention**: La version 1.7 ou suppérieur de Go est nécessaire
|
|
||||||
|
|
||||||
## Téléchargement
|
|
||||||
|
|
||||||
Tout d'abord, vous devez récupérer le code source, la manière la plus simple est d'utiliser directement Go. Il suffit d'appeler les commandes suivantes pour récupérer le code source et passer au répertoire de travail.
|
|
||||||
|
|
||||||
```
|
|
||||||
go get -d -u code.gitea.io/gitea
|
|
||||||
cd $GOPATH/src/code.gitea.io/gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
Maintenant, il est temps de décider quelle version de Gitea vous souhaitez compiler et installer. Actuellement, ils existent plusieurs options possibles. Si vous voulez compiler notre branche `master`, vous pouvez directement passer à la [section compilation](#compilation), cette branche représente la dernière version en cours de développement et n'a pas vocation à être utiliser en production.
|
|
||||||
|
|
||||||
Si vous souhaitez compiler la dernière version stable, utilisez les étiquettes ou les différentes branches disponibles. Vous pouvez voir les branches disponibles et comment utiliser cette branche avec ces commandes:
|
|
||||||
|
|
||||||
```
|
|
||||||
git branch -a
|
|
||||||
git checkout v@version@
|
|
||||||
```
|
|
||||||
|
|
||||||
Si vous souhaitez valider une demande d'ajout (_Pull request_), vous devez activer cette branche en premier :
|
|
||||||
|
|
||||||
```
|
|
||||||
git fetch origin pull/xyz/head:pr-xyz # xyz is PR value
|
|
||||||
```
|
|
||||||
|
|
||||||
Enfin, vous pouvez directement utiliser les versions étiquettées (ex : `v@version@`). Pour utiliser les étiquettes, vous devez lister les étiquettes disponibles et choisir une étiquette spécifique avec les commandes suivantes :
|
|
||||||
|
|
||||||
```
|
|
||||||
git tag -l
|
|
||||||
git checkout v@version@
|
|
||||||
git checkout pr-xyz
|
|
||||||
```
|
|
||||||
|
|
||||||
## Compilation
|
|
||||||
|
|
||||||
Comme nous regroupons déjà toutes les bibliothèques requises pour compiler Gitea, vous pouvez continuer avec le processus de compilation lui-même. Nous fournissons diverses [tâches Make](https://github.com/go-gitea/gitea/blob/main/Makefile) pour rendre le processus de construction aussi simple que possible. [Voyez ici comment obtenir Make](/fr-fr/hacking-on-gitea/). Selon vos besoins, vous pourrez éventuellement ajouter diverses options de compilation, vous pouvez choisir entre ces options :
|
|
||||||
|
|
||||||
* `bindata`: Intègre toutes les ressources nécessaires à l'exécution d'une instance de Gitea, ce qui rend un déploiement facile car il n'est pas nécessaire de se préoccuper des fichiers supplémentaires.
|
|
||||||
* `sqlite sqlite_unlock_notify`: Active la prise en charge d'une base de données [SQLite3](https://sqlite.org/), ceci n'est recommandé que pour les petites installations de Gitea.
|
|
||||||
* `pam`: Active la prise en charge de PAM (mLinux Pluggable Authentication Modules), très utile si vos utilisateurs doivent être authentifiés avec les comptes du système.
|
|
||||||
|
|
||||||
Il est temps de compiler le binaire, nous suggérons d'intégrer les ressources avec l'option de compilation `bindata`:
|
|
||||||
|
|
||||||
```
|
|
||||||
TAGS="bindata" make build
|
|
||||||
```
|
|
||||||
|
|
||||||
## Test
|
|
||||||
|
|
||||||
Après avoir suivi toutes les étapes, vous devriez avoir le binaire `gitea` dans votre répertoire courant. Dans un premier temps, vous pouvez tester qu'il fonctionne puis, dans un second temps, vous pouvez le copier dans la destination de votre choix. Lorsque vous lancez Gitea manuellement à partir de votre CLI, vous pouvez toujours le tuer en appuyant sur `Ctrl + C`.
|
|
||||||
|
|
||||||
```
|
|
||||||
./gitea web
|
|
||||||
```
|
|
||||||
|
|
||||||
## Il manque quelque chose ?
|
|
||||||
|
|
||||||
Est-ce que nous avons oublié quelque chose sur cette page ? N'hésitez pas à nous contacter sur notre [serveur Discord](https://discord.gg/Gitea), vous obtiendrez des réponses à toute vos questions assez rapidement.
|
|
|
@ -21,9 +21,7 @@ menu:
|
||||||
|
|
||||||
接下来,[安装 Node.js 和 npm](https://nodejs.org/zh-cn/download/), 这是构建 JavaScript 和 CSS 文件所需的。最低支持的 Node.js 版本是 @minNodeVersion@,建议使用最新的 LTS 版本。
|
接下来,[安装 Node.js 和 npm](https://nodejs.org/zh-cn/download/), 这是构建 JavaScript 和 CSS 文件所需的。最低支持的 Node.js 版本是 @minNodeVersion@,建议使用最新的 LTS 版本。
|
||||||
|
|
||||||
**注意**:当执行需要外部工具的 make 任务(如`make misspell-check`)时,Gitea 将根据需要自动下载和构建这些工具。为了能够实现这个目的,你必须将`"$GOPATH/bin"`目录添加到可执行路径中。如果没有将 Go 的二进制目录添加到可执行路径中,你需要自行解决产生的问题。
|
**注意**:需要 Go 版本 @minGoVersion@ 或更高版本。不过,建议获取与我们的持续集成(continuous integration, CI)相同的版本,请参阅在 [Hacking on Gitea](development/hacking-on-gitea.md) 中给出的建议。
|
||||||
|
|
||||||
**注意2**:需要 Go 版本 @minGoVersion@ 或更高版本。不过,建议获取与我们的持续集成(continuous integration, CI)相同的版本,请参阅在 [Hacking on Gitea](development/hacking-on-gitea.md) 中给出的建议。
|
|
||||||
|
|
||||||
## 下载
|
## 下载
|
||||||
|
|
||||||
|
@ -64,7 +62,7 @@ git checkout v@version@ # or git checkout pr-xyz
|
||||||
|
|
||||||
- `go` @minGoVersion@ 或更高版本,请参阅 [这里](https://golang.org/dl/)
|
- `go` @minGoVersion@ 或更高版本,请参阅 [这里](https://golang.org/dl/)
|
||||||
- `node` @minNodeVersion@ 或更高版本,并且安装 `npm`, 请参阅 [这里](https://nodejs.org/zh-cn/download/)
|
- `node` @minNodeVersion@ 或更高版本,并且安装 `npm`, 请参阅 [这里](https://nodejs.org/zh-cn/download/)
|
||||||
- `make`, 请参阅 [这里](/zh-cn/hacking-on-gitea/)
|
- `make`, 请参阅 [这里](development/hacking-on-gitea.md)
|
||||||
|
|
||||||
为了尽可能简化编译过程,提供了各种 [make任务](https://github.com/go-gitea/gitea/blob/main/Makefile)。
|
为了尽可能简化编译过程,提供了各种 [make任务](https://github.com/go-gitea/gitea/blob/main/Makefile)。
|
||||||
|
|
||||||
|
@ -100,8 +98,6 @@ TAGS="bindata sqlite sqlite_unlock_notify" make build
|
||||||
TAGS="bindata" make backend
|
TAGS="bindata" make backend
|
||||||
```
|
```
|
||||||
|
|
||||||
在开发构建中,默认启用 Webpack 源映射,在生产构建中禁用。可以通过设置`ENABLE_SOURCEMAP=true`环境变量来启用它们。
|
|
||||||
|
|
||||||
## 测试
|
## 测试
|
||||||
|
|
||||||
按照上述步骤完成后,工作目录中将会有一个`gitea`二进制文件。可以从该目录进行测试,或将其移动到带有测试数据的目录中。当手动从命令行启动 Gitea 时,可以通过按下`Ctrl + C`来停止程序。
|
按照上述步骤完成后,工作目录中将会有一个`gitea`二进制文件。可以从该目录进行测试,或将其移动到带有测试数据的目录中。当手动从命令行启动 Gitea 时,可以通过按下`Ctrl + C`来停止程序。
|
||||||
|
@ -221,3 +217,11 @@ GOARCH=amd64 \
|
||||||
TAGS="bindata sqlite sqlite_unlock_notify" \
|
TAGS="bindata sqlite sqlite_unlock_notify" \
|
||||||
make build
|
make build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 源映射
|
||||||
|
|
||||||
|
默认情况下,gitea 会为前端文件生成精简的源映射以节省空间。 这可以通过“ENABLE_SOURCEMAP”环境变量进行控制:
|
||||||
|
|
||||||
|
- `ENABLE_SOURCEMAP=true` 生成所有源映射,这是开发版本的默认设置
|
||||||
|
- `ENABLE_SOURCEMAP=reduced` 生成有限的源映射,这是生产版本的默认设置
|
||||||
|
- `ENABLE_SOURCEMAP=false` 不生成源映射
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-01T16:00:00+02:00"
|
|
||||||
title: "原始碼安裝"
|
|
||||||
slug: "install-from-source"
|
|
||||||
sidebar_position: 30
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/install-from-source
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "原始碼安裝"
|
|
||||||
sidebar_position: 30
|
|
||||||
identifier: "install-from-source"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 從原始碼安裝
|
|
||||||
|
|
||||||
我們不會在本文教大家如何安裝 Golang 環境。假如您不知道如何設定環境,請直接參考[官方安裝文件](https://golang.org/doc/install)。
|
|
||||||
|
|
||||||
## 下載
|
|
||||||
|
|
||||||
首先您必須先下載原始碼,最簡單的方式就是透過 Go 指令下載,請透過底下指令下載原始碼並且切換到工作目錄。
|
|
||||||
|
|
||||||
```
|
|
||||||
go get -d -u code.gitea.io/gitea
|
|
||||||
cd $GOPATH/src/code.gitea.io/gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
現在該決定您要編譯或安裝的 Gitea 版本,您有很多可以選擇。如果您想編譯 `master` 版本,你可以直接跳到[編譯章節](#編譯),這是我們開發分支,雖然很穩定,但是不建議用在正式環境。
|
|
||||||
|
|
||||||
假如您想要編譯最新穩定版本,可以執行底下命令切換到正確版本:
|
|
||||||
|
|
||||||
```
|
|
||||||
git branch -a
|
|
||||||
git checkout v@version@
|
|
||||||
```
|
|
||||||
|
|
||||||
最後您也可以直接編譯最新的標籤版本像是 `v@version@`,假如您想要從原始碼編譯,這方法是最合適的,在編譯標籤版本前,您需要列出當下所有標籤,並且直接切換到標籤版本,請使用底下指令::
|
|
||||||
|
|
||||||
```
|
|
||||||
git tag -l
|
|
||||||
git checkout v@version@
|
|
||||||
```
|
|
||||||
|
|
||||||
## 編譯
|
|
||||||
|
|
||||||
完成設定相依性套件環境等工作後,您就可以開始編譯工作了。我們提供了不同的[編譯選項](https://github.com/go-gitea/gitea/blob/main/Makefile) ,讓編譯過程更加簡單。您可以根據需求來調整編譯選項,底下是可用的編譯選項說明:
|
|
||||||
|
|
||||||
* `bindata`: 使用此標籤來嵌入所有 Gitea 相關資源,您不用擔心其他額外檔案,對於部署來說非常方便。
|
|
||||||
* `sqlite sqlite_unlock_notify`: 使用此標籤來啟用 [SQLite3](https://sqlite.org/) 資料庫,建議只有少數人時才使用此模式。
|
|
||||||
* `pam`: 使用此標籤來啟用 PAM (Linux Pluggable Authentication Modules) 認證,對於系統使用者來說,此方式最方便了。
|
|
||||||
|
|
||||||
現在您可以開始編譯執行檔了,我們建議使用 `bindata` 編譯選項:
|
|
||||||
|
|
||||||
```
|
|
||||||
TAGS="bindata" make build
|
|
||||||
```
|
|
||||||
|
|
||||||
**注意**: 因為使用了套件管理工具,我們建議 Go 環境版本為 1.6 或者是更高,這樣不用在 Go 1.5 版本設定全域變數 `GO15VENDOREXPERIMENT`。
|
|
||||||
|
|
||||||
## 測試
|
|
||||||
|
|
||||||
完成上述步驟後,您可以在當下目錄發現 `gitea` 執行檔,在複製執行檔到遠端環境之前,您必須透過底下指令執行測試,使用 `Ctrl + C` 則可以關閉當下 gitea 程序。
|
|
||||||
|
|
||||||
```
|
|
||||||
./gitea web
|
|
||||||
```
|
|
||||||
|
|
||||||
## 需要協助?
|
|
||||||
|
|
||||||
如果本頁中無法解決您的問題,請直接到 [Discord server](https://discord.gg/Gitea),在那邊可以快速得到協助。
|
|
|
@ -1,72 +0,0 @@
|
||||||
---
|
|
||||||
date: "2020-03-19T19:27:00+02:00"
|
|
||||||
title: "在 Kubernetes 安裝"
|
|
||||||
slug: "install-on-kubernetes"
|
|
||||||
sidebar_position: 80
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/install-on-kubernetes
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Kubernetes"
|
|
||||||
sidebar_position: 80
|
|
||||||
identifier: "install-on-kubernetes"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 使用 Helm 安裝 (在 Kubernetes)
|
|
||||||
|
|
||||||
Gitea 提供 Helm Chart 用來安裝於 kubernetes。
|
|
||||||
|
|
||||||
非自訂安裝可使用下列指令:
|
|
||||||
|
|
||||||
```
|
|
||||||
helm repo add gitea-charts https://dl.gitea.com/charts/
|
|
||||||
helm install gitea gitea-charts/gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
若您想自訂安裝(包括使用 kubernetes ingress),請前往完整的 [Gitea helm chart configuration details](https://gitea.com/gitea/helm-chart/)
|
|
||||||
|
|
||||||
## 運行狀況檢查終端節點
|
|
||||||
|
|
||||||
Gitea 附帶了一個運行狀況檢查端點 `/api/healthz`,你可以像這樣在 kubernetes 中配置它:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /api/healthz
|
|
||||||
port: http
|
|
||||||
initialDelaySeconds: 200
|
|
||||||
timeoutSeconds: 5
|
|
||||||
periodSeconds: 10
|
|
||||||
successThreshold: 1
|
|
||||||
failureThreshold: 10
|
|
||||||
```
|
|
||||||
|
|
||||||
成功的運行狀況檢查回應將使用 HTTP 代碼 `200` 進行回應,下面是示例:
|
|
||||||
|
|
||||||
```
|
|
||||||
HTTP/1.1 200 OK
|
|
||||||
|
|
||||||
{
|
|
||||||
"status": "pass",
|
|
||||||
"description": "Gitea: Git with a cup of tea",
|
|
||||||
"checks": {
|
|
||||||
"cache:ping": [
|
|
||||||
{
|
|
||||||
"status": "pass",
|
|
||||||
"time": "2022-02-19T09:16:08Z"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"database:ping": [
|
|
||||||
{
|
|
||||||
"status": "pass",
|
|
||||||
"time": "2022-02-19T09:16:08Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
有關更多信息,請參考kubernetes文檔[定義一個存活態 HTTP請求接口](https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
|
|
|
@ -1,73 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-07-21T12:00:00+02:00"
|
|
||||||
title: "在 Linux 中以服務執行"
|
|
||||||
slug: "linux-service"
|
|
||||||
sidebar_position: 40
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/linux-service
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Linux 服務"
|
|
||||||
sidebar_position: 40
|
|
||||||
identifier: "linux-service"
|
|
||||||
---
|
|
||||||
|
|
||||||
### 以 Linux 服務執行 Gitea
|
|
||||||
|
|
||||||
您可使用 systemd 或 supervisor 以服務的方式執行 Gitea。下列步驟已在 Ubuntu 16.04 中測試,但它們應該適用於所有的 Linux 發行版(只需要一些小小的調整)。
|
|
||||||
|
|
||||||
#### 使用 systemd
|
|
||||||
|
|
||||||
複製範例 [gitea.service](https://github.com/go-gitea/gitea/blob/main/contrib/systemd/gitea.service) 到 `/etc/systemd/system/gitea.service` 後用您喜愛的文字編輯器開啟檔案。
|
|
||||||
|
|
||||||
取消註解任何需要在此系統上啟動的服務像是 MySQL。
|
|
||||||
|
|
||||||
修改 user, home directory 和其它必要的啟動參數。若預設埠已被占用請修改埠號或移除「-p」旗標。
|
|
||||||
|
|
||||||
在系統啟動時啟用並執行 Gitea:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo systemctl enable gitea
|
|
||||||
sudo systemctl start gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
若您使用 systemd 220 或更新版本,您能以一行指令啟動並立即執行 Gitea:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo systemctl enable gitea --now
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 使用 supervisor
|
|
||||||
|
|
||||||
在終端機使用下列指令安裝 supervisor:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apt install supervisor
|
|
||||||
```
|
|
||||||
|
|
||||||
為 supervisor 建立 log 資料夾:
|
|
||||||
|
|
||||||
```
|
|
||||||
# assuming Gitea is installed in /home/git/gitea/
|
|
||||||
mkdir /home/git/gitea/log/supervisor
|
|
||||||
```
|
|
||||||
|
|
||||||
附加範例 [supervisord config](https://github.com/go-gitea/gitea/blob/main/contrib/supervisor/gitea) 的設定值到 `/etc/supervisor/supervisord.conf`。
|
|
||||||
|
|
||||||
用您喜愛的文字編輯器修改使用者(git)和家目錄(/home/git)設定以符合部署環境。若預設埠已被占用請修改埠號或移除「-p」旗標。
|
|
||||||
|
|
||||||
最後設定在系統啟動時啟用並執行 supervisor:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo systemctl enable supervisor
|
|
||||||
sudo systemctl start supervisor
|
|
||||||
```
|
|
||||||
|
|
||||||
若您使用 systemd 220 或更新版本,您能以一行指令啟動並立即執行 supervisor:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo systemctl enable supervisor --now
|
|
||||||
```
|
|
|
@ -1,85 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-08-23T09:00:00+02:00"
|
|
||||||
title: "Mise à jour depuis Gogs"
|
|
||||||
slug: "upgrade-from-gogs"
|
|
||||||
sidebar_position: 101
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /fr-fr/upgrade-from-gogs
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Depuis Gogs"
|
|
||||||
sidebar_position: 101
|
|
||||||
identifier: "upgrade-from-gogs"
|
|
||||||
---
|
|
||||||
|
|
||||||
# Mise à jour depuis Gogs
|
|
||||||
|
|
||||||
À partir de la version 0.9.146 (schéma de la base de données : version 15) de Gogs, Il est possible de migrer vers Gitea simplement et sans encombre.
|
|
||||||
|
|
||||||
Veuillez suivre les étapes ci-dessous. Sur Unix, toute les commandes s'exécutent en tant que l'utilisateur utilisé pour votre installation de Gogs :
|
|
||||||
|
|
||||||
* Crééer une sauvegarde de Gogs avec la commande `gogs dump`. Le fichier nouvellement créé `gogs-dump-[timestamp].zip` contient toutes les données de votre instance de Gogs.
|
|
||||||
* Téléchargez le fichier correspondant à votre plateforme à partir de la [page de téléchargements](https://dl.gitea.com/gitea).
|
|
||||||
* Mettez la binaire dans le répertoire d'installation souhaité.
|
|
||||||
* Copiez le fichier `gogs/custom/conf/app.ini` vers `gitea/custom/conf/app.ini`.
|
|
||||||
* Si vous avez personnalisé les répertoires `templates, public` dans `gogs/custom/`, copiez-les vers `gitea/custom/`.
|
|
||||||
* Si vous avez d'autres répertoires personnalisés comme `gitignore, label, license, locale, readme` dans `gogs/custom/conf` copiez-les vers `gitea/custom/options`.
|
|
||||||
* Copiez le répertoire `gogs/data/` vers `gitea/data/`.
|
|
||||||
* Vérifiez votre installation en exécutant Gitea avec la commande `gitea web`.
|
|
||||||
* Lancez le binaire de version majeure en version majeure ( `1.1.4` → `1.2.3` → `1.3.4` → `1.4.2` → etc ) afin de récupérer les migrations de base de données.
|
|
||||||
* Connectez vous au panel d'administration de Gitea et exécutez l'action `Rewrite '.ssh/authorized_keys' file`, puis l'action `Rewrite all update hook of repositories` (obligatoire si le chemin menant à votre configuration personnalisée à changé).
|
|
||||||
|
|
||||||
## Modifier les informations spécifiques de gogs
|
|
||||||
|
|
||||||
* Renommez `gogs-repositories/` vers `gitea-repositories/`
|
|
||||||
* Renommez `gogs-data/` to `gitea-data/`
|
|
||||||
* Dans votre fichier `gitea/custom/conf/app.ini`, modifiez les éléments suivants:
|
|
||||||
|
|
||||||
DE :
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[database]
|
|
||||||
PATH = /home/:USER/gogs/data/:DATABASE.db
|
|
||||||
[attachment]
|
|
||||||
PATH = /home/:USER/gogs-data/attachments
|
|
||||||
[picture]
|
|
||||||
AVATAR_UPLOAD_PATH = /home/:USER/gogs-data/avatars
|
|
||||||
[log]
|
|
||||||
ROOT_PATH = /home/:USER/gogs/log
|
|
||||||
```
|
|
||||||
|
|
||||||
VERS :
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[database]
|
|
||||||
PATH = /home/:USER/gitea/data/:DATABASE.db
|
|
||||||
[attachment]
|
|
||||||
PATH = /home/:USER/gitea-data/attachments
|
|
||||||
[picture]
|
|
||||||
AVATAR_UPLOAD_PATH = /home/:USER/gitea-data/avatars
|
|
||||||
[log]
|
|
||||||
ROOT_PATH = /home/:USER/gitea/log
|
|
||||||
```
|
|
||||||
|
|
||||||
* Vérifiez votre installation en exécutant Gitea avec la commande `gitea web`.
|
|
||||||
|
|
||||||
## Dépannage
|
|
||||||
|
|
||||||
* Si vous rencontrez des erreurs relatives à des modèles personnalisés dans le dossier `gitea/custom/templates`, essayez de déplacer un par un les modèles provoquant les erreurs. Il est possible qu'ils ne soient pas compatibles avec Gitea.
|
|
||||||
|
|
||||||
## Démarrer automatiquement Gitea (Unix)
|
|
||||||
|
|
||||||
Distributions utilisant systemd:
|
|
||||||
|
|
||||||
* Copiez le script mis à jour vers `/etc/systemd/system/gitea.service`
|
|
||||||
* Ajoutez le service avec la commande `sudo systemctl enable gitea`
|
|
||||||
* Désactivez Gogs avec la commande `sudo systemctl disable gogs`
|
|
||||||
|
|
||||||
Distributions utilisant SysVinit:
|
|
||||||
|
|
||||||
* Copiez le script mis à jour vers `/etc/init.d/gitea`
|
|
||||||
* Ajoutez le service avec la commande `sudo rc-update add gitea`
|
|
||||||
* Désactivez Gogs avec la commande `sudo rc-update del gogs`
|
|
|
@ -1,36 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-08-23T09:00:00+02:00"
|
|
||||||
title: "Démarrer en tant que service Windows"
|
|
||||||
slug: "windows-service"
|
|
||||||
sidebar_position: 50
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /fr-fr/windows-service
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Service Windows"
|
|
||||||
sidebar_position: 50
|
|
||||||
identifier: "windows-service"
|
|
||||||
---
|
|
||||||
|
|
||||||
# Activer un service Windows
|
|
||||||
|
|
||||||
Pour activer le service Windows Gitea, ouvrez une `cmd` en tant qu'Administrateur puis utilisez la commande suivante :
|
|
||||||
|
|
||||||
```
|
|
||||||
sc create gitea start= auto binPath= "\"C:\gitea\gitea.exe\" web --config \"C:\gitea\custom\conf\app.ini\""
|
|
||||||
```
|
|
||||||
|
|
||||||
N'oubliez pas de remplacer `C:\gitea` par le chemin que vous avez utilisé pour votre installation.
|
|
||||||
|
|
||||||
Ensuite, ouvrez "Services Windows", puis recherchez le service `gitea`, faites un clic droit et selectionnez "Run". Si tout fonctionne, vous devriez être capable d'accèder à Gitea à l'URL `http://localhost:3000` (ou sur le port configuré si différent de 3000).
|
|
||||||
|
|
||||||
## Désactiver un service Windows
|
|
||||||
|
|
||||||
Pour désactiver le service Windows Gitea, ouvrez une `cmd` en tant qu'Administrateur puis utilisez la commande suivante :
|
|
||||||
|
|
||||||
```
|
|
||||||
sc delete gitea
|
|
||||||
```
|
|
|
@ -1,57 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-21T15:00:00-02:00"
|
|
||||||
title: "註冊為 Windows 服務"
|
|
||||||
slug: "windows-service"
|
|
||||||
sidebar_position: 50
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/windows-service
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Windows 服務"
|
|
||||||
sidebar_position: 50
|
|
||||||
identifier: "windows-service"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 事前準備
|
|
||||||
|
|
||||||
確認您的 C:\gitea\custom\conf\app.ini 中包含:
|
|
||||||
|
|
||||||
```
|
|
||||||
RUN_USER = COMPUTERNAME$
|
|
||||||
```
|
|
||||||
|
|
||||||
設定 Gitea 以本地使用者身份執行。
|
|
||||||
|
|
||||||
請將在命令提示字元(cmd)執行 `echo %COMPUTERNAME%` 的結果輸入 `COMPUTERNAME`。若回應為 `USER-PC`,請輸入 `RUN_USER = USER-PC$`
|
|
||||||
|
|
||||||
## 使用絕對路徑
|
|
||||||
|
|
||||||
如果您使用 sqlite3,修改 `PATH` 為完整路徑:
|
|
||||||
|
|
||||||
```
|
|
||||||
[database]
|
|
||||||
PATH = c:/gitea/data/gitea.db
|
|
||||||
```
|
|
||||||
|
|
||||||
# 註冊為 Windows 服務
|
|
||||||
|
|
||||||
要註冊為 Windows 服務,請先以系統管理員身份開啟命令提示字元,接著執行下列指令:
|
|
||||||
|
|
||||||
```
|
|
||||||
sc.exe create gitea start= auto binPath= "\"C:\gitea\gitea.exe\" web --config \"C:\gitea\custom\conf\app.ini\""
|
|
||||||
```
|
|
||||||
|
|
||||||
別忘記將 `C:\gitea` 取代為您的 Gitea 安裝路徑。
|
|
||||||
|
|
||||||
開啟 Windows 的「服務」,並且搜尋服務名稱「gitea」,按右鍵選擇「啟動」。在瀏覽器打開 `http://localhost:3000` 就可以成功看到畫面 (如果修改過連接埠,請自行修正,3000 是預設值)。
|
|
||||||
|
|
||||||
## 刪除服務
|
|
||||||
|
|
||||||
要刪除 Gitea 服務,請用系統管理員身份開啟命令提示字元,接著執行下列指令:
|
|
||||||
|
|
||||||
```
|
|
||||||
sc.exe delete gitea
|
|
||||||
```
|
|
|
@ -1,112 +0,0 @@
|
||||||
---
|
|
||||||
date: "2017-08-23T09:00:00+02:00"
|
|
||||||
title: "Installation avec Docker"
|
|
||||||
slug: "install-with-docker"
|
|
||||||
sidebar_position: 70
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /fr-fr/install-with-docker
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Docker"
|
|
||||||
sidebar_position: 70
|
|
||||||
identifier: "install-with-docker"
|
|
||||||
---
|
|
||||||
|
|
||||||
# Installation avec Docker
|
|
||||||
|
|
||||||
Nous fournissons des images Docker mises à jour automatiquement via le Docker Hub de notre organisation. C'est à vous, lors devotre déploiement, de vous assurez d'utiliser toujours la dernière version stable ou d'utiliser un autre service qui met à jour l'image Docker pour vous.
|
|
||||||
|
|
||||||
## Données stockées sur l'hôte
|
|
||||||
|
|
||||||
Tout d'abord, vous devez simplement récupérer l'image Docker avec la commande suivante :
|
|
||||||
|
|
||||||
```
|
|
||||||
docker pull gitea/gitea:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour garder vos dépôts et certaines autres données persistantes, vous devez créer un répertoire qui contiendra ces données à l'avenir.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo mkdir -p /var/lib/gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
Il est temps de démarrer votre instance Docker, c'est un processus assez simple. Vous avez à définir le mappage des ports et le volume à utiliser pour la persistance de vos données :
|
|
||||||
|
|
||||||
```
|
|
||||||
docker run -d --name=gitea -p 10022:22 -p 10080:3000 -v /var/lib/gitea:/data gitea/gitea:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
Vous devriez avoir une instance fonctionnelle de Gitea. Pour accèder à l'interface web, visitez l'adresse http://hostname:10080 avec votre navigateur web préféré. Si vous voulez clôner un dépôt, vous pouvez le faire avec la commande `git clone ssh://git@hostname:10022/username/repo.git`.
|
|
||||||
|
|
||||||
## Named Volumes
|
|
||||||
|
|
||||||
Ce guide aboutira à une installation avec les données Gitea et PostgreSQL stockées dans des volumes nommés. Cela permet une sauvegarde, une restauration et des mises à niveau en toute simplicité.
|
|
||||||
|
|
||||||
### The Database
|
|
||||||
|
|
||||||
Création du volume nommé pour la base de données :
|
|
||||||
|
|
||||||
```
|
|
||||||
$ docker volume create --name gitea-db-data
|
|
||||||
```
|
|
||||||
|
|
||||||
Une fois votre volume pret, vous pouvez récupérer l'image Docker de PostgreSQL et créer une instance. Tout comme Gitea, c'est également une image Docker basée sur Alpine Linux, Le montage des données se fera sans aucun problème.
|
|
||||||
|
|
||||||
```
|
|
||||||
$ docker pull postgres:alpine
|
|
||||||
$ docker run -d --name gitea-db \
|
|
||||||
-e POSTGRES_PASSWORD=<PASSWORD> \
|
|
||||||
-v gitea-db-data:/var/lib/postgresql/data \
|
|
||||||
-p 5432:5432 \
|
|
||||||
postgres:alpine
|
|
||||||
```
|
|
||||||
|
|
||||||
Maintenant que la base de données est démarrée, il faut la configurer. N'oubliez pas le mot de passe que vous avez choisi, vous en aurez besoin lors de l'installation de Gitea.
|
|
||||||
|
|
||||||
```
|
|
||||||
$ docker exec -it gitea-db psql -U postgres
|
|
||||||
psql (9.6.1)
|
|
||||||
Type "help" for help.
|
|
||||||
|
|
||||||
postgres=# CREATE USER gitea WITH PASSWORD '<PASSWORD>';
|
|
||||||
CREATE ROLE
|
|
||||||
postgres=# CREATE DATABASE gitea OWNER gitea;
|
|
||||||
CREATE DATABASE
|
|
||||||
postgres=# \q
|
|
||||||
$
|
|
||||||
```
|
|
||||||
|
|
||||||
### Gitea
|
|
||||||
|
|
||||||
Premièrement, le volume nommé :
|
|
||||||
|
|
||||||
```
|
|
||||||
$ docker volume create --name gitea-data
|
|
||||||
```
|
|
||||||
|
|
||||||
Puis l'instance de Gitea :
|
|
||||||
|
|
||||||
```
|
|
||||||
$ docker run -d --name gitea \
|
|
||||||
--link gitea-db:gitea-db \
|
|
||||||
--dns 10.12.10.160 \
|
|
||||||
-p 11180:3000 \
|
|
||||||
-p 8322:22 \
|
|
||||||
-v gitea-data:/data \
|
|
||||||
gitea/gitea:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
Vous devriez maintenant avoir deux conteneurs Docker pour Gitea et PostgreSQL plus deux volumes nommés Docker.
|
|
||||||
|
|
||||||
# Personnalisation
|
|
||||||
|
|
||||||
Les fichier personnalisés ([voir les instructions](administration/customizing-gitea.md)) peuvent être placés dans le répertoire `/data/gitea`.
|
|
||||||
|
|
||||||
Le fichier de configuration sera sauvegardé à l'emplacement suivant : `/data/gitea/conf/app.ini`
|
|
||||||
|
|
||||||
## Il manque quelque chose ?
|
|
||||||
|
|
||||||
Est-ce que nous avons oublié quelque chose sur cette page ? N'hésitez pas à nous contacter sur notre [serveur Discord](https://discord.gg/Gitea), vous obtiendrez des réponses à toute vos questions assez rapidement.
|
|
|
@ -1,42 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-01T16:00:00+02:00"
|
|
||||||
title: "Docker 安裝"
|
|
||||||
slug: "install-with-docker"
|
|
||||||
sidebar_position: 70
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/install-with-docker
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
parent: "installation"
|
|
||||||
name: "Docker 安裝"
|
|
||||||
sidebar_position: 70
|
|
||||||
identifier: "install-with-docker"
|
|
||||||
---
|
|
||||||
|
|
||||||
# 用 Docker 安裝
|
|
||||||
|
|
||||||
我們在 Docker Hub 提供了自動更新的映像檔,它會保持最新穩定版。根據您的部屬環境來使用最新版本或用其他服務來更新 Docker 映像檔。首先您需要下載映像檔:
|
|
||||||
|
|
||||||
```
|
|
||||||
docker pull gitea/gitea:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
為了儲存您的所有 Git 儲存庫資料,您應該建立一個目錄,用來存放資料的地方。
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo mkdir -p /var/lib/gitea
|
|
||||||
```
|
|
||||||
|
|
||||||
現在就可以直接啟動 Docker 容器,這是一個非常簡單的過程,您必須定義啟動連接埠,並且提供上面所建立的資料儲存路徑:
|
|
||||||
|
|
||||||
```
|
|
||||||
docker run -d --name=gitea -p 10022:22 -p 10080:3000 -v /var/lib/gitea:/data gitea/gitea:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
然後 Gitea 容器已經開始運行,您可以透過個人喜愛的瀏覽器來訪問 http://hostname:10080,假如您想要開始 Clone 儲存庫,可以直接執行 `git clone ssh://git@hostname:10022/username/repo.git` 指令。
|
|
||||||
|
|
||||||
## 需要協助?
|
|
||||||
|
|
||||||
如果本頁中無法解決您的問題,請直接到 [Discord server](https://discord.gg/Gitea),在那邊可以快速得到協助。
|
|
|
@ -1,19 +0,0 @@
|
||||||
---
|
|
||||||
date: "2019-11-12T16:00:00+02:00"
|
|
||||||
title: "Search"
|
|
||||||
slug: "search"
|
|
||||||
sidebar_position: 1
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /de-de/help/search
|
|
||||||
sitemap:
|
|
||||||
priority : 1
|
|
||||||
layout: "search"
|
|
||||||
---
|
|
||||||
|
|
||||||
This file exists solely to respond to /search URL with the related `search` layout template.
|
|
||||||
|
|
||||||
No content shown here is rendered, all content is based in the template layouts/doc/search.html
|
|
||||||
|
|
||||||
Setting a very low sitemap priority will tell search engines this is not important content.
|
|
|
@ -1,19 +0,0 @@
|
||||||
---
|
|
||||||
date: "2019-11-12T16:00:00+02:00"
|
|
||||||
title: "Chercher"
|
|
||||||
slug: "search"
|
|
||||||
sidebar_position: 1
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /fr-fr/help/search
|
|
||||||
sitemap:
|
|
||||||
priority : 1
|
|
||||||
layout: "search"
|
|
||||||
---
|
|
||||||
|
|
||||||
This file exists solely to respond to /search URL with the related `search` layout template.
|
|
||||||
|
|
||||||
No content shown here is rendered, all content is based in the template layouts/doc/search.html
|
|
||||||
|
|
||||||
Setting a very low sitemap priority will tell search engines this is not important content.
|
|
|
@ -1,19 +0,0 @@
|
||||||
---
|
|
||||||
date: "2019-11-12T16:00:00+02:00"
|
|
||||||
title: "搜尋"
|
|
||||||
slug: "search"
|
|
||||||
sidebar_position: 1
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
aliases:
|
|
||||||
- /zh-tw/help/search
|
|
||||||
sitemap:
|
|
||||||
priority : 1
|
|
||||||
layout: "search"
|
|
||||||
---
|
|
||||||
|
|
||||||
This file exists solely to respond to /search URL with the related `search` layout template.
|
|
||||||
|
|
||||||
No content shown here is rendered, all content is based in the template layouts/doc/search.html
|
|
||||||
|
|
||||||
Setting a very low sitemap priority will tell search engines this is not important content.
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
date: "2016-12-27T16:00:00+02:00"
|
|
||||||
title: "使用"
|
|
||||||
slug: "usage"
|
|
||||||
sidebar_position: 35
|
|
||||||
toc: false
|
|
||||||
draft: false
|
|
||||||
menu:
|
|
||||||
sidebar:
|
|
||||||
name: "使用"
|
|
||||||
sidebar_position: 30
|
|
||||||
identifier: "usage"
|
|
||||||
---
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue