0
0
mirror of https://github.com/go-gitea/gitea.git synced 2026-05-11 09:15:31 +02:00

20767 Commits

Author SHA1 Message Date
silverwind
5c2bcdb64c
ci: bump test-unit-shards from 3 to 4
The 3-shard combined unit run came in at 11:42 wall (slowest shard),
slightly worse than the prior parallel-jobs setup (10:55). The
per-shard race-instrumented compile happens cold for each job and
doesn't shard, so per-shard test work was ~67% higher than a clean
3-way split would suggest. N=4 amortizes that overhead across more
runners.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-09 06:24:56 +02:00
silverwind
8337e1c5f3
ci: combine unit shards (3-way), drop rotation, use make generate-go
Replaces test-unit-nogogit + test-unit-gogit with a single test-unit-shards
matrix (3-shard). Each shard runs both the bindata and bindata-gogit test
subsets — round-robin partition of GO_TEST_PACKAGES (123 each) and
find-gogit-test-pkgs.sh (22-23 each). Combined work split 3 ways gives
each shard ~7:46 wall (vs 10:55/7:38 today).

PRs no longer write rotated unit caches: build-cache-rotate is dropped, so
the shared seeded gobuild key is restored but not re-saved per PR push.
Trade-off: cold testcache on every push (vs warm-on-rerun before). Frees
~3 GB of rotated-cache pressure on the 10 GB cap.

Unit shards swap `make backend` for `make generate-go` — only the bindata
codegen is needed; the gitea executable's link step (~10-15s) is wasted on
unit tests since they don't shell out to the binary (db integration tests
do — those keep `make backend`).

New shared tools/partition-by-shard.sh handles validation + round-robin
partitioning; tools/test-integration-shard.sh now uses it. New Makefile
targets: test-backend-shard, test-backend-gogit-shard.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-09 06:05:51 +02:00
silverwind
28e72633e0
ci: rename test-unit-bindata, simplify and address review comments
Rename:
- test-unit-bindata -> test-unit-nogogit. Both jobs run with the
  bindata tag; the meaningful difference is the gogit codepath, and
  the codebase already uses the nogogit/gogit suffix on its
  build-tagged source files.

test-unit-gogit cleanup:
- The gogit-affected package set (modules/git/gitrepo/lfs and direct
  importers) doesn't touch elasticsearch/meilisearch/redis/minio/
  azurite, so drop those services and the matching /etc/hosts step.

Shard runner robustness (Copilot review feedback):
- Validate TEST_SHARD/TEST_TOTAL_SHARDS are positive ints with
  shard in [1, total]; exit 2 on bad input.
- Tighten the test-name grep to require `*testing.T` or `*testing.TB`
  arg, dropping the TestMain false-positive.
- Force LC_ALL=C sort so the partition is deterministic regardless
  of the runner's locale.
- Empty assignment now exits 1 instead of silently passing.

find-gogit-test-pkgs.sh:
- Mirror the Makefile's GO_TEST_PACKAGES exclusions (drop
  models/migrations/..., tests/integration, tests/integration/migration-test).
- Tighten the comment header — the script returns packages WITH TESTS,
  not all callers.
- Drop dead alternatives from the import-match regex.

Makefile test-backend-gogit:
- Fail when the script fails or returns no packages instead of
  silently running `go test` with no args.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-09 05:45:05 +02:00
silverwind
b266c64d24
ci: fix LFS test pollution and exclude integration packages from gogit pass
Two CI failures from sharding/splitting:

1. TestAPILFSNotStarted and TestAPILFSLocksNotStarted set
   setting.LFS.StartServer = false but never restore it. In the
   pre-sharding sequential run a later test happened to set it back
   to true, but with sharding TestLFSRender and
   TestChangeRepoFilesForUpdateWithFileRename can land in a different
   shard and run with LFS disabled. Use test.MockVariableValue so
   the change is scoped to the test that makes it.

2. find-gogit-test-pkgs.sh enumerated every package whose tests
   import the gogit modules, including tests/integration,
   tests/integration/migration-test, and models/migrations/...
   These need a real DB / dedicated harness and have to be tested
   separately; mirror GO_TEST_PACKAGES' filter to exclude them.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-09 02:12:39 +02:00
silverwind
9b6cd19493
ci: 3-shard db tests, split test-unit into bindata/gogit jobs
- pgsql/sqlite/mysql/mssql: increase shards from 2 to 3, dropping
  per-job wall time from ~13 min to ~9-10 min on the slowest (pgsql).
- test-unit: split into test-unit-bindata and test-unit-gogit running
  in parallel, with a test-unit aggregator preserving the existing
  check name. Each gets its own rotated cache (cache-name unit and
  unit-gogit) so testcache accumulates per variant.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-09 01:49:25 +02:00
silverwind
4037cd51c3
ci: derive gogit test packages dynamically from imports
Replaces the hardcoded list of three top-level paths
(modules/git, modules/gitrepo, modules/lfs) with an at-build-time
derivation. tools/find-gogit-test-pkgs.sh queries `go list` for
every package whose own code or test code imports any of the
gogit-affected modules — currently 72 packages — and feeds that
list into `make test-backend-gogit`.

This restores coverage that the static list dropped: callers like
models/git, services/repository, modules/repository, etc., whose
unit tests transitively exercise gogit/nogogit code paths via the
modules/git API.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-09 01:41:51 +02:00
silverwind
8d6615f939
ci: shard integration tests across 2 runners per database
Splits each database integration job (pgsql/sqlite/mysql/mssql) into
two parallel matrix shards. Test names are enumerated from the
integration source and partitioned round-robin (~301/302 of 603
tests per shard); names that don't match the shard are filtered out
via -test.run.

