Skip to content

aggregate action: self-check the pinned ref against the Cargo.lock - #64

Merged
lann merged 1 commit into
mainfrom
aggregate-ref-check
Aug 7, 2026
Merged

aggregate action: self-check the pinned ref against the Cargo.lock#64
lann merged 1 commit into
mainfrom
aggregate-ref-check

Conversation

@lann

@lann lann commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Fixes #57 (umbrella #14). webcrypto, websocket, and tls each carry an identical workflow step grepping actions/aggregate@<40-hex> refs against the Cargo.lock rev, because uses: cannot interpolate. The action absorbs the guard:

  • New optional cargo-lock input: derive the pin (crate-name-anchored on component-test-sdk, same rule as pins), compare to ${{ github.action_ref }}.
  • Fail on mismatch only when the ref is a 40-hex revision; branch/tag/local refs (including this repo's own uses: ./actions/aggregate dogfood) skip with a notice.
  • No input → no check, so existing consumers are unaffected until their adoption PRs pass cargo-lock: and delete the grep guard + the ct-rev output plumbing that fed it.

A `uses:` ref cannot interpolate, so three consumers carry the same
hand-rolled grep guard asserting the action ref matches the workspace
pin. The action now polices its own ref: with the new optional
cargo-lock input it derives the pin (crate-name-anchored, the pins
rule) and fails on skew when referenced by a 40-hex rev; branch and
tag refs skip with a notice, so in-repo dogfooding and exploratory
use keep working. No input, no check — backward compatible.

Fixes #57.
@lann
lann merged commit b361c34 into main Aug 7, 2026
2 checks passed
@lann
lann deleted the aggregate-ref-check branch August 7, 2026 04:08
@lann lann mentioned this pull request Aug 11, 2026
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.

actions/aggregate: self-check the pinned action ref against the consumer's Cargo.lock rev

1 participant