cli/pkg/cmd/attestation/artifact/image.go
Meredith Lancaster 5cc2f6af1a clean up nil client checks
Signed-off-by: Meredith Lancaster <malancas@github.com>
2024-03-18 08:57:54 -06:00

28 lines
713 B
Go

package artifact
import (
"fmt"
"github.com/cli/cli/v2/pkg/cmd/attestation/artifact/oci"
"github.com/distribution/reference"
)
func digestContainerImageArtifact(url string, client oci.Client) (*DigestedArtifact, error) {
// try to parse the url as a valid registry reference
named, err := reference.Parse(url)
if err != nil {
// cannot be parsed as a registry reference
return nil, fmt.Errorf("artifact %s is not a valid registry reference: %w", url, err)
}
digest, err := client.GetImageDigest(named.String())
if err != nil {
return nil, err
}
return &DigestedArtifact{
URL: fmt.Sprintf("oci://%s", named.String()),
digest: digest.Hex,
digestAlg: digest.Algorithm,
}, nil
}