Skip to content

chore: update tool versions and pin unpinned dependencies - #130

Merged
tehw0lf merged 1 commit into
mainfrom
chore/update-and-pin-tool-versions
Aug 22, 2026
Merged

chore: update tool versions and pin unpinned dependencies#130
tehw0lf merged 1 commit into
mainfrom
chore/update-and-pin-tool-versions

Conversation

@tehw0lf

@tehw0lf tehw0lf commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Updates

Tool Alt Neu
Trivy (Binary) v0.69.3 v0.74.0
docker/setup-buildx-action v4.2.0 v4.3.0
github/codeql-action/upload-sarif v4.37.7 v4.37.8
Node.js 24.16.0 24.19.0 (LTS)

Der wichtigste Punkt ist Trivy: die Binary war auf v0.69.3 vom 2026-03-03 gepinnt, also ~5,5 Monate alt — bei einem Vulnerability-Scanner heißt das eine veraltete Detection-Engine im Security-Gate. Keine Breaking Changes in den Release Notes v0.70→v0.74.

Zusätzlich war die Trivy-Version inkonsistent: trivy-action@v0.36.0 bringt per Default v0.70.0 mit, während die manuellen Installationen v0.69.3 nutzten — Filesystem- und Docker-Scan liefen also mit unterschiedlichen Engines. Die Action bekommt jetzt explizit version: "v0.74.0", damit alle drei Scans identisch sind.

Die Trivy-Cache-Keys enthalten die Version und invalidieren dadurch automatisch.

Pinning

Drei Stellen umgingen bisher das ansonsten konsequente SHA-Pinning:

  • dtolnay/rust-toolchain@stable war ein mutable Branch-Ref — genau das Supply-Chain-Risiko, gegen das das SHA-Pinning überall sonst schützt, und für Dependabot unsichtbar. Jetzt auf SHA 4360b52 gepinnt.

    Wichtig zum Verhalten: der stable-Branch setzt lediglich den Default des toolchain-Inputs, er wählt nicht zur Laufzeit eine Rust-Version. test-and-build.yml übergibt toolchain ohnehin schon explizit; publish-crates-io.yml tat das nicht und bekommt deshalb jetzt toolchain: stable explizit gesetzt, damit das Verhalten unverändert bleibt. Rust selbst wird weiterhin zur Laufzeit aufgelöst — das SHA pinnt nur den Action-Code.

  • pip install semgrep==1.174.0

  • pip install bandit[toml]==1.9.4

Beide waren komplett ungepinnt, jeder Run zog die neueste Version. Das machte Builds nicht-reproduzierbar und war ein ungeprüfter Ausführungspfad im Security-Gate. Trade-off: diese Pins brauchen künftig manuelle Pflege, damit die Detection-Regeln nicht veralten — Dependabot deckt pip install in run-Steps nicht ab.

Nicht geändert

Die übrigen 22 Actions sind bereits auf der neuesten Version (checkout v7.0.1, cache v6.1.0, setup-node v7.0.0, upload/download-artifact, attest v4.2.2, anchore/scan-action v7.4.0, setup-uv v10.0.1, build-push-action v7.3.0, login-action v4.6.0, action-gh-release v3.0.2, zaproxy/*, nx-set-shas v5.0.1, pip-audit v1.1.0).

Validierung

  • actionlint .github/workflows/*.yml → exit 0
  • Alle neuen SHAs gegen die GitHub API dereferenziert und gegen die Versions-Kommentare geprüft
  • version-Input als von trivy-action@v0.36.0 unterstützt bestätigt (nicht stillschweigend wirkungslos)
  • semgrep 1.174.0, bandit 1.9.4 und Trivy v0.74.0 als existierend verifiziert

Summary by CodeRabbit

  • Chores

    • Updated the project’s supported Node.js version to 24.19.0 across build, test, publishing, and release processes.
    • Pinned the Rust stable toolchain for more consistent builds.
    • Updated container build and security scanning tools.
    • Refreshed static analysis and code security reporting integrations.
  • Documentation

    • Updated documented Node.js version references to match the current tooling.

Updates:
- trivy: v0.69.3 -> v0.74.0 (binary was ~5.5 months old, stale
  vulnerability database). Also pins the trivy-action to the same
  version so filesystem and docker scans no longer run different
  engines (the action defaulted to v0.70.0).
- docker/setup-buildx-action: v4.2.0 -> v4.3.0
- github/codeql-action/upload-sarif: v4.37.7 -> v4.37.8
- node: 24.16.0 -> 24.19.0 (current LTS)

Pinning (previously mutable / unpinned):
- dtolnay/rust-toolchain@stable -> SHA pin. The stable branch only
  sets the toolchain input default, so publish-crates-io.yml now
  passes toolchain: stable explicitly to keep behaviour identical.
  Rust itself is still resolved at runtime.
- semgrep -> ==1.174.0
- bandit[toml] -> ==1.9.4

Validated with actionlint; all pinned SHAs and versions verified to
resolve upstream.
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c747261c-8e27-4a3b-a8d4-130742dcf1c4

📥 Commits

Reviewing files that changed from the base of the PR and between 5637cc3 and a39df16.

📒 Files selected for processing (10)
  • .github/workflows/npm-audit-autofix.yml
  • .github/workflows/post-publish-verification.yml
  • .github/workflows/publish-crates-io.yml
  • .github/workflows/publish-docker-image.yml
  • .github/workflows/publish-npm-libraries.yml
  • .github/workflows/release-android-apk.yml
  • .github/workflows/security-scan-artifacts.yml
  • .github/workflows/security-scan-source.yml
  • .github/workflows/test-and-build.yml
  • CLAUDE.md

Included review availability: 1 review is currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.


📝 Walkthrough

Walkthrough

The pull request updates Node.js, Rust, Trivy, Semgrep, Bandit, CodeQL, and Docker Buildx versions across CI, publishing, release, and security workflows. It also aligns the documented Node.js version.

Changes

Workflow maintenance

Layer / File(s) Summary
Runtime and publishing tool updates
.github/workflows/npm-audit-autofix.yml, .github/workflows/publish-npm-libraries.yml, .github/workflows/release-android-apk.yml, .github/workflows/test-and-build.yml, .github/workflows/publish-crates-io.yml, .github/workflows/publish-docker-image.yml
Workflows now use Node.js 24.19.0. Rust uses a pinned stable toolchain commit. Docker Buildx uses v4.3.0.
Security workflow tool updates
.github/workflows/post-publish-verification.yml, .github/workflows/security-scan-artifacts.yml, .github/workflows/security-scan-source.yml
Security workflows now use updated Trivy, Semgrep, Bandit, CodeQL, Docker Buildx, and Node.js versions.
Documentation version alignment
CLAUDE.md
The documented Node.js version is updated to v24.19.0.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to a39df

This PR updates security and build tooling and pins previously floating dependencies to make workflow runs more consistent; no actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the workflow tool updates and dependency pinning described in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (10 skipped: 10 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/update-and-pin-tool-versions

Comment @coderabbitai help to get the list of available commands.

@tehw0lf
tehw0lf merged commit c59cdd3 into main Aug 22, 2026
3 checks passed
@tehw0lf
tehw0lf deleted the chore/update-and-pin-tool-versions branch August 22, 2026 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant