chore: bump dependencies via zaojun #27

Manually merged
marvin8 merged 2 commits from chore/stage2-migration into main 2026-08-19 03:05:44 +00:00
Collaborator

Stage-2 migration cleanup for taibai.

The codeberg.org → forge.marvin8.zone source references, docs links, CI
runners, and git remotes were already migrated in a prior change. This PR
finishes the remaining stage-2 dependency work.

Changes:

  • Bump dependencies via zaojun (--format json), applying the ~= minimum
    (aged_version for too_new, latest for compatible/incompatible updates):
    cyclopts 4.22.3→4.22.5, longwei 2.0.3→2.1.0, platformdirs 4.11.0→4.11.2,
    bump-my-version 1.5.0→1.5.1, complexipy 6.2.0→7.0.0, prek 0.4.11→0.4.13,
    ruff 0.16.1→0.16.2, ty 0.0.65→0.0.70, uv 0.12.1→0.12.3.
  • Align pre-commit hook revs (ruff, ty, uv, complexipy) with the pyproject.toml
    versions.
  • Regenerate uv.lock and pylock.toml.

Kept as-is (per the migration tracker):

  • grebedoc.dev upload step (codeberg.org/git-pages/action@v2) — a separate
    service, not tied to Codeberg Pages.

Verification (all green):

  • ruff check . — passed
  • ruff format --check src/ tests/ — 50 files formatted
  • ty check . — passed
  • complexipy . — passed
  • nox -s pytest — 5/5 sessions green (373 tests each, coverage >= 90%)
  • nox -s pysentry — 0 vulnerabilities found
Stage-2 migration cleanup for taibai. The codeberg.org → forge.marvin8.zone source references, docs links, CI runners, and git remotes were already migrated in a prior change. This PR finishes the remaining stage-2 dependency work. Changes: - Bump dependencies via zaojun (`--format json`), applying the `~=` minimum (aged_version for `too_new`, latest for compatible/incompatible updates): cyclopts 4.22.3→4.22.5, longwei 2.0.3→2.1.0, platformdirs 4.11.0→4.11.2, bump-my-version 1.5.0→1.5.1, complexipy 6.2.0→7.0.0, prek 0.4.11→0.4.13, ruff 0.16.1→0.16.2, ty 0.0.65→0.0.70, uv 0.12.1→0.12.3. - Align pre-commit hook revs (ruff, ty, uv, complexipy) with the pyproject.toml versions. - Regenerate `uv.lock` and `pylock.toml`. Kept as-is (per the migration tracker): - grebedoc.dev upload step (`codeberg.org/git-pages/action@v2`) — a separate service, not tied to Codeberg Pages. Verification (all green): - `ruff check .` — passed - `ruff format --check src/ tests/` — 50 files formatted - `ty check .` — passed - `complexipy .` — passed - `nox -s pytest` — 5/5 sessions green (373 tests each, coverage >= 90%) - `nox -s pysentry` — 0 vulnerabilities found
⬆️ (deps) bump dependencies via zaojun
All checks were successful
/ gitleaks (pull_request) Successful in 16s
/ pr-review (pull_request) Successful in 2m31s
/ checks (pull_request) Successful in 3m14s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
475dde15a4
forgejo-actions left a comment

WuMing

Found 4 issue(s). See inline comments below.

## WuMing Found **4** issue(s). See inline comments below.
@ -12,3 +12,3 @@
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.16.1
rev: v0.16.2

security [LOW]

A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash.

**security** [LOW] A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash. <!-- wuming:sha256:3fafd80e583c26fdf6248e2ba0c015050b82be85f5fb1e0eaefb81b4c77783eb -->
marvin8 marked this conversation as resolved
@ -22,3 +22,3 @@
- repo: https://github.com/astral-sh/ty-pre-commit
rev: v0.0.65
rev: v0.0.70

security [LOW]

A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash.

**security** [LOW] A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash. <!-- wuming:sha256:16fadc552148a184205c4da62f348b8dd2f65987f7ce8ddaaf5b8b6a34bfb6d1 -->
marvin8 marked this conversation as resolved
@ -27,3 +27,3 @@
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.12.1
rev: 0.12.3

security [LOW]

A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash.

**security** [LOW] A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash. <!-- wuming:sha256:8a85f37dc0a77c0455337ecbe304da885e84c0fbdb7881da6658f55818653437 -->
marvin8 marked this conversation as resolved
@ -34,3 +34,3 @@
- repo: https://github.com/rohaquinlop/complexipy-pre-commit
rev: v6.2.0
rev: v7.0.0

security [LOW]

A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash.

**security** [LOW] A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash. <!-- wuming:sha256:0024f26fd514e4f30f625ad748ae22fec2c6fc97dabbf69d2448fe454cc7f8dc -->
marvin8 marked this conversation as resolved
Author
Collaborator

🔴 Not actioned — pre-commit revs pinned to version tags by convention

.pre-commit-config.yaml line 14 · .pre-commit-config.yaml line 24 · .pre-commit-config.yaml line 29 · .pre-commit-config.yaml line 36

A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash.

Declining these four findings. The project intentionally pins pre-commit rev: entries to version tags that match the ~= version in pyproject.toml — this is a hard constraint in the global AGENTS.md, which requires aligning the pre-commit rev: to the same version tag as the dependency bump. The entire existing .pre-commit-config.yaml already uses tag revs (pre-commit-hooks v6.0.0, gitleaks v8.30.1, zaojun 1.7.1), so converting only these four changed lines to commit SHAs would introduce an inconsistent mixed convention. These are LOW-severity findings reflecting an established, deliberate convention rather than a defect.

