Skip to content

Commit 822c930

Browse files
authored
Update projectNumber's type
1 parent fe1dab5 commit 822c930

File tree

5 files changed

+57
-57
lines changed

5 files changed

+57
-57
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -668,13 +668,13 @@ The following sets of tools are available (all are on by default):
668668
- `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required)
669669
- `owner_type`: Owner type (string, required)
670670
- `per_page`: Number of results per page (max 100, default: 30) (number, optional)
671-
- `projectNumber`: The project's number. (number, required)
671+
- `project_number`: The project's number. (number, required)
672672

673673
- **list_project_fields** - List project fields
674674
- `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required)
675675
- `owner_type`: Owner type (string, required)
676676
- `per_page`: Number of results per page (max 100, default: 30) (number, optional)
677-
- `projectNumber`: The project's number. (number, required)
677+
- `project_number`: The project's number. (number, required)
678678

679679
- **list_projects** - List projects
680680
- `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required)

pkg/github/__toolsnaps__/get_project_field.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@
2626
"description": "Number of results per page (max 100, default: 30)",
2727
"type": "number"
2828
},
29-
"projectNumber": {
29+
"project_number": {
3030
"description": "The project's number.",
3131
"type": "number"
3232
}
3333
},
3434
"required": [
3535
"owner_type",
3636
"owner",
37-
"projectNumber",
37+
"project_number",
3838
"field_id"
3939
],
4040
"type": "object"

pkg/github/__toolsnaps__/list_project_fields.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@
2222
"description": "Number of results per page (max 100, default: 30)",
2323
"type": "number"
2424
},
25-
"projectNumber": {
25+
"project_number": {
2626
"description": "The project's number.",
2727
"type": "number"
2828
}
2929
},
3030
"required": [
3131
"owner_type",
3232
"owner",
33-
"projectNumber"
33+
"project_number"
3434
],
3535
"type": "object"
3636
},

pkg/github/projects.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ func ListProjectFields(getClient GetClientFn, t translations.TranslationHelperFu
174174
mcp.WithToolAnnotation(mcp.ToolAnnotation{Title: t("TOOL_LIST_PROJECT_FIELDS_USER_TITLE", "List project fields"), ReadOnlyHint: ToBoolPtr(true)}),
175175
mcp.WithString("owner_type", mcp.Required(), mcp.Description("Owner type"), mcp.Enum("user", "org")),
176176
mcp.WithString("owner", mcp.Required(), mcp.Description("If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive.")),
177-
mcp.WithNumber("projectNumber", mcp.Required(), mcp.Description("The project's number.")),
177+
mcp.WithNumber("project_number", mcp.Required(), mcp.Description("The project's number.")),
178178
mcp.WithNumber("per_page", mcp.Description("Number of results per page (max 100, default: 30)")),
179179
), func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
180180
owner, err := RequiredParam[string](req, "owner")
@@ -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[int](req, "projectNumber")
188+
projectNumber, err := RequiredInt(req, "project_number")
189189
if err != nil {
190190
return mcp.NewToolResultError(err.Error()), nil
191191
}
@@ -252,7 +252,7 @@ func GetProjectField(getClient GetClientFn, t translations.TranslationHelperFunc
252252
mcp.WithToolAnnotation(mcp.ToolAnnotation{Title: t("TOOL_GET_PROJECT_FIELD_USER_TITLE", "Get project field"), ReadOnlyHint: ToBoolPtr(true)}),
253253
mcp.WithString("owner_type", mcp.Required(), mcp.Description("Owner type"), mcp.Enum("user", "org")),
254254
mcp.WithString("owner", mcp.Required(), mcp.Description("If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive.")),
255-
mcp.WithNumber("projectNumber", mcp.Required(), mcp.Description("The project's number.")),
255+
mcp.WithNumber("project_number", mcp.Required(), mcp.Description("The project's number.")),
256256
mcp.WithNumber("field_id", mcp.Required(), mcp.Description("The field's id.")),
257257
mcp.WithNumber("per_page", mcp.Description("Number of results per page (max 100, default: 30)")),
258258
), func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
@@ -264,11 +264,11 @@ func GetProjectField(getClient GetClientFn, t translations.TranslationHelperFunc
264264
if err != nil {
265265
return mcp.NewToolResultError(err.Error()), nil
266266
}
267-
projectNumber, err := RequiredParam[int](req, "projectNumber")
267+
projectNumber, err := RequiredInt(req, "project_number")
268268
if err != nil {
269269
return mcp.NewToolResultError(err.Error()), nil
270270
}
271-
fieldID, err := RequiredParam[int64](req, "field_id")
271+
fieldID, err := RequiredInt(req, "field_id")
272272
if err != nil {
273273
return mcp.NewToolResultError(err.Error()), nil
274274
}

pkg/github/projects_test.go

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -300,9 +300,9 @@ func Test_ListProjectFields(t *testing.T) {
300300
assert.NotEmpty(t, tool.Description)
301301
assert.Contains(t, tool.InputSchema.Properties, "owner_type")
302302
assert.Contains(t, tool.InputSchema.Properties, "owner")
303-
assert.Contains(t, tool.InputSchema.Properties, "projectNumber")
303+
assert.Contains(t, tool.InputSchema.Properties, "project_number")
304304
assert.Contains(t, tool.InputSchema.Properties, "per_page")
305-
assert.ElementsMatch(t, tool.InputSchema.Required, []string{"owner_type", "owner", "projectNumber"})
305+
assert.ElementsMatch(t, tool.InputSchema.Required, []string{"owner_type", "owner", "project_number"})
306306

307307
orgFields := []map[string]any{
308308
{"id": 101, "name": "Status", "dataType": "single_select"},
@@ -328,9 +328,9 @@ func Test_ListProjectFields(t *testing.T) {
328328
),
329329
),
330330
requestArgs: map[string]interface{}{
331-
"owner": "octo-org",
332-
"owner_type": "org",
333-
"projectNumber": 123,
331+
"owner": "octo-org",
332+
"owner_type": "org",
333+
"project_number": float64(123),
334334
},
335335
expectedLength: 1,
336336
},
@@ -352,10 +352,10 @@ func Test_ListProjectFields(t *testing.T) {
352352
),
353353
),
354354
requestArgs: map[string]interface{}{
355-
"owner": "octocat",
356-
"owner_type": "user",
357-
"projectNumber": 456,
358-
"per_page": float64(50),
355+
"owner": "octocat",
356+
"owner_type": "user",
357+
"project_number": float64(456),
358+
"per_page": float64(50),
359359
},
360360
expectedLength: 1,
361361
},
@@ -368,9 +368,9 @@ func Test_ListProjectFields(t *testing.T) {
368368
),
369369
),
370370
requestArgs: map[string]interface{}{
371-
"owner": "octo-org",
372-
"owner_type": "org",
373-
"projectNumber": 789,
371+
"owner": "octo-org",
372+
"owner_type": "org",
373+
"project_number": float64(789),
374374
},
375375
expectError: true,
376376
expectedErrMsg: "failed to list projects",
@@ -379,22 +379,22 @@ func Test_ListProjectFields(t *testing.T) {
379379
name: "missing owner",
380380
mockedClient: mock.NewMockedHTTPClient(),
381381
requestArgs: map[string]interface{}{
382-
"owner_type": "org",
383-
"projectNumber": 10,
382+
"owner_type": "org",
383+
"project_number": 10,
384384
},
385385
expectError: true,
386386
},
387387
{
388388
name: "missing owner_type",
389389
mockedClient: mock.NewMockedHTTPClient(),
390390
requestArgs: map[string]interface{}{
391-
"owner": "octo-org",
392-
"projectNumber": 10,
391+
"owner": "octo-org",
392+
"project_number": 10,
393393
},
394394
expectError: true,
395395
},
396396
{
397-
name: "missing projectNumber",
397+
name: "missing project_number",
398398
mockedClient: mock.NewMockedHTTPClient(),
399399
requestArgs: map[string]interface{}{
400400
"owner": "octo-org",
@@ -424,8 +424,8 @@ func Test_ListProjectFields(t *testing.T) {
424424
if tc.name == "missing owner_type" {
425425
assert.Contains(t, text, "missing required parameter: owner_type")
426426
}
427-
if tc.name == "missing projectNumber" {
428-
assert.Contains(t, text, "missing required parameter: projectNumber")
427+
if tc.name == "missing project_number" {
428+
assert.Contains(t, text, "missing required parameter: project_number")
429429
}
430430
return
431431
}
@@ -449,10 +449,10 @@ func Test_GetProjectField(t *testing.T) {
449449
assert.NotEmpty(t, tool.Description)
450450
assert.Contains(t, tool.InputSchema.Properties, "owner_type")
451451
assert.Contains(t, tool.InputSchema.Properties, "owner")
452-
assert.Contains(t, tool.InputSchema.Properties, "projectNumber")
452+
assert.Contains(t, tool.InputSchema.Properties, "project_number")
453453
assert.Contains(t, tool.InputSchema.Properties, "field_id")
454454
assert.Contains(t, tool.InputSchema.Properties, "per_page")
455-
assert.ElementsMatch(t, tool.InputSchema.Required, []string{"owner_type", "owner", "projectNumber", "field_id"})
455+
assert.ElementsMatch(t, tool.InputSchema.Required, []string{"owner_type", "owner", "project_number", "field_id"})
456456

457457
orgField := map[string]any{"id": 101, "name": "Status", "dataType": "single_select"}
458458
userField := map[string]any{"id": 202, "name": "Priority", "dataType": "single_select"}
@@ -474,10 +474,10 @@ func Test_GetProjectField(t *testing.T) {
474474
),
475475
),
476476
requestArgs: map[string]any{
477-
"owner": "octo-org",
478-
"owner_type": "org",
479-
"projectNumber": 123,
480-
"field_id": int64(101),
477+
"owner": "octo-org",
478+
"owner_type": "org",
479+
"project_number": float64(123),
480+
"field_id": float64(101),
481481
},
482482
expectedID: 101,
483483
},
@@ -490,10 +490,10 @@ func Test_GetProjectField(t *testing.T) {
490490
),
491491
),
492492
requestArgs: map[string]any{
493-
"owner": "octocat",
494-
"owner_type": "user",
495-
"projectNumber": 456,
496-
"field_id": int64(202),
493+
"owner": "octocat",
494+
"owner_type": "user",
495+
"project_number": float64(456),
496+
"field_id": float64(202),
497497
},
498498
expectedID: 202,
499499
},
@@ -506,10 +506,10 @@ func Test_GetProjectField(t *testing.T) {
506506
),
507507
),
508508
requestArgs: map[string]any{
509-
"owner": "octo-org",
510-
"owner_type": "org",
511-
"projectNumber": 789,
512-
"field_id": int64(303),
509+
"owner": "octo-org",
510+
"owner_type": "org",
511+
"project_number": float64(789),
512+
"field_id": float64(303),
513513
},
514514
expectError: true,
515515
expectedErrMsg: "failed to get project field",
@@ -518,39 +518,39 @@ func Test_GetProjectField(t *testing.T) {
518518
name: "missing owner",
519519
mockedClient: mock.NewMockedHTTPClient(),
520520
requestArgs: map[string]any{
521-
"owner_type": "org",
522-
"projectNumber": 10,
523-
"field_id": int64(1),
521+
"owner_type": "org",
522+
"project_number": float64(10),
523+
"field_id": float64(1),
524524
},
525525
expectError: true,
526526
},
527527
{
528528
name: "missing owner_type",
529529
mockedClient: mock.NewMockedHTTPClient(),
530530
requestArgs: map[string]any{
531-
"owner": "octo-org",
532-
"projectNumber": 10,
533-
"field_id": int64(1),
531+
"owner": "octo-org",
532+
"project_number": float64(10),
533+
"field_id": float64(1),
534534
},
535535
expectError: true,
536536
},
537537
{
538-
name: "missing projectNumber",
538+
name: "missing project_number",
539539
mockedClient: mock.NewMockedHTTPClient(),
540540
requestArgs: map[string]any{
541541
"owner": "octo-org",
542542
"owner_type": "org",
543-
"field_id": int64(1),
543+
"field_id": float64(1),
544544
},
545545
expectError: true,
546546
},
547547
{
548548
name: "missing field_id",
549549
mockedClient: mock.NewMockedHTTPClient(),
550550
requestArgs: map[string]any{
551-
"owner": "octo-org",
552-
"owner_type": "org",
553-
"projectNumber": 10,
551+
"owner": "octo-org",
552+
"owner_type": "org",
553+
"project_number": float64(10),
554554
},
555555
expectError: true,
556556
},
@@ -576,8 +576,8 @@ func Test_GetProjectField(t *testing.T) {
576576
if tc.name == "missing owner_type" {
577577
assert.Contains(t, text, "missing required parameter: owner_type")
578578
}
579-
if tc.name == "missing projectNumber" {
580-
assert.Contains(t, text, "missing required parameter: projectNumber")
579+
if tc.name == "missing project_number" {
580+
assert.Contains(t, text, "missing required parameter: project_number")
581581
}
582582
if tc.name == "missing field_id" {
583583
assert.Contains(t, text, "missing required parameter: field_id")

0 commit comments

Comments
 (0)