Skip to content

Commit f256843

Browse files
veralizethCopilot
andcommitted
Merge remote updates into issue artifact tooling
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2 parents b632f19 + 944ad89 commit f256843

29 files changed

Lines changed: 132 additions & 181 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

‎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/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 {

‎pkg/github/gists.go‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,8 @@ func ListGists(t translations.TranslationHelperFunc) inventory.ServerTool {
6464
}
6565

6666
opts := &github.GistListOptions{
67-
ListOptions: github.ListOptions{
68-
Page: pagination.Page,
69-
PerPage: pagination.PerPage,
70-
},
67+
Page: pagination.Page,
68+
PerPage: pagination.PerPage,
7169
}
7270

7371
// Parse since timestamp if provided

‎pkg/github/granular_issue_types.go‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ func normalizeGranularUpdateIssueAssigneesArguments(raw json.RawMessage) (json.R
535535
}
536536
}
537537

538-
return marshalGranularIssueArguments(args, GranularIssueAssigneesInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, Assignees: payload})
538+
return marshalGranularIssueArguments(args, GranularIssueAssigneesInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, Assignees: payload})
539539
}
540540

541541
func normalizeGranularUpdateIssueLabelsArguments(raw json.RawMessage) (json.RawMessage, error) {
@@ -615,7 +615,7 @@ func normalizeGranularUpdateIssueLabelsArguments(raw json.RawMessage) (json.RawM
615615
}
616616
}
617617

618-
return marshalGranularIssueArguments(args, GranularIssueLabelsInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, Labels: payload})
618+
return marshalGranularIssueArguments(args, GranularIssueLabelsInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, Labels: payload})
619619
}
620620

621621
func normalizeGranularUpdateIssueTypeArguments(raw json.RawMessage) (json.RawMessage, error) {
@@ -666,7 +666,7 @@ func normalizeGranularUpdateIssueTypeArguments(raw json.RawMessage) (json.RawMes
666666
if issueType == nil && (rationale != "" || confidence != "" || isSuggestion) {
667667
return nil, fmt.Errorf("suggestion metadata is not supported when removing an issue type; omit rationale, confidence, and is_suggestion")
668668
}
669-
return marshalGranularIssueArguments(args, GranularIssueTypeInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, IssueType: issueType, Rationale: rationale, Confidence: confidence, IsSuggestion: isSuggestion})
669+
return marshalGranularIssueArguments(args, GranularIssueTypeInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, IssueType: issueType, Rationale: rationale, Confidence: confidence, IsSuggestion: isSuggestion})
670670
}
671671

672672
func normalizeGranularUpdateIssueStateArguments(raw json.RawMessage) (json.RawMessage, error) {
@@ -732,7 +732,7 @@ func normalizeGranularUpdateIssueStateArguments(raw json.RawMessage) (json.RawMe
732732
delete(args, "duplicate_of")
733733
}
734734

735-
return marshalGranularIssueArguments(args, GranularIssueStateInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, State: state, StateReason: stateReason, Rationale: rationale, Confidence: confidence, IsSuggestion: isSuggestion, DuplicateOf: duplicateOf})
735+
return marshalGranularIssueArguments(args, GranularIssueStateInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, State: state, StateReason: stateReason, Rationale: rationale, Confidence: confidence, IsSuggestion: isSuggestion, DuplicateOf: duplicateOf})
736736
}
737737

738738
func normalizeGranularAddSubIssueArguments(raw json.RawMessage) (json.RawMessage, error) {
@@ -763,7 +763,7 @@ func normalizeGranularAddSubIssueArguments(raw json.RawMessage) (json.RawMessage
763763
args["replace_parent"] = replaceParent
764764
}
765765

766-
return marshalGranularIssueArguments(args, GranularAddSubIssueInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, SubIssueID: subIssueID, ReplaceParent: replaceParent})
766+
return marshalGranularIssueArguments(args, GranularAddSubIssueInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, SubIssueID: subIssueID, ReplaceParent: replaceParent})
767767
}
768768

769769
func normalizeGranularRemoveSubIssueArguments(raw json.RawMessage) (json.RawMessage, error) {
@@ -789,7 +789,7 @@ func normalizeGranularRemoveSubIssueArguments(raw json.RawMessage) (json.RawMess
789789
return nil, err
790790
}
791791

792-
return marshalGranularIssueArguments(args, GranularRemoveSubIssueInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, SubIssueID: subIssueID})
792+
return marshalGranularIssueArguments(args, GranularRemoveSubIssueInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, SubIssueID: subIssueID})
793793
}
794794

795795
func normalizeGranularReprioritizeSubIssueArguments(raw json.RawMessage) (json.RawMessage, error) {
@@ -829,7 +829,7 @@ func normalizeGranularReprioritizeSubIssueArguments(raw json.RawMessage) (json.R
829829
delete(args, "before_id")
830830
}
831831

832-
return marshalGranularIssueArguments(args, GranularReprioritizeSubIssueInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, SubIssueID: subIssueID, AfterID: afterID, BeforeID: beforeID})
832+
return marshalGranularIssueArguments(args, GranularReprioritizeSubIssueInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, SubIssueID: subIssueID, AfterID: afterID, BeforeID: beforeID})
833833
}
834834

835835
func granularIssueInputNormalizer(normalize inventory.InputNormalizer) inventory.InputNormalizer {
@@ -974,7 +974,7 @@ func normalizeGranularSetIssueFieldsArguments(raw json.RawMessage) (json.RawMess
974974
issueFields = append(issueFields, input)
975975
}
976976

977-
return marshalGranularIssueArguments(args, GranularSetIssueFieldsInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, Fields: granularIssueFieldsFromMutation(issueFields)})
977+
return marshalGranularIssueArguments(args, GranularSetIssueFieldsInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, Fields: granularIssueFieldsFromMutation(issueFields)})
978978
}
979979

980980
func normalizeGranularAddIssueReactionArguments(raw json.RawMessage) (json.RawMessage, error) {
@@ -1000,7 +1000,7 @@ func normalizeGranularAddIssueReactionArguments(raw json.RawMessage) (json.RawMe
10001000
return nil, err
10011001
}
10021002

1003-
return marshalGranularIssueArguments(args, GranularAddIssueReactionInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, Content: content})
1003+
return marshalGranularIssueArguments(args, GranularAddIssueReactionInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, Content: content})
10041004
}
10051005

10061006
func normalizeGranularRemoveIssueReactionArguments(raw json.RawMessage) (json.RawMessage, error) {
@@ -1026,7 +1026,7 @@ func normalizeGranularRemoveIssueReactionArguments(raw json.RawMessage) (json.Ra
10261026
return nil, err
10271027
}
10281028

1029-
return marshalGranularIssueArguments(args, GranularRemoveIssueReactionInput{GranularIssueCoordinate: GranularIssueCoordinate{Owner: owner, Repo: repo, IssueNumber: issueNumber}, ReactionID: reactionID})
1029+
return marshalGranularIssueArguments(args, GranularRemoveIssueReactionInput{Owner: owner, Repo: repo, IssueNumber: issueNumber, ReactionID: reactionID})
10301030
}
10311031

10321032
func normalizeGranularAddIssueCommentReactionArguments(raw json.RawMessage) (json.RawMessage, error) {

0 commit comments

Comments
 (0)