Repository navigation
fix(actions_lock): accept gh-actions-lock v0.0.3 lockfiles - #932
hyperpolymath wants to merge 2 commits into
Conversation
gh-actions-lock 0.2.0 writes version 'v0.0.3', whose only change is an
optional per-dependency hostname (github.com or a lowercase *.ghe.com).
ActionsLock accepted only v0.0.2, so every relocked repo, hypatia's own
included, failed with {:unsupported_version, "v0.0.3"} and broke
'Validate Hypatia Baseline' and the scan across the estate.
Accept both versions. Under v0.0.3, validate the hostname and reject a
duplicate one; a hostname line in a v0.0.2 lock is still malformed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 42 minutes. View limit details
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e314c0b3e9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…r host The schema allows github.com or one 1-63 character tenant label before .ghe.com, so multi-label and overlong hosts are now rejected. owner_id and repo_id are defined on the recorded hostname, so identity checks now compare only dependencies on the same host (nil = home host): a mixed data-residency lock with acme/foo at home and acme/bar on github.com is valid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
|
The red checks on this PR come from
I'm leaving these alone here so this PR stays narrow. Generated by Claude Code |
|
Add Carrot credits or activate Agent usage billing to use Autofix |
…ck (#934) ## Problem `.github/workflows/actions.lock` has no `hyperpolymath/standards` record. GitHub enforces the lockfile for callers of reusable workflows, so every job that calls a standards workflow (governance, hypatia-scan, mirror, scorecard, secret-scanner) dies at setup with `invalid lockfile pin` for actions those workflows use internally. The first one hit is `actions/checkout@3d3c42e5`. These failures appear on `main` and on every PR, including #932, which can't go green until this lands. The five callers were also pinned to three different standards commits: `571cc734`, `2479cf76` and `da2c748a`. ## Change 1. **d3a8b98:** all five callers are re-pinned to standards `333b06a0` (current `main`, which includes standards#1294, #1297 and #1299). 2. **451d53e:** `actions.lock` is regenerated with the estate repair chain: `relock-sha-keys`, `complete-job-refs`, `close-lock`, then `prune-stale`, all at standards `333b06a0`. The lock was not edited by hand. - The chain ran in CI with a real token, because this session can't reach `dtolnay/rust-toolchain` or `ossf/scorecard-action` through the API. - The run closed the lock (0 dangling refs), `check-lock-sync` passed, and the governance gate at `333b06a0` returned 0 ("Immutable direct and transitive lockfile coverage verified"). - The committed file was applied from the run's diff and matches its `LOCK-SHA256` of `24676ce4c10c2fb16c3bff84dee256901cf7f43857fa2d2dfcaca477362c0707`. This is the same repair as hyperpolymath/proof-burrower#116, hyperpolymath/echidna#439 and hyperpolymath/echidnabot#185. ## Notes - `hypatia-scan.yml` and `mirror.yml` already grant `actions: read`, which the reusables at `333b06a0` request. - The run came from a scratch branch, `claude/new-session-th4e9w-lockregen`, which is never merged and will be deleted after this PR. --- _Generated by [Claude Code](https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
Problem
gh-actions-lock 0.2.0 writes
version: 'v0.0.3'. The only change from v0.0.2 is an optional per-dependencyhostname(github.comor a lowercase*.ghe.com).Hypatia.Rules.ActionsLockaccepted onlyv0.0.2. Every relocked repo therefore failed withinvalid_actions_lock {:unsupported_version, "v0.0.3"}, and that broke Validate Hypatia Baseline and the Hypatia scan across the estate. Seen on standards#1294 and #1296 and on the echidna, echidnabot and proof-burrower pilot PRs. Hypatia's ownactions.lockis v0.0.3, so its test "parses the repository's authoritative generated lockfile" fails onmain.Change
@supported_versions ["v0.0.2", "v0.0.3"]replaces the single version.hostname: '<host>'is accepted when the host isgithub.comor a well-formed lowercase*.ghe.com. A malformed or duplicate hostname is rejected.hostnameline in a v0.0.2 lock is still:malformed_dependency_hostname, so parsing stays fail-closed.docs/rules/catalogue.adocis updated to match.Verification
mix format --check-formattedis clean on both files.test/rules/actions_lock_test.exspasses 13/13 with the patch. On the unpatched module, 2 of those 13 fail: the new v0.0.3 test and the authoritative-lockfile test.Rulesmodule, because hex.pm is unreachable from this session. That test is unchanged by this PR, and CI runs the full suite.Generated by Claude Code