mirror of
https://github.com/quay/quay.git
synced 2026-10-23 09:49:06 +03:00
#7054 made SQLite the catalog: digest pushes get a temporary tag, and an index whose child is not in the catalog is rejected. That supersedes #7024 (PROJQUAY-12886) and #7033 (PROJQUAY-12913). This carries over the test coverage from those two PRs that master does not have yet. Store: - re-push by digest after the temporary tag expired renews the existing row instead of adding one (the existing re-push test only re-pushes while the tag is still live) - index PUT leaves the child's bytes, media type and tags untouched - index with a missing child returns ChildManifestUnknownError with the child digest and writes no manifest, tag or manifestchild row GC: - a digest-pushed manifest and its blob survive upload-marker expiry and are collected once the temporary tag expires Registry over HTTP: - digest push survives GC until the temporary tag expires, then 404s - tagged image survives upload-marker expiry - index whose child was collected answers 400 MANIFEST_BLOB_UNKNOWN naming the child, and the tag is not created - child pushed by digest then referenced by a tagged index keeps its content and survives GC Test-only; no production or harness changes. Claude-Session: https://claude.ai/code/session_01K3wbqTw3owBi8RT352YDoP Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>