Skip to content

chore(deps): bump go-github v87 → v89 and resolve breaking changes#2840

Merged
tommaso-moro merged 2 commits into
mainfrom
tommaso-moro-bump-go-github-v89
Jul 8, 2026
Merged

chore(deps): bump go-github v87 → v89 and resolve breaking changes#2840
tommaso-moro merged 2 commits into
mainfrom
tommaso-moro-bump-go-github-v89

Conversation

@tommaso-moro

@tommaso-moro tommaso-moro commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps google/go-github from v87 to v89 across the module and resolves the resulting breaking changes.

Why

go-github v89 adds first-class REST methods for issue dependencies. This PR is the mechanical dependency bump that unblocks that work; the feature itself lands in a stacked follow-up PR (#2839). Splitting keeps the ~60-file mechanical import churn separate from the substantive feature diff.

What changed

  • Rewrite all import paths go-github/v87go-github/v89.
  • gists.go: Gists.Create now takes CreateGistRequest by value, and Gists.Edit is renamed to Gists.Update taking UpdateGistRequest.
  • gists.go: while migrating update_gist to UpdateGistRequest, fix a pre-existing bug surfaced in review — omitting description sent "description": "" and wiped the gist's existing description. Description is now only set when the caller provides it; an explicit empty string still clears it. Added a test asserting the PATCH body omits description when not supplied.
  • repositories_test.go: adapt to RepositoryRelease fields that became value types in v89 (ID, TagName, Draft).
  • Regenerate third-party license files for the new module path.

MCP impact

  • Tool schema or behavior changed
    • update_gist no longer overwrites an existing gist description with an empty string when description is omitted. No schema changes; all other tools are unaffected by the bump.

Prompts tested (tool changes only)

  • "Update gist <id>: change file x.txt to " (without a description) → the gist's existing description is preserved.
  • "Update gist <id>: set the description to " → description is updated.

Security / limits

  • No security or limits impact

Tool renaming

  • I am not renaming tools as part of this PR

Lint & tests

  • Linted locally with ./script/lint
  • Tested locally with ./script/test

Docs

  • Not needed

Bumps google/go-github from v87 to v89 across the module and fixes the
resulting breaking changes. No tool or behavior changes.

- Rewrite all import paths go-github/v87 -> go-github/v89.
- gists.go: Gists.Create now takes CreateGistRequest by value and
  Gists.Edit is renamed to Gists.Update taking UpdateGistRequest.
- repositories_test.go: adapt to RepositoryRelease fields that became
  value types in v89 (ID, TagName, Draft).
- Regenerate third-party license files for the new module path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@tommaso-moro tommaso-moro marked this pull request as ready for review July 8, 2026 13:20
@tommaso-moro tommaso-moro requested a review from a team as a code owner July 8, 2026 13:20
Copilot AI review requested due to automatic review settings July 8, 2026 13:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 updates the module dependency on github.com/google/go-github from v87 to v89 and applies the required mechanical code/test updates across the server to keep the GitHub MCP tools compiling and behaving consistently, along with regenerating third-party license attributions.

Changes:

  • Bump github.com/google/go-github/v87github.com/google/go-github/v89 and rewrite imports across the codebase.
  • Update gist create/update code paths for go-github v89 API changes (CreateGistRequest, UpdateGistRequest, Gists.Update).
  • Adjust repository release-related tests for go-github v89 struct field type changes and refresh third-party license outputs.
Show a summary per file
File Description
third-party/github.com/google/go-github/v89/github/LICENSE Add BSD-3-Clause license text for the new go-github/v89 third-party path.
third-party-licenses.windows.md Regenerate dependency list to reference go-github/v89.
third-party-licenses.linux.md Regenerate dependency list to reference go-github/v89.
third-party-licenses.darwin.md Regenerate dependency list to reference go-github/v89.
pkg/raw/raw.go Update go-github import path to v89.
pkg/raw/raw_test.go Update go-github import path to v89 in tests.
pkg/lockdown/lockdown.go Update go-github import path to v89.
pkg/lockdown/lockdown_test.go Update go-github import path to v89 in tests.
pkg/github/ui_tools.go Update go-github import path to v89.
pkg/github/ui_tools_test.go Update go-github import path to v89 in tests.
pkg/github/tools.go Update go-github import path to v89.
pkg/github/server_test.go Update go-github import path to v89 in tests.
pkg/github/security_advisories.go Update go-github import path to v89.
pkg/github/security_advisories_test.go Update go-github import path to v89 in tests.
pkg/github/secret_scanning.go Update go-github import path to v89.
pkg/github/secret_scanning_test.go Update go-github import path to v89 in tests.
pkg/github/search.go Update go-github import path to v89.
pkg/github/search_utils.go Update go-github import path to v89.
pkg/github/search_test.go Update go-github import path to v89 in tests.
pkg/github/repository_resource.go Update go-github import path to v89.
pkg/github/repository_resource_completions.go Update go-github import path to v89.
pkg/github/repository_resource_completions_test.go Update go-github import path to v89 in tests.
pkg/github/repositories.go Update go-github import path to v89.
pkg/github/repositories_test.go Update release test fixtures/assertions for v89 RepositoryRelease field type changes.
pkg/github/repositories_helper.go Update go-github import path to v89.
pkg/github/pullrequests.go Update go-github import path to v89.
pkg/github/pullrequests_test.go Update go-github import path to v89 in tests.
pkg/github/pullrequests_granular.go Update go-github import path to v89.
pkg/github/projects.go Update go-github import path to v89.
pkg/github/params.go Update go-github import path to v89.
pkg/github/params_test.go Update go-github import path to v89 in tests.
pkg/github/notifications.go Update go-github import path to v89.
pkg/github/notifications_test.go Update go-github import path to v89 in tests.
pkg/github/minimal_types.go Update go-github import path to v89.
pkg/github/issues.go Update go-github import path to v89.
pkg/github/issues_test.go Update go-github import path to v89 in tests.
pkg/github/issues_granular.go Update go-github import path to v89.
pkg/github/issues_delete_test.go Update go-github import path to v89 in tests.
pkg/github/ifc_labels.go Update go-github import path to v89.
pkg/github/helper_test.go Update go-github import path to v89 in tests.
pkg/github/granular_tools_test.go Update go-github import path to v89 in tests.
pkg/github/git.go Update go-github import path to v89.
pkg/github/git_test.go Update go-github import path to v89 in tests.
pkg/github/gists.go Adapt gist create/update tool implementation for go-github v89 request types and method rename (EditUpdate).
pkg/github/gists_test.go Update go-github import path to v89 in tests.
pkg/github/discussions.go Update go-github import path to v89.
pkg/github/discussions_test.go Update go-github import path to v89 in tests.
pkg/github/dependencies.go Update go-github import path to v89.
pkg/github/dependabot.go Update go-github import path to v89.
pkg/github/dependabot_test.go Update go-github import path to v89 in tests.
pkg/github/copilot.go Update go-github import path to v89.
pkg/github/copilot_test.go Update go-github import path to v89 in tests.
pkg/github/context_tools_test.go Update go-github import path to v89 in tests.
pkg/github/code_scanning.go Update go-github import path to v89.
pkg/github/code_scanning_test.go Update go-github import path to v89 in tests.
pkg/github/code_quality_test.go Update go-github import path to v89 in tests.
pkg/github/actions.go Update go-github import path to v89.
pkg/github/actions_test.go Update go-github import path to v89 in tests.
pkg/errors/error.go Update go-github import path to v89.
pkg/errors/error_test.go Update go-github import path to v89 in tests.
internal/ghmcp/server.go Update go-github import path to v89.
go.mod Bump github.com/google/go-github/v87github.com/google/go-github/v89.
go.sum Update module checksums for go-github/v89.
e2e/e2e_test.go Update go-github import path to v89 in e2e tests.

Review details

  • Files reviewed: 62/64 changed files
  • Comments generated: 1
  • Review effort level: Low

Comment thread pkg/github/gists.go
update_gist always sent Description as a pointer to the OptionalParam
zero value (""), so omitting description would overwrite an existing gist
description with an empty string. Only set UpdateGistRequest.Description
when the caller actually provided the argument; an explicit empty string
still clears it. Adds a test asserting the description key is absent from
the PATCH body when omitted and present when set.

This addresses a pre-existing behavior surfaced while migrating to the
v89 gist request types.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@tommaso-moro tommaso-moro merged commit 778f5bb into main Jul 8, 2026
20 checks passed
@tommaso-moro tommaso-moro deleted the tommaso-moro-bump-go-github-v89 branch July 8, 2026 14:09
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