Skip to content

Commit b8a140c

Browse files
committed
Merge branch 'main' into mainzjj
* main: (25 commits) Add WebKit to e2e test matrix (go-gitea#37298) Don't add useless labels which will bother changelog generation (go-gitea#37267) Fix Repository transferring page (go-gitea#37277) Stabilize issue-project e2e test, increase timeout factor (go-gitea#37297) Fix Mermaid diagrams failing when node labels contain line breaks (go-gitea#37296) Add project column picker to issue and pull request sidebar (go-gitea#37037) Fix container auth for public instance (go-gitea#37290) Refactor frontend `tw-justify-between` layouts to `flex-left-right` (go-gitea#37291) Update Nix flake (go-gitea#37284) Workflow Artifact Info Hover (go-gitea#37100) [skip ci] Updated translations via Crowdin release notes for 1.26.0 (go-gitea#37282) Enhance GetActionWorkflow to support fallback references (go-gitea#37189) Refactor LDAP tests (go-gitea#37274) Remove `SubmitEvent` polyfill (go-gitea#37276) Upgrade go-git to v5.18.0 (go-gitea#37268) Avoid top-level await (go-gitea#37272) Frontend iframe renderer framework: 3D models, OpenAPI (go-gitea#37233) pull: Fix CODEOWNERS absolute path matching. (go-gitea#37244) Swift registry metadata: preserve more JSON fields and accept empty metadata (go-gitea#37254) ...
2 parents 757dd2b + 6f76121 commit b8a140c

192 files changed

Lines changed: 2364 additions & 2007 deletions

File tree

Some content is hidden

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

.changelog.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,7 @@ groups:
3737
name: BUGFIXES
3838
labels:
3939
- type/bug
40-
-
41-
name: API
42-
labels:
43-
- modifies/api
40+
4441
-
4542
name: TESTING
4643
labels:

.github/labeler.yml

Lines changed: 0 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,3 @@
1-
modifies/docs:
2-
- changed-files:
3-
- any-glob-to-any-file:
4-
- "**/*.md"
5-
- "docs/**"
6-
7-
modifies/templates:
8-
- changed-files:
9-
- all-globs-to-any-file:
10-
- "templates/**"
11-
- "!templates/swagger/v1_json.tmpl"
12-
13-
modifies/api:
14-
- changed-files:
15-
- any-glob-to-any-file:
16-
- "routers/api/**"
17-
- "templates/swagger/v1_json.tmpl"
18-
19-
modifies/cli:
20-
- changed-files:
21-
- any-glob-to-any-file:
22-
- "cmd/**"
23-
24-
modifies/translation:
25-
- changed-files:
26-
- any-glob-to-any-file:
27-
- "options/locale/*.ini"
28-
29-
modifies/migrations:
30-
- changed-files:
31-
- any-glob-to-any-file:
32-
- "models/migrations/**"
33-
34-
modifies/internal:
35-
- changed-files:
36-
- any-glob-to-any-file:
37-
- ".air.toml"
38-
- "Makefile"
39-
- "Dockerfile"
40-
- "Dockerfile.rootless"
41-
- ".dockerignore"
42-
- "docker/**"
43-
- ".editorconfig"
44-
- ".eslintrc.cjs"
45-
- ".golangci.yml"
46-
- ".markdownlint.yaml"
47-
- ".spectral.yaml"
48-
- "stylelint.config.*"
49-
- ".yamllint.yaml"
50-
- ".github/**"
51-
- ".gitea/**"
52-
- ".devcontainer/**"
53-
- "build/**"
54-
- "contrib/**"
55-
56-
modifies/dependencies:
57-
- changed-files:
58-
- any-glob-to-any-file:
59-
- "package.json"
60-
- "pnpm-lock.yaml"
61-
- "pyproject.toml"
62-
- "uv.lock"
63-
- "go.mod"
64-
- "go.sum"
65-
66-
modifies/go:
67-
- changed-files:
68-
- any-glob-to-any-file:
69-
- "**/*.go"
70-
71-
modifies/frontend:
72-
- changed-files:
73-
- any-glob-to-any-file:
74-
- "*.js"
75-
- "*.ts"
76-
- "web_src/**"
77-
781
docs-update-needed:
792
- changed-files:
803
- any-glob-to-any-file:

.github/workflows/files-changed.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ on:
2121
value: ${{ jobs.detect.outputs.yaml }}
2222
json:
2323
value: ${{ jobs.detect.outputs.json }}
24+
e2e:
25+
value: ${{ jobs.detect.outputs.e2e }}
2426

2527
jobs:
2628
detect:
@@ -38,6 +40,7 @@ jobs:
3840
swagger: ${{ steps.changes.outputs.swagger }}
3941
yaml: ${{ steps.changes.outputs.yaml }}
4042
json: ${{ steps.changes.outputs.json }}
43+
e2e: ${{ steps.changes.outputs.e2e }}
4144
steps:
4245
- uses: actions/checkout@v6
4346
- uses: dorny/paths-filter@v4
@@ -107,3 +110,8 @@ jobs:
107110
108111
json:
109112
- "**/*.json"
113+
114+
e2e:
115+
- "tests/e2e/**"
116+
- "tools/test-e2e.sh"
117+
- "playwright.config.ts"

.github/workflows/pull-compliance.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ jobs:
122122
go-version-file: go.mod
123123
check-latest: true
124124
- run: make deps-backend deps-tools
125-
- run: make lint-go-windows lint-go-gitea-vet
125+
- run: make lint-go-windows
126126
env:
127127
TAGS: bindata sqlite sqlite_unlock_notify
128128
GOOS: windows

.github/workflows/pull-e2e-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
contents: read
1515

1616
test-e2e:
17-
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.frontend == 'true'
17+
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.frontend == 'true' || needs.files-changed.outputs.e2e == 'true'
1818
needs: files-changed
1919
runs-on: ubuntu-latest
2020
permissions:

.golangci.yml

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ linters:
1313
- forbidigo
1414
- gocheckcompilerdirectives
1515
- gocritic
16+
- goheader
1617
- govet
1718
- ineffassign
1819
- mirror
@@ -51,6 +52,14 @@ linters:
5152
desc: do not use the go-chi cache package, use gitea's cache system
5253
- pkg: github.com/pkg/errors
5354
desc: use builtin errors package instead
55+
migrations:
56+
files:
57+
- '**/models/migrations/**/*.go'
58+
deny:
59+
- pkg: code.gitea.io/gitea/models$
60+
desc: migrations must not depend on the models package
61+
- pkg: code.gitea.io/gitea/modules/structs
62+
desc: migrations must not depend on modules/structs (API structures change over time)
5463
nolintlint:
5564
allow-unused: false
5665
require-explanation: true
@@ -109,6 +118,11 @@ linters:
109118
enable:
110119
- nilness
111120
- unusedwrite
121+
goheader:
122+
values:
123+
regexp:
124+
HEADER: '((Copyright [^\n]+|All rights reserved\.)\n)*Copyright \d{4} (The (Gogs|Gitea) Authors|Gitea Authors|Gitea)\.( All rights reserved\.)?(\n(Copyright [^\n]+|All rights reserved\.))*\nSPDX-License-Identifier: [\w.-]+'
125+
template: '{{ HEADER }}'
112126
exclusions:
113127
generated: lax
114128
presets:
@@ -158,9 +172,16 @@ issues:
158172
max-same-issues: 0
159173
formatters:
160174
enable:
161-
- gofmt
175+
- gci
162176
- gofumpt
163177
settings:
178+
gci:
179+
custom-order: true
180+
sections:
181+
- standard
182+
- prefix(code.gitea.io/gitea)
183+
- blank
184+
- default
164185
gofumpt:
165186
extra-rules: true
166187
exclusions:
@@ -170,9 +191,6 @@ formatters:
170191
- .venv
171192
- public
172193
- web_src
173-
- third_party$
174-
- builtin$
175-
- examples$
176194

177195
run:
178196
timeout: 10m

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@
77
- Never force-push, amend, or squash unless asked. Use new commits and normal push for pull request updates
88
- Preserve existing code comments, do not remove or rewrite comments that are still relevant
99
- In TypeScript, use `!` (non-null assertion) instead of `?.`/`??` when a value is known to always exist
10+
- For CSS layout, prefer `flex-*` helpers over per-child `tw-ml-*` / `tw-mr-*` margins; fall back to `tw-*` utilities when specificity requires `!important`
1011
- Include authorship attribution in issue and pull request comments
1112
- Add `Co-Authored-By` lines to all commits, indicating name and model used

CHANGELOG.md

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This changelog goes through the changes that have been made in each release
44
without substantial changes to our git log; to see the highlights of what has
55
been added to each release, please refer to the [blog](https://blog.gitea.com).
66

7-
## [1.26.0-rc0](https://github.com/go-gitea/gitea/releases/tag/v1.26.0-rc0) - 2026-04-07
7+
## [1.26.0](https://github.com/go-gitea/gitea/releases/tag/v1.26.0) - 2026-04-17
88

99
* BREAKING
1010
* Correct swagger annotations for enums, status codes, and notification state (#37030)
@@ -30,7 +30,8 @@ been added to each release, please refer to the [blog](https://blog.gitea.com).
3030
* Add summary to action runs view (#36883)
3131
* Add user badges (#36752)
3232
* Add configurable permissions for Actions automatic tokens (#36173)
33-
* Add per-runner “Disable/Pause” (#36776)
33+
* Add per-runner "Disable/Pause" (#36776)
34+
* Feature non-zipped actions artifacts (action v7 / nodejs / npm v6.2.0) (#36786)
3435
* PERFORMANCE
3536
* WorkflowDispatch API optionally return runid (#36706)
3637
* Add render cache for SVG icons (#36863)
@@ -41,6 +42,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com).
4142
* Refactor cat-file batch operations and support `--batch-command` approach (#35775)
4243
* Use merge tree to detect conflicts when possible (#36400)
4344
* ENHANCEMENTS
45+
* Implement logout redirection for reverse proxy auth setups (#36085) (#37171)
4446
* Adds option to force update new branch in contents routes (#35592)
4547
* Add viewer controller for mermaid (zoom, drag) (#36557)
4648
* Add code editor setting dropdowns (#36534)
@@ -49,7 +51,6 @@ been added to each release, please refer to the [blog](https://blog.gitea.com).
4951
* Allow configuring default PR base branch (fixes #36412) (#36425)
5052
* Add support for RPM Errata (updateinfo.xml) (#37125)
5153
* Require additional user confirmation for making repo private (#36959)
52-
* Feature non-zipped actions artifacts (action v7 / nodejs / npm v6.2.0) (#36786)
5354
* Add `actions.WORKFLOW_DIRS` setting (#36619)
5455
* Avoid opening new tab when downloading actions logs (#36740)
5556
* Implements OIDC RP-Initiated Logout (#36724)
@@ -67,7 +68,7 @@ been added to each release, please refer to the [blog](https://blog.gitea.com).
6768
* Refactor storage content-type handling of ServeDirectURL (#36804)
6869
* Use "Enable Gravatar" but not "Disable" (#36771)
6970
* Use case-insensitive matching for Git error "Not a valid object name" (#36728)
70-
* Add Copy Source to markup comment menu (#36726)
71+
* Add "Copy Source" to markup comment menu (#36726)
7172
* Change image transparency grid to CSS (#36711)
7273
* Add "Run" prefix for unnamed action steps (#36624)
7374
* Persist actions log time display settings in `localStorage` (#36623)
@@ -139,6 +140,20 @@ been added to each release, please refer to the [blog](https://blog.gitea.com).
139140
* Expose content_version for optimistic locking on issue and PR edits (#37035)
140141
* Pass ServeHeaderOptions by value instead of pointer, fine tune httplib tests (#36982)
141142
* BUGFIXES
143+
* Frontend iframe renderer framework: 3D models, OpenAPI (#37233) (#37273)
144+
* Fix CODEOWNERS absolute path matching. (#37244) (#37264)
145+
* Swift registry metadata: preserve more JSON fields and accept empty metadata (#37254) (#37261)
146+
* Fix user ssh key exporting and tests (#37256) (#37258)
147+
* Fix team member avatar size and add tooltip (#37253)
148+
* Fix commit title rendering in action run and blame (#37243) (#37251)
149+
* Fix corrupted JSON caused by goccy library (#37214) (#37220)
150+
* Add test for "fetch redirect", add CSS value validation for external render (#37207) (#37216)
151+
* Fix incorrect concurrency check (#37205) (#37215)
152+
* Fix handle missing base branch in PR commits API (#37193) (#37203)
153+
* Fix encoding for Matrix Webhooks (#37190) (#37201)
154+
* Fix handle fork-only commits in compare API (#37185) (#37199)
155+
* Indicate form field readonly via background, fix RunUser config (#37175, #37180) (#37178)
156+
* Report structurally invalid workflows to users (#37116) (#37164)
142157
* Fix API not persisting pull request unit config when has_pull_requests is not set (#36718)
143158
* Rename CSS variables and improve colorblind themes (#36353)
144159
* Hide `add-matcher` and `remove-matcher` from actions job logs (#36520)
@@ -232,6 +247,9 @@ been added to each release, please refer to the [blog](https://blog.gitea.com).
232247
* Only turn links to current instance into hash links (#36237)
233248
* Fix typos in code comments: doesnt, dont, wont (#36890)
234249
* REFACTOR
250+
* Clean up and improve non-gitea js error filter (#37148) (#37155)
251+
* Always show owner/repo name in compare page dropdowns (#37172) (#37200)
252+
* Remove dead CSS rules (#37173) (#37177)
235253
* Replace Monaco with CodeMirror (#36764)
236254
* Replace CSRF cookie with `CrossOriginProtection` (#36183)
237255
* Replace index with id in actions routes (#36842)
@@ -289,6 +307,9 @@ been added to each release, please refer to the [blog](https://blog.gitea.com).
289307
* Add e2e reaction test, improve accessibility, enable parallel testing (#37081)
290308
* Increase e2e test timeouts on CI to fix flaky tests (#37053)
291309
* BUILD
310+
* Upgrade go-git to v5.18.0 (#37269)
311+
* Replace rollup-plugin-license with rolldown-license-plugin (#37130) (#37158)
312+
* Bump min go version to 1.26.2 (#37139) (#37143)
292313
* Convert locale files from ini to json format (#35489)
293314
* Bump golangci-lint to 2.7.2, enable modernize stringsbuilder (#36180)
294315
* Port away from `flake-utils` (#35675)

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ Here's how to run the test suite:
151151
| :-------------------------------- | :---------------------------------------------------------- |
152152
| ``GITEA_TEST_E2E_DEBUG`` | When set, show Gitea server output |
153153
| ``GITEA_TEST_E2E_FLAGS`` | Additional flags passed to Playwright, for example ``--ui`` |
154-
| ``GITEA_TEST_E2E_TIMEOUT_FACTOR`` | Timeout multiplier (default: 3 on CI, 1 locally) |
154+
| ``GITEA_TEST_E2E_TIMEOUT_FACTOR`` | Timeout multiplier (default: 4 on CI, 1 locally) |
155155

156156
## Translation
157157

Makefile

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ XGO_VERSION := go-1.25.x
1414

1515
AIR_PACKAGE ?= github.com/air-verse/air@v1
1616
EDITORCONFIG_CHECKER_PACKAGE ?= github.com/editorconfig-checker/editorconfig-checker/v3/cmd/editorconfig-checker@v3
17-
GOFUMPT_PACKAGE ?= mvdan.cc/gofumpt@v0.9.2
1817
GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.11.4
1918
GXZ_PACKAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.15
2019
MISSPELL_PACKAGE ?= github.com/golangci/misspell/cmd/misspell@v0.8.0
@@ -206,7 +205,7 @@ clean: ## delete backend and integration files
206205

207206
.PHONY: fmt
208207
fmt: ## format the Go and template code
209-
@GOFUMPT_PACKAGE=$(GOFUMPT_PACKAGE) $(GO) run tools/code-batch-process.go gitea-fmt -w '{file-list}'
208+
$(GO) run $(GOLANGCI_LINT_PACKAGE) fmt
210209
$(eval TEMPLATES := $(shell find templates -type f -name '*.tmpl'))
211210
@# strip whitespace after '{{' or '(' and before '}}' or ')' unless there is only
212211
@# whitespace before it
@@ -278,10 +277,10 @@ lint-frontend: lint-js lint-css ## lint frontend files
278277
lint-frontend-fix: lint-js-fix lint-css-fix ## lint frontend files and fix issues
279278

280279
.PHONY: lint-backend
281-
lint-backend: lint-go lint-go-gitea-vet lint-editorconfig ## lint backend files
280+
lint-backend: lint-go lint-editorconfig ## lint backend files
282281

283282
.PHONY: lint-backend-fix
284-
lint-backend-fix: lint-go-fix lint-go-gitea-vet lint-editorconfig ## lint backend files and fix issues
283+
lint-backend-fix: lint-go-fix lint-editorconfig ## lint backend files and fix issues
285284

286285
.PHONY: lint-js
287286
lint-js: node_modules ## lint js and ts files
@@ -336,11 +335,6 @@ lint-go-windows:
336335
@GOOS= GOARCH= $(GO) install $(GOLANGCI_LINT_PACKAGE)
337336
golangci-lint run
338337

339-
.PHONY: lint-go-gitea-vet
340-
lint-go-gitea-vet: ## lint go files with gitea-vet
341-
@echo "Running gitea-vet..."
342-
@$(GO) vet -vettool="$(shell GOOS= GOARCH= go tool -n gitea-vet)" ./...
343-
344338
.PHONY: lint-editorconfig
345339
lint-editorconfig:
346340
@echo "Running editorconfig check..."
@@ -524,8 +518,7 @@ test-mssql-migration: migrations.mssql.test migrations.individual.mssql.test
524518

525519
.PHONY: playwright
526520
playwright: deps-frontend
527-
@# on GitHub Actions VMs, playwright's system deps are pre-installed
528-
@pnpm exec playwright install $(if $(GITHUB_ACTIONS),,--with-deps) chromium firefox $(PLAYWRIGHT_FLAGS)
521+
@pnpm exec playwright install --with-deps chromium firefox webkit $(PLAYWRIGHT_FLAGS)
529522

530523
.PHONY: test-e2e
531524
test-e2e: playwright $(EXECUTABLE_E2E)
@@ -730,7 +723,6 @@ deps-backend: ## install backend dependencies
730723
deps-tools: ## install tool dependencies
731724
$(GO) install $(AIR_PACKAGE) & \
732725
$(GO) install $(EDITORCONFIG_CHECKER_PACKAGE) & \
733-
$(GO) install $(GOFUMPT_PACKAGE) & \
734726
$(GO) install $(GOLANGCI_LINT_PACKAGE) & \
735727
$(GO) install $(GXZ_PACKAGE) & \
736728
$(GO) install $(MISSPELL_PACKAGE) & \

0 commit comments

Comments
 (0)