Skip to content

PB-3032: Snapshot checkout contracts per commit - #347

Open
zhming0 wants to merge 1 commit into
mainfrom
pb-3032-checkout-contract-snapshots
Open

PB-3032: Snapshot checkout contracts per commit#347
zhming0 wants to merge 1 commit into
mainfrom
pb-3032-checkout-contract-snapshots

Conversation

@zhming0

@zhming0 zhming0 commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Why

Workflows pinned to historical actions/checkout commits fail when those commits fall outside the current release and main snapshots. Blanket future admission is compatibility-unsafe even though the native adapter never executes upstream code: declared inputs, defaults, and outputs changed between commits.

Closes PB-3032.

What

  • Snapshot immutable commits reachable from upstream tags, main, master, and releases/v1 through releases/v6, covering 254 SHAs across 16 contracts—159 more SHAs than before.
  • Validate explicit inputs and preserve full-history defaults per commit, and expose ref and commit outputs only when the manifest declares both. This corrects the previous pre-v4.2 output classification.
  • Keep unknown and future SHAs fail-closed until the snapshots are deliberately regenerated.

mise run check passes, including tests, race tests, lint, vet, local smoke checks, and release validation.

Admit frozen actions/checkout tag and release-branch history through generated per-commit contracts. Preserve declared inputs, runner-plugin fetch defaults, and output availability while continuing to reject future unknown commits.

Amp-Thread-ID: https://ampcode.com/threads/T-01a01dd0-0453-7533-9505-6a8f4296dda7
Co-authored-by: Ming Guo <ming@buildkite.com>
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.

2 participants