MCPcopy Create free account
hub / github.com/containers/image / ParseReference

Function ParseReference

docker/docker_transport.go:56–76  ·  view source on GitHub ↗

ParseReference converts a string, which should not start with the ImageTransport.Name prefix, into an Docker ImageReference.

(refString string)

Source from the content-addressed store, hash-verified

54
55// ParseReference converts a string, which should not start with the ImageTransport.Name prefix, into an Docker ImageReference.
56func ParseReference(refString string) (types.ImageReference, error) {
57 refString, ok := strings.CutPrefix(refString, "//")
58 if !ok {
59 return nil, fmt.Errorf("docker: image reference %s does not start with //", refString)
60 }
61 refString, unknownDigest := strings.CutSuffix(refString, UnknownDigestSuffix)
62 ref, err := reference.ParseNormalizedNamed(refString)
63 if err != nil {
64 return nil, err
65 }
66
67 if unknownDigest {
68 if !reference.IsNameOnly(ref) {
69 return nil, fmt.Errorf("docker: image reference %q has unknown digest set but it contains either a tag or digest", ref.String()+UnknownDigestSuffix)
70 }
71 return NewReferenceUnknownDigest(ref)
72 }
73
74 ref = reference.TagNameOnly(ref)
75 return NewReference(ref)
76}
77
78// NewReference returns a Docker reference for a named reference. The reference must satisfy !reference.IsNameOnly().
79func NewReference(ref reference.Named) (types.ImageReference, error) {

Calls 6

ParseNormalizedNamedFunction · 0.92
IsNameOnlyFunction · 0.92
TagNameOnlyFunction · 0.92
NewReferenceFunction · 0.70
StringMethod · 0.65

Used in the wild real call sites across dependent graphs

searching dependent graphs…