Skip to content

Commit a3d585d

Browse files
authored
Data types
1 parent 5b25f55 commit a3d585d

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

pkg/github/projects.go

Lines changed: 16 additions & 4 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[int64](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
}
@@ -273,6 +272,10 @@ func GetProjectField(getClient GetClientFn, t translations.TranslationHelperFunc
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: 5 additions & 5 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": int64(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": int64(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": int64(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": int64(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": int64(10),
393393
},
394394
expectError: true,
395395
},

0 commit comments

Comments
 (0)