From f939f6145f3bd2117400393753aab3151238a106 Mon Sep 17 00:00:00 2001 From: Benoit Tigeot Date: Fri, 23 May 2025 08:13:41 +0200 Subject: [PATCH] Prevent fetching newReference again as we have in calling method Signed-off-by: Benoit Tigeot --- pkg/registry/client.go | 13 ++++--------- pkg/registry/client_test.go | 5 ++++- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/pkg/registry/client.go b/pkg/registry/client.go index d035609c2..f31821166 100644 --- a/pkg/registry/client.go +++ b/pkg/registry/client.go @@ -686,8 +686,8 @@ func (c *Client) Push(data []byte, ref string, options ...PushOption) (*PushResu ociAnnotations := generateOCIAnnotations(meta, operation.creationTime) - manifestDescriptor, err := c.tagManifest(ctx, memoryStore, ref, configDescriptor, - layers, ociAnnotations) + manifestDescriptor, err := c.tagManifest(ctx, memoryStore, configDescriptor, + layers, ociAnnotations, parsedRef) if err != nil { return nil, err } @@ -891,8 +891,8 @@ func (c *Client) ValidateReference(ref, version string, u *url.URL) (*url.URL, e // tagManifest prepares and tags a manifest in memory storage func (c *Client) tagManifest(ctx context.Context, memoryStore *memory.Store, - ref string, configDescriptor ocispec.Descriptor, layers []ocispec.Descriptor, - ociAnnotations map[string]string) (ocispec.Descriptor, error) { + configDescriptor ocispec.Descriptor, layers []ocispec.Descriptor, + ociAnnotations map[string]string, parsedRef reference) (ocispec.Descriptor, error) { manifest := ocispec.Manifest{ Versioned: specs.Versioned{SchemaVersion: 2}, @@ -906,11 +906,6 @@ func (c *Client) tagManifest(ctx context.Context, memoryStore *memory.Store, return ocispec.Descriptor{}, err } - parsedRef, err := newReference(ref) - if err != nil { - return ocispec.Descriptor{}, err - } - return oras.TagBytes(ctx, memoryStore, ocispec.MediaTypeImageManifest, manifestData, parsedRef.String()) } diff --git a/pkg/registry/client_test.go b/pkg/registry/client_test.go index bf1ce66da..8fc392336 100644 --- a/pkg/registry/client_test.go +++ b/pkg/registry/client_test.go @@ -39,7 +39,10 @@ func TestTagManifestTransformsReferences(t *testing.T) { configDesc := ocispec.Descriptor{MediaType: ConfigMediaType, Digest: "sha256:config", Size: 100} layers := []ocispec.Descriptor{{MediaType: ChartLayerMediaType, Digest: "sha256:layer", Size: 200}} - desc, err := client.tagManifest(ctx, memStore, refWithPlus, configDesc, layers, nil) + parsedRef, err := newReference(refWithPlus) + require.NoError(t, err) + + desc, err := client.tagManifest(ctx, memStore, configDesc, layers, nil, parsedRef) require.NoError(t, err) transformedDesc, err := memStore.Resolve(ctx, expectedRef)