Prevent fetching newReference again as we have in calling method

Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
pull/30894/head
Benoit Tigeot 4 months ago
parent 875e149d6b
commit f939f6145f
No known key found for this signature in database
GPG Key ID: 8E6D4FC8AEBDA62C

@ -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())
}

@ -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)

Loading…
Cancel
Save