@@ -171,33 +171,45 @@ func LatestStableRelease() (string, error) {
171
171
defer cancel ()
172
172
173
173
client := github .NewClient (nil )
174
- releases , response , err := client .Repositories .ListReleases (ctx , "renproject" , "darknode-release" , nil )
175
- if err != nil {
176
- return "" , err
177
- }
178
- if response .StatusCode != http .StatusOK {
179
- return "" , fmt .Errorf ("cannot get latest darknode release from github, error code = %v" , response .StatusCode )
174
+ opts := & github.ListOptions {
175
+ PerPage : 25 ,
180
176
}
181
-
182
177
latest , err := version .NewVersion ("0.0.0" )
183
178
if err != nil {
184
179
return "" , err
185
180
}
186
- verReg := "^v?[0-9]+\\ .[0-9]+\\ .[0-9]+$"
187
- for _ , release := range releases {
188
- match , err := regexp .MatchString (verReg , * release .TagName )
181
+
182
+ // Fetch all releases and find the latest stable release tag
183
+ for {
184
+ releases , response , err := client .Repositories .ListReleases (ctx , "renproject" , "darknode-release" , opts )
189
185
if err != nil {
190
186
return "" , err
191
187
}
192
- if match {
193
- ver , err := version .NewVersion (* release .TagName )
188
+
189
+ if response .StatusCode != http .StatusOK {
190
+ return "" , fmt .Errorf ("cannot get latest darknode release from github, error code = %v" , response .StatusCode )
191
+ }
192
+
193
+ verReg := "^v?[0-9]+\\ .[0-9]+\\ .[0-9]+$"
194
+ for _ , release := range releases {
195
+ match , err := regexp .MatchString (verReg , * release .TagName )
194
196
if err != nil {
195
197
return "" , err
196
198
}
197
- if ver .GreaterThan (latest ) {
198
- latest = ver
199
+ if match {
200
+ ver , err := version .NewVersion (* release .TagName )
201
+ if err != nil {
202
+ return "" , err
203
+ }
204
+ if ver .GreaterThan (latest ) {
205
+ latest = ver
206
+ }
199
207
}
200
208
}
209
+ if response .NextPage == 0 {
210
+ break
211
+ }
212
+ opts .Page = response .NextPage
201
213
}
202
214
if latest .String () == "0.0.0" {
203
215
return "" , errors .New ("cannot find any stable release" )
0 commit comments