chore(deps): pin dependencies - #17
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot could not run the full agentic suite for this review because it was automatically requested on a bot-authored pull request. Request a review from Copilot under Reviewers to retry with the full agentic suite. Improved support for bot-authored pull requests is coming soon.
This PR hardens GitHub Actions workflows by pinning third-party actions to specific commit SHAs for improved supply-chain security and reproducibility.
Changes:
- Pinned common actions (checkout, rust-toolchain, rust-cache, etc.) to immutable commit SHAs across CI, release, and audit workflows.
- Updated release-plz and other workflow actions to SHA-pinned references.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| .github/workflows/release.yaml | Pins release workflow actions to commit SHAs. |
| .github/workflows/release-plz.yaml | Pins checkout/rust-toolchain/release-plz actions to commit SHAs. |
| .github/workflows/ci.yaml | Pins CI actions (checkout/toolchain/cache/codecov/etc.) to commit SHAs. |
| .github/workflows/audit.yaml | Pins audit workflow actions (checkout/toolchain/cache/cargo-deny) to commit SHAs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
`renovate.json` extends `helpers:pinGitHubActionDigests` (present since the repo skeleton, ENG-4676), so Renovate rewrites every `uses:` tag into `owner/action@<sha> # vX`. Three assertions written later in ENG-4686 / ENG-4692 matched on the bare tag with a file-wide `contains`, so the repo's own supply-chain policy failed its own tests as soon as Renovate acted on it (PR #17: all 6 `test` rows + `coverage` red). Replaces those with a `pins_action_at` helper that accepts either form — the floating tag or a digest annotated with it — while still rejecting what the original assertions existed to catch: a branch ref (`@main`), an unannotated digest, and a digest whose comment names a different version. Matching is now per-line and exact, so `v0.5` is no longer satisfied by a `v0.51` tag. Fixes the two currently-failing assertions (cargo-deny-action, release-plz-action) and the latent third (rustsec/audit-check), which passes only because Renovate has not resolved a digest for it yet. The helper is duplicated across the two test files rather than shared: each workflow test file in this repo is self-contained and already keeps its own copy of `repo_root`/`read_workflow`. No workflow, config, or library code changed — assertions only. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Jimbo Freedman <jimbo@spot-ship.com>
|
Pushed Why it was red
So the repo’s own supply-chain policy failed its own tests the moment Renovate acted on it. The tests were the defect, not the pins. FixA No workflow, config, or library code touched — assertions only. VerificationLocal, on CI: 19/19 green, Two notes for whoever merges
|
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
This PR contains the following updates:
3c634982eb1d8be18b497005785211d5960a26af69b9fd7d14cda84d2c7215f41049aaConfiguration
📅 Schedule: (in timezone UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.