From e44390d2bc4421e50d17e0bbdc21f215251d6f55 Mon Sep 17 00:00:00 2001 From: James Carnegie Date: Fri, 14 Jun 2024 10:28:14 +0100 Subject: [PATCH] Don't use pointers for image interfaces (#51) * Don't use pointers for image interfaces * Also for oci layout * Remove default case --- pkg/attestation/referrers_test.go | 2 +- pkg/mirror/mirror.go | 25 ++++++++++--------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/pkg/attestation/referrers_test.go b/pkg/attestation/referrers_test.go index b0aa065..a536c31 100644 --- a/pkg/attestation/referrers_test.go +++ b/pkg/attestation/referrers_test.go @@ -130,7 +130,7 @@ func TestReferencesInDifferentRepo(t *testing.T) { // push signed attestation image to the ref server for _, img := range signedImages { // push references using subject-digest.att convention - err = mirror.PushToRegistry(&img.Image, fmt.Sprintf("%s/%s:tag-does-not-matter", refServerUrl.Host, repoName)) + err = mirror.PushToRegistry(img.Image, fmt.Sprintf("%s/%s:tag-does-not-matter", refServerUrl.Host, repoName)) require.NoError(t, err) } mfs2, err := attIdx.Index.IndexManifest() diff --git a/pkg/mirror/mirror.go b/pkg/mirror/mirror.go index 5aa5171..22c9625 100644 --- a/pkg/mirror/mirror.go +++ b/pkg/mirror/mirror.go @@ -39,18 +39,16 @@ func PushToRegistry(image any, imageName string) error { } // Push the image to the registry switch image := image.(type) { - case *v1.Image: - if err := remote.Write(ref, *image, remote.WithAuth(auth)); err != nil { + case v1.Image: + if err := remote.Write(ref, image, remote.WithAuth(auth)); err != nil { return fmt.Errorf("failed to push image %s: %w", imageName, err) } - case *v1.ImageIndex: - if err := remote.WriteIndex(ref, *image, remote.WithAuth(auth)); err != nil { + case v1.ImageIndex: + if err := remote.WriteIndex(ref, image, remote.WithAuth(auth)); err != nil { return fmt.Errorf("failed to push image index %s: %w", imageName, err) } default: - if err := remote.WriteIndex(ref, image.(v1.ImageIndex), remote.WithAuth(auth)); err != nil { - return fmt.Errorf("failed to push image index %s: %w", imageName, err) - } + return fmt.Errorf("unknown image type") } return nil } @@ -62,26 +60,23 @@ func SaveAsOCILayout(image any, path string) error { return fmt.Errorf("failed to create directory: %w", err) } switch image := image.(type) { - case *v1.Image: + case v1.Image: index := empty.Index l, err := layout.Write(path, index) if err != nil { return fmt.Errorf("failed to create index: %w", err) } - err = l.AppendImage(*image) + err = l.AppendImage(image) if err != nil { return fmt.Errorf("failed to append image to index: %w", err) } - case *v1.ImageIndex: - _, err := layout.Write(path, *image) + case v1.ImageIndex: + _, err := layout.Write(path, image) if err != nil { return fmt.Errorf("failed to create index: %w", err) } default: - _, err := layout.Write(path, image.(v1.ImageIndex)) - if err != nil { - return fmt.Errorf("failed to create index: %w", err) - } + return fmt.Errorf("unknown image type") } return nil }