mirror of
https://github.com/project-zot/zot.git
synced 2026-06-17 04:48:26 +08:00
refactor(digests): standardise representation of digests to digest.Digest (#898)
- Digests were represented by different ways
- We needed a uniform way to represent the digests and enforce a format
- also replace usage of github.com/google/go-containerregistry/pkg/v1
with github.com/opencontainers/image-spec/specs-go/v1
Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com>
(cherry picked from commit 96b2f29d6d57070a913ce419149cd481c0723815)
(cherry picked from commit 3d41b583daea654c98378ce3dcb78937d71538e8)
Co-authored-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com>
This commit is contained in:
@@ -39,7 +39,7 @@ func (linter *Linter) CheckMandatoryAnnotations(repo string, manifestDigest godi
|
||||
|
||||
mandatoryAnnotationsList := linter.config.MandatoryAnnotations
|
||||
|
||||
content, err := imgStore.GetBlobContent(repo, string(manifestDigest))
|
||||
content, err := imgStore.GetBlobContent(repo, manifestDigest)
|
||||
if err != nil {
|
||||
linter.log.Error().Err(err).Msg("linter: unable to get image manifest")
|
||||
|
||||
@@ -74,16 +74,16 @@ func (linter *Linter) CheckMandatoryAnnotations(repo string, manifestDigest godi
|
||||
// if there are mandatory annotations missing in the manifest, get config and check these annotations too
|
||||
configDigest := manifest.Config.Digest
|
||||
|
||||
content, err = imgStore.GetBlobContent(repo, string(configDigest))
|
||||
content, err = imgStore.GetBlobContent(repo, configDigest)
|
||||
if err != nil {
|
||||
linter.log.Error().Err(err).Msg("linter: couldn't get config JSON " + string(configDigest))
|
||||
linter.log.Error().Err(err).Msg("linter: couldn't get config JSON " + configDigest.String())
|
||||
|
||||
return false, err
|
||||
}
|
||||
|
||||
var imageConfig ispec.Image
|
||||
if err := json.Unmarshal(content, &imageConfig); err != nil {
|
||||
linter.log.Error().Err(err).Msg("linter: couldn't unmarshal config JSON " + string(configDigest))
|
||||
linter.log.Error().Err(err).Msg("linter: couldn't unmarshal config JSON " + configDigest.String())
|
||||
|
||||
return false, err
|
||||
}
|
||||
|
||||
@@ -847,7 +847,7 @@ func TestVerifyMandatoryAnnotationsFunction(t *testing.T) {
|
||||
var imageConfig ispec.Image
|
||||
configDigest := manifest.Config.Digest
|
||||
buf, err = os.ReadFile(path.Join(dir, "zot-test", "blobs", "sha256",
|
||||
configDigest.Hex()))
|
||||
configDigest.Encoded()))
|
||||
So(err, ShouldBeNil)
|
||||
err = json.Unmarshal(buf, &imageConfig)
|
||||
So(err, ShouldBeNil)
|
||||
@@ -863,7 +863,7 @@ func TestVerifyMandatoryAnnotationsFunction(t *testing.T) {
|
||||
So(cfgDigest, ShouldNotBeNil)
|
||||
|
||||
err = os.WriteFile(path.Join(dir, "zot-test", "blobs", "sha256",
|
||||
cfgDigest.Hex()), configContent, 0o600)
|
||||
cfgDigest.Encoded()), configContent, 0o600)
|
||||
So(err, ShouldBeNil)
|
||||
|
||||
// write manifest
|
||||
@@ -892,7 +892,7 @@ func TestVerifyMandatoryAnnotationsFunction(t *testing.T) {
|
||||
imgStore := local.NewImageStore(dir, false, 0, false, false,
|
||||
log.NewLogger("debug", ""), monitoring.NewMetricsServer(false, log.NewLogger("debug", "")), linter)
|
||||
|
||||
err = os.Chmod(path.Join(dir, "zot-test", "blobs", "sha256", manifest.Config.Digest.Hex()), 0o000)
|
||||
err = os.Chmod(path.Join(dir, "zot-test", "blobs", "sha256", manifest.Config.Digest.Encoded()), 0o000)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@@ -901,7 +901,7 @@ func TestVerifyMandatoryAnnotationsFunction(t *testing.T) {
|
||||
So(err, ShouldNotBeNil)
|
||||
So(pass, ShouldBeFalse)
|
||||
|
||||
err = os.Chmod(path.Join(dir, "zot-test", "blobs", "sha256", manifest.Config.Digest.Hex()), 0o755)
|
||||
err = os.Chmod(path.Join(dir, "zot-test", "blobs", "sha256", manifest.Config.Digest.Encoded()), 0o755)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user