refactor(server/store): abstract oci registry interface #801
+178
−58
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR decouples the Directory server from Zot-specific APIs, enabling deployment with tested OCI-compatible registries (Docker Hub, GHCR). The implementation adds a registry type configuration that dispatches to registry-specific behavior while maintaining backward compatibility with existing Zot deployments.
Changes
RegistryTypeconfiguration (zot,ghcr,dockerhub) viaDIRECTORY_SERVER_STORE_OCI_TYPEenvironment variable/readyzendpoint, GHCR/Docker Hub use OCI tag listingVerifyWithZot()→VerifySignature()and dispatch based on registry type (GHCR/Docker Hub verification tracked in [Feature]: Server-side Signature Verification Without Zot #798)/v2/_zot/ext/cosignonly for Zot registriesUnimplementederror when remote registries don't support OCI delete API (e.g., GHCR returns 405)Validation Results
Tested with
task server:startusing the following configuration:Pushed records were verified on both GHCR and Docker Hub web interfaces.