| 8 | ) |
| 9 | |
| 10 | func digestContainerImageArtifact(url string, client oci.Client) (*DigestedArtifact, error) { |
| 11 | // try to parse the url as a valid registry reference |
| 12 | named, err := reference.Parse(url) |
| 13 | if err != nil { |
| 14 | // cannot be parsed as a registry reference |
| 15 | return nil, fmt.Errorf("artifact %s is not a valid registry reference: %v", url, err) |
| 16 | } |
| 17 | |
| 18 | digest, nameRef, err := client.GetImageDigest(named.String()) |
| 19 | |
| 20 | if err != nil { |
| 21 | return nil, err |
| 22 | } |
| 23 | |
| 24 | return &DigestedArtifact{ |
| 25 | URL: fmt.Sprintf("oci://%s", named.String()), |
| 26 | digest: digest.Hex, |
| 27 | digestAlg: digest.Algorithm, |
| 28 | nameRef: nameRef, |
| 29 | }, nil |
| 30 | } |