Skip to content

Commit e76e309

Browse files
authored
Data types
1 parent 5b25f55 commit e76e309

File tree

3 files changed

+29
-16
lines changed

3 files changed

+29
-16
lines changed

pkg/github/projects.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ func ListProjectFields(getClient GetClientFn, t translations.TranslationHelperFu
185185
if err != nil {
186186
return mcp.NewToolResultError(err.Error()), nil
187187
}
188-
projectNumber, err := RequiredParam[string](req, "projectNumber")
188+
projectNumber, err := RequiredParam[int](req, "projectNumber")
189189
if err != nil {
190190
return mcp.NewToolResultError(err.Error()), nil
191191
}
@@ -200,14 +200,13 @@ func ListProjectFields(getClient GetClientFn, t translations.TranslationHelperFu
200200

201201
var url string
202202
if ownerType == "org" {
203-
url = fmt.Sprintf("orgs/%s/projectsV2/%s/fields", owner, projectNumber)
203+
url = fmt.Sprintf("orgs/%s/projectsV2/%d/fields", owner, projectNumber)
204204
} else {
205-
url = fmt.Sprintf("users/%s/projectsV2/%s/fields", owner, projectNumber)
205+
url = fmt.Sprintf("users/%s/projectsV2/%d/fields", owner, projectNumber)
206206
}
207207
projectFields := []projectV2Field{}
208208

209209
opts := listProjectsOptions{PerPage: perPage}
210-
211210
if perPage > 0 {
212211
opts.PerPage = perPage
213212
}
@@ -265,14 +264,18 @@ func GetProjectField(getClient GetClientFn, t translations.TranslationHelperFunc
265264
if err != nil {
266265
return mcp.NewToolResultError(err.Error()), nil
267266
}
268-
projectNumber, err := RequiredParam[int64](req, "projectNumber")
267+
projectNumber, err := RequiredParam[int](req, "projectNumber")
269268
if err != nil {
270269
return mcp.NewToolResultError(err.Error()), nil
271270
}
272271
fieldID, err := RequiredParam[int64](req, "field_id")
273272
if err != nil {
274273
return mcp.NewToolResultError(err.Error()), nil
275274
}
275+
perPage, err := OptionalIntParamWithDefault(req, "per_page", 30)
276+
if err != nil {
277+
return mcp.NewToolResultError(err.Error()), nil
278+
}
276279
client, err := getClient(ctx)
277280
if err != nil {
278281
return mcp.NewToolResultError(err.Error()), nil
@@ -284,6 +287,15 @@ func GetProjectField(getClient GetClientFn, t translations.TranslationHelperFunc
284287
} else {
285288
url = fmt.Sprintf("users/%s/projectsV2/%d/fields/%d", owner, projectNumber, fieldID)
286289
}
290+
291+
opts := listProjectsOptions{PerPage: perPage}
292+
if perPage > 0 {
293+
opts.PerPage = perPage
294+
}
295+
url, err = addOptions(url, opts)
296+
if err != nil {
297+
return nil, fmt.Errorf("failed to add options to request: %w", err)
298+
}
287299
projectField := projectV2Field{}
288300

289301
httpRequest, err := client.NewRequest("GET", url, nil)

pkg/github/projects_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ func Test_ListProjectFields(t *testing.T) {
330330
requestArgs: map[string]interface{}{
331331
"owner": "octo-org",
332332
"owner_type": "org",
333-
"projectNumber": "123",
333+
"projectNumber": 123,
334334
},
335335
expectedLength: 1,
336336
},
@@ -354,7 +354,7 @@ func Test_ListProjectFields(t *testing.T) {
354354
requestArgs: map[string]interface{}{
355355
"owner": "octocat",
356356
"owner_type": "user",
357-
"projectNumber": "456",
357+
"projectNumber": 456,
358358
"per_page": float64(50),
359359
},
360360
expectedLength: 1,
@@ -370,7 +370,7 @@ func Test_ListProjectFields(t *testing.T) {
370370
requestArgs: map[string]interface{}{
371371
"owner": "octo-org",
372372
"owner_type": "org",
373-
"projectNumber": "789",
373+
"projectNumber": 789,
374374
},
375375
expectError: true,
376376
expectedErrMsg: "failed to list projects",
@@ -380,7 +380,7 @@ func Test_ListProjectFields(t *testing.T) {
380380
mockedClient: mock.NewMockedHTTPClient(),
381381
requestArgs: map[string]interface{}{
382382
"owner_type": "org",
383-
"projectNumber": "10",
383+
"projectNumber": 10,
384384
},
385385
expectError: true,
386386
},
@@ -389,7 +389,7 @@ func Test_ListProjectFields(t *testing.T) {
389389
mockedClient: mock.NewMockedHTTPClient(),
390390
requestArgs: map[string]interface{}{
391391
"owner": "octo-org",
392-
"projectNumber": "10",
392+
"projectNumber": 10,
393393
},
394394
expectError: true,
395395
},
@@ -476,7 +476,7 @@ func Test_GetProjectField(t *testing.T) {
476476
requestArgs: map[string]any{
477477
"owner": "octo-org",
478478
"owner_type": "org",
479-
"projectNumber": int64(123),
479+
"projectNumber": 123,
480480
"field_id": int64(101),
481481
},
482482
expectedID: 101,
@@ -492,7 +492,7 @@ func Test_GetProjectField(t *testing.T) {
492492
requestArgs: map[string]any{
493493
"owner": "octocat",
494494
"owner_type": "user",
495-
"projectNumber": int64(456),
495+
"projectNumber": 456,
496496
"field_id": int64(202),
497497
},
498498
expectedID: 202,
@@ -508,7 +508,7 @@ func Test_GetProjectField(t *testing.T) {
508508
requestArgs: map[string]any{
509509
"owner": "octo-org",
510510
"owner_type": "org",
511-
"projectNumber": int64(789),
511+
"projectNumber": 789,
512512
"field_id": int64(303),
513513
},
514514
expectError: true,
@@ -519,7 +519,7 @@ func Test_GetProjectField(t *testing.T) {
519519
mockedClient: mock.NewMockedHTTPClient(),
520520
requestArgs: map[string]any{
521521
"owner_type": "org",
522-
"projectNumber": int64(10),
522+
"projectNumber": 10,
523523
"field_id": int64(1),
524524
},
525525
expectError: true,
@@ -529,7 +529,7 @@ func Test_GetProjectField(t *testing.T) {
529529
mockedClient: mock.NewMockedHTTPClient(),
530530
requestArgs: map[string]any{
531531
"owner": "octo-org",
532-
"projectNumber": int64(10),
532+
"projectNumber": 10,
533533
"field_id": int64(1),
534534
},
535535
expectError: true,
@@ -550,7 +550,7 @@ func Test_GetProjectField(t *testing.T) {
550550
requestArgs: map[string]any{
551551
"owner": "octo-org",
552552
"owner_type": "org",
553-
"projectNumber": int64(10),
553+
"projectNumber": 10,
554554
},
555555
expectError: true,
556556
},

pkg/github/tools.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ func DefaultToolsetGroup(readOnly bool, getClient GetClientFn, getGQLClient GetG
195195
toolsets.NewServerTool(ListProjects(getClient, t)),
196196
toolsets.NewServerTool(GetProject(getClient, t)),
197197
toolsets.NewServerTool(ListProjectFields(getClient, t)),
198+
toolsets.NewServerTool(GetProjectField(getClient, t)),
198199
)
199200

200201
// Add toolsets to the group

0 commit comments

Comments
 (0)