Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3730b84

Browse files
authored
fix: get_discussion graphQL invalid field (#648)
* rm State which does not exist on type Discussion* update Test_GetDiscussion* use Discussion object instead of Issue
1 parent39d7fec commit3730b84

File tree

2 files changed

+22
-38
lines changed

2 files changed

+22
-38
lines changed

‎pkg/github/discussions.go

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func ListDiscussions(getGQLClient GetGQLClientFn, t translations.TranslationHelp
6262
}
6363

6464
// Now execute the discussions query
65-
vardiscussions []*github.Issue
65+
vardiscussions []*github.Discussion
6666
ifcategoryID!=nil {
6767
// Query with category filter (server-side filtering)
6868
varquerystruct {
@@ -89,17 +89,15 @@ func ListDiscussions(getGQLClient GetGQLClientFn, t translations.TranslationHelp
8989
returnmcp.NewToolResultError(err.Error()),nil
9090
}
9191

92-
// Map nodes to GitHubIssue objects
92+
// Map nodes to GitHubDiscussion objects
9393
for_,n:=rangequery.Repository.Discussions.Nodes {
94-
di:=&github.Issue{
94+
di:=&github.Discussion{
9595
Number:github.Ptr(int(n.Number)),
9696
Title:github.Ptr(string(n.Title)),
9797
HTMLURL:github.Ptr(string(n.URL)),
9898
CreatedAt:&github.Timestamp{Time:n.CreatedAt.Time},
99-
Labels: []*github.Label{
100-
{
101-
Name:github.Ptr(fmt.Sprintf("category:%s",string(n.Category.Name))),
102-
},
99+
DiscussionCategory:&github.DiscussionCategory{
100+
Name:github.Ptr(string(n.Category.Name)),
103101
},
104102
}
105103
discussions=append(discussions,di)
@@ -129,17 +127,15 @@ func ListDiscussions(getGQLClient GetGQLClientFn, t translations.TranslationHelp
129127
returnmcp.NewToolResultError(err.Error()),nil
130128
}
131129

132-
// Map nodes to GitHubIssue objects
130+
// Map nodes to GitHubDiscussion objects
133131
for_,n:=rangequery.Repository.Discussions.Nodes {
134-
di:=&github.Issue{
132+
di:=&github.Discussion{
135133
Number:github.Ptr(int(n.Number)),
136134
Title:github.Ptr(string(n.Title)),
137135
HTMLURL:github.Ptr(string(n.URL)),
138136
CreatedAt:&github.Timestamp{Time:n.CreatedAt.Time},
139-
Labels: []*github.Label{
140-
{
141-
Name:github.Ptr(fmt.Sprintf("category:%s",string(n.Category.Name))),
142-
},
137+
DiscussionCategory:&github.DiscussionCategory{
138+
Name:github.Ptr(string(n.Category.Name)),
143139
},
144140
}
145141
discussions=append(discussions,di)
@@ -195,7 +191,6 @@ func GetDiscussion(getGQLClient GetGQLClientFn, t translations.TranslationHelper
195191
Discussionstruct {
196192
Number githubv4.Int
197193
Body githubv4.String
198-
State githubv4.String
199194
CreatedAt githubv4.DateTime
200195
URL githubv4.String`graphql:"url"`
201196
Categorystruct {
@@ -213,16 +208,13 @@ func GetDiscussion(getGQLClient GetGQLClientFn, t translations.TranslationHelper
213208
returnmcp.NewToolResultError(err.Error()),nil
214209
}
215210
d:=q.Repository.Discussion
216-
discussion:=&github.Issue{
211+
discussion:=&github.Discussion{
217212
Number:github.Ptr(int(d.Number)),
218213
Body:github.Ptr(string(d.Body)),
219-
State:github.Ptr(string(d.State)),
220214
HTMLURL:github.Ptr(string(d.URL)),
221215
CreatedAt:&github.Timestamp{Time:d.CreatedAt.Time},
222-
Labels: []*github.Label{
223-
{
224-
Name:github.Ptr(fmt.Sprintf("category:%s",string(d.Category.Name))),
225-
},
216+
DiscussionCategory:&github.DiscussionCategory{
217+
Name:github.Ptr(string(d.Category.Name)),
226218
},
227219
}
228220
out,err:=json.Marshal(discussion)

‎pkg/github/discussions_test.go

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"encoding/json"
66
"net/http"
7-
"strings"
87
"testing"
98
"time"
109

@@ -168,17 +167,17 @@ func Test_ListDiscussions(t *testing.T) {
168167
}
169168
require.NoError(t,err)
170169

171-
varreturnedDiscussions []*github.Issue
170+
varreturnedDiscussions []*github.Discussion
172171
err=json.Unmarshal([]byte(text),&returnedDiscussions)
173172
require.NoError(t,err)
174173

175174
assert.Len(t,returnedDiscussions,tc.expectedCount,"Expected %d discussions, got %d",tc.expectedCount,len(returnedDiscussions))
176175

177-
// Verify that all returned discussions have a categorylabelif filtered
176+
// Verify that all returned discussions have a category if filtered
178177
if_,hasCategory:=tc.reqParams["category"];hasCategory {
179178
for_,discussion:=rangereturnedDiscussions {
180-
require.NotEmpty(t,discussion.Labels,"Discussion should have category label")
181-
assert.True(t,strings.HasPrefix(*discussion.Labels[0].Name,"category:"),"Discussion should have categorylabel prefix")
179+
require.NotNil(t,discussion.DiscussionCategory,"Discussion should have category")
180+
assert.NotEmpty(t,*discussion.DiscussionCategory.Name,"Discussion should have categoryname")
182181
}
183182
}
184183
})
@@ -200,7 +199,6 @@ func Test_GetDiscussion(t *testing.T) {
200199
Discussionstruct {
201200
Number githubv4.Int
202201
Body githubv4.String
203-
State githubv4.String
204202
CreatedAt githubv4.DateTime
205203
URL githubv4.String`graphql:"url"`
206204
Categorystruct {
@@ -218,7 +216,7 @@ func Test_GetDiscussion(t *testing.T) {
218216
namestring
219217
response githubv4mock.GQLResponse
220218
expectErrorbool
221-
expected*github.Issue
219+
expected*github.Discussion
222220
errContainsstring
223221
}{
224222
{
@@ -227,23 +225,19 @@ func Test_GetDiscussion(t *testing.T) {
227225
"repository":map[string]any{"discussion":map[string]any{
228226
"number":1,
229227
"body":"This is a test discussion",
230-
"state":"open",
231228
"url":"https://github.com/owner/repo/discussions/1",
232229
"createdAt":"2025-04-25T12:00:00Z",
233230
"category":map[string]any{"name":"General"},
234231
}},
235232
}),
236233
expectError:false,
237-
expected:&github.Issue{
234+
expected:&github.Discussion{
238235
HTMLURL:github.Ptr("https://github.com/owner/repo/discussions/1"),
239236
Number:github.Ptr(1),
240237
Body:github.Ptr("This is a test discussion"),
241-
State:github.Ptr("open"),
242238
CreatedAt:&github.Timestamp{Time:time.Date(2025,4,25,12,0,0,0,time.UTC)},
243-
Labels: []*github.Label{
244-
{
245-
Name:github.Ptr("category:General"),
246-
},
239+
DiscussionCategory:&github.DiscussionCategory{
240+
Name:github.Ptr("General"),
247241
},
248242
},
249243
},
@@ -272,15 +266,13 @@ func Test_GetDiscussion(t *testing.T) {
272266
}
273267

274268
require.NoError(t,err)
275-
varout github.Issue
269+
varout github.Discussion
276270
require.NoError(t,json.Unmarshal([]byte(text),&out))
277271
assert.Equal(t,*tc.expected.HTMLURL,*out.HTMLURL)
278272
assert.Equal(t,*tc.expected.Number,*out.Number)
279273
assert.Equal(t,*tc.expected.Body,*out.Body)
280-
assert.Equal(t,*tc.expected.State,*out.State)
281274
// Check category label
282-
require.Len(t,out.Labels,1)
283-
assert.Equal(t,*tc.expected.Labels[0].Name,*out.Labels[0].Name)
275+
assert.Equal(t,*tc.expected.DiscussionCategory.Name,*out.DiscussionCategory.Name)
284276
})
285277
}
286278
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp