MCPcopy
hub / github.com/google/go-containerregistry / NewDigest

Function NewDigest

pkg/name/digest.go:102–133  ·  view source on GitHub ↗

NewDigest returns a new Digest representing the given name.

(name string, opts ...Option)

Source from the content-addressed store, hash-verified

100
101// NewDigest returns a new Digest representing the given name.
102func NewDigest(name string, opts ...Option) (Digest, error) {
103 // Split on "@"
104 parts := strings.Split(name, digestDelim)
105 if len(parts) != 2 {
106 return Digest{}, newErrBadName("a digest must contain exactly one '@' separator (e.g. registry/repository@digest) saw: %s", name)
107 }
108 base := parts[0]
109 dig := parts[1]
110 prefix := digest.Canonical.String() + ":"
111 if !strings.HasPrefix(dig, prefix) {
112 return Digest{}, newErrBadName("unsupported digest algorithm: %s", dig)
113 }
114 hex := strings.TrimPrefix(dig, prefix)
115 if err := digest.Canonical.Validate(hex); err != nil {
116 return Digest{}, err
117 }
118
119 tag, err := NewTag(base, opts...)
120 if err == nil {
121 base = tag.Repository.Name()
122 }
123
124 repo, err := NewRepository(base, opts...)
125 if err != nil {
126 return Digest{}, err
127 }
128 return Digest{
129 Repository: repo,
130 digest: dig,
131 original: name,
132 }, nil
133}

Callers 15

TestTLSFunction · 0.92
TestMultiWriteSameImageFunction · 0.92
mainFunction · 0.92
TestRemoteLayerFunction · 0.92
newReferenceFunction · 0.92
TestStatusCodeReturnedFunction · 0.92
TestMultiWriteSameImageFunction · 0.92
PullLayerFunction · 0.92
TestNewDigestFunction · 0.85

Calls 5

newErrBadNameFunction · 0.85
NewTagFunction · 0.85
NewRepositoryFunction · 0.85
StringMethod · 0.65
NameMethod · 0.65

Tested by 14

TestTLSFunction · 0.74
TestMultiWriteSameImageFunction · 0.74
TestRemoteLayerFunction · 0.74
newReferenceFunction · 0.74
TestStatusCodeReturnedFunction · 0.74
TestMultiWriteSameImageFunction · 0.74
TestNewDigestFunction · 0.68
TestDigestComponentsFunction · 0.68
TestDigestScopesFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…