Skip to content

Commit be75761

Browse files
authored
Merge branch 'main' into lunny/commit_status_webhook
2 parents 5e39456 + 2c92c7c commit be75761

File tree

361 files changed

+5968
-3728
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

361 files changed

+5968
-3728
lines changed

.air.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@ exclude_dir = [
2121
]
2222
exclude_regex = ["_test.go$", "_gen.go$"]
2323
stop_on_error = true
24+
25+
[log]
26+
main_only = true

.eslintrc.yaml

Lines changed: 158 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,30 @@ ignorePatterns:
66
- /web_src/fomantic
77
- /public/assets/js
88

9+
parser: "@typescript-eslint/parser"
10+
911
parserOptions:
1012
sourceType: module
1113
ecmaVersion: latest
14+
project: true
15+
extraFileExtensions: [".vue"]
16+
parser: "@typescript-eslint/parser" # for vue plugin - https://eslint.vuejs.org/user-guide/#how-to-use-a-custom-parser
17+
18+
settings:
19+
import/extensions: [".js", ".ts"]
20+
import/parsers:
21+
"@typescript-eslint/parser": [".js", ".ts"]
22+
import/resolver:
23+
typescript: true
1224

1325
plugins:
1426
- "@eslint-community/eslint-plugin-eslint-comments"
1527
- "@stylistic/eslint-plugin-js"
28+
- "@typescript-eslint/eslint-plugin"
1629
- eslint-plugin-array-func
30+
- eslint-plugin-deprecation
1731
- eslint-plugin-github
1832
- eslint-plugin-i
19-
- eslint-plugin-jquery
2033
- eslint-plugin-no-jquery
2134
- eslint-plugin-no-use-extend-native
2235
- eslint-plugin-regexp
@@ -34,6 +47,7 @@ overrides:
3447
- files: ["web_src/**/*"]
3548
globals:
3649
__webpack_public_path__: true
50+
htmx: true
3751
process: false # https://github.com/webpack/webpack/issues/15833
3852
- files: ["web_src/**/*", "docs/**/*"]
3953
env:
@@ -103,6 +117,22 @@ overrides:
103117
- files: ["web_src/js/modules/fetch.js", "web_src/js/standalone/**/*"]
104118
rules:
105119
no-restricted-syntax: [2, WithStatement, ForInStatement, LabeledStatement, SequenceExpression]
120+
- files: ["**/*.vue"]
121+
plugins:
122+
- eslint-plugin-vue
123+
- eslint-plugin-vue-scoped-css
124+
extends:
125+
- plugin:vue/vue3-recommended
126+
- plugin:vue-scoped-css/vue3-recommended
127+
rules:
128+
vue/attributes-order: [0]
129+
vue/html-closing-bracket-spacing: [2, {startTag: never, endTag: never, selfClosingTag: never}]
130+
vue/max-attributes-per-line: [0]
131+
vue/singleline-html-element-content-newline: [0]
132+
- files: ["tests/e2e/**"]
133+
plugins:
134+
- eslint-plugin-playwright
135+
extends: plugin:playwright/recommended
106136

