Skip to content

Commit 18ad060

Browse files
Merge branch 'main' into dependabot/npm_and_yarn/ui/types/node-26.6.5
2 parents f511484 + b98d115 commit 18ad060

33 files changed

Lines changed: 311 additions & 231 deletions

‎.github/copilot-instructions.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
This is the **GitHub MCP Server**, a Model Context Protocol (MCP) server that connects AI tools to GitHub's platform. It enables AI agents to manage repositories, issues, pull requests, workflows, and more through natural language.
66

77
**Key Details:**
8-
- **Language:** Go 1.24+ (~38k lines of code)
8+
- **Language:** Go 1.27.3+ (~38k lines of code)
99
- **Type:** MCP server application with CLI interface
1010
- **Primary Package:** github-mcp-server (stdio MCP server - **this is the main focus**)
1111
- **Secondary Package:** mcpcurl (testing utility - don't break it, but not the priority)
@@ -92,9 +92,9 @@ go test ./pkg/github -run TestGetMe
9292

9393
### Key Configuration Files
9494

95-
- **go.mod / go.sum:** Go module dependencies (Go 1.24.0+)
95+
- **go.mod / go.sum:** Go module dependencies (Go 1.27.3+)
9696
- **.golangci.yml:** Linter configuration (v2 format, ~15 linters enabled)
97-
- **Dockerfile:** Multi-stage build (golang:1.25.8-alpine → distroless)
97+
- **Dockerfile:** Multi-stage build (golang:1.27.3-alpine → distroless)
9898
- **server.json:** MCP server metadata for registry
9999
- **.goreleaser.yaml:** Release automation config
100100
- **.gitignore:** Excludes bin/, dist/, vendor/, *.DS_Store, github-mcp-server binary

‎.github/workflows/code-scanning.yml‎

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,11 @@ jobs:
6666
registries_credentials: ${{ secrets.GITHUB_REGISTRIES_PROXY }}
6767
language: ${{ matrix.language }}
6868

69-
- name: Configure
70-
uses: github/codeql-action/resolve-environment@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
71-
id: resolve-environment
72-
with:
73-
language: ${{ matrix.language }}
7469
- name: Setup Go
7570
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7
76-
if: matrix.language == 'go' && fromJSON(steps.resolve-environment.outputs.environment).configuration.go.version
71+
if: matrix.language == 'go'
7772
with:
78-
go-version: ${{ fromJSON(steps.resolve-environment.outputs.environment).configuration.go.version }}
73+
go-version-file: "go.mod"
7974
cache: false
8075

8176
- name: Set up Node.js (for JavaScript CodeQL)

‎.github/workflows/registry-releaser.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
- name: Setup Go
2020
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7
2121
with:
22-
go-version: "stable"
22+
go-version-file: "go.mod"
2323

2424
- name: Fetch tags
2525
run: |

‎CONTRIBUTING.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Thanks for contributing and for helping us build toolsets that are truly valuabl
2626

2727
These are one time installations required to be able to test your changes locally as part of the pull request (PR) submission process.
2828

29-
1. Install Go 1.26.8 or later [through download](https://go.dev/doc/install) | [through Homebrew](https://formulae.brew.sh/formula/go)
29+
1. Install Go 1.27.3 or later [through download](https://go.dev/doc/install) | [through Homebrew](https://formulae.brew.sh/formula/go)
3030
2. [Install golangci-lint v2.14.0](https://golangci-lint.run/welcome/install/#local-installation), or let `script/lint` install the repository-pinned version. The pinned version supports both Go 1.26 and Go 1.27.
3131

3232
### UI development

‎Dockerfile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ COPY ui/ ./ui/
77
RUN mkdir -p ./pkg/github/ui_dist && \
88
cd ui && npm run build
99

10-
FROM golang:1.27.1-alpine@sha256:8a5910f31396cd4d89662f56c68b3ae31d374308270a1c3bd96672ee5ed43414 AS build
10+
FROM golang:1.27.3-alpine@sha256:f2c872bcee949b7be9c490efd02b48a8a2fbf947cdf533f1c58525ec9d8170fd AS build
1111
ARG VERSION="dev"
1212

1313
# Set the working directory

‎README.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,7 +1126,9 @@ For negotiated supported protocol versions `2026-07-28` or newer, the consolidat
11261126

11271127
- **list_label** - List labels from a repository
11281128
- **OAuth Challenge Scopes**: `repo`
1129+
- `after`: Cursor for pagination. Use the cursor from the previous response. (string, optional)
11291130
- `owner`: Repository owner (username or organization name) - required for all operations (string, required)
1131+
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)
11301132
- `repo`: Repository name - required for all operations (string, required)
11311133

11321134
</details>

‎go.mod‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/github/github-mcp-server/v2
22

3-
go 1.26.8
3+
go 1.27.3
44

55
require (
66
github.com/go-chi/chi/v5 v5.3.2

‎pkg/github/__toolsnaps__/list_label.snap‎

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,23 @@
44
"readOnlyHint": true,
55
"title": "List labels from a repository"
66
},
7-
"description": "List labels from a repository, ordered by issue count (descending) so the most-used labels are returned first",
7+
"description": "List labels from a repository, ordered by issue count (descending) so the most-used labels are returned first. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter.",
88
"inputSchema": {
99
"properties": {
10+
"after": {
11+
"description": "Cursor for pagination. Use the cursor from the previous response.",
12+
"type": "string"
13+
},
1014
"owner": {
1115
"description": "Repository owner (username or organization name) - required for all operations",
1216
"type": "string"
1317
},
18+
"perPage": {
19+
"description": "Results per page for pagination (min 1, max 100)",
20+
"maximum": 100,
21+
"minimum": 1,
22+
"type": "number"
23+
},
1424
"repo": {
1525
"description": "Repository name - required for all operations",
1626
"type": "string"
@@ -53,14 +63,37 @@
5363
"array"
5464
]
5565
},
66+
"pageInfo": {
67+
"additionalProperties": false,
68+
"properties": {
69+
"endCursor": {
70+
"type": "string"
71+
},
72+
"hasNextPage": {
73+
"type": "boolean"
74+
},
75+
"hasPreviousPage": {
76+
"type": "boolean"
77+
},
78+
"startCursor": {
79+
"type": "string"
80+
}
81+
},
82+
"required": [
83+
"hasNextPage",
84+
"hasPreviousPage"
85+
],
86+
"type": "object"
87+
},
5688
"totalCount": {
5789
"description": "Total labels in the repository.",
5890
"type": "integer"
5991
}
6092
},
6193
"required": [
6294
"labels",
63-
"totalCount"
95+
"totalCount",
96+
"pageInfo"
6497
],
6598
"type": "object"
6699
}

‎pkg/github/actions.go‎

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -745,14 +745,12 @@ func listWorkflowRuns(ctx context.Context, client *github.Client, filter Actions
745745
}
746746

747747
listWorkflowRunsOptions := &github.ListWorkflowRunsOptions{
748-
Actor: filter.Actor,
749-
Branch: filter.Branch,
750-
Event: filter.Event,
751-
Status: filter.Status,
752-
ListOptions: github.ListOptions{
753-
Page: pagination.Page,
754-
PerPage: pagination.PerPage,
755-
},
748+
Actor: filter.Actor,
749+
Branch: filter.Branch,
750+
Event: filter.Event,
751+
Status: filter.Status,
752+
Page: pagination.Page,
753+
PerPage: pagination.PerPage,
756754
}
757755

758756
var workflowRuns *github.WorkflowRuns
@@ -787,11 +785,9 @@ func listWorkflowJobs(ctx context.Context, client *github.Client, filter Actions
787785
}
788786

789787
workflowJobs, resp, err := client.Actions.ListWorkflowJobs(ctx, owner, repo, resourceID, &github.ListWorkflowJobsOptions{
790-
Filter: filter.Filter,
791-
ListOptions: github.ListOptions{
792-
Page: pagination.Page,
793-
PerPage: pagination.PerPage,
794-
},
788+
Filter: filter.Filter,
789+
Page: pagination.Page,
790+
PerPage: pagination.PerPage,
795791
})
796792
if err != nil {
797793
return ghErrors.NewGitHubAPIErrorResponse(ctx, "failed to list workflow jobs", resp, err), nil, nil

‎pkg/github/csv_output_test.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ func buildCSVOutputInventory(t *testing.T, tools []inventory.ServerTool, _ bool)
474474
}
475475

476476
func newCSVOutputTestDeps(csvOutputEnabled bool) ToolDependencies {
477-
return csvOutputTestDeps{stubDeps: stubDeps{obsv: stubExporters()}, csvOn: csvOutputEnabled}
477+
return csvOutputTestDeps{obsv: stubExporters(), csvOn: csvOutputEnabled}
478478
}
479479

480480
type csvOutputTestDeps struct {

0 commit comments

Comments
 (0)