MCPcopy Create free account
hub / github.com/dagger/dagger / localMetadataHasMatchingSource

Method localMetadataHasMatchingSource

engine/server/resolver/metadata.go:223–247  ·  view source on GitHub ↗
(ctx context.Context, refspec ctdreference.Spec, descs ...ocispecs.Descriptor)

Source from the content-addressed store, hash-verified

221}
222
223func (r *Resolver) localMetadataHasMatchingSource(ctx context.Context, refspec ctdreference.Spec, descs ...ocispecs.Descriptor) (bool, error) {
224 seen := map[digest.Digest]struct{}{}
225 for _, desc := range descs {
226 if desc.Digest == "" {
227 continue
228 }
229 if _, ok := seen[desc.Digest]; ok {
230 continue
231 }
232 seen[desc.Digest] = struct{}{}
233
234 info, err := r.contentStore.Info(ctx, desc.Digest)
235 if err != nil {
236 if cerrdefs.IsNotFound(err) {
237 return false, nil
238 }
239 return false, err
240 }
241 ok, err := contentutil.HasSource(info, refspec)
242 if err != nil || !ok {
243 return ok, err
244 }
245 }
246 return true, nil
247}
248
249func (r *Resolver) attachContentToLease(ctx context.Context, descs []ocispecs.Descriptor) error {
250 leaseID, ok := leases.FromContext(ctx)

Callers 1

Calls 2

HasSourceFunction · 0.92
InfoMethod · 0.65

Tested by

no test coverage detected