As a developer, I want qctl to verify the image digest after push so that I can be confident the image was uploaded correctly and hasn't been tampered with.
Design
Verification Flow
1. Build image locally → compute local digest
2. Push image to registry
3. Query registry for pushed manifest
4. Compare digests
5. Fail if mismatch
Verifying image integrity...
Local digest: sha256:abc123def456...
Remote digest: sha256:abc123def456...
Status: ✓ Match
# On failure:
Verification failed!
Local digest: sha256:abc123def456...
Remote digest: sha256:xyz789ghi012...
Status: ✗ Mismatch
Error: Image digest verification failed. The pushed image does not match the local build.
Possible causes:
• Network corruption during upload
• Registry modified the image
• Race condition with another push
Suggested actions:
• Retry the push: qrun publish --force
• Check registry logs for errors
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #13
User Story
As a developer, I want qctl to verify the image digest after push so that I can be confident the image was uploaded correctly and hasn't been tampered with.
Design
Verification Flow
Digest Format
OCI digests use
algorithm:hexformat:Verification Output
Options
Files to Create/Modify
DigestVerifier.javaRegistryClient.javaDigestMismatchException.javaPublishCommand.javaImplementation Tasks
DigestVerifierclassDigestMismatchExceptionwith details--skip-verifyoption--verify-verboseoptionAcceptance Criteria
--skip-verifybypasses verification