Skip to content

Commit a02384e

Browse files
committed
add convertToMinimalRelease, wire MinimalRelease in list_releases
1 parent 91b35e0 commit a02384e

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
@@ -702,6 +702,25 @@ func convertToMinimalBranch(branch *github.Branch) MinimalBranch {
702702
}
703703
}
704704

705+
func convertToMinimalRelease(release *github.RepositoryRelease) MinimalRelease {
706+
m := MinimalRelease{
707+
ID: release.GetID(),
708+
TagName: release.GetTagName(),
709+
Name: release.GetName(),
710+
Body: release.GetBody(),
711+
HTMLURL: release.GetHTMLURL(),
712+
Prerelease: release.GetPrerelease(),
713+
Draft: release.GetDraft(),
714+
Author: convertToMinimalUser(release.GetAuthor()),
715+
}
716+
717+
if release.PublishedAt != nil {
718+
m.PublishedAt = release.PublishedAt.Format(time.RFC3339)
719+
}
720+
721+
return m
722+
}
723+
705724
// MinimalCheckRun is the trimmed output type for check run objects.
706725
type MinimalCheckRun struct {
707726
ID int64 `json:"id"`

pkg/github/repositories.go

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

1673-
r, err := json.Marshal(releases)
1673+
minimalReleases := make([]MinimalRelease, 0, len(releases))
1674+
for _, release := range releases {
1675+
if release != nil {
1676+
minimalReleases = append(minimalReleases, convertToMinimalRelease(release))
1677+
}
1678+
}
1679+
1680+
r, err := json.Marshal(minimalReleases)
16741681
if err != nil {
16751682
return nil, nil, fmt.Errorf("failed to marshal response: %w", err)
16761683
}

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)