@@ -3,6 +3,7 @@ package github
3
3
import (
4
4
"context"
5
5
"encoding/base64"
6
+ "errors"
6
7
"fmt"
7
8
"os"
8
9
"path/filepath"
@@ -19,6 +20,8 @@ import (
19
20
"github.com/aws/eks-anywhere-build-tooling/tools/version-tracker/pkg/util/version"
20
21
)
21
22
23
+ var ErrNotFound = errors .New ("404 Not Found" )
24
+
22
25
// getTagsForRepo retrieves the list of tags for the given GitHub repository.
23
26
func getTagsForRepo (client * github.Client , org , repo string ) ([]* github.RepositoryTag , error ) {
24
27
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,
149
152
}
150
153
}
151
154
releaseForTag , _ , err := client .Repositories .GetReleaseByTag (context .Background (), org , repo , tagName )
155
+ preRelease := false
152
156
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
154
164
}
155
- if * releaseForTag . Prerelease {
165
+ if preRelease {
156
166
continue
157
167
}
158
168
0 commit comments