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

Commit08a49b0

Browse files
authored
use WithPagination tool option (#632)
1 parent23f6f3a commit08a49b0

File tree

6 files changed

+40
-82
lines changed

6 files changed

+40
-82
lines changed

‎README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -478,15 +478,15 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
478478
-**list_workflow_jobs** - List workflow jobs
479479
-`filter`: Filters jobs by their completed_at timestamp (string, optional)
480480
-`owner`: Repository owner (string, required)
481-
-`page`:The pagenumberof the results to fetch (number, optional)
482-
-`per_page`:The number of resultsper page(max 100) (number, optional)
481+
-`page`:Pagenumberfor pagination (min 1) (number, optional)
482+
-`perPage`:Resultsper pagefor pagination (min 1,max 100) (number, optional)
483483
-`repo`: Repository name (string, required)
484484
-`run_id`: The unique identifier of the workflow run (number, required)
485485

486486
-**list_workflow_run_artifacts** - List workflow artifacts
487487
-`owner`: Repository owner (string, required)
488-
-`page`:The pagenumberof the results to fetch (number, optional)
489-
-`per_page`:The number of resultsper page(max 100) (number, optional)
488+
-`page`:Pagenumberfor pagination (min 1) (number, optional)
489+
-`perPage`:Resultsper pagefor pagination (min 1,max 100) (number, optional)
490490
-`repo`: Repository name (string, required)
491491
-`run_id`: The unique identifier of the workflow run (number, required)
492492

@@ -495,16 +495,16 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
495495
-`branch`: Returns workflow runs associated with a branch. Use the name of the branch. (string, optional)
496496
-`event`: Returns workflow runs for a specific event type (string, optional)
497497
-`owner`: Repository owner (string, required)
498-
-`page`:The pagenumberof the results to fetch (number, optional)
499-
-`per_page`:The number of resultsper page(max 100) (number, optional)
498+
-`page`:Pagenumberfor pagination (min 1) (number, optional)
499+
-`perPage`:Resultsper pagefor pagination (min 1,max 100) (number, optional)
500500
-`repo`: Repository name (string, required)
501501
-`status`: Returns workflow runs with the check run status (string, optional)
502502
-`workflow_id`: The workflow ID or workflow file name (string, required)
503503

504504
-**list_workflows** - List workflows
505505
-`owner`: Repository owner (string, required)
506-
-`page`:The pagenumberof the results to fetch (number, optional)
507-
-`per_page`:The number of resultsper page(max 100) (number, optional)
506+
-`page`:Pagenumberfor pagination (min 1) (number, optional)
507+
-`perPage`:Resultsper pagefor pagination (min 1,max 100) (number, optional)
508508
-`repo`: Repository name (string, required)
509509

510510
-**rerun_failed_jobs** - Rerun failed jobs
@@ -632,8 +632,8 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
632632
-**get_issue_comments** - Get issue comments
633633
-`issue_number`: Issue number (number, required)
634634
-`owner`: Repository owner (string, required)
635-
-`page`: Page number (number, optional)
636-
-`per_page`:Number of recordsper page (number, optional)
635+
-`page`: Page numberfor pagination (min 1)(number, optional)
636+
-`perPage`:Resultsper page for pagination (min 1, max 100) (number, optional)
637637
-`repo`: Repository name (string, required)
638638

639639
-**list_issues** - List issues

‎pkg/github/__toolsnaps__/get_issue_comments.snap

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@
1515
"type":"string"
1616
},
1717
"page": {
18-
"description":"Page number",
18+
"description":"Page number for pagination (min 1)",
19+
"minimum":1,
1920
"type":"number"
2021
},
21-
"per_page": {
22-
"description":"Number of records per page",
22+
"perPage": {
23+
"description":"Results per page for pagination (min 1, max 100)",
24+
"maximum":100,
25+
"minimum":1,
2326
"type":"number"
2427
},
2528
"repo": {

‎pkg/github/actions.go

Lines changed: 16 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,7 @@ func ListWorkflows(getClient GetClientFn, t translations.TranslationHelperFunc)
3737
mcp.Required(),
3838
mcp.Description(DescriptionRepositoryName),
3939
),
40-
mcp.WithNumber("per_page",
41-
mcp.Description("The number of results per page (max 100)"),
42-
),
43-
mcp.WithNumber("page",
44-
mcp.Description("The page number of the results to fetch"),
45-
),
40+
WithPagination(),
4641
),
4742
func(ctx context.Context,request mcp.CallToolRequest) (*mcp.CallToolResult,error) {
4843
owner,err:=RequiredParam[string](request,"owner")
@@ -55,11 +50,7 @@ func ListWorkflows(getClient GetClientFn, t translations.TranslationHelperFunc)
5550
}
5651