Migration tests (~50-90 s, fast, sequential) only run on shard 1.

The original job names (test-pgsql, test-sqlite, test-mysql,
test-mssql) are kept as one-step aggregator jobs that depend on the
shards job and report success only when all shards passed. This
keeps any branch-protection rule referencing those names valid.

Source-based enumeration is used because the test binary's
-test.list calls TestMain, which boots the full Gitea environment
and panics without a configured database.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-09 01:35:03 +02:00
silverwind
ad9b633757
ci: restore make backend in db-test jobs
The previous commit replaced `make backend` with `make generate-go`
on the assumption that the gitea executable was unused by the
integration tests. It is used: integration tests install git
pre-receive hooks that shell out to the binary, so `git push`
operations during tests fail with "No such file or directory".

Reverts that part of the previous change; the other cache-reuse
tweaks remain.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-09 01:26:34 +02:00
silverwind
ff77a928ae
ci: improve cache reuse and drop redundant build work
- e2e and checks-backend: enable build-cache restore so they hit the
  seeded gobuild cache.
- pgsql/sqlite/mysql/mssql: replace `make backend` with
  `make generate-go`. Integration tests build their own test binary
  and never invoke the gitea executable; only bindata generation is
  needed.
- unit-tests-gogit: narrow to packages with gogit/nogogit-tagged
  files via a new `test-backend-gogit` Makefile target. Other
  packages produce identical compiled output regardless of the gogit
  tag, so retesting them was busywork.
- cache-seeder: stop the lint job from competing with the gobuild
  job on the shared non-rotated gobuild key.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-09 01:13:29 +02:00
