Skip to content

Commit b222072

Browse files
authored
Reduce context usage for list_releases (#2091)
1 parent 81f4c87 commit b222072

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

pkg/github/minimal_types.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,25 @@ func convertToMinimalBranch(branch *github.Branch) MinimalBranch {
708708
}
709709
}
710710

711+
func convertToMinimalRelease(release *github.RepositoryRelease) MinimalRelease {
712+
m := MinimalRelease{
713+
ID: release.GetID(),
714+
TagName: release.GetTagName(),
715+
Name: release.GetName(),
716+
Body: release.GetBody(),
717+
HTMLURL: release.GetHTMLURL(),
718+
Prerelease: release.GetPrerelease(),
719+
Draft: release.GetDraft(),
720+
Author: convertToMinimalUser(release.GetAuthor()),
721+
}
722+
723+
if release.PublishedAt != nil {
724+
m.PublishedAt = release.PublishedAt.Format(time.RFC3339)
725+
}
726+
727+
return m
728+
}
729+
711730
func convertToMinimalTag(tag *github.RepositoryTag) MinimalTag {
712731
m := MinimalTag{
713732
Name: tag.GetName(),

pkg/github/repositories.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1677,7 +1677,14 @@ func ListReleases(t translations.TranslationHelperFunc) inventory.ServerTool {
16771677
return ghErrors.NewGitHubAPIStatusErrorResponse(ctx, "failed to list releases", resp, body), nil, nil
16781678
}
16791679

1680-
r, err := json.Marshal(releases)
1680+
minimalReleases := make([]MinimalRelease, 0, len(releases))
1681+
for _, release := range releases {
1682+
if release != nil {
1683+
minimalReleases = append(minimalReleases, convertToMinimalRelease(release))
1684+
}
1685+
}
1686+
1687+
r, err := json.Marshal(minimalReleases)
16811688
if err != nil {
16821689
return nil, nil, fmt.Errorf("failed to marshal response: %w", err)
16831690
}

pkg/github/repositories_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3052,12 +3052,12 @@ func Test_ListReleases(t *testing.T) {
30523052

30533053
require.NoError(t, err)
30543054
textContent := getTextResult(t, result)
3055-
var returnedReleases []*github.RepositoryRelease
3055+
var returnedReleases []MinimalRelease
30563056
err = json.Unmarshal([]byte(textContent.Text), &returnedReleases)
30573057
require.NoError(t, err)
30583058
assert.Len(t, returnedReleases, len(tc.expectedResult))
3059-
for i, rel := range returnedReleases {
3060-
assert.Equal(t, *tc.expectedResult[i].TagName, *rel.TagName)
3059+
for i := range returnedReleases {
3060+
assert.Equal(t, *tc.expectedResult[i].TagName, returnedReleases[i].TagName)
30613061
}
30623062
})
30633063
}

0 commit comments

Comments
 (0)