github.com/wunderio/silta-cli@v0.0.0-20240508100559-3017e4ab3a20/internal/common/ciDockerRepoFunctions.go (about)

     1  package common
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/google/go-containerregistry/pkg/name"
     7  	"github.com/google/go-containerregistry/pkg/v1/remote"
     8  )
     9  
    10  // Get image digest from registry
    11  func GetImageTagDigest(authenticator remote.Option, imageUrl string, imageTag string) string {
    12  
    13  	requestUrl := fmt.Sprintf("%s:%s", imageUrl, imageTag)
    14  	ref, err := name.ParseReference(requestUrl)
    15  	if err != nil {
    16  		return ""
    17  	}
    18  	// Get image manifest
    19  	img, err := remote.Get(ref, authenticator)
    20  	if err != nil {
    21  		return ""
    22  	}
    23  
    24  	// Extract image digest
    25  	digest := img.Digest.String()
    26  	return digest
    27  }