diff --git a/tools/version-tracker/pkg/github/github.go b/tools/version-tracker/pkg/github/github.go index 429d1ab6bf..19a2e19e0a 100644 --- a/tools/version-tracker/pkg/github/github.go +++ b/tools/version-tracker/pkg/github/github.go @@ -3,6 +3,7 @@ package github import ( "context" "encoding/base64" + "errors" "fmt" "os" "path/filepath" @@ -19,6 +20,8 @@ import ( "github.com/aws/eks-anywhere-build-tooling/tools/version-tracker/pkg/util/version" ) +var ErrNotFound = errors.New("404 Not Found") + // getTagsForRepo retrieves the list of tags for the given GitHub repository. func getTagsForRepo(client *github.Client, org, repo string) ([]*github.RepositoryTag, error) { logger.V(6).Info(fmt.Sprintf("Getting tags for [%s/%s] repository", org, repo)) @@ -149,10 +152,17 @@ func GetLatestRevision(client *github.Client, org, repo, currentRevision string, } } releaseForTag, _, err := client.Repositories.GetReleaseByTag(context.Background(), org, repo, tagName) + preRelease := false if err != nil { - return "", false, fmt.Errorf("calling GetReleaseByTag API for tag %s in [%s/%s] repository: %v", tagName, org, repo, err) + if err == ErrNotFound { + preRelease = false + } else { + return "", false, fmt.Errorf("calling GetReleaseByTag API for tag %s in [%s/%s] repository: %v", tagName, org, repo, err) + } + } else { + preRelease = *releaseForTag.Prerelease } - if *releaseForTag.Prerelease { + if preRelease { continue }