fix: layout attestation resolver

This commit is contained in:
mrjoelkamp
2024-08-05 13:24:58 -05:00
parent 58021646e3
commit c7d17faf05
6 changed files with 41 additions and 91 deletions

View File

@@ -115,6 +115,9 @@ func attestationManifestFromOCILayout(path string, platform *v1.Platform) (*atte
}
}
}
if subjectDescriptor == nil {
return nil, fmt.Errorf("platform not found in index")
}
for i := range mfs2.Manifests {
mf := &mfs2.Manifests[i]
if mf.Annotations[att.DockerReferenceType] != attestation.AttestationManifestType {

View File

@@ -3,6 +3,7 @@ package oci
import (
"context"
"fmt"
"strings"
"github.com/docker/attest/pkg/attestation"
att "github.com/docker/attest/pkg/attestation"
@@ -16,14 +17,6 @@ type ReferrersResolver struct {
}
func NewReferrersAttestationResolver(src ImageDetailsResolver, options ...func(*ReferrersResolver) error) (*ReferrersResolver, error) {
// currently only supports RegistryImageDetailsResolver
switch src.(type) {
case *RegistryImageDetailsResolver:
case *MockRegistryResolver:
default:
return nil, fmt.Errorf("unsupported referrers image details resolver type: %T", src)
}
res := &ReferrersResolver{
ImageDetailsResolver: src,
}
@@ -66,7 +59,7 @@ func (r *ReferrersResolver) resolveAttestations(ctx context.Context, predicateTy
}
var referrersSubjectRef name.Digest
if r.referrersRepo != "" {
referrersSubjectRef, err = name.NewDigest(fmt.Sprintf("%s@%s", r.referrersRepo, subjectDigest))
referrersSubjectRef, err = name.NewDigest(fmt.Sprintf("%s@%s", strings.TrimPrefix(r.referrersRepo, RegistryPrefix), subjectDigest))
if err != nil {
return nil, fmt.Errorf("failed to create referrers reference: %w", err)
}