Skip to content

Commit 9c7a555

Browse files
ListTags fetch all pages (ktrysmt#214)
1 parent f6ce0f7 commit 9c7a555

File tree

1 file changed

+5
-16
lines changed

1 file changed

+5
-16
lines changed

repository.go

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -482,16 +482,11 @@ func (r *Repository) ListTags(rbo *RepositoryTagOptions) (*RepositoryTags, error
482482
}
483483

484484
urlStr := r.c.requestUrl("/repositories/%s/%s/refs/tags?%s", rbo.Owner, rbo.RepoSlug, params.Encode())
485-
response, err := r.c.executeRaw("GET", urlStr, "")
486-
if err != nil {
487-
return nil, err
488-
}
489-
bodyBytes, err := ioutil.ReadAll(response)
485+
response, err := r.c.executePaginated("GET", urlStr, "")
490486
if err != nil {
491487
return nil, err
492488
}
493-
bodyString := string(bodyBytes)
494-
return decodeRepositoryTags(bodyString)
489+
return decodeRepositoryTags(response)
495490
}
496491

497492
func (r *Repository) CreateTag(rbo *RepositoryTagCreationOptions) (*RepositoryTag, error) {
@@ -1202,19 +1197,13 @@ func decodeRepositoryTagCreated(tagResponseStr string) (*RepositoryTag, error) {
12021197
return &responseTagCreated, nil
12031198
}
12041199

1205-
func decodeRepositoryTags(tagResponseStr string) (*RepositoryTags, error) {
1206-
1207-
var tagResponseMap map[string]interface{}
1208-
err := json.Unmarshal([]byte(tagResponseStr), &tagResponseMap)
1209-
if err != nil {
1210-
return nil, err
1211-
}
1212-
1200+
func decodeRepositoryTags(tagResponse interface{}) (*RepositoryTags, error) {
1201+
tagResponseMap := tagResponse.(map[string]interface{})
12131202
tagArray := tagResponseMap["values"].([]interface{})
12141203
var tags []RepositoryTag
12151204
for _, tagEntry := range tagArray {
12161205
var tag RepositoryTag
1217-
err = mapstructure.Decode(tagEntry, &tag)
1206+
err := mapstructure.Decode(tagEntry, &tag)
12181207
if err == nil {
12191208
tags = append(tags, tag)
12201209
}

0 commit comments

Comments
 (0)