Repository navigation
Sign Radar Hub OCI charts with keyless Cosign - #67
Conversation
PR Summary by QodoSign Radar Hub OCI charts with keyless Cosign
AI Description
Diagram
High-Level Assessment
Files changed (5)
|
Code Review by Qodo
1. Valid Hub releases remain unsigned
|
cde59b8 to
756f344
Compare
The publisher tests cover both absent-OCI and matching-existing-OCI replacement cases, plus packaging-only differences. |
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
/agentic_review |
|
Code review by qodo was updated up to the latest commit 756f344 |
|
@qodo please close these three findings against final commit
Please mark 2 and 3 resolved as implemented. Their current claims are stale after these changes. All 16 publisher tests and all 3 CI checks pass on this head. |
I can't close these yet. This PR's findings index is empty, so I can't match findings 1, 2, and 3 from the published report to the stable IDs the dismiss tool needs. I also won't guess IDs. Even with IDs, I can't mark findings as Here's how I'd handle each one:
If the findings index is populated for this head, reply with the finding numbers and I'll dismiss the ones you name. Otherwise, rerun the review on |
Radar Hub OCI charts are currently published without signatures. The publisher also skips existing OCI versions, so retrying after an upload cannot complete a failed signing step.
This pilot signs only
ghcr.io/skyhook-io/charts/radar-hubwith GitHub OIDC and pinned Cosign, then verifies the exact digest against the release workflow identity and GitHub issuer before the job succeeds. All actions in the OIDC-capable job are pinned to immutable commits. The classic Helm repository, Radar, and connector stay unsigned. The README shows how to verify a pulled Hub digest and install that same archive.Retries use the original GitHub Release archives, even when chart-releaser reports no changed charts or leaves no local packages. Existing releases are skipped by chart-releaser, but their OCI digests still go through Hub signing and verification. Review the trust checks in
.github/scripts/publish-oci.sh: drafts are excluded, actual tags must resolve to the run SHA, and the Hub archive's file names and contents must match the checked-out source chart before it can be pushed or signed. Tar/gzip metadata can differ; the original published archive stays the upload input. An existing Hub OCI archive must also match those published bytes. Registry lookup failures cannot become replacement pushes.Validation: 16 process-boundary tests run the actual publisher with real Helm 3.14 packages, including fresh publication, existing-digest retries, mixed batches, signing/verification failures, wrong identity/issuer, replaced release assets, and malformed archives. A real published Hub 1.15.0 archive also matched the checked-out chart's packaged file contents. Bash syntax, ShellCheck, actionlint, and whitespace checks pass. A read-only CI job runs the publisher tests. No rendered UI changed, so visual testing does not apply.
Actual GitHub OIDC issuance and GHCR signature storage still need an approved Hub publish. This PR does not publish or merge a release. Related to skyhook-io/radar#1377; this is the Hub OCI pilot, not full Helm provenance coverage.