Skip to content

chore: deps hardening — pin actions, scope permissions#419

Merged
horsefacts merged 5 commits intomainfrom
georgen/supply-chain-hardening
Apr 13, 2026
Merged

chore: deps hardening — pin actions, scope permissions#419
horsefacts merged 5 commits intomainfrom
georgen/supply-chain-hardening

Conversation

@decofe
Copy link
Copy Markdown
Member

@decofe decofe commented Apr 9, 2026

Summary

Supply chain hardening for CI workflows and dependency auditing.

Changes

  • Pin all GitHub Actions to commit SHAs across 9 workflows
  • Fix template injection in changelog workflows (move context values to env: blocks)
  • Scope build.yml permissions per-job (least privilege)
  • Add persist-credentials: false to checkout steps
  • Prevent cache writes on release builds
  • Pin @anthropic-ai/claude-code version in CI
  • Suppress 3 unfixable transitive CVEs in deny.toml with justification
  • Fix Swatinem/rust-cache SHA to use dereferenced commit instead of tag object
  • Add permissions: block and explicit secrets to pr-audit.yml (drop secrets: inherit)
  • Add Dependabot cooldown (7 days) for both cargo and github-actions ecosystems
  • Scope release.yml permissions per-job instead of top-level
  • Replace curl | sh changelogs installer with checksum-verified binary download

Prompted by: georgen

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

✅ Changelog found on PR.

Edit changelog

@grandizzy grandizzy changed the title chore: supply chain hardening — pin actions, fix template injection, scope permissions chore: deps hardening — pin actions, scope permissions Apr 9, 2026
@grandizzy grandizzy marked this pull request as ready for review April 9, 2026 06:54
@grandizzy grandizzy requested a review from horsefacts April 9, 2026 17:10
decofe and others added 5 commits April 13, 2026 21:43
…scope permissions

- Pin all GitHub Actions to commit SHAs (actions/checkout, dtolnay/rust-toolchain,
  Swatinem/rust-cache, actions/upload-artifact, actions/download-artifact)
- Fix template injection in changelog-generate.yml and changelog.yml by moving
  attacker-controllable github.* context values from inline run: to env: blocks
- Scope build.yml permissions per-job instead of workflow-level contents: write
- Add persist-credentials: false to all checkout steps that handle secrets
- Fix cache poisoning: disable cache save on release builds (save-if: false)
- Pin npm install -g @anthropic-ai/claude-code to @1.0.3
- Suppress 3 unfixable CVEs in deny.toml (RUSTSEC-2025-0055, RUSTSEC-2024-0388,
  RUSTSEC-2026-0002) with upstream dependency chain documentation

Co-Authored-By: grandizzy <38490174+grandizzy@users.noreply.github.com>
Co-Authored-By: grandizzy <38490174+grandizzy@users.noreply.github.com>
Co-Authored-By: grandizzy <38490174+grandizzy@users.noreply.github.com>
- Fix Swatinem/rust-cache SHA to use commit instead of tag object
- Add permissions block and explicit secrets to pr-audit.yml
- Add cooldown (7 days) to Dependabot config
- Scope release.yml permissions per-job
- Replace curl|sh with checksum-verified binary download for changelogs

Co-Authored-By: grandizzy <38490174+grandizzy@users.noreply.github.com>
@decofe decofe force-pushed the georgen/supply-chain-hardening branch from 6751d10 to 1141254 Compare April 13, 2026 21:43
@horsefacts horsefacts merged commit 916e8ab into main Apr 13, 2026
14 checks passed
@horsefacts horsefacts deleted the georgen/supply-chain-hardening branch April 13, 2026 21:53
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.

3 participants