Skip to content

Commit f97bbd9

Browse files
committed
Handle cases where GitHub release does not exist for tag
1 parent 8e4b281 commit f97bbd9

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

tools/version-tracker/pkg/github/github.go

+12-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package github
33
import (
44
"context"
55
"encoding/base64"
6+
"errors"
67
"fmt"
78
"os"
89
"path/filepath"
@@ -19,6 +20,8 @@ import (
1920
"github.com/aws/eks-anywhere-build-tooling/tools/version-tracker/pkg/util/version"
2021
)
2122

23+
var ErrNotFound = errors.New("404 Not Found")
24+
2225
// getTagsForRepo retrieves the list of tags for the given GitHub repository.
2326
func getTagsForRepo(client *github.Client, org, repo string) ([]*github.RepositoryTag, error) {
2427
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,
149152
}
150153
}
151154
releaseForTag, _, err := client.Repositories.GetReleaseByTag(context.Background(), org, repo, tagName)
155+
preRelease := false
152156
if err != nil {
153-
return "", false, fmt.Errorf("calling GetReleaseByTag API for tag %s in [%s/%s] repository: %v", tagName, org, repo, err)
157+
if err == ErrNotFound {
158+
preRelease = false
159+
} else {
160+
return "", false, fmt.Errorf("calling GetReleaseByTag API for tag %s in [%s/%s] repository: %v", tagName, org, repo, err)
161+
}
162+
} else {
163+
preRelease = *releaseForTag.Prerelease
154164
}
155-
if *releaseForTag.Prerelease {
165+
if preRelease {
156166
continue
157167
}
158168

0 commit comments

Comments
 (0)