pkg/image/dependencies.go (42 lines of code) (raw):

// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. package image import ( "fmt" ) const ( defaultStringValue = "<nil>" ) // Dependencies denotes Docker image dependencies. type Dependencies struct { Image *Reference `json:"image"` Runtime *Reference `json:"runtime-dependency"` Buildtime []*Reference `json:"buildtime-dependency"` Git *GitReference `json:"git,omitempty"` } // Reference defines the reference to a Docker image type Reference struct { Registry string `json:"registry"` Repository string `json:"repository"` Tag string `json:"tag,omitempty"` Digest string `json:"digest"` Reference string `json:"reference"` } // Equals determines if two image references are equal. func Equals(img1 *Reference, img2 *Reference) bool { if img1 == nil && img2 == nil { return true } if img1 == nil || img2 == nil { return false } return img1.Registry == img2.Registry && img1.Repository == img2.Repository && img1.Tag == img2.Tag && img1.Digest == img2.Digest && img1.Reference == img2.Reference } // String returns a string representation of an ImageReference. func (i *Reference) String() string { if i == nil { return defaultStringValue } return fmt.Sprintf("Registry: %s\nRepository: %s\nTag: %s\nDigest: %s\nReference: %s\n", i.Registry, i.Repository, i.Tag, i.Digest, i.Reference) } // GitReference defines the reference to git source code type GitReference struct { GitHeadRev string `json:"git-head-revision"` }