silverwind
a5d81d9ce2
perf: replace goheader linter with custom check (#37599)
Replace the [slow `goheader` linter](https://github.com/denis-tingaikin/go-header/issues/70) with a
custom check.

Local go lint time is down from 247s to 32s. 6 new files that were
previously undetected because of `//go:build ignore` are fixed. The exit
code of the make target preserves the golangci-lint exit code, if
present.

Also refactors and consolidates the linting targets.

Signed-off-by: silverwind <me@silverwind.io>
Signed-off-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2026-05-08 23:39:35 +02:00
dependabot[bot]
73c0239f94
build(deps): bump fast-uri from 3.1.0 to 3.1.2 (#37616)
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to
3.1.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fastify/fast-uri/releases">fast-uri's
releases</a>.</em></p>
<blockquote>
<h2>v3.1.2</h2>
<h2>⚠️ Security Release</h2>
<ul>
<li>Fix for <a
href="https://github.com/fastify/fast-uri/security/advisories/GHSA-v39h-62p7-jpjc">https://github.com/fastify/fast-uri/security/advisories/GHSA-v39h-62p7-jpjc</a></li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Handle malformed fragment decoding as a parse error by <a
href="https://github.com/mcollina"><code>@​mcollina</code></a> in <a
href="https://redirect.github.com/fastify/fast-uri/pull/171">fastify/fast-uri#171</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/fastify/fast-uri/compare/v3.1.1...v3.1.2">https://github.com/fastify/fast-uri/compare/v3.1.1...v3.1.2</a></p>
<h2>v3.1.1</h2>
<h2>⚠️ Security Release</h2>
<ul>
<li>Fix for <a
href="https://github.com/fastify/fast-uri/security/advisories/GHSA-q3j6-qgpj-74h6">https://github.com/fastify/fast-uri/security/advisories/GHSA-q3j6-qgpj-74h6</a></li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>build(deps-dev): bump tsd from 0.32.0 to 0.33.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/fastify/fast-uri/pull/148">fastify/fast-uri#148</a></li>
<li>build(deps): bump actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/fastify/fast-uri/pull/149">fastify/fast-uri#149</a></li>
<li>chore(.npmrc): ignore scripts by <a
href="https://github.com/Fdawgs"><code>@​Fdawgs</code></a> in <a
href="https://redirect.github.com/fastify/fast-uri/pull/150">fastify/fast-uri#150</a></li>
<li>build(deps-dev): remove <code>@​fastify/pre-commit</code> by <a
href="https://github.com/Fdawgs"><code>@​Fdawgs</code></a> in <a
href="https://redirect.github.com/fastify/fast-uri/pull/151">fastify/fast-uri#151</a></li>
<li>build(deps): bump actions/setup-node from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/fastify/fast-uri/pull/152">fastify/fast-uri#152</a></li>
<li>ci(ci): add concurrency config by <a
href="https://github.com/Fdawgs"><code>@​Fdawgs</code></a> in <a
href="https://redirect.github.com/fastify/fast-uri/pull/153">fastify/fast-uri#153</a></li>
<li>build(deps): bump actions/setup-node from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/fastify/fast-uri/pull/154">fastify/fast-uri#154</a></li>
<li>build(deps): bump actions/checkout from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/fastify/fast-uri/pull/156">fastify/fast-uri#156</a></li>
<li>chore(license): standardise license notice by <a
href="https://github.com/Fdawgs"><code>@​Fdawgs</code></a> in <a
href="https://redirect.github.com/fastify/fast-uri/pull/159">fastify/fast-uri#159</a></li>
<li>style: remove trailing whitespace by <a
href="https://github.com/Fdawgs"><code>@​Fdawgs</code></a> in <a
href="https://redirect.github.com/fastify/fast-uri/pull/161">fastify/fast-uri#161</a></li>
<li>ci: remove unused github files by <a
href="https://github.com/Tony133"><code>@​Tony133</code></a> in <a
href="https://redirect.github.com/fastify/fast-uri/pull/162">fastify/fast-uri#162</a></li>
<li>chore: update readme by <a
href="https://github.com/Tony133"><code>@​Tony133</code></a> in <a
href="https://redirect.github.com/fastify/fast-uri/pull/164">fastify/fast-uri#164</a></li>
<li>build(deps): bump
fastify/workflows/.github/workflows/plugins-ci-package-manager.yml from
5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/fastify/fast-uri/pull/165">fastify/fast-uri#165</a></li>
<li>build(deps): bump fastify/workflows/.github/workflows/plugins-ci.yml
from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/fastify/fast-uri/pull/166">fastify/fast-uri#166</a></li>
<li>build(deps-dev): bump neostandard from 0.12.2 to 0.13.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/fastify/fast-uri/pull/167">fastify/fast-uri#167</a></li>
<li>ci: add lock-threads workflow by <a
href="https://github.com/Fdawgs"><code>@​Fdawgs</code></a> in <a
href="https://redirect.github.com/fastify/fast-uri/pull/169">fastify/fast-uri#169</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Tony133"><code>@​Tony133</code></a> made
their first contribution in <a
href="https://redirect.github.com/fastify/fast-uri/pull/162">fastify/fast-uri#162</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.1">https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="919dd8ea76"><code>919dd8e</code></a>
Bumped v3.1.2</li>
<li><a
href="c65ba57371"><code>c65ba57</code></a>
fixup: linting</li>
<li><a
href="6c86c17c3d"><code>6c86c17</code></a>
Merge commit from fork</li>
<li><a
href="a95158ad30"><code>a95158a</code></a>
Handle malformed fragment decoding without throwing (<a
href="https://redirect.github.com/fastify/fast-uri/issues/171">#171</a>)</li>
<li><a
href="cea547c91c"><code>cea547c</code></a>
Bumped v3.1.1</li>
<li><a
href="876ce79b66"><code>876ce79</code></a>
Merge commit from fork</li>
<li><a
href="dcdf690b71"><code>dcdf690</code></a>
ci: add lock-threads workflow (<a
href="https://redirect.github.com/fastify/fast-uri/issues/169">#169</a>)</li>
<li><a
href="c860e6589b"><code>c860e65</code></a>
build(deps-dev): bump neostandard from 0.12.2 to 0.13.0 (<a
href="https://redirect.github.com/fastify/fast-uri/issues/167">#167</a>)</li>
<li><a
href="9b4c6dc82f"><code>9b4c6dc</code></a>
build(deps): bump fastify/workflows/.github/workflows/plugins-ci.yml (<a
href="https://redirect.github.com/fastify/fast-uri/issues/166">#166</a>)</li>
<li><a
href="85d09a9f7a"><code>85d09a9</code></a>
build(deps): bump
fastify/workflows/.github/workflows/plugins-ci-package-mana...</li>
<li>Additional commits viewable in <a
href="https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fast-uri&package-manager=npm_and_yarn&previous-version=3.1.0&new-version=3.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/go-gitea/gitea/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-08 22:46:57 +02:00
wxiaoguang
1ed935f911
fix: make clone URL respect public URL detection setting (#37615)
Fix #37614
2026-05-09 04:26:09 +08:00
techknowlogick
ef040c5fc4
chore(deps): bump go-git/go-git/v5 to 5.19.0 (#37608)
Co-authored-by: Nicolas <bircni@icloud.com>
2026-05-08 19:11:13 +00:00
Giteabot
c81eca9904
chore(deps): update action dependencies (#37603)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/labeler](https://redirect.github.com/actions/labeler) |
action | minor | `v6.0.1` → `v6.1.0` |
|
[aws-actions/configure-aws-credentials](https://redirect.github.com/aws-actions/configure-aws-credentials)
| action | patch | `v6.1.0` → `v6.1.1` |
|
[docker.elastic.co/elasticsearch/elasticsearch](https://www.elastic.co/products/elasticsearch)
([source](https://redirect.github.com/elastic/elasticsearch)) | service
| patch | `8.19.14` → `8.19.15` |
|
[renovatebot/github-action](https://redirect.github.com/renovatebot/github-action)
| action | patch | `v46.1.12` → `v46.1.13` |

---

### Release Notes

<details>
<summary>actions/labeler (actions/labeler)</summary>

###
[`v6.1.0`](https://redirect.github.com/actions/labeler/releases/tag/v6.1.0)

[Compare
Source](https://redirect.github.com/actions/labeler/compare/v6.0.1...v6.1.0)

#### Enhancements

- Add changed-files-labels-limit and max-files-changed configuration
options to cap the number of labels added by
[@&#8203;bluca](https://redirect.github.com/bluca) in
[#&#8203;923](https://redirect.github.com/actions/labeler/pull/923)

#### Bug Fixes

- Improve Labeler Action documentation and permission error handling by
[@&#8203;chiranjib-swain](https://redirect.github.com/chiranjib-swain)
in [#&#8203;897](https://redirect.github.com/actions/labeler/pull/897)
- Preserve manually added labels during workflow runs and refine label
synchronization logic by
[@&#8203;chiranjib-swain](https://redirect.github.com/chiranjib-swain)
in [#&#8203;917](https://redirect.github.com/actions/labeler/pull/917)

#### Dependency Updates

- Upgrade brace-expansion from 1.1.11 to 1.1.12 and document breaking
changes in v6 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;877](https://redirect.github.com/actions/labeler/pull/877)
- Upgrade minimatch from 10.0.1 to 10.2.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;926](https://redirect.github.com/actions/labeler/pull/926)
- Upgrade dependencies
([@&#8203;actions/core](https://redirect.github.com/actions/core),
[@&#8203;actions/github](https://redirect.github.com/actions/github),
js-yaml, minimatch,
[@&#8203;typescript-eslint](https://redirect.github.com/typescript-eslint))
by [@&#8203;Copilot](https://redirect.github.com/Copilot) in
[#&#8203;934](https://redirect.github.com/actions/labeler/pull/934)

#### New Contributors

- [@&#8203;chiranjib-swain](https://redirect.github.com/chiranjib-swain)
made their first contribution in
[#&#8203;897](https://redirect.github.com/actions/labeler/pull/897)
- [@&#8203;bluca](https://redirect.github.com/bluca) made their first
contribution in
[#&#8203;923](https://redirect.github.com/actions/labeler/pull/923)
- [@&#8203;Copilot](https://redirect.github.com/Copilot) made their
first contribution in
[#&#8203;934](https://redirect.github.com/actions/labeler/pull/934)

**Full Changelog**:
<https://github.com/actions/labeler/compare/v6...v6.1.0>

</details>

<details>
<summary>aws-actions/configure-aws-credentials
(aws-actions/configure-aws-credentials)</summary>

###
[`v6.1.1`](https://redirect.github.com/aws-actions/configure-aws-credentials/releases/tag/v6.1.1)

[Compare
Source](https://redirect.github.com/aws-actions/configure-aws-credentials/compare/v6.1.0...v6.1.1)

##### What's Changed

- chore(deps-dev): bump esbuild from 0.27.4 to 0.28.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1722](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1722)
- chore(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from 25.5.0
to 25.5.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1723](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1723)
- chore(deps-dev): bump
[@&#8203;smithy/property-provider](https://redirect.github.com/smithy/property-provider)
from 4.2.12 to 4.2.13 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1724](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1724)
- chore(deps): bump proxy-agent from 8.0.0 to 8.0.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1726](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1726)
- chore(deps): bump
[@&#8203;smithy/node-http-handler](https://redirect.github.com/smithy/node-http-handler)
from 4.5.1 to 4.5.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1725](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1725)
- chore(deps): bump
[@&#8203;aws-sdk/client-sts](https://redirect.github.com/aws-sdk/client-sts)
from 3.1020.0 to 3.1025.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1727](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1727)
- chore(deps): bump basic-ftp from 5.2.0 to 5.2.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1728](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1728)
- chore(deps): bump basic-ftp from 5.2.1 to 5.2.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1729](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1729)
- chore(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from 25.5.2
to 25.6.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1730](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1730)
- chore(deps-dev): bump
[@&#8203;aws-sdk/credential-provider-env](https://redirect.github.com/aws-sdk/credential-provider-env)
from 3.972.24 to 3.972.25 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1733](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1733)
- chore(deps): bump
[@&#8203;aws-sdk/client-sts](https://redirect.github.com/aws-sdk/client-sts)
from 3.1025.0 to 3.1030.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1732](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1732)
- chore(deps-dev): bump
[@&#8203;biomejs/biome](https://redirect.github.com/biomejs/biome) from
2.4.10 to 2.4.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1734](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1734)
- chore(deps): bump basic-ftp from 5.2.2 to 5.3.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1736](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1736)
- chore(deps-dev): bump memfs from 4.57.1 to 4.57.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1737](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1737)
- chore(deps-dev): bump typescript from 6.0.2 to 6.0.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1740](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1740)
- chore(deps-dev): bump
[@&#8203;smithy/property-provider](https://redirect.github.com/smithy/property-provider)
from 4.2.13 to 4.2.14 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1741](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1741)
- chore(deps-dev): bump
[@&#8203;aws-sdk/credential-provider-env](https://redirect.github.com/aws-sdk/credential-provider-env)
from 3.972.25 to 3.972.28 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1742](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1742)
- chore(deps): bump
[@&#8203;aws-sdk/client-sts](https://redirect.github.com/aws-sdk/client-sts)
from 3.1030.0 to 3.1033.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1743](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1743)
- chore(deps-dev): bump
[@&#8203;biomejs/biome](https://redirect.github.com/biomejs/biome) from
2.4.11 to 2.4.12 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1739](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1739)
- chore(deps-dev): bump
[@&#8203;biomejs/biome](https://redirect.github.com/biomejs/biome) from
2.4.12 to 2.4.13 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1747](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1747)
- chore(deps): bump postcss from 8.5.6 to 8.5.12 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1752](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1752)
- chore(deps): bump
[@&#8203;smithy/node-http-handler](https://redirect.github.com/smithy/node-http-handler)
from 4.6.0 to 4.6.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1750](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1750)
- chore(deps-dev): bump
[@&#8203;aws-sdk/credential-provider-env](https://redirect.github.com/aws-sdk/credential-provider-env)
from 3.972.28 to 3.972.32 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1751](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1751)
- chore(deps): bump
[@&#8203;aws-sdk/client-sts](https://redirect.github.com/aws-sdk/client-sts)
from 3.1033.0 to 3.1038.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1749](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1749)
- chore: release 6.1.1 by
[@&#8203;lehmanmj](https://redirect.github.com/lehmanmj) in
[#&#8203;1757](https://redirect.github.com/aws-actions/configure-aws-credentials/pull/1757)

**Full Changelog**:
<https://github.com/aws-actions/configure-aws-credentials/compare/v6...v6.1.1>

</details>

<details>
<summary>elastic/elasticsearch
(docker.elastic.co/elasticsearch/elasticsearch)</summary>

###
[`v8.19.15`](https://redirect.github.com/elastic/elasticsearch/releases/tag/v8.19.15):
Elasticsearch 8.19.15

[Compare
Source](https://redirect.github.com/elastic/elasticsearch/compare/v8.19.14...v8.19.15)

Downloads: <https://elastic.co/downloads/elasticsearch>
Release notes:
<https://www.elastic.co/guide/en/elasticsearch/reference/8.19/release-notes-8.19.15.html>

</details>

<details>
<summary>renovatebot/github-action (renovatebot/github-action)</summary>

###
[`v46.1.13`](https://redirect.github.com/renovatebot/github-action/releases/tag/v46.1.13)

[Compare
Source](https://redirect.github.com/renovatebot/github-action/compare/v46.1.12...v46.1.13)

##### Documentation

- update references to renovatebot/github-action to v46.1.12
([a871d4d](a871d4d546))

##### Miscellaneous Chores

- **deps:** update dependency
[@&#8203;commitlint/cli](https://redirect.github.com/commitlint/cli) to
v20.5.2
([67a74d1](67a74d123d))
- **deps:** update pnpm to v10.33.1
([5932d6c](5932d6c4e6))
- **deps:** update pnpm to v10.33.2
([580c97f](580c97f45b))

##### Build System

- **deps:** lock file maintenance
([d044e7d](d044e7df57))

##### Continuous Integration

- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.159.1
([a7db9c3](a7db9c38fd))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.159.2
([f9133ef](f9133ef80d))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.160.0
([212d525](212d52574e))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.160.1
([e3443ce](e3443ceef9))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.160.2
([833041b](833041bb68))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.160.4
([60cc865](60cc8654e1))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.160.5
([2c7567a](2c7567a8f8))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.160.6
([35caad2](35caad2c6a))

</details>

---

This PR has been generated by [Mend
Renovate](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuNSIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: Nicolas <bircni@icloud.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2026-05-08 18:30:53 +00:00
silverwind
479bcdb503
fix(actions): fix blank lines after ::endgroup:: (#37597)
`endLogGroup` was incorrectly appending empty `<div>`s, producing a
useless blank line after every group. Before and after:

<img width="250" alt="Screenshot 2026-05-07 at 22 40 40"
src="https://github.com/user-attachments/assets/8baf0fd0-99c8-4648-bf3f-edc6c4b197ec"
/> <img width="250" alt="Screenshot 2026-05-07 at 22 37 12"
src="https://github.com/user-attachments/assets/c45f28ae-1bbf-4b25-9d7b-281c19421f63"
/>

---------

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2026-05-08 17:11:01 +00:00
silverwind
29676adfd3
fix: treat email addresses case-insensitively (#37600)
Fixes #36184 and three more discovered cases.

---
This PR was written with the help of Claude Opus 4.7

---------

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Nicolas <bircni@icloud.com>
2026-05-08 15:14:33 +00:00
Lunny Xiao
7dc3087acd
fix(git): Fix smart http request scope bug (#37583)
Co-authored-by: Nicolas <bircni@icloud.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: silverwind <me@silverwind.io>
2026-05-08 08:30:23 +02:00
Giteabot
243c2d7146
chore(deps): update dependency go to v1.26.3 (#37601)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | golang | patch |
`1.26.2` → `1.26.3` |

---

This PR has been generated by [Mend
Renovate](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuNSIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2026-05-08 05:27:24 +00:00
silverwind
82d40296b0
chore(deps): bump tool deps and pin, update golangci-lint (#37574)
1. Pin all makefile go deps to exact version, renovate will bump them in the future
2. Bump all deps and golangci-lint and fix all new issues, most are from modernize

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-08 04:49:34 +00:00
silverwind
b4085c7e3c
build: update pnpm to v11 (#37591)
Update to https://github.com/pnpm/pnpm/releases/tag/v11.0.0

- move all pnpm settings to `pnpm-workspace.yaml`, pnpm v11 only reads
that file
- drop redundant or no-op settings
- disable `strictDepBuilds` to avoid having to manually specify deps
with build scripts, this is equivalent to v10 where it will not execute
and warn.
- add workarounds for https://github.com/SukkaW/nolyfill/issues/119
- remove dead eslintrc entry

---
This PR was written with the help of Claude Opus 4.7

---------

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-08 04:17:20 +00:00
silverwind
bba748e8b5
chore(renovate): detect Makefile tools, enable go bumps (#37595)
- fix detection of Makefile tools and group them separately
- Enable `go.mod` `go` directive bumps, schedule it at any time and
exempt it from the release-age delay

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-08 03:44:10 +00:00
wxiaoguang
2b93eaf55b
refactor: only reset a database table when the table's data was changed (#37573)
Reduce CI time

Saves about 3 minutes for each test suit

test-unit: 13min -> 10min (-race)
test-pgsql: 24min -> 20min (-race)
test-mysql: 15min -> 12min
test-mssql: 16min -> 12min

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-08 00:49:40 +00:00
silverwind
6a509da96e
refactor: lint bare fill/stroke colors, add vars for git graph color series (#37543)
- make `scale-unlimited/declaration-strict-value` cover fill and stroke
- add new color vars for color series in gitgraph
- move most rule disablement to per-line
- remove dead highlight colors since https://github.com/go-gitea/gitea/pull/34948
- move stylelint config to ts now that the linked issue is fixed

Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-07 21:18:23 +00:00
Nicolas
601c6eb1a0
fix(actions): report individual step status in workflow job API response (#37592)
When a workflow job failed, the API response reported all steps as
failed — even steps that had completed successfully before the failing
step. `ToActionWorkflowJob` was calling `ToActionsStatus(job.Status)`
for every step instead of `ToActionsStatus(step.Status)`, so the job's
overall conclusion was propagated to each step.

Each `ActionTaskStep` has its own `Status` field that tracks the actual
outcome of that step independently of the job result.

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2026-05-07 20:30:34 +02:00
silverwind
e9f82b0ee3
ci: allow chore type in PR title lint (#37575)
Follow-up to #37498, adds `chore` to the allowed PR title types so the
set matches the standard
[`@commitlint/config-conventional`](868983c18e/%40commitlint/config-conventional (type-enum)).

---
This PR was written with the help of Claude Opus 4.7

---------

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-07 17:18:10 +00:00
silverwind
3e69d6adbe
refactor: remove obsolete export (#37579)
Leftover from
2644bb8490,
not needed because module no longer does top-level-await.

Co-authored-by: Nicolas <bircni@icloud.com>
2026-05-07 17:12:52 +00:00
Nicolas
c9b9e376fb
fix: Invalid UTF-8 commit messages in JSON API responses (#37542) 2026-05-07 16:19:45 +02:00
Nicolas
2200ed7499
fix: use consistent GetUser family functions (#37553)
fixes adding collaborative owners in Actions settings when the user or
organization name contains capital letters.

Fixes #37548

---------

Signed-off-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2026-05-07 06:10:19 +00:00
Kausthubh J Rao
19f01691d5
fix(api): return 409 message instead of empty JSON for wrong commit id (#37572)
## Issue
Closes #37217 

The error string was getting lost while returning due to `ctx.JSON()`
which cannot serialize the `error` object.

## Fix

Use `ctx.APIError()` to return proper error messages back to the client.
2026-05-07 02:03:08 +00:00
Kausthubh J Rao
630258410d
fix(actions): prevent panic when workflow contains null jobs (#37570)
## The issue

Closes #37568. Basically due to empty fields being present in the
actions file, the jobs would be produced as `nil` inside `jobparser.go`
. Because of this when we call `Parse` on the `jobparser` module.

```go
Needs:   job.Needs(),
```

would propagate the `nil` job down the chain. 

## The fix

For now i decide to fix it by guarding with an `if job == nil` check.

---------

Signed-off-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2026-05-07 01:36:34 +00:00
GiteaBot
cf48aa0188 [skip ci] Updated translations via Crowdin 2026-05-07 01:06:22 +00:00
wxiaoguang
a39af1a829
refactor: use modernc sqlite driver as default (#37562)
The mattn driver is still kept, can be enabled by
TAGS="sqlite_mattn sqlite_unlock_notify"

---------

Co-authored-by: TheFox0x7 <thefox0x7@gmail.com>
2026-05-06 18:57:59 +00:00
Copilot
b093c2c43c
refactor(templates): remove ctxData from tmpl files, use ctx.RootData instead (#37567)
Sub-templates have direct access to `ctx.RootData` (the root data map),
so there is no need for callers to explicitly pass it as `ctxData` via `dict`.

Also fix #37569 by the way

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: wxiaoguang <2114189+wxiaoguang@users.noreply.github.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2026-05-06 18:21:48 +00:00
silverwind
ebc058f682
ci: increase renovate frequency and fix RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS (#37565)
1. Sync `RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS` with the recent
`renovate.json5` change (#37537) — the npm group now runs `make svg
nolyfill`, but the workflow allowlist still only matched `^make
(tidy|svg)$`, so the post-upgrade task was being rejected.
2. Bump the cron from daily at 01:00 UTC to hourly at :23, matching the
cadence of Mend's hosted Renovate App. Hourly gives sub-hour
responsiveness to dependency-dashboard checkbox interactions and
PR-close reactions; the `:23` offset avoids the GHA scheduler congestion
at multiples of 15.

Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-06 18:37:09 +02:00
Giteabot
35dfc6b9e1
fix(deps): update go dependencies (#37541)
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
Co-authored-by: Nicolas <bircni@icloud.com>
2026-05-06 06:58:09 +00:00
silverwind
97211bf0c5
refactor(deps): migrate from nektos/act fork to gitea/runner (#37557)
Migrate to https://gitea.com/gitea/runner/releases/tag/v1.0.0 which
includes the `act` package directory previously referenced by
`nektos/act`.

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-06 05:54:31 +02:00
Nicolas
45ffe5aa6a
ci: lint PR titles with commitlint (#37498)
## Summary
- Enforce **Conventional Commits** on PR titles (PRs are squash-merged,
so the PR title becomes the final commit message).
- Add a local `make lint-pr-title` target so contributors can validate
titles before pushing.

## Why
We squash-merge PRs, which means the final repository history is largely
shaped by **PR titles**. Enforcing a consistent Conventional Commits
format makes:
- **Release notes & changelogs easier to generate** (types like `feat` /
`fix` can be grouped automatically).
- **History easier to scan** (uniform structure, optional scopes,
explicit breaking changes via `!`).
- **Automation more reliable** (future tooling can infer category and
scope from the title).

## PR title format
```text
type(scope)!: subject
type: one of build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test
scope: optional (e.g. web, api, actions, repo, …)
!: optional, indicates a breaking change
subject: short, imperative, no trailing period
```

## Examples
```text
feat(web): add dark mode toggle
fix(api): avoid panic when repo is missing
chore(ci): lint PR titles with commitlint
refactor(templates): reduce duplication in repo list rendering
feat!: remove legacy OAuth endpoint
```

## Local testing
```text
make deps-frontend
make lint-pr-title PR_TITLE="feat(web): add dark mode toggle"
```

---------

Signed-off-by: Nicolas <bircni@icloud.com>
Co-authored-by: nb <nb@users.noreply.local>
Co-authored-by: GPT-5.2 <gpt-5.2@openai.com>
2026-05-05 17:24:09 +00:00
wxiaoguang
a5fd8e7e86
Make ServeSetHeaders default to download attachment if filename exists (#37552)
Fix #37550
2026-05-05 16:41:49 +00:00
Kalash Thakare ☯︎
ee803ad05d
fix(actions): validate workflow param to prevent 500 error (#37546)
Fix #37523
2026-05-05 16:19:52 +00:00
wxiaoguang
6ba907d89c
Fix various problems (#37547)
1. Fix ugly commit form "warning" message
2. Use JSONError for "Update PR Branch" response 
3. Remove useless "timeline" class
4. Make timeline review default to "comment" to avoid icon missing
5. Align PR's "command line instructions" UI
6. Simply "Update PR branch" button logic

And then some TODOs are fixed.

---------

Signed-off-by: wxiaoguang <wxiaoguang@gmail.com>
2026-05-05 15:54:07 +00:00
premsreelathasugeendran
5e8004a515
docs: fix 4 typos in CHANGELOG.md (#37549)
Docs polish — pure typo fixes, nothing under `src/`.

## Files

- `CHANGELOG.md`
  - line 1386: `appearence` → `appearance`
  - line 2117: `succesfully` → `successfully`
  - line 2301: `preceeded` → `preceded`
  - line 5593: `paramater` → `parameter`

Fixes were applied from a curated correction list, with code blocks /
inline code / URLs left alone.
2026-05-05 17:25:44 +02:00
GiteaBot
c471af4266 [skip ci] Updated translations via Crowdin 2026-05-05 01:01:53 +00:00
Giteabot
62300eab3b
chore(deps): update action dependencies (#37540)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [bitnamilegacy/minio](https://redirect.github.com/bitnami/containers)
([source](https://redirect.github.com/bitnami/containers/tree/HEAD/bitnami/minio))
| service | minor | `2021.3.17` → `2021.12.29` | |
| [bitnamilegacy/minio](https://redirect.github.com/bitnami/containers)
([source](https://redirect.github.com/bitnami/containers/tree/HEAD/bitnami/minio))
| service | minor | `2023.8.31` → `2023.12.23` | |
| [bitnamilegacy/mysql](https://redirect.github.com/bitnami/containers)
([source](https://redirect.github.com/bitnami/containers/tree/HEAD/bitnami/mysql))
| service | minor | `8.0` → `8.4` | |
|
[renovatebot/github-action](https://redirect.github.com/renovatebot/github-action)
| action | patch | `v46.1.10` → `v46.1.12` | `v46.1.13` |

---

### Release Notes

<details>
<summary>renovatebot/github-action (renovatebot/github-action)</summary>

###
[`v46.1.12`](https://redirect.github.com/renovatebot/github-action/releases/tag/v46.1.12)

[Compare
Source](https://redirect.github.com/renovatebot/github-action/compare/v46.1.11...v46.1.12)

##### Bug Fixes

- **deps:** update dependency
[@&#8203;actions/core](https://redirect.github.com/actions/core) to
v3.0.1
([e8a6055](e8a6055d6d))

##### Documentation

- update references to renovatebot/github-action to v46.1.11
([317011a](317011a6ef))

##### Miscellaneous Chores

- **deps:** update dependency typescript-eslint to v8.59.0
([8e3560a](8e3560ab95))

##### Continuous Integration

- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.142.0
([0fee00d](0fee00dc59))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.142.1
([c7cfc88](c7cfc88250))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.144.0
([39e7d09](39e7d09c7b))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.145.0
([0bbd415](0bbd415a9c))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.146.0
([889c739](889c7399ca))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.147.0
([7addce6](7addce6f1e))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.150.0
([804ce16](804ce1618f))

###
[`v46.1.11`](https://redirect.github.com/renovatebot/github-action/releases/tag/v46.1.11)

[Compare
Source](https://redirect.github.com/renovatebot/github-action/compare/v46.1.10...v46.1.11)

##### Documentation

- update references to renovatebot/github-action to v46.1.10
([0b264d2](0b264d27f8))

##### Miscellaneous Chores

- **deps:** update actions/setup-node action to v6.4.0
([951a814](951a81487a))
- **deps:** update dependency prettier to v3.8.3
([a763833](a763833a7d))
- **deps:** update dependency typescript-eslint to v8.58.2
([119d68e](119d68e8f6))

##### Build System

- **deps:** lock file maintenance
([f82feed](f82feedb56))

##### Continuous Integration

- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.132.3
([99cc805](99cc805d75))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.133.0
([a63d39b](a63d39be1e))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.135.0
([955b000](955b0000ba))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.136.0
([65167cd](65167cdb3f))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.136.1
([7b21b86](7b21b86ced))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.136.3
([28a2dc0](28a2dc07b8))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.137.0
([b0cf2a4](b0cf2a4c91))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.138.0
([3700882](3700882c45))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.138.1
([f516ce2](f516ce2f92))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.138.3
([3411548](3411548d9c))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.139.0
([5201886](5201886b45))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.139.1
([5856263](5856263af8))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.139.4
([999691d](999691d7f3))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.139.5
([f703a54](f703a54130))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.139.6
([3ba85c2](3ba85c2979))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.139.7
([96f2f09](96f2f09b9d))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.139.8
([5af45e5](5af45e5b84))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.140.0
([01e9139](01e91393d3))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.141.0
([814a2a4](814a2a47c0))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.141.1
([fb3abdf](fb3abdf7fa))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.141.2
([e3a9af5](e3a9af55ac))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.141.5
([4f14b2f](4f14b2f81d))
- **deps:** update ghcr.io/renovatebot/renovate docker tag to v43.141.6
([2357784](2357784955))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Only on Monday (`* * * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuNSIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2026-05-04 23:06:00 +00:00
silverwind
762154cbd7
fix: Fix nolyfill for renovate (#37537)
Run `nolyfill` as a renovate post-upgrade step alongside `make svg`, so
npm dep bumps keep `pnpm.overrides` in sync.

---
This PR was written with the help of Claude Opus 4.7

---------

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-04 21:39:20 +00:00
wxiaoguang
a90d5dd131
Refactor pull request view (7) (#37524)
Almost done

`pull_merge_box.tmpl` only has about 80 lines now, and (almost) all
variable accesses are strictly typed.

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
Co-authored-by: Nicolas <bircni@icloud.com>
2026-05-04 20:13:38 +00:00
Sebastian Ertz
89a49de0fd
Update go js py dependencies (#37525)
| go | from | to |
| --- | --- | --- |
| connectrpc.com/connect | `1.19.1 ` | `1.19.2` |
| github.com/Azure/go-ntlmssp | `0.1.0` | `0.1.1` |
| github.com/alecthomas/chroma/v2 | `2.23.1` | `2.24.1` |
| github.com/aws/aws-sdk-go-v2/credentials | `1.19.15` | `1.19.16` |
| github.com/aws/aws-sdk-go-v2/service/codecommit | `1.33.13` |
`1.33.14` |
| github.com/blevesearch/bleve/v2 | `2.5.7` | `2.6.0` |
| github.com/caddyserver/certmagic | `0.25.2` | `0.25.3` |
| github.com/fsnotify/fsnotify | `1.9.0` | `1.10.1` |
| github.com/getkin/kin-openapi | `0.134.0` | `0.137.0` |
| github.com/go-co-op/gocron/v2 | `2.21.0` | `2.21.1` |
| github.com/go-sql-driver/mysql | `1.9.3` | `1.10.0` |
| github.com/go-webauthn/webauthn | `0.16.5` | `0.17.2` |
| github.com/klauspost/compress | `1.18.5` | `1.18.6` |
| github.com/mattn/go-isatty | `0.0.21` | `0.0.22` |
| github.com/mattn/go-sqlite3 | `1.14.42` | `1.14.44` |
| github.com/minio/minio-go/v7 | `7.0.100` | `7.1.0` |
| github.com/redis/go-redis/v9 | `9.18.0` | `9.19.0` |
| google.golang.org/grpc | `1.80.0` | `1.81.0` |
| gopkg.in/ini.v1 | `1.67.1` | `1.67.2` |


| js | from | to |
| --- | --- | --- |
| @codemirror/search | `6.6.0` | `6.7.0` |
| @primer/octicons | `19.24.1` | `19.25.0` |
| clippie | `4.1.14` | `4.1.15` |
| easymde | `2.20.0` | `2.21.0` |
| postcss | `8.5.10` | `8.5.13` |
| rolldown-license-plugin | `3.0.1` | `3.0.4` |
| swagger-ui-dist | `5.32.4` | `5.32.5` |
| vite | `8.0.9` | `8.0.10` |
| vite-string-plugin | `2.0.2` | `2.0.4` |
| vue | `3.5.32` | `3.5.33` |
| @typescript-eslint/parser | `8.59.0` | `8.59.1` |
| eslint | `10.2.1` | `10.3.0` |
| eslint-plugin-vue | `10.8.0` | `10.9.0` |
| globals | `17.5.0` | `17.6.0` |
| material-icon-theme | `5.33.1` | `5.34.0` |
| spectral-cli-bundle | `1.0.7` | `1.0.8` |
| stylelint | `17.8.0` | `17.10.0` |
| typescript-eslint | `8.59.0` | `8.59.1` |
| updates | `17.16.3` | `17.16.8` |
| vitest | `4.1.4` | `4.1.5` |
| vue-tsc | `3.2.7` | `3.2.8` |
| pnpm | `10.33.0` | `10.33.2` |

| py | from | to |
| --- | --- | --- |
| click | `8.3.2` | `8.3.3` |
| pathspec | `1.0.4` | `1.1.1` |

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-04 19:27:47 +00:00
silverwind
198ef500d2
Don't unblock run-level-concurrency-blocked runs in the resolver (#37461)
Fixes #37446.

The job-status resolver in `checkJobsOfCurrentRunAttempt` only
considered `needs` and job-level concurrency when transitioning jobs out
of `Blocked`. When something drove the resolver against a run blocked
solely by workflow-level concurrency — for example, a sibling run in the
same group entering the queue and triggering `EmitJobsIfReadyByRun` —
the run's job silently became `Waiting` while another run still held the
concurrency group, and the runner could pick it up, defeating the
concurrency guarantee.

The fix bails out of the resolver when the run's latest attempt is still
blocked by run-level concurrency. `checkRunConcurrency` re-evaluates
when the holding run finishes.

Covered by a unit test
(`Test_checkJobsOfCurrentRunAttempt_RunLevelConcurrencyKeepsJobsBlocked`
in `services/actions/job_emitter_test.go`) that sets up a Running holder
attempt and a Blocked sibling attempt in the same concurrency group
directly in the DB, calls `checkJobsOfCurrentRunAttempt`, and asserts
the blocked job stays `Blocked`. Fails on master, passes with the fix.

---
This PR was written with the help of Claude Opus 4.7

---------

Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
2026-05-04 11:10:42 +00:00
wxiaoguang
dd17521808
Refactor pull request view (6) (#37522)
Clean up legacy logic.

* Use backend logic to choose PR timeline icon color
* Always use the Vue form to merge, remove the "StillCanManualMerge" logic
2026-05-04 14:15:33 +08:00
wxiaoguang
f26f71f1b2
Refactor pull request view (5) (#37517)
Clean up templates, remove various CSS patches.

By the way, fix incorrect NewRequest URLs in tests.
2026-05-03 18:53:24 +00:00
Rayan Salhab
c4c50bee7f
fix: persist mirror repository metadata (#37519)
The migration repository model now carries Website alongside Description, the GitHub/Gitea downloaders populate it, and mirror finalization persists both description and website so the About section is not empty after creating a mirror.

Fixes #37495

---------

Signed-off-by: cyphercodes <cyphercodes@users.noreply.github.com>
Co-authored-by: cyphercodes <cyphercodes@users.noreply.github.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2026-05-03 16:47:02 +00:00