You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Authenticate the signature inventory to GHCR so the two private packages resolve #3372
The two UNKNOWNs are ascoachingogvaner and wedding-app. Both are private GHCR packages: an
anonymous read of the image manifest itself returns 401, so cosign's DENIED is an
authorization result and says nothing about whether a signature exists. The tool records that as
UNKNOWN by design — inventing a blast radius from an unreadable package would be exactly the
guess #3101 exists to stop.
Problem and audience
Anyone deciding whether image verification is safe to activate. #3334 closes on "a re-run reports
zero failures and zero UNKNOWNs", so those two packages are the only thing standing between the
current measurement and that condition. They are not a design problem — they are a credential the
inventory job does not yet have.
Expected outcome
The inventory-first-party-image-signatures job in .github/workflows/validate-image-verifier-liveness.yaml authenticates to GHCR with the existing
pull credential, so both private packages resolve to a definite PASS or FAIL.
The mechanism already exists and is used elsewhere in this repository — scripts/ghcr-auth-lib.sh,
consumed by ci.yaml and scripts/run-ksail-prod-with-pull-auth.sh. This is an additive use of it,
not new design.
Acceptance criteria
The inventory job obtains the GHCR pull credential through scripts/ghcr-auth-lib.sh rather
than a new secret path, and the credential never reaches the job log.
cosign verify in the tool uses that credential (registry auth), so a private first-party
package is readable.
A missing or invalid credential still yields UNKNOWN and a non-zero exit — never a pass. The
hermetic suite covers that arm.
Why this is separate
#3371 delivers the enumeration, the rule matching, the PASS/FAIL/UNKNOWN discipline and the CI
wiring, and its measurement is what identified this gap. Resolving it needs a credential decision in
a workflow rather than a change to the tool, and it is the last step before #3334 can close.
Closed by observation — every acceptance criterion is already met on main
#3374 (merged 2026-08-26, e7ce25e7) added the 🔑 Stage the GHCR pull credential step to the inventory-first-party-image-signatures job: it sources scripts/ghcr-auth-lib.sh, decrypts the cluster's own pull credential into a 0700DOCKER_CONFIG under RUNNER_TEMP, and the inventory's cosign verify reads the registry through it. It referenced this issue as Part of, so nothing closed it.
AC
Evidence
credential via ghcr-auth-lib.sh, never in the log
the staging step above; the value is written under umask 077 and only the directory path reaches GITHUB_ENV
cosign verify uses it
the two private packages resolved to a definite result in the run below
a prod run reports zero UNKNOWNs
workflow_dispatch run 33234731678 (2026-08-29T04:49Z, success): rules=4 images_enumerated=122 matched=3 PASS=3 FAIL=0 UNKNOWN=0 — read from the job log, not inferred
a missing or broken credential still yields UNKNOWN and non-zero
#3374's measured table: with a deliberately broken credential — 3 unknown, 0 verified; the hermetic suite covers that arm
No FAIL appeared, so there is nothing to sign or scope under #3334's third criterion from this issue. #3334 remains the parent that decides whether enforcement is switched on.
Activity
chore: agent-claim #3372 nonce=763fe07bace5e48f12180511bdcce220
devantler commentedon Sep 4, 2026
Closed by observation — every acceptance criterion is already met on
main#3374 (merged 2026-08-26,
e7ce25e7) added the🔑 Stage the GHCR pull credentialstep to theinventory-first-party-image-signaturesjob: itsourcesscripts/ghcr-auth-lib.sh, decrypts the cluster's own pull credential into a0700DOCKER_CONFIGunderRUNNER_TEMP, and the inventory'scosign verifyreads the registry through it. It referenced this issue asPart of, so nothing closed it.ghcr-auth-lib.sh, never in the logumask 077and only the directory path reachesGITHUB_ENVcosign verifyuses itworkflow_dispatchrun 33234731678 (2026-08-29T04:49Z, success):rules=4 images_enumerated=122 matched=3 PASS=3 FAIL=0 UNKNOWN=0— read from the job log, not inferredNo FAIL appeared, so there is nothing to sign or scope under #3334's third criterion from this issue. #3334 remains the parent that decides whether enforcement is switched on.