5752
// Get optional pagination parameters
58-
perPage,err:=OptionalIntParam(request,"per_page")
59-
iferr!=nil {
60-
returnmcp.NewToolResultError(err.Error()),nil
61-
}
62-
page,err:=OptionalIntParam(request,"page")
53+
pagination,err:=OptionalPaginationParams(request)
6354
iferr!=nil {
6455
returnmcp.NewToolResultError(err.Error()),nil
6556
}
@@ -71,8 +62,8 @@ func ListWorkflows(getClient GetClientFn, t translations.TranslationHelperFunc)
7162

7263
// Set up list options
7364
opts:=&github.ListOptions{
74-
PerPage:perPage,
75-
Page:page,
65+
PerPage:pagination.perPage,
66+
Page:pagination.page,
7667
}
7768

7869
workflows,resp,err:=client.Actions.ListWorkflows(ctx,owner,repo,opts)
@@ -157,12 +148,7 @@ func ListWorkflowRuns(getClient GetClientFn, t translations.TranslationHelperFun
157148
mcp.Description("Returns workflow runs with the check run status"),
158149
mcp.Enum("queued","in_progress","completed","requested","waiting"),
159150
),
160-
mcp.WithNumber("per_page",
161-
mcp.Description("The number of results per page (max 100)"),
162-
),
163-
mcp.WithNumber("page",
164-
mcp.Description("The page number of the results to fetch"),
165-
),
151+
WithPagination(),
166152
),
167153
func(ctx context.Context,request mcp.CallToolRequest) (*mcp.CallToolResult,error) {
168154
owner,err:=RequiredParam[string](request,"owner")
@@ -197,11 +183,7 @@ func ListWorkflowRuns(getClient GetClientFn, t translations.TranslationHelperFun
197183
}
198184

199185
// Get optional pagination parameters
200-
perPage,err:=OptionalIntParam(request,"per_page")
201-
iferr!=nil {
202-
returnmcp.NewToolResultError(err.Error()),nil
203-
}
204-
page,err:=OptionalIntParam(request,"page")
186+
pagination,err:=OptionalPaginationParams(request)
205187
iferr!=nil {
206188
returnmcp.NewToolResultError(err.Error()),nil
207189
}
@@ -218,8 +200,8 @@ func ListWorkflowRuns(getClient GetClientFn, t translations.TranslationHelperFun
218200
Event:event,
219201
Status:status,
220202
ListOptions: github.ListOptions{
221-
PerPage:perPage,
222-
Page:page,
203+
PerPage:pagination.perPage,
204+
Page:pagination.page,
223205
},
224206
}
225207

@@ -483,12 +465,7 @@ func ListWorkflowJobs(getClient GetClientFn, t translations.TranslationHelperFun
483465
mcp.Description("Filters jobs by their completed_at timestamp"),
484466
mcp.Enum("latest","all"),
485467
),
486-
mcp.WithNumber("per_page",
487-
mcp.Description("The number of results per page (max 100)"),
488-
),
489-
mcp.WithNumber("page",
490-
mcp.Description("The page number of the results to fetch"),
491-
),
468+
WithPagination(),
492469
),
493470
func(ctx context.Context,request mcp.CallToolRequest) (*mcp.CallToolResult,error) {
494471
owner,err:=RequiredParam[string](request,"owner")
@@ -512,11 +489,7 @@ func ListWorkflowJobs(getClient GetClientFn, t translations.TranslationHelperFun
512489
}
513490

514491
// Get optional pagination parameters
515-
perPage,err:=OptionalIntParam(request,"per_page")
516-
iferr!=nil {
517-
returnmcp.NewToolResultError(err.Error()),nil
518-
}
519-
page,err:=OptionalIntParam(request,"page")
492+
pagination,err:=OptionalPaginationParams(request)
520493
iferr!=nil {
521494
returnmcp.NewToolResultError(err.Error()),nil
522495
}
@@ -530,8 +503,8 @@ func ListWorkflowJobs(getClient GetClientFn, t translations.TranslationHelperFun
530503
opts:=&github.ListWorkflowJobsOptions{
531504
Filter:filter,
532505
ListOptions: github.ListOptions{
533-
PerPage:perPage,
534-
Page:page,
506+
PerPage:pagination.perPage,
507+
Page:pagination.page,
535508
},
536509
}
537510

@@ -1022,12 +995,7 @@ func ListWorkflowRunArtifacts(getClient GetClientFn, t translations.TranslationH
1022995
mcp.Required(),
1023996
mcp.Description("The unique identifier of the workflow run"),
1024997
),
1025-
mcp.WithNumber("per_page",
1026-
mcp.Description("The number of results per page (max 100)"),
1027-
),
1028-
mcp.WithNumber("page",
1029-
mcp.Description("The page number of the results to fetch"),
1030-
),
998+
WithPagination(),
1031999
),
10321000
func(ctx context.Context,request mcp.CallToolRequest) (*mcp.CallToolResult,error) {
10331001
owner,err:=RequiredParam[string](request,"owner")
@@ -1045,11 +1013,7 @@ func ListWorkflowRunArtifacts(getClient GetClientFn, t translations.TranslationH
10451013
runID:=int64(runIDInt)
10461014

10471015
// Get optional pagination parameters
1048-
perPage,err:=OptionalIntParam(request,"per_page")
1049-
iferr!=nil {
1050-
returnmcp.NewToolResultError(err.Error()),nil
1051-
}
1052-
page,err:=OptionalIntParam(request,"page")
1016+
pagination,err:=OptionalPaginationParams(request)
10531017
iferr!=nil {
10541018
returnmcp.NewToolResultError(err.Error()),nil
10551019
}
@@ -1061,8 +1025,8 @@ func ListWorkflowRunArtifacts(getClient GetClientFn, t translations.TranslationH
10611025

10621026
// Set up list options
10631027
opts:=&github.ListOptions{
1064-
PerPage:perPage,
1065-
Page:page,
1028+
PerPage:pagination.perPage,
1029+
Page:pagination.page,
10661030
}
10671031

10681032
artifacts,resp,err:=client.Actions.ListWorkflowRunArtifacts(ctx,owner,repo,runID,opts)

‎pkg/github/actions_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func Test_ListWorkflows(t *testing.T) {
2323
assert.NotEmpty(t,tool.Description)
2424
assert.Contains(t,tool.InputSchema.Properties,"owner")
2525
assert.Contains(t,tool.InputSchema.Properties,"repo")
26-
assert.Contains(t,tool.InputSchema.Properties,"per_page")
26+
assert.Contains(t,tool.InputSchema.Properties,"perPage")
2727
assert.Contains(t,tool.InputSchema.Properties,"page")
2828
assert.ElementsMatch(t,tool.InputSchema.Required, []string{"owner","repo"})
2929

@@ -393,7 +393,7 @@ func Test_ListWorkflowRunArtifacts(t *testing.T) {
393393
assert.Contains(t,tool.InputSchema.Properties,"owner")
394394
assert.Contains(t,tool.InputSchema.Properties,"repo")
395395
assert.Contains(t,tool.InputSchema.Properties,"run_id")
396-
assert.Contains(t,tool.InputSchema.Properties,"per_page")
396+
assert.Contains(t,tool.InputSchema.Properties,"perPage")
397397
assert.Contains(t,tool.InputSchema.Properties,"page")
398398
assert.ElementsMatch(t,tool.InputSchema.Required, []string{"owner","repo","run_id"})
399399

‎pkg/github/issues.go

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -608,12 +608,7 @@ func GetIssueComments(getClient GetClientFn, t translations.TranslationHelperFun
608608
mcp.Required(),
609609
mcp.Description("Issue number"),
610610
),
611-
mcp.WithNumber("page",
612-
mcp.Description("Page number"),
613-
),
614-
mcp.WithNumber("per_page",
615-
mcp.Description("Number of records per page"),
616-
),
611+
WithPagination(),
617612
),
618613
func(ctx context.Context,request mcp.CallToolRequest) (*mcp.CallToolResult,error) {
619614
owner,err:=RequiredParam[string](request,"owner")
@@ -628,19 +623,15 @@ func GetIssueComments(getClient GetClientFn, t translations.TranslationHelperFun
628623
iferr!=nil {
629624
returnmcp.NewToolResultError(err.Error()),nil
630625
}
631-
page,err:=OptionalIntParamWithDefault(request,"page",1)
632-
iferr!=nil {
633-
returnmcp.NewToolResultError(err.Error()),nil
634-
}
635-
perPage,err:=OptionalIntParamWithDefault(request,"per_page",30)
626+
pagination,err:=OptionalPaginationParams(request)
636627
iferr!=nil {
637628
returnmcp.NewToolResultError(err.Error()),nil
638629
}
639630

640631
opts:=&github.IssueListCommentsOptions{
641632
ListOptions: github.ListOptions{
642-
Page:page,
643-
PerPage:perPage,
633+
Page:pagination.page,
634+
PerPage:pagination.perPage,
644635
},
645636
}
646637

‎pkg/github/issues_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,7 +1087,7 @@ func Test_GetIssueComments(t *testing.T) {
10871087
assert.Contains(t,tool.InputSchema.Properties,"repo")
10881088
assert.Contains(t,tool.InputSchema.Properties,"issue_number")
10891089
assert.Contains(t,tool.InputSchema.Properties,"page")
1090-
assert.Contains(t,tool.InputSchema.Properties,"per_page")
1090+
assert.Contains(t,tool.InputSchema.Properties,"perPage")
10911091
assert.ElementsMatch(t,tool.InputSchema.Required, []string{"owner","repo","issue_number"})
10921092

10931093
// Setup mock comments for success case
@@ -1152,7 +1152,7 @@ func Test_GetIssueComments(t *testing.T) {
11521152
"repo":"repo",
11531153
"issue_number":float64(42),
11541154
"page":float64(2),
1155-
"per_page":float64(10),
1155+
"perPage":float64(10),
11561156
},
11571157
expectError:false,
11581158
expectedComments:mockComments,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp