github.com/redhat-appstudio/e2e-tests@v0.0.0-20240520140907-9709f6f59323/tests/release/quay.go (about) 1 package common 2 3 import ( 4 "fmt" 5 "net/http" 6 "strings" 7 8 quay "github.com/konflux-ci/image-controller/pkg/quay" 9 "github.com/redhat-appstudio/e2e-tests/pkg/utils" 10 ) 11 12 var ( 13 quayApiUrl = "https://quay.io/api/v1" 14 // quayOrg = utils.GetEnv("IMAGE_CONTROLLER_QUAY_ORG", "hacbs-release-tests") 15 quayToken = utils.GetEnv("IMAGE_CONTROLLER_QUAY_ORG_TOKEN", "") 16 quayClient = quay.NewQuayClient(&http.Client{Transport: &http.Transport{}}, quayToken, quayApiUrl) 17 ) 18 19 // repoURL format example: quay.io/redhat-appstudio-qe/dcmetromap 20 func DoesDigestExistInQuay(repoURL string, digest string) (bool, error) { 21 repoParts := strings.Split(repoURL, "/") 22 if len(repoParts) <= 2 { 23 return false, fmt.Errorf("repo URL %s is not complete", repoURL) 24 } 25 26 repoName := strings.Join(repoParts[2:], "/") 27 tagList, _, err := quayClient.GetTagsFromPage(repoParts[1], repoName, 0) 28 if err != nil { 29 return false, err 30 } 31 32 for _, tag := range tagList { 33 if tag.ManifestDigest == digest { 34 return true, nil 35 } 36 } 37 38 return false, fmt.Errorf("no image is found") 39 }