### 🔴 Not actioned — pre-commit revs pinned to version tags by convention [`.pre-commit-config.yaml` line 14](https://forge.marvin8.zone/marvin8/taibai/pulls/27#issuecomment-1625) · [`.pre-commit-config.yaml` line 24](https://forge.marvin8.zone/marvin8/taibai/pulls/27#issuecomment-1626) · [`.pre-commit-config.yaml` line 29](https://forge.marvin8.zone/marvin8/taibai/pulls/27#issuecomment-1627) · [`.pre-commit-config.yaml` line 36](https://forge.marvin8.zone/marvin8/taibai/pulls/27#issuecomment-1628) > A08: Pre-commit hook is pinned to a mutable Git tag rather than an immutable commit SHA. If the upstream tag is moved, CI could execute unaudited code. Pin rev to the full commit hash. Declining these four findings. The project intentionally pins pre-commit `rev:` entries to version tags that match the `~=` version in `pyproject.toml` — this is a hard constraint in the global AGENTS.md, which requires aligning the pre-commit `rev:` to the same version tag as the dependency bump. The entire existing `.pre-commit-config.yaml` already uses tag revs (pre-commit-hooks v6.0.0, gitleaks v8.30.1, zaojun 1.7.1), so converting only these four changed lines to commit SHAs would introduce an inconsistent mixed convention. These are LOW-severity findings reflecting an established, deliberate convention rather than a defect.
👷 Use setup-uv action in weekly-checks workflow
All checks were successful
/ gitleaks (pull_request) Successful in 13s
/ pr-review (pull_request) Successful in 2m21s
/ checks (pull_request) Successful in 2m55s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
625b205938
forgejo-actions left a comment

WuMing

Found 2 issue(s). See inline comments below.

## WuMing Found **2** issue(s). See inline comments below.
@ -12,3 +11,1 @@
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH
- uses: astral-sh/setup-uv@v5

config [LOW]

setup-uv@v5 is used without a version input, so it installs the latest uv release instead of the project-pinned uv~=0.12.3. Add with: { version: '0.12.3' } to keep the workflow reproducible and consistent with the lockfile and pre-commit hook.

**config** [LOW] setup-uv@v5 is used without a `version` input, so it installs the latest uv release instead of the project-pinned `uv~=0.12.3`. Add `with: { version: '0.12.3' }` to keep the workflow reproducible and consistent with the lockfile and pre-commit hook. <!-- wuming:sha256:8cd33bd45b78f1e1fe70b5c31665b38e447653f7b14455559740aafdae1b1796 -->

security [MEDIUM]

The action is pinned to a mutable tag 'v5' rather than a full commit SHA. In a CI/CD pipeline this allows a compromised or changed tag to execute arbitrary code with pipeline secrets. Pin the action to a full-length commit SHA and add the human-readable version as a comment (A08).

**security** [MEDIUM] The action is pinned to a mutable tag 'v5' rather than a full commit SHA. In a CI/CD pipeline this allows a compromised or changed tag to execute arbitrary code with pipeline secrets. Pin the action to a full-length commit SHA and add the human-readable version as a comment (A08). <!-- wuming:sha256:8cd33bd45b78f1e1fe70b5c31665b38e447653f7b14455559740aafdae1b1796 -->
marvin8 marked this conversation as resolved
Author
Collaborator

🔴 Not actioned — setup-uv@v5 is the documented standard

.forgejo/workflows/weekly-checks.yml line 11 · .forgejo/workflows/weekly-checks.yml line 11

setup-uv@v5 is used without a version input…
The action is pinned to a mutable tag 'v5' rather than a full commit SHA…

uses: astral-sh/setup-uv@v5 is the documented standard for this project — it is the exact form prescribed in AGENTS.md as the approved replacement for curl | sh, and is used identically (no version input, tag-pinned) in every other repo's ci.yml. Adding a version input here would make weekly-checks.yml inconsistent with the project's own ci.yml, and pinning the action to a commit SHA is the same A08 class already declined for the pre-commit tags — the tag convention is deliberate.

### 🔴 Not actioned — `setup-uv@v5` is the documented standard [`.forgejo/workflows/weekly-checks.yml` line 11](https://forge.marvin8.zone/marvin8/taibai/pulls/27#issuecomment-1651) · [`.forgejo/workflows/weekly-checks.yml` line 11](https://forge.marvin8.zone/marvin8/taibai/pulls/27#issuecomment-1652) > setup-uv@v5 is used without a `version` input… > The action is pinned to a mutable tag 'v5' rather than a full commit SHA… `uses: astral-sh/setup-uv@v5` is the documented standard for this project — it is the exact form prescribed in AGENTS.md as the approved replacement for `curl | sh`, and is used identically (no `version` input, tag-pinned) in every other repo's `ci.yml`. Adding a `version` input here would make `weekly-checks.yml` inconsistent with the project's own `ci.yml`, and pinning the action to a commit SHA is the same A08 class already declined for the pre-commit tags — the tag convention is deliberate.
marvin8 approved these changes 2026-08-19 03:05:02 +00:00
marvin8 manually merged commit 2f69a8e5e5 into main 2026-08-19 03:05:44 +00:00
marvin8 deleted branch chore/stage2-migration 2026-08-19 03:06:56 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
marvin8/taibai!27
No description provided.