bootstrap(trust-root): fix selective-rerun security evidence binding - #301
bootstrap(trust-root): fix selective-rerun security evidence binding#301safal207 wants to merge 4 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
Relevant CML MemoryDeterministic retrieval for PR #301 at head No publishable accepted memory matched this changeNo publishable accepted memory met the relevance threshold. Publishable candidates evaluated: 0 · selected: 0. CML memory is advisory: verify that the recorded constraints still apply. This comment grants no approval, execution, or merge authority. |
Dedicated trust-root bootstrap
This PR fixes a concrete Security Baseline failure discovered while validating ASTRA PR #298. It is intentionally isolated from #298 because
.github/workflows/security.ymland its executed helpers are protected trust-root material.Failure reproduced
A partial rerun increments
github.run_attemptfor the workflow, but successful jobs that were not rerun keep artifacts from their earlier attempts.Observed shape:
The previous gate downloaded only
cml-security-lane-*-<run_id>-<current_attempt>and then required all three lane files under that attempt. This made a valid selective rerun fail during evidence-manifest assembly even when every security lane result wassuccess.New invariant
Security evidence is bound to one stable workflow
run_idand one exacttested_sha, while each lane preserves its own latest producedrun_attempt.The resolver:
run_idacross attempts;dependency,secret, andcodeql;tested_sha, andpassed: truefor that newest artifact;artifacts/resolved/<lane>/...paths;security-evidence-selection.jsonrecording the chosen artifact name, lane attempt, SHA-256 digest, and byte count;Files
.github/workflows/security.ymlscripts/ci/resolve_security_evidence.pytests/test_security_evidence_rerun.py.github/trust-root/protected_files.jsonRegression controls
Focused tests cover:
1 / 2 / 1;tested_shafails closed without old fallback;passed: falseevidence fails closed;run_idis never reused.The focused resolver suite passed locally:
5 passed.Bootstrap authority boundary
This PR intentionally changes protected CI identities. The existing
CML Trust Root Gateis expected to reject it under the current base trust root. That red status is the bootstrap boundary, not something to bypass.Do not merge based only on ordinary CI. The exact tree requires explicit human + independent review of the workflow change, resolver semantics, regression tests, and updated protected identities.