Skip to content

Commit b07b985

Browse files
committed
Uses pagination to list all release assets
Signed-off-by: kvmw <mshamsi@broadcom.com>
1 parent e746403 commit b07b985

1 file changed

Lines changed: 18 additions & 13 deletions

File tree

github.go

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ type GitHubClient struct {
4747
}
4848

4949
func NewGitHubClient(source Source) (*GitHubClient, error) {
50-
var httpClient = &http.Client{}
51-
var ctx = context.TODO()
50+
httpClient := &http.Client{}
51+
ctx := context.TODO()
5252

5353
if source.Insecure {
5454
httpClient.Transport = &http.Transport{
@@ -214,17 +214,24 @@ func (g *GitHubClient) UpdateRelease(release github.RepositoryRelease) (*github.
214214

215215
func (g *GitHubClient) ListReleaseAssets(release github.RepositoryRelease) ([]*github.ReleaseAsset, error) {
216216
opt := &github.ListOptions{PerPage: 100}
217-
assets, res, err := g.client.Repositories.ListReleaseAssets(context.TODO(), g.owner, g.repository, *release.ID, opt)
218-
if err != nil {
219-
return nil, err
220-
}
221-
222-
err = res.Body.Close()
223-
if err != nil {
224-
return nil, err
217+
var allAssets []*github.ReleaseAsset
218+
for {
219+
assets, res, err := g.client.Repositories.ListReleaseAssets(context.TODO(), g.owner, g.repository, *release.ID, opt)
220+
if err != nil {
221+
return []*github.ReleaseAsset{}, err
222+
}
223+
allAssets = append(allAssets, assets...)
224+
if res.NextPage == 0 {
225+
err = res.Body.Close()
226+
if err != nil {
227+
return nil, err
228+
}
229+
break
230+
}
231+
opt.Page = res.NextPage
225232
}
226233

227-
return assets, nil
234+
return allAssets, nil
228235
}
229236

230237
func (g *GitHubClient) UploadReleaseAsset(release github.RepositoryRelease, name string, file *os.File) error {
@@ -309,7 +316,6 @@ func (g *GitHubClient) GetZipballLink(tag string) (*url.URL, error) {
309316

310317
func (g *GitHubClient) ResolveTagToCommitSHA(tagName string) (string, error) {
311318
ref, res, err := g.client.Git.GetRef(context.TODO(), g.owner, g.repository, "tags/"+tagName)
312-
313319
if err != nil {
314320
return "", err
315321
}
@@ -328,7 +334,6 @@ func (g *GitHubClient) ResolveTagToCommitSHA(tagName string) (string, error) {
328334

329335
// Resolve tag to commit sha
330336
tag, res, err := g.client.Git.GetTag(context.TODO(), g.owner, g.repository, *ref.Object.SHA)
331-
332337
if err != nil {
333338
return "", err
334339
}

0 commit comments

Comments
 (0)