-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Updates github-mcp-server to go-github/v76
#1289
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
f26b150 to
5599e22
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR upgrades the github-mcp-server from go-github/v74 to go-github/v76, incorporating latest API changes and enhancements. The upgrade includes breaking changes in how certain Git operations are performed, requiring updates to method signatures throughout the codebase.
Key Changes:
- Dependency upgrade from
go-github/v74togo-github/v76with corresponding API signature updates - Refactored
ListProjectsandGetProjectto use official upstreamProjectsServicemethods - Updated Git operations (
CreateCommit,UpdateRef,CreateRef) to use new structured parameter types
Reviewed Changes
Copilot reviewed 47 out of 49 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| go.mod | Updates go-github dependency to v76 and related transitive dependencies |
| pkg/github/repositories.go | Adapts Git operation calls to use new v76 structured parameter types |
| pkg/github/projects.go | Refactors project operations to use official upstream API methods |
| third-party-licenses.*.md | Updates license references for upgraded dependencies |
| pkg/github/.go, pkg/raw/.go, internal/ghmcp/server.go, etc. | Updates import statements from v74 to v76 |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
go-github/v76
google/go-github ProjectsService
69ac131 to
a5a9a26
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These changes look good me, mostly focusing on projects related updates, I'll defer to others more knowledgeable for the associated upgrade changes.
Towards: https://github.com/github/memex/issues/20995
Summary
The primary objective of this pull request is to update
github-mcp-serverto use the latest version of Google's go-github library (v76) whereProjectsServiceis first introduced. This upgrade aligns the server with recent GitHub API changes and leverages enhancements and newly introduced functionality available ingo-github/v76@latest.While best efforts were made to adopt the existing ProjectsV2 APIs from upstream, not all components have been migrated yet. Further updates are pending the merge of google/go-github#3733, which introduces additional APIs required for full integration. Once merged, subsequent iterations will continue updating the MCP server to ensure complete feature parity with the upstream library.
Details
For easier review, I recommend going through this PR in commit order:
Dependency Update:
go-githubfromv74tov76across the codebase to reflect the latest API surface and deprecations.v76.(Commit: ee90778)
License Updates:
(Commit: a73d2b4)
Code Refactoring:
ListProjectsandGetProjectto use the officialProjectsServicefromgoogle/go-github.(Commits: ac0df34 and 5599e22)
Trade-offs and Considerations
go-github/v76.google/go-githublibrary introduces additional APIs in Add Endpoints For Project Items google/go-github#3733. While existing APIs have been adopted where possible, not all functionality has been migrated tov76yet. Certain APIs remain unavailable upstream, so refactoringprojects.gofor partial functionality would not be practical at this stage.Testing
Run the MCP server locally and ensured the agent was hitting the updated tools using `google/go-github` APIs
GetProject:
ListProject: