Skip to content

Commit 5a48389

Browse files
committed
Fix linting issues and improve naming consistency
1 parent 6de3210 commit 5a48389

File tree

2 files changed

+42
-49
lines changed

2 files changed

+42
-49
lines changed

pkg/github/discussions.go

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func ListDiscussions(getGQLClient GetGQLClientFn, t translations.TranslationHelp
5959
var params struct {
6060
Owner string
6161
Repo string
62-
CategoryId string
62+
CategoryID string
6363
Since string
6464
Sort string
6565
Direction string
@@ -94,7 +94,7 @@ func ListDiscussions(getGQLClient GetGQLClientFn, t translations.TranslationHelp
9494
vars := map[string]interface{}{
9595
"owner": githubv4.String(params.Owner),
9696
"repo": githubv4.String(params.Repo),
97-
"categoryId": githubv4.ID(params.CategoryId),
97+
"categoryId": githubv4.ID(params.CategoryID),
9898
"sort": githubv4.DiscussionOrderField(params.Sort),
9999
"direction": githubv4.OrderDirection(params.Direction),
100100
"first": githubv4.Int(params.First),
@@ -155,25 +155,21 @@ func GetDiscussion(getGQLClient GetGQLClientFn, t translations.TranslationHelper
155155
mcp.Required(),
156156
mcp.Description("Repository name"),
157157
),
158-
mcp.WithNumber("discussion_id",
158+
mcp.WithNumber("discussionNumber",
159159
mcp.Required(),
160-
mcp.Description("Discussion ID"),
160+
mcp.Description("Discussion Number"),
161161
),
162162
),
163163
func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
164-
owner, err := requiredParam[string](request, "owner")
165-
if err != nil {
166-
return mcp.NewToolResultError(err.Error()), nil
167-
}
168-
repo, err := requiredParam[string](request, "repo")
169-
if err != nil {
170-
return mcp.NewToolResultError(err.Error()), nil
164+
// Decode params
165+
var params struct {
166+
Owner string
167+
Repo string
168+
DiscussionNumber int32
171169
}
172-
discussionID, err := RequiredInt(request, "discussion_id")
173-
if err != nil {
170+
if err := mapstructure.Decode(request.Params.Arguments, &params); err != nil {
174171
return mcp.NewToolResultError(err.Error()), nil
175172
}
176-
177173
client, err := getGQLClient(ctx)
178174
if err != nil {
179175
return mcp.NewToolResultError(fmt.Sprintf("failed to get GitHub GQL client: %v", err)), nil
@@ -187,13 +183,13 @@ func GetDiscussion(getGQLClient GetGQLClientFn, t translations.TranslationHelper
187183
State githubv4.String
188184
CreatedAt githubv4.DateTime
189185
URL githubv4.String `graphql:"url"`
190-
} `graphql:"discussion(number: $discussionID)"`
186+
} `graphql:"discussion(number: $discussionNumber)"`
191187
} `graphql:"repository(owner: $owner, name: $repo)"`
192188
}
193189
vars := map[string]interface{}{
194-
"owner": githubv4.String(owner),
195-
"repo": githubv4.String(repo),
196-
"discussionID": githubv4.Int(discussionID),
190+
"owner": githubv4.String(params.Owner),
191+
"repo": githubv4.String(params.Repo),
192+
"discussionNumber": githubv4.Int(params.DiscussionNumber),
197193
}
198194
if err := client.Query(ctx, &q, vars); err != nil {
199195
return mcp.NewToolResultError(err.Error()), nil
@@ -224,19 +220,16 @@ func GetDiscussionComments(getGQLClient GetGQLClientFn, t translations.Translati
224220
}),
225221
mcp.WithString("owner", mcp.Required(), mcp.Description("Repository owner")),
226222
mcp.WithString("repo", mcp.Required(), mcp.Description("Repository name")),
227-
mcp.WithNumber("discussion_id", mcp.Required(), mcp.Description("Discussion ID")),
223+
mcp.WithNumber("discussionNumber", mcp.Required(), mcp.Description("Discussion Number")),
228224
),
229225
func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
230-
owner, err := requiredParam[string](request, "owner")
231-
if err != nil {
232-
return mcp.NewToolResultError(err.Error()), nil
233-
}
234-
repo, err := requiredParam[string](request, "repo")
235-
if err != nil {
236-
return mcp.NewToolResultError(err.Error()), nil
226+
// Decode params
227+
var params struct {
228+
Owner string
229+
Repo string
230+
DiscussionNumber int32
237231
}
238-
discussionID, err := RequiredInt(request, "discussion_id")
239-
if err != nil {
232+
if err := mapstructure.Decode(request.Params.Arguments, &params); err != nil {
240233
return mcp.NewToolResultError(err.Error()), nil
241234
}
242235

@@ -253,13 +246,13 @@ func GetDiscussionComments(getGQLClient GetGQLClientFn, t translations.Translati
253246
Body githubv4.String
254247
}
255248
} `graphql:"comments(first:100)"`
256-
} `graphql:"discussion(number: $discussionID)"`
249+
} `graphql:"discussion(number: $discussionNumber)"`
257250
} `graphql:"repository(owner: $owner, name: $repo)"`
258251
}
259252
vars := map[string]interface{}{
260-
"owner": githubv4.String(owner),
261-
"repo": githubv4.String(repo),
262-
"discussionID": githubv4.Int(discussionID),
253+
"owner": githubv4.String(params.Owner),
254+
"repo": githubv4.String(params.Repo),
255+
"discussionNumber": githubv4.Int(params.DiscussionNumber),
263256
}
264257
if err := client.Query(ctx, &q, vars); err != nil {
265258
return mcp.NewToolResultError(err.Error()), nil
@@ -280,7 +273,7 @@ func GetDiscussionComments(getGQLClient GetGQLClientFn, t translations.Translati
280273

281274
func ListDiscussionCategories(getGQLClient GetGQLClientFn, t translations.TranslationHelperFunc) (tool mcp.Tool, handler server.ToolHandlerFunc) {
282275
return mcp.NewTool("list_discussion_categories",
283-
mcp.WithDescription(t("TOOL_LIST_DISCUSSION_CATEGORIES_DESCRIPTION", "List discussion categorie with their id and name, for a repository")),
276+
mcp.WithDescription(t("TOOL_LIST_DISCUSSION_CATEGORIES_DESCRIPTION", "List discussion categories with their id and name, for a repository")),
284277
mcp.WithToolAnnotation(mcp.ToolAnnotation{
285278
Title: t("TOOL_LIST_DISCUSSION_CATEGORIES_USER_TITLE", "List discussion categories"),
286279
ReadOnlyHint: toBoolPtr(true),

pkg/github/discussions_test.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,8 @@ func Test_GetDiscussion(t *testing.T) {
196196
assert.NotEmpty(t, toolDef.Description)
197197
assert.Contains(t, toolDef.InputSchema.Properties, "owner")
198198
assert.Contains(t, toolDef.InputSchema.Properties, "repo")
199-
assert.Contains(t, toolDef.InputSchema.Properties, "discussion_id")
200-
assert.ElementsMatch(t, toolDef.InputSchema.Required, []string{"owner", "repo", "discussion_id"})
199+
assert.Contains(t, toolDef.InputSchema.Properties, "discussionNumber")
200+
assert.ElementsMatch(t, toolDef.InputSchema.Required, []string{"owner", "repo", "discussionNumber"})
201201

202202
var q struct {
203203
Repository struct {
@@ -207,13 +207,13 @@ func Test_GetDiscussion(t *testing.T) {
207207
State githubv4.String
208208
CreatedAt githubv4.DateTime
209209
URL githubv4.String `graphql:"url"`
210-
} `graphql:"discussion(number: $discussionID)"`
210+
} `graphql:"discussion(number: $discussionNumber)"`
211211
} `graphql:"repository(owner: $owner, name: $repo)"`
212212
}
213213
vars := map[string]interface{}{
214-
"owner": githubv4.String("owner"),
215-
"repo": githubv4.String("repo"),
216-
"discussionID": githubv4.Int(1),
214+
"owner": githubv4.String("owner"),
215+
"repo": githubv4.String("repo"),
216+
"discussionNumber": githubv4.Int(1),
217217
}
218218
tests := []struct {
219219
name string
@@ -256,7 +256,7 @@ func Test_GetDiscussion(t *testing.T) {
256256
gqlClient := githubv4.NewClient(httpClient)
257257
_, handler := GetDiscussion(stubGetGQLClientFn(gqlClient), translations.NullTranslationHelper)
258258

259-
req := createMCPRequest(map[string]interface{}{"owner": "owner", "repo": "repo", "discussion_id": float64(1)})
259+
req := createMCPRequest(map[string]interface{}{"owner": "owner", "repo": "repo", "discussionNumber": int32(1)})
260260
res, err := handler(context.Background(), req)
261261
text := getTextResult(t, res).Text
262262

@@ -284,8 +284,8 @@ func Test_GetDiscussionComments(t *testing.T) {
284284
assert.NotEmpty(t, toolDef.Description)
285285
assert.Contains(t, toolDef.InputSchema.Properties, "owner")
286286
assert.Contains(t, toolDef.InputSchema.Properties, "repo")
287-
assert.Contains(t, toolDef.InputSchema.Properties, "discussion_id")
288-
assert.ElementsMatch(t, toolDef.InputSchema.Required, []string{"owner", "repo", "discussion_id"})
287+
assert.Contains(t, toolDef.InputSchema.Properties, "discussionNumber")
288+
assert.ElementsMatch(t, toolDef.InputSchema.Required, []string{"owner", "repo", "discussionNumber"})
289289

290290
var q struct {
291291
Repository struct {
@@ -295,13 +295,13 @@ func Test_GetDiscussionComments(t *testing.T) {
295295
Body githubv4.String
296296
}
297297
} `graphql:"comments(first:100)"`
298-
} `graphql:"discussion(number: $discussionID)"`
298+
} `graphql:"discussion(number: $discussionNumber)"`
299299
} `graphql:"repository(owner: $owner, name: $repo)"`
300300
}
301301
vars := map[string]interface{}{
302-
"owner": githubv4.String("owner"),
303-
"repo": githubv4.String("repo"),
304-
"discussionID": githubv4.Int(1),
302+
"owner": githubv4.String("owner"),
303+
"repo": githubv4.String("repo"),
304+
"discussionNumber": githubv4.Int(1),
305305
}
306306
mockResponse := githubv4mock.DataResponse(map[string]any{
307307
"repository": map[string]any{
@@ -321,9 +321,9 @@ func Test_GetDiscussionComments(t *testing.T) {
321321
_, handler := GetDiscussionComments(stubGetGQLClientFn(gqlClient), translations.NullTranslationHelper)
322322

323323
request := createMCPRequest(map[string]interface{}{
324-
"owner": "owner",
325-
"repo": "repo",
326-
"discussion_id": float64(1),
324+
"owner": "owner",
325+
"repo": "repo",
326+
"discussionNumber": int32(1),
327327
})
328328

329329
result, err := handler(context.Background(), request)

0 commit comments

Comments
 (0)