test(release): define protected-main acceptance entrypoint - #247
test(release): define protected-main acceptance entrypoint#247seonghobae wants to merge 8 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
|
Fresh control-plane correction to the PR body’s historical central-security paragraph: both exact-source scanner-owner repairs are now protected central authority.
This does not retroactively upgrade this PR’s historical Security/SAST runs: Current #247 review state remains non-passing for integration: Draft/mergeable, one COMMENTED Advanced Security review, both historical inline findings resolved/outdated, and no qualifying APPROVED review. CI also remains historically blocked by the #233-owned repository coverage arcs. Keep this branch stable; do not churn it merely to manufacture scanner/review events. |
Protected-main Release Acceptance — ACTIVE DRAFT
This Draft implements #200 as a bounded test-first protected-main release-acceptance entrypoint. Fresh protected
mainis exactb84f0c94154043a3473939c01bb6471de5a129ae; current branchfeat/protected-main-release-acceptance-b84f0c9is unchanged at exact head327d45bf86a8cfa28c92c95d88b2daf6466dbcde. Relative changes remain only.github/workflows/release-acceptance.ymlandtests/test_release_acceptance_workflow.py; protected main was not mutated.Bounded contract
Manual acceptance is allowed only for
refs/heads/main, resolves and validates the live protected-main SHA, rejects stale dispatch identity, reuses the reproducible wheel/sdist job, and rechecks protected main immediately before acceptance evidence upload. Both GitHub ref reads are bounded withcurl --connect-timeout 10 --max-time 30. Checkout credentials remain disabled and the workflow grants no contents/package/OIDC/attestation write authority.Predecessor Advanced Security findings on direct
curl | python -cresponse pipelines were repaired test-first. REDeeb3ec38d7e4226d4933792264c40a6608e98bb0rejects the pipeline shape; GREEN327d45bf86a8cfa28c92c95d88b2daf6466dbcdewrites each bounded API response to a uniqueRUNNER_TEMPfile, parses JSON only through stdin redirection, and removes the temporary file under an EXIT trap. Both original threads are resolved/outdated.Exact-head evidence — refreshed 2026-08-30
For unchanged exact
327d45bf86a8cfa28c92c95d88b2daf6466dbcde:32256321532: terminal success and exact-head evidence for the bounded release-acceptance contract.32256321486: terminal failure only at repository aggregate 100% statement/branch coverage. Python 3.10/3.12/3.14, container/PostgreSQL smokes, compile, Ruff, public-docstring coverage and the test body passed before the inherited protected-main weakref callback coverage gap stopped the workflow. Those two missing protected-main arcs are owned by dependency-root test(recovery): cover stale evidence registry cleanup #233. Steps after the failing aggregate coverage gate do not become passing CI evidence merely because a dedicated release workflow succeeded.32256321411: workflow conclusion success, but non-passing under the repository exact-source contract. Trivy job-log inspection proved default checkout fetched and checked out syntheticrefs/pull/247/merge@73335e9334f9c023310c97c162a494ca4c9acdf0; Trivy scanned.from that synthetic workspace, not contributor head327d45b.... The zero CRITICAL/HIGH/MEDIUM result therefore remains merge-preview evidence only.32256321571: workflow conclusion success, but likewise historical synthetic evidence. Semgrep job logs proved checkout fetched and checked out the same syntheticrefs/pull/247/merge@73335e9334f9c023310c97c162a494ca4c9acdf0before scanning. Its15explicitly suppressed /0retained findings describe that synthetic workspace and are not exact-head SAST evidence for327d45b....The former central exact-source repair has since integrated and dependency-root #233 has independently regenerated exact-contributor-head Security/SAST evidence. Neither fact retroactively repairs this PR's 2026-08-19 synthetic scanner workspaces or transfers any gate to
327d45b.... Mutable central security/reviewer/scheduler state is intentionally not duplicated here; pg #244 is the sole pg-owned live ledger and read-only.github#1222remains central acceptance tracking. This PR must reacquire its own exact-final-head scanner evidence after dependency integration and final-base reconciliation.Fresh formal review inventory still contains only a
COMMENTEDGitHub Advanced Security submission; there is no qualifyingAPPROVEDreview. Fresh inline review inventory contains exactly the two prior Scorecard threads, both resolved and outdated. COMMENTED/status/bot evidence is not approval.Dependency / integration boundary
Keep this PR Draft. #233 must first become protected-main authority. #233 now has regenerated exact-contributor-head CI, Release Acceptance, Security Scan, SAST Semgrep, and bounded Strix evidence on unchanged
5951b7a4d779903b8924abaef2a387cae50b7f54, so the old central exact-source-repair prerequisite is no longer a valid #233 blocker. #233 nevertheless remains non-passing because its active same-head OpenCodeCHANGES_REQUESTEDhas not been superseded and no qualifying approval exists under live governance.After #233 integrates, reconcile this branch against the then-current protected main and reacquire every invalidated gate. In particular, unchanged final-head scanner execution must prove the actual analyzed
HEADequals the final contributor head under then-protected central exact-source semantics.Do not duplicate #233's tests, reinterpret current CI/Security/SAST conclusions as exact-head success, transfer predecessor/synthetic evidence, manufacture head churn, self-approve, or use admin bypass as acquisition evidence.
Merge only an unchanged final current-base head after every then-live CI/security/SAST/package/provenance/release gate is terminal-success with required checkout/source identity, zero valid findings/threads remain, and the then-live qualifying independent approval rule is satisfied. This capability creates acceptance evidence only; it does not publish, sign, attest, promote, deploy, create a release, or authorize a later protected-main tip.
Refs #200, #233, #244, #250, #251, #252; read-only central tracker
.github#1222.