Skip to content

Commit ef3a17a

Browse files
committed
Merge branch 'main' into kerobbi/reduce-context-list-releases
2 parents a02384e + 391990a commit ef3a17a

File tree

5 files changed

+44
-12
lines changed

5 files changed

+44
-12
lines changed

pkg/github/minimal_types.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,12 @@ type MinimalBranch struct {
122122
Protected bool `json:"protected"`
123123
}
124124

125+
// MinimalTag is the trimmed output type for tag objects.
126+
type MinimalTag struct {
127+
Name string `json:"name"`
128+
SHA string `json:"sha"`
129+
}
130+
125131
// MinimalResponse represents a minimal response for all CRUD operations.
126132
// Success is implicit in the HTTP response status, and all other information
127133
// can be derived from the URL or fetched separately if needed.
@@ -721,6 +727,18 @@ func convertToMinimalRelease(release *github.RepositoryRelease) MinimalRelease {
721727
return m
722728
}
723729

730+
func convertToMinimalTag(tag *github.RepositoryTag) MinimalTag {
731+
m := MinimalTag{
732+
Name: tag.GetName(),
733+
}
734+
735+
if commit := tag.GetCommit(); commit != nil {
736+
m.SHA = commit.GetSHA()
737+
}
738+
739+
return m
740+
}
741+
724742
// MinimalCheckRun is the trimmed output type for check run objects.
725743
type MinimalCheckRun struct {
726744
ID int64 `json:"id"`

pkg/github/pullrequests.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1217,7 +1217,14 @@ func ListPullRequests(t translations.TranslationHelperFunc) inventory.ServerTool
12171217
}
12181218
}
12191219

1220-
r, err := json.Marshal(prs)
1220+
minimalPRs := make([]MinimalPullRequest, 0, len(prs))
1221+
for _, pr := range prs {
1222+
if pr != nil {
1223+
minimalPRs = append(minimalPRs, convertToMinimalPullRequest(pr))
1224+
}
1225+
}
1226+
1227+
r, err := json.Marshal(minimalPRs)
12211228
if err != nil {
12221229
return utils.NewToolResultErrorFromErr("failed to marshal response", err), nil, nil
12231230
}

pkg/github/pullrequests_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -671,16 +671,16 @@ func Test_ListPullRequests(t *testing.T) {
671671
textContent := getTextResult(t, result)
672672

673673
// Unmarshal and verify the result
674-
var returnedPRs []*github.PullRequest
674+
var returnedPRs []MinimalPullRequest
675675
err = json.Unmarshal([]byte(textContent.Text), &returnedPRs)
676676
require.NoError(t, err)
677677
assert.Len(t, returnedPRs, 2)
678-
assert.Equal(t, *tc.expectedPRs[0].Number, *returnedPRs[0].Number)
679-
assert.Equal(t, *tc.expectedPRs[0].Title, *returnedPRs[0].Title)
680-
assert.Equal(t, *tc.expectedPRs[0].State, *returnedPRs[0].State)
681-
assert.Equal(t, *tc.expectedPRs[1].Number, *returnedPRs[1].Number)
682-
assert.Equal(t, *tc.expectedPRs[1].Title, *returnedPRs[1].Title)
683-
assert.Equal(t, *tc.expectedPRs[1].State, *returnedPRs[1].State)
678+
assert.Equal(t, *tc.expectedPRs[0].Number, returnedPRs[0].Number)
679+
assert.Equal(t, *tc.expectedPRs[0].Title, returnedPRs[0].Title)
680+
assert.Equal(t, *tc.expectedPRs[0].State, returnedPRs[0].State)
681+
assert.Equal(t, *tc.expectedPRs[1].Number, returnedPRs[1].Number)
682+
assert.Equal(t, *tc.expectedPRs[1].Title, returnedPRs[1].Title)
683+
assert.Equal(t, *tc.expectedPRs[1].State, returnedPRs[1].State)
684684
})
685685
}
686686
}

pkg/github/repositories.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1497,7 +1497,14 @@ func ListTags(t translations.TranslationHelperFunc) inventory.ServerTool {
14971497
return ghErrors.NewGitHubAPIStatusErrorResponse(ctx, "failed to list tags", resp, body), nil, nil
14981498
}
14991499

1500-
r, err := json.Marshal(tags)
1500+
minimalTags := make([]MinimalTag, 0, len(tags))
1501+
for _, tag := range tags {
1502+
if tag != nil {
1503+
minimalTags = append(minimalTags, convertToMinimalTag(tag))
1504+
}
1505+
}
1506+
1507+
r, err := json.Marshal(minimalTags)
15011508
if err != nil {
15021509
return nil, nil, fmt.Errorf("failed to marshal response: %w", err)
15031510
}

pkg/github/repositories_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2791,15 +2791,15 @@ func Test_ListTags(t *testing.T) {
27912791
textContent := getTextResult(t, result)
27922792

27932793
// Parse and verify the result
2794-
var returnedTags []*github.RepositoryTag
2794+
var returnedTags []MinimalTag
27952795
err = json.Unmarshal([]byte(textContent.Text), &returnedTags)
27962796
require.NoError(t, err)
27972797

27982798
// Verify each tag
27992799
require.Equal(t, len(tc.expectedTags), len(returnedTags))
28002800
for i, expectedTag := range tc.expectedTags {
2801-
assert.Equal(t, *expectedTag.Name, *returnedTags[i].Name)
2802-
assert.Equal(t, *expectedTag.Commit.SHA, *returnedTags[i].Commit.SHA)
2801+
assert.Equal(t, *expectedTag.Name, returnedTags[i].Name)
2802+
assert.Equal(t, *expectedTag.Commit.SHA, returnedTags[i].SHA)
28032803
}
28042804
})
28052805
}

0 commit comments

Comments
 (0)