107137
rules:
108138
"@eslint-community/eslint-comments/disable-enable-pair": [2]
@@ -182,6 +212,123 @@ rules:
182212
"@stylistic/js/wrap-iife": [2, inside]
183213
"@stylistic/js/wrap-regex": [0]
184214
"@stylistic/js/yield-star-spacing": [2, after]
215+
"@typescript-eslint/adjacent-overload-signatures": [0]
216+
"@typescript-eslint/array-type": [0]
217+
"@typescript-eslint/await-thenable": [2]
218+
"@typescript-eslint/ban-ts-comment": [2, {'ts-expect-error': false, 'ts-ignore': true, 'ts-nocheck': false, 'ts-check': false}]
219+
"@typescript-eslint/ban-tslint-comment": [0]
220+
"@typescript-eslint/ban-types": [2, {extendDefaults: true, types: {Function: false}}]
221+
"@typescript-eslint/class-literal-property-style": [0]
222+
"@typescript-eslint/class-methods-use-this": [0]
223+
"@typescript-eslint/consistent-generic-constructors": [0]
224+
"@typescript-eslint/consistent-indexed-object-style": [0]
225+
"@typescript-eslint/consistent-return": [0]
226+
"@typescript-eslint/consistent-type-assertions": [2, {assertionStyle: as, objectLiteralTypeAssertions: allow}]
227+
"@typescript-eslint/consistent-type-definitions": [2, type]
228+
"@typescript-eslint/consistent-type-exports": [2, {fixMixedExportsWithInlineTypeSpecifier: false}]
229+
"@typescript-eslint/consistent-type-imports": [2, {prefer: type-imports, fixStyle: separate-type-imports, disallowTypeAnnotations: true}]
230+
"@typescript-eslint/default-param-last": [0]
231+
"@typescript-eslint/dot-notation": [0]
232+
"@typescript-eslint/explicit-function-return-type": [0]
233+
"@typescript-eslint/explicit-member-accessibility": [0]
234+
"@typescript-eslint/explicit-module-boundary-types": [0]
235+
"@typescript-eslint/init-declarations": [0]
236+
"@typescript-eslint/max-params": [0]
237+
"@typescript-eslint/member-ordering": [0]
238+
"@typescript-eslint/method-signature-style": [0]
239+
"@typescript-eslint/naming-convention": [0]
240+
"@typescript-eslint/no-array-constructor": [2]
241+
"@typescript-eslint/no-array-delete": [2]
242+
"@typescript-eslint/no-base-to-string": [0]
243+
"@typescript-eslint/no-confusing-non-null-assertion": [2]
244+
"@typescript-eslint/no-confusing-void-expression": [0]
245+
"@typescript-eslint/no-dupe-class-members": [0]
246+
"@typescript-eslint/no-duplicate-enum-values": [2]
247+
"@typescript-eslint/no-duplicate-type-constituents": [2, {ignoreUnions: true}]
248+
"@typescript-eslint/no-dynamic-delete": [0]
249+
"@typescript-eslint/no-empty-function": [0]
250+
"@typescript-eslint/no-empty-interface": [0]
251+
"@typescript-eslint/no-explicit-any": [0]
252+
"@typescript-eslint/no-extra-non-null-assertion": [2]
253+
"@typescript-eslint/no-extraneous-class": [0]
254+
"@typescript-eslint/no-floating-promises": [0]
255+
"@typescript-eslint/no-for-in-array": [2]
256+
"@typescript-eslint/no-implied-eval": [2]
257+
"@typescript-eslint/no-import-type-side-effects": [0] # dupe with consistent-type-imports
258+
"@typescript-eslint/no-inferrable-types": [0]
259+
"@typescript-eslint/no-invalid-this": [0]
260+
"@typescript-eslint/no-invalid-void-type": [0]
261+
"@typescript-eslint/no-loop-func": [0]
262+
"@typescript-eslint/no-loss-of-precision": [2]
263+
"@typescript-eslint/no-magic-numbers": [0]
264+
"@typescript-eslint/no-meaningless-void-operator": [0]
265+
"@typescript-eslint/no-misused-new": [2]
266+
"@typescript-eslint/no-misused-promises": [2, {checksVoidReturn: {attributes: false, arguments: false}}]
267+
"@typescript-eslint/no-mixed-enums": [0]
268+
"@typescript-eslint/no-namespace": [2]
269+
"@typescript-eslint/no-non-null-asserted-nullish-coalescing": [0]
270+
"@typescript-eslint/no-non-null-asserted-optional-chain": [2]
271+
"@typescript-eslint/no-non-null-assertion": [0]
272+
"@typescript-eslint/no-redeclare": [0]
273+
"@typescript-eslint/no-redundant-type-constituents": [2]
274+
"@typescript-eslint/no-require-imports": [0]
275+
"@typescript-eslint/no-restricted-imports": [0]
276+
"@typescript-eslint/no-shadow": [0]
277+
"@typescript-eslint/no-this-alias": [0] # handled by unicorn/no-this-assignment
278+
"@typescript-eslint/no-unnecessary-boolean-literal-compare": [0]
279+
"@typescript-eslint/no-unnecessary-condition": [0]
280+
"@typescript-eslint/no-unnecessary-qualifier": [0]
281+
"@typescript-eslint/no-unnecessary-template-expression": [0]
282+
"@typescript-eslint/no-unnecessary-type-arguments": [0]
283+
"@typescript-eslint/no-unnecessary-type-assertion": [2]
284+
"@typescript-eslint/no-unnecessary-type-constraint": [2]
285+
"@typescript-eslint/no-unsafe-argument": [0]
286+
"@typescript-eslint/no-unsafe-assignment": [0]
287+
"@typescript-eslint/no-unsafe-call": [0]
288+
"@typescript-eslint/no-unsafe-declaration-merging": [2]
289+
"@typescript-eslint/no-unsafe-enum-comparison": [2]
290+
"@typescript-eslint/no-unsafe-member-access": [0]
291+
"@typescript-eslint/no-unsafe-return": [0]
292+
"@typescript-eslint/no-unsafe-unary-minus": [2]
293+
"@typescript-eslint/no-unused-expressions": [0]
294+
"@typescript-eslint/no-unused-vars": [2, {vars: all, args: all, caughtErrors: all, ignoreRestSiblings: false, argsIgnorePattern: ^_, varsIgnorePattern: ^_, caughtErrorsIgnorePattern: ^_, destructuredArrayIgnorePattern: ^_}]
295+
"@typescript-eslint/no-use-before-define": [0]
296+
"@typescript-eslint/no-useless-constructor": [0]
297+
"@typescript-eslint/no-useless-empty-export": [0]
298+
"@typescript-eslint/no-var-requires": [2]
299+
"@typescript-eslint/non-nullable-type-assertion-style": [0]
300+
"@typescript-eslint/only-throw-error": [2]
301+
"@typescript-eslint/parameter-properties": [0]
302+
"@typescript-eslint/prefer-as-const": [2]
303+
"@typescript-eslint/prefer-destructuring": [0]
304+
"@typescript-eslint/prefer-enum-initializers": [0]
305+
"@typescript-eslint/prefer-find": [2]
306+
"@typescript-eslint/prefer-for-of": [2]
307+
"@typescript-eslint/prefer-function-type": [2]
308+
"@typescript-eslint/prefer-includes": [2]
309+
"@typescript-eslint/prefer-literal-enum-member": [0]
310+
"@typescript-eslint/prefer-namespace-keyword": [0]
311+
"@typescript-eslint/prefer-nullish-coalescing": [0]
312+
"@typescript-eslint/prefer-optional-chain": [2, {requireNullish: true}]
313+
"@typescript-eslint/prefer-promise-reject-errors": [0]
314+
"@typescript-eslint/prefer-readonly": [0]
315+
"@typescript-eslint/prefer-readonly-parameter-types": [0]
316+
"@typescript-eslint/prefer-reduce-type-parameter": [0]
317+
"@typescript-eslint/prefer-regexp-exec": [0]
318+
"@typescript-eslint/prefer-return-this-type": [0]
319+
"@typescript-eslint/prefer-string-starts-ends-with": [2, {allowSingleElementEquality: always}]
320+
"@typescript-eslint/promise-function-async": [0]
321+
"@typescript-eslint/require-array-sort-compare": [0]
322+
"@typescript-eslint/require-await": [0]
323+
"@typescript-eslint/restrict-plus-operands": [2]
324+
"@typescript-eslint/restrict-template-expressions": [0]
325+
"@typescript-eslint/return-await": [0]
326+
"@typescript-eslint/strict-boolean-expressions": [0]
327+
"@typescript-eslint/switch-exhaustiveness-check": [0]
328+
"@typescript-eslint/triple-slash-reference": [2]
329+
"@typescript-eslint/typedef": [0]
330+
"@typescript-eslint/unbound-method": [2]
331+
"@typescript-eslint/unified-signatures": [2]
185332
accessor-pairs: [2]
186333
array-callback-return: [2, {checkForEach: true}]
187334
array-func/avoid-reverse: [2]
@@ -203,6 +350,7 @@ rules:
203350
default-case-last: [2]
204351
default-case: [0]
205352
default-param-last: [0]
353+
deprecation/deprecation: [2]
206354
dot-notation: [0]
207355
eqeqeq: [2]
208356
for-direction: [2]
@@ -264,7 +412,7 @@ rules:
264412
i/no-internal-modules: [0]
265413
i/no-mutable-exports: [0]
266414
i/no-named-as-default-member: [0]
267-
i/no-named-as-default: [2]
415+
i/no-named-as-default: [0]
268416
i/no-named-default: [0]
269417
i/no-named-export: [0]
270418
i/no-namespace: [0]
@@ -274,63 +422,14 @@ rules:
274422
i/no-restricted-paths: [0]
275423
i/no-self-import: [2]
276424
i/no-unassigned-import: [0]
277-
i/no-unresolved: [2, {commonjs: true, ignore: ["\\?.+$", ^vitest/]}]
425+
i/no-unresolved: [2, {commonjs: true, ignore: ["\\?.+$"]}]
278426
i/no-unused-modules: [2, {unusedExports: true}]
279427
i/no-useless-path-segments: [2, {commonjs: true}]
280428
i/no-webpack-loader-syntax: [2]
281429
i/order: [0]
282430
i/prefer-default-export: [0]
283431
i/unambiguous: [0]
284432
init-declarations: [0]
285-
jquery/no-ajax-events: [2]
286-
jquery/no-ajax: [2]
287-
jquery/no-animate: [2]
288-
jquery/no-attr: [2]
289-
jquery/no-bind: [2]
290-
jquery/no-class: [0]
291-
jquery/no-clone: [2]
292-
jquery/no-closest: [0]
293-
jquery/no-css: [2]
294-
jquery/no-data: [0]
295-
jquery/no-deferred: [2]
296-
jquery/no-delegate: [2]
297-
jquery/no-each: [0]
298-
jquery/no-extend: [2]
299-
jquery/no-fade: [2]
300-
jquery/no-filter: [0]
301-
jquery/no-find: [0]
302-
jquery/no-global-eval: [2]
303-
jquery/no-grep: [2]
304-
jquery/no-has: [2]
305-
jquery/no-hide: [2]
306-
jquery/no-html: [0]
307-
jquery/no-in-array: [2]
308-
jquery/no-is-array: [2]
309-
jquery/no-is-function: [2]
310-
jquery/no-is: [2]
311-
jquery/no-load: [2]
312-
jquery/no-map: [2]
313-
jquery/no-merge: [2]
314-
jquery/no-param: [2]
315-
jquery/no-parent: [0]
316-
jquery/no-parents: [2]
317-
jquery/no-parse-html: [2]
318-
jquery/no-prop: [2]
319-
jquery/no-proxy: [2]
320-
jquery/no-ready: [2]
321-
jquery/no-serialize: [2]
322-
jquery/no-show: [2]
323-
jquery/no-size: [2]
324-
jquery/no-sizzle: [2]
325-
jquery/no-slide: [2]
326-
jquery/no-submit: [2]
327-
jquery/no-text: [2]
328-
jquery/no-toggle: [2]
329-
jquery/no-trigger: [0]
330-
jquery/no-trim: [2]
331-
jquery/no-val: [0]
332-
jquery/no-when: [2]
333-
jquery/no-wrap: [2]
334433
line-comment-position: [0]
335434
logical-assignment-operators: [0]
336435
max-classes-per-file: [0]
@@ -343,7 +442,7 @@ rules:
343442
multiline-comment-style: [2, separate-lines]
344443
new-cap: [0]
345444
no-alert: [0]
346-
no-array-constructor: [2]
445+
no-array-constructor: [0] # handled by @typescript-eslint/no-array-constructor
347446
no-async-promise-executor: [0]
348447
no-await-in-loop: [0]
349448
no-bitwise: [0]
@@ -387,7 +486,7 @@ rules:
387486
no-global-assign: [2]
388487
no-implicit-coercion: [2]
389488
no-implicit-globals: [0]
390-
no-implied-eval: [2]
489+
no-implied-eval: [0] # handled by @typescript-eslint/no-implied-eval
391490
no-import-assign: [2]
392491
no-inline-comments: [0]
393492
no-inner-declarations: [2]
@@ -493,7 +592,7 @@ rules:
493592
no-lone-blocks: [2]
494593
no-lonely-if: [0]
495594
no-loop-func: [0]
496-
no-loss-of-precision: [2]
595+
no-loss-of-precision: [0] # handled by @typescript-eslint/no-loss-of-precision
497596
no-magic-numbers: [0]
498597
no-misleading-character-class: [2]
499598
no-multi-assign: [0]
@@ -515,7 +614,7 @@ rules:
515614
no-promise-executor-return: [0]
516615
no-proto: [2]
517616
no-prototype-builtins: [2]
518-
no-redeclare: [2]
617+
no-redeclare: [0] # must be disabled for typescript overloads
519618
no-regex-spaces: [2]
520619
no-restricted-exports: [0]
521620
no-restricted-globals: [2, addEventListener, blur, close, closed, confirm, defaultStatus, defaultstatus, error, event, external, find, focus, frameElement, frames, history, innerHeight, innerWidth, isFinite, isNaN, length, location, locationbar, menubar, moveBy, moveTo, name, onblur, onerror, onfocus, onload, onresize, onunload, open, opener, opera, outerHeight, outerWidth, pageXOffset, pageYOffset, parent, print, removeEventListener, resizeBy, resizeTo, screen, screenLeft, screenTop, screenX, screenY, scroll, scrollbars, scrollBy, scrollTo, scrollX, scrollY, self, status, statusbar, stop, toolbar, top, __dirname, __filename]
@@ -548,7 +647,7 @@ rules:
548647
no-unused-expressions: [2]
549648
no-unused-labels: [2]
550649
no-unused-private-class-members: [2]
551-
no-unused-vars: [2, {args: all, argsIgnorePattern: ^_, varsIgnorePattern: ^_, caughtErrorsIgnorePattern: ^_, destructuredArrayIgnorePattern: ^_, ignoreRestSiblings: false}]
650+
no-unused-vars: [0] # handled by @typescript-eslint/no-unused-vars
552651
no-use-before-define: [2, {functions: false, classes: true, variables: true, allowNamedExports: true}]
553652
no-use-extend-native/no-use-extend-native: [2]
554653
no-useless-backreference: [2]
@@ -663,7 +762,7 @@ rules:
663762
regexp/unicode-escape: [0]
664763
regexp/use-ignore-case: [0]
665764
require-atomic-updates: [0]
666-
require-await: [0]
765+
require-await: [0] # handled by @typescript-eslint/require-await
667766
require-unicode-regexp: [0]
668767
require-yield: [2]
669768
sonarjs/cognitive-complexity: [0]
@@ -740,6 +839,7 @@ rules:
740839
unicorn/no-lonely-if: [2]
741840
unicorn/no-magic-array-flat-depth: [0]
742841
unicorn/no-negated-condition: [0]
842+
unicorn/no-negation-in-equality-check: [2]
743843
unicorn/no-nested-ternary: [0]
744844
unicorn/no-new-array: [0]
745845
unicorn/no-new-buffer: [0]

.github/pull_request_template.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
<!-- start tips -->
1+
<!-- start tips -->
22
Please check the following:
33
1. Make sure you are targeting the `main` branch, pull requests on release branches are only allowed for backports.
44
2. Make sure you have read contributing guidelines: https://github.com/go-gitea/gitea/blob/main/CONTRIBUTING.md .
5-
3. Describe what your pull request does and which issue you're targeting (if any).
6-
4. It is recommended to enable "Allow edits by maintainers", so maintainers can help more easily.
7-
5. Your input here will be included in the commit message when this PR has been merged. If you don't want some content to be included, please separate them with a line like `---`.
8-
6. Delete all these tips before posting.
5+
3. For documentations contribution, please go to https://gitea.com/gitea/docs
6+
4. Describe what your pull request does and which issue you're targeting (if any).
7+
5. It is recommended to enable "Allow edits by maintainers", so maintainers can help more easily.
8+
6. Your input here will be included in the commit message when this PR has been merged. If you don't want some content to be included, please separate them with a line like `---`.
9+
7. Delete all these tips before posting.
910
<!-- end tips -->

CONTRIBUTING.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,8 @@ $REWRITTEN_PR_SUMMARY
358358

359359
## Documentation
360360

361-
If you add a new feature or change an existing aspect of Gitea, the documentation for that feature must be created or updated in the same PR.
361+
If you add a new feature or change an existing aspect of Gitea, the documentation for that feature must be created or updated in another PR at [https://gitea.com/gitea/docs](https://gitea.com/gitea/docs).
362+
**The docs directory on main repository will be removed at some time. We will have a yaml file to store configuration file's meta data. After that completed, configuration documentation should be in the main repository.**
362363

363364
## API v1
364365

Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
FROM docker.io/library/golang:1.22-alpine3.20 AS build-env
33

44
ARG GOPROXY
5-
ENV GOPROXY ${GOPROXY:-direct}
5+
ENV GOPROXY=${GOPROXY:-direct}
66

77
ARG GITEA_VERSION
88
ARG TAGS="sqlite sqlite_unlock_notify"
9-
ENV TAGS "bindata timetzdata $TAGS"
9+
ENV TAGS="bindata timetzdata $TAGS"
1010
ARG CGO_EXTRA_CFLAGS
1111

1212
# Build deps
@@ -72,8 +72,8 @@ RUN addgroup \
7272
git && \
7373
echo "git:*" | chpasswd -e
7474

75-
ENV USER git
76-
ENV GITEA_CUSTOM /data/gitea
75+
ENV USER=git
76+
ENV GITEA_CUSTOM=/data/gitea
7777

7878
VOLUME ["/data"]
7979

0 commit comments

Comments
 (0)