github.com/jenkins-x/jx/v2@v2.1.155/pkg/cloud/gke/images.go (about) 1 package gke 2 3 import ( 4 "encoding/json" 5 "strings" 6 ) 7 8 // ImageTagInfo contains tag information for container images 9 type ImageTagInfo struct { 10 Digest string `json: "digest"` 11 Tags []string `json: "tags"` 12 } 13 14 // FindLatestImageTag returns the latest image tag from the JSON output of the command 15 // ` gcloud container images list-tags gcr.io/jenkinsxio/builder-maven --format jsonhig` 16 func FindLatestImageTag(output string) (string, error) { 17 infos := []ImageTagInfo{} 18 19 err := json.Unmarshal([]byte(output), &infos) 20 if err != nil { 21 return "", err 22 } 23 for _, info := range infos { 24 for _, tag := range info.Tags { 25 if tag != "" && !strings.Contains(tag, "SNAPSHOT") { 26 return tag, nil 27 } 28 } 29 } 30 return "", nil 31 }