fix: use referrers repo img spec and resolver

This commit is contained in:
mrjoelkamp
2024-08-01 15:24:35 -05:00
parent 053f764b8f
commit 78ec0b7666

View File

@@ -230,14 +230,28 @@ func CreateAttestationResolver(resolver oci.ImageDetailsResolver, mapping *confi
return oci.NewReferrersAttestationResolver(resolver) return oci.NewReferrersAttestationResolver(resolver)
} }
case *oci.LayoutResolver: case *oci.LayoutResolver:
if mapping.Attestations != nil && mapping.Attestations.Style == config.AttestationStyleAttached { if mapping.Attestations != nil {
return resolver, nil switch mapping.Attestations.Style {
} else { case config.AttestationStyleAttached:
if mapping.Attestations != nil && mapping.Attestations.Repo != "" { return resolver, nil
return oci.NewReferrersAttestationResolver(resolver, oci.WithReferrersRepo(mapping.Attestations.Repo)) case config.AttestationStyleReferrers:
if mapping.Attestations.Repo != "" {
referrersSpec, err := oci.ParseImageSpec(mapping.Attestations.Repo)
if err != nil {
return nil, fmt.Errorf("failed to parse referrers image spec: %w", err)
}
referrersResolver, err := CreateImageDetailsResolver(referrersSpec)
if err != nil {
return nil, fmt.Errorf("failed to create referrers resolver: %w", err)
}
return oci.NewReferrersAttestationResolver(referrersResolver, oci.WithReferrersRepo(mapping.Attestations.Repo))
}
return oci.NewReferrersAttestationResolver(resolver)
default:
return nil, fmt.Errorf("unsupported attestation style: %s", mapping.Attestations.Style)
} }
return oci.NewReferrersAttestationResolver(resolver)
} }
return resolver, nil
default: default:
return nil, fmt.Errorf("unsupported image details resolver type: %T", resolver) return nil, fmt.Errorf("unsupported image details resolver type: %T", resolver)
} }