MCPcopy
hub / github.com/docker/compose / Push

Function Push

internal/oci/resolver.go:130–156  ·  view source on GitHub ↗
(ctx context.Context, resolver remotes.Resolver, ref reference.Named, descriptor spec.Descriptor)

Source from the content-addressed store, hash-verified

128}
129
130func Push(ctx context.Context, resolver remotes.Resolver, ref reference.Named, descriptor spec.Descriptor) error {
131 pusher, err := resolver.Pusher(ctx, ref.String())
132 if err != nil {
133 return err
134 }
135 ctx = remotes.WithMediaTypeKeyPrefix(ctx, ComposeYAMLMediaType, "artifact-")
136 ctx = remotes.WithMediaTypeKeyPrefix(ctx, ComposeEnvFileMediaType, "artifact-")
137 ctx = remotes.WithMediaTypeKeyPrefix(ctx, ComposeEmptyConfigMediaType, "config-")
138 ctx = remotes.WithMediaTypeKeyPrefix(ctx, spec.MediaTypeEmptyJSON, "config-")
139
140 push, err := pusher.Push(ctx, descriptor)
141 if errdefs.IsAlreadyExists(err) {
142 return nil
143 }
144 if err != nil {
145 return err
146 }
147
148 _, err = push.Write(descriptor.Data)
149 if err != nil {
150 // Close the writer on error since Commit won't be called
151 _ = push.Close()
152 return err
153 }
154 // Commit will close the writer
155 return push.Commit(ctx, int64(len(descriptor.Data)), descriptor.Digest)
156}

Callers 2

publishMethod · 0.92
pushFunction · 0.85

Calls 5

PushMethod · 0.65
CloseMethod · 0.65
CommitMethod · 0.65
StringMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected