Repository navigation
Verify backfilled :all bottle subjects - #24447
Conversation
- Match backfilled `:all` bottles against the full URL-prefixed subject. - Reject absent URL hashes and mismatched URLs or digests.
MikeMcQuaid
left a comment
There was a problem hiding this comment.
Can you explain why this fix and what error you're seeing where/when from a brew command without it?
There is now a concrete reproduction with With an authenticated ./bin/brew verify cadubi --bottle-tag=allBefore the change ( After the change ( Both runs used isolated checkouts and caches, the same current official formula and bottle, and live This bottle has a valid backfilled attestation whose subject contains the URL hash before the filename. The existing The change makes backfilled |
|
No actionable comments were generated in the recent review. Summary
Merge Risk:
|
Summary
Legacy
:allbottles with backfilled attestations are rejected because the ordinary:allfilename matcher ignores the URL-prefixed subject. Use exact subject matching for the backfill repository, including the URL hash, while keeping the digest and cutoff-date checks.Evidence
Deterministic reproduction using the added regression fixtures:
Apply only the test additions to upstream
f6051a7a57.Run:
Before: 4 examples, 2 failures. The valid URL-prefixed subject is rejected and a subject without the URL hash is accepted.
Apply the production condition change and run the same command.
After: 4 examples, 0 failures. Different URLs and digests remain rejected.
./bin/brew lgtm --onlinepasses typechecking, style and all 61 attestation examples. The fixtures mockghresponses; they do not fetch or verify a real remote signature. The historical backfill list includesallbottles.Merge Danger
Door: Two-way; a one-line condition change with regression coverage.
Blast Radius: Limited
Backfilled
:allbottles use the exact URL-prefixed subject. Existing tests cover ordinary:allfilename matching and backfill timestamp rejection.brew benchmarkresults.brewcommands to reproduce the bug?brew lgtm(style, typechecking and tests) locally?AI assistance: OpenAI Codex was used for diagnosis, implementation and regression tests. Local checks are complete.