Repository navigation
Conversation
Co-authored-by: c1-squire-dev[bot] <c1-squire-dev[bot]@users.noreply.github.com>
Superseded — see the current review report for commit
|
| # Certificate identity pattern for cosign verification | ||
| CERT_IDENTITY_REGEXP='https://github.com/ConductorOne/github-workflows/.github/workflows/release.yaml@.*' | ||
| # Exact protected workflow ref; coordinate changes with registry identity policy. | ||
| CERT_IDENTITY_REGEXP='^https://github\.com/ConductorOne/github-workflows/\.github/workflows/release\.yaml@refs/tags/v4$' |
There was a problem hiding this comment.
🟡 Suggestion (confidence: high): release.yaml's verify-release job (line ~1773) runs this script from job.workflow_sha, and record-registry-api only runs when verify-release succeeds. With this pin, any release that calls the workflow at a ref other than v4 (a branch, @v4.0.1, or a SHA pin) now fails in-run verification and never gets recorded. That breaks the branch-testing process still documented in docs/release-workflow.md:527-540 and README.md:478-482. Please document this limitation in the testing instructions, or add a deliberate test-only path, so maintainers don't hit an unexpected release failure.
| - Manifest signature (if present) | ||
|
|
||
| All cosign checks use the exact certificate identity | ||
| `https://github.com/ConductorOne/github-workflows/.github/workflows/release.yaml@refs/tags/v4` |
There was a problem hiding this comment.
🟡 Suggestion (confidence: high): This section now says the only accepted identity is @refs/tags/v4. But the consumer-facing verification examples in the same doc (lines 438, 445, 632) still use release.yaml@.*, and the Certificate Identity section (line 454) still says @<ref>. Anyone following those examples gets the any-ref trust this PR is meant to remove. Please update them to the anchored regexp.
Superseded — see the current review report for commit
|
Co-authored-by: c1-squire-dev[bot] <c1-squire-dev[bot]@users.noreply.github.com>
Superseded — see the current review report for commit
|
Superseded — see the current review report for commit
|
Co-authored-by: c1-squire-dev[bot] <c1-squire-dev[bot]@users.noreply.github.com>
Superseded — see the current review report for commit
|
General PR Review: DO NOT MERGE until registry flip: pin fleet certificate identity refBlocking Issues: 0 | Suggestions: 0 | Threads Resolved: 0 Review SummaryThis PR replaces the Security IssuesNone found. Correctness IssuesNone found. SuggestionsNone. Resolved prior findings
Reviewed commit: |
DO NOT MERGE — coordinated registry cutover required
This producer validation pin must ship atomically with the fleet registry exact-ref enforcement flip. Complete the observed-ref inventory and protect the selected workflow tag before cutover. This draft is not authorization to merge, promote a tag or change registry configuration.
Why
The existing
release.yaml@.*certificate policy trusts any branch/tag spelling under the reusable workflow path. A valid certificate from an unselected workflow ref must not pass producer-side release verification.What
https://github.com/ConductorOne/github-workflows/.github/workflows/release.yaml@refs/tags/v4.Evidence
make test-scripts: PASS (native PowerShell fixture unavailable/skipped).python3 scripts/test-certificate-identities.py: PASS, four test groups through the actual validation script with offline curl/cosign fixtures.bash -n scripts/validate-release-artifacts.sh,make workflow-validateandgit diff --check: PASS.Rollout limits
No live certificate signing, fleet release, registry policy flip, tag-protection change or merge was performed. The fixtures test policy wiring, not cryptographic certificate validity or deployed registry behavior. Keep this PR in draft and DO NOT MERGE until the coordinated registry cutover is ready; validate a real selected-ref release and the rejected nonselected-ref case during that cutover.