From c225c124ac76eedc3ca6e013df40da8d2c50650d Mon Sep 17 00:00:00 2001 From: Brandt Keller Date: Thu, 22 May 2025 20:11:40 +0000 Subject: [PATCH 1/3] fix(client): return nil on non-allowed media types Signed-off-by: Brandt Keller --- pkg/registry/client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/registry/client.go b/pkg/registry/client.go index de7e636e1..a6ce74736 100644 --- a/pkg/registry/client.go +++ b/pkg/registry/client.go @@ -459,7 +459,7 @@ func (c *Client) Pull(ref string, options ...PullOption) (*PullResult, error) { PreCopy: func(_ context.Context, desc ocispec.Descriptor) error { mediaType := desc.MediaType if i := sort.SearchStrings(allowedMediaTypes, mediaType); i >= len(allowedMediaTypes) || allowedMediaTypes[i] != mediaType { - return errors.Errorf("media type %q is not allowed, found in descriptor with digest: %q", mediaType, desc.Digest) + return nil } mu.Lock() From b07ab77da3a2d20508b8e775981e233a81d4c753 Mon Sep 17 00:00:00 2001 From: Brandt Keller Date: Thu, 22 May 2025 20:27:46 +0000 Subject: [PATCH 2/3] fix(client): layers now returns manifest - remove duplicate from descriptors Signed-off-by: Brandt Keller --- pkg/registry/client.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/registry/client.go b/pkg/registry/client.go index a6ce74736..df72ef166 100644 --- a/pkg/registry/client.go +++ b/pkg/registry/client.go @@ -473,7 +473,6 @@ func (c *Client) Pull(ref string, options ...PullOption) (*PullResult, error) { return nil, err } - descriptors = append(descriptors, manifest) descriptors = append(descriptors, layers...) numDescriptors := len(descriptors) From a18a52e8982b399101f7f20e2473de8514e85226 Mon Sep 17 00:00:00 2001 From: Brandt Keller <43887158+brandtkeller@users.noreply.github.com> Date: Thu, 22 May 2025 20:06:11 -0700 Subject: [PATCH 3/3] fix(client): skipnode utilization for PreCopy Co-authored-by: George Jenkins Signed-off-by: Brandt Keller <43887158+brandtkeller@users.noreply.github.com> --- pkg/registry/client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/registry/client.go b/pkg/registry/client.go index df72ef166..dc5bda3a8 100644 --- a/pkg/registry/client.go +++ b/pkg/registry/client.go @@ -459,7 +459,7 @@ func (c *Client) Pull(ref string, options ...PullOption) (*PullResult, error) { PreCopy: func(_ context.Context, desc ocispec.Descriptor) error { mediaType := desc.MediaType if i := sort.SearchStrings(allowedMediaTypes, mediaType); i >= len(allowedMediaTypes) || allowedMediaTypes[i] != mediaType { - return nil + return oras.SkipNode } mu.Lock()