Skip to content

Conversation

@stephenotalora
Copy link

@stephenotalora stephenotalora commented Oct 23, 2025

Towards: https://github.com/github/memex/issues/20995

Summary

The primary objective of this pull request is to update github-mcp-server to use the latest version of Google's go-github library (v76) where ProjectsService is first introduced. This upgrade aligns the server with recent GitHub API changes and leverages enhancements and newly introduced functionality available in go-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:

    • Upgrades go-github from v74 to v76 across the codebase to reflect the latest API surface and deprecations.
    • Adjusts internal calls where needed to align with breaking changes and updated interfaces introduced in v76.
      (Commit: ee90778)
  • License Updates:

    • Refreshes license files to ensure compliance and correctness following the dependency upgrade.
      (Commit: a73d2b4)
  • Code Refactoring:

    • Refactors ListProjects and GetProject to use the official ProjectsService from google/go-github.
      (Commits: ac0df34 and 5599e22)
    • These updates replace custom or outdated implementations with the official client methods, aligning the server with upstream API conventions and improving long-term maintainability.

Trade-offs and Considerations

  • Some internal interfaces and usages were updated to accommodate breaking changes in go-github/v76.
  • The upgrade may introduce minor behavioral differences due to upstream library changes; specially those changes outside of our domain (in Commit: ee90778).
  • The google/go-github library 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 to v76 yet. Certain APIs remain unavailable upstream, so refactoring projects.go for 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:

Screenshot 2025-10-23 at 6 55 12 PM

ListProject:

Screenshot 2025-10-23 at 6 56 47 PM

@stephenotalora stephenotalora self-assigned this Oct 23, 2025
@stephenotalora stephenotalora force-pushed the stephenotalora/mcp-server-latest-api-updates branch 4 times, most recently from f26b150 to 5599e22 Compare October 23, 2025 19:21
@stephenotalora stephenotalora marked this pull request as ready for review October 24, 2025 00:53
@stephenotalora stephenotalora requested a review from a team as a code owner October 24, 2025 00:53
@Copilot Copilot AI review requested due to automatic review settings October 24, 2025 00:53
Copy link
Contributor

Copilot AI left a 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/v74 to go-github/v76 with corresponding API signature updates
  • Refactored ListProjects and GetProject to use official upstream ProjectsService methods
  • 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.

@stephenotalora stephenotalora changed the title updates github-mcp-server to go-github/v76 Updates github-mcp-server to go-github/v76 Oct 24, 2025
@stephenotalora stephenotalora force-pushed the stephenotalora/mcp-server-latest-api-updates branch from 69ac131 to a5a9a26 Compare October 24, 2025 14:49
Copy link
Contributor

@tmelliottjr tmelliottjr left a 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants