Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: codebmn17/github-mcp-server
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: eb088df
Choose a base ref
...
head repository: github/github-mcp-server
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0ea1f77
Choose a head ref
  • 20 commits
  • 83 files changed
  • 12 contributors

Commits on Jul 29, 2026

  1. Bump go-github to pick up SearchType support (github#2972)

    * Bump go-github for search_type support
    
    * chore: regenerate license files
    
    Auto-generated by license-check workflow
    
    ---------
    
    Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
    kelsey-myers and github-actions[bot] authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    1348c47 View commit details
    Browse the repository at this point in the history
  2. Make fields parameter available by default (github#2952)

    * Promote fields parameter beyond Insiders
    
    Keep fields_param as an independently controlled feature flag while removing it from the Insiders expansion.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    * Make fields parameter available by default
    
    Remove the fields_param feature flag and legacy tool variants so selected read tools always advertise and honor fields.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 5c43cc70-27b5-47b4-bbd1-99d20f42d61b
    
    ---------
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 5c43cc70-27b5-47b4-bbd1-99d20f42d61b
    tommaso-moro and Copilot authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    456fae9 View commit details
    Browse the repository at this point in the history
  3. Add batched update_project_items writes via GraphQL (github#2903)

    * Implement batch project write engine
    
    Resolve and validate shared field updates and item references before executing ordered, chunked GraphQL writes with explicit ambiguous outcomes.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    
    * Expose update_project_items
    
    Add the public projects_write contract, routing, handler coverage, and generated documentation for shared field updates across batches of up to 50 items.
    
    Co-authored-by: Lizeth Vera <47796851+veralizeth@users.noreply.github.com>
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    
    * Classify batch resolution failures
    
    Use a neutral code for non-structured lookup failures while preserving structured resolution details.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    
    * Resolve issue references concurrently
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    Copilot-Session: 5709a470-df75-43ec-9a9c-98868e6065d2
    
    ---------
    
    Co-authored-by: Bryan Zwicker <zwick@github.com>
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    Copilot-Session: 5709a470-df75-43ec-9a9c-98868e6065d2
    3 people authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    d080b23 View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2026

  1. build(deps): bump modelcontextprotocol/go-sdk to v1.7.0

    Move from the v1.7.0-pre.3 pre-release to the final v1.7.0 release, which
    consolidates the pre-releases with no further changes. Regenerate the
    third-party license files to reflect the new version tag.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 95b8432c-f280-472e-a242-d3ca6dc31f19
    SamMorrowDrums and Copilot committed Jul 30, 2026
    Configuration menu
    Copy the full SHA
    96a3d78 View commit details
    Browse the repository at this point in the history
  2. fix: don't advertise unsupported list-changed capabilities

    The server exposes a static set of tools, prompts, and resources and never
    mutates them at runtime, so it never emits list_changed notifications. When
    capabilities are left unset, the go-sdk infers listChanged:true from the
    presence of items and advertises tools/prompts/resources list-change support
    we don't actually provide - and the 2026-07-28 spec (subscriptions/listen)
    tightens expectations around this.
    
    Declare empty tools/prompts/resources capabilities in NewMCPServer so both the
    stdio and remote servers advertise honestly. The remote HTTP handler already
    set these explicitly; that duplication is now removed in favour of the shared
    default, leaving only the remote-specific schema cache.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 95b8432c-f280-472e-a242-d3ca6dc31f19
    SamMorrowDrums and Copilot committed Jul 30, 2026
    Configuration menu
    Copy the full SHA
    ea8099d View commit details
    Browse the repository at this point in the history
  3. test: assert advertised capabilities omit list-changed

    Add a regression test locking in the capability contract set by NewMCPServer:
    tools, prompts, and resources are advertised without list-changed
    notifications, the deprecated logging capability is not advertised, and the
    inferred completions capability is preserved. Covers both the stdio path (full
    inventory, items present) and the HTTP path (inventory emptied for the
    discovery request), which share the same NewMCPServer entry point.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 95b8432c-f280-472e-a242-d3ca6dc31f19
    SamMorrowDrums and Copilot committed Jul 30, 2026
    Configuration menu
    Copy the full SHA
    ca8ab52 View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2026

  1. Clarify that create_or_update_file content is plain text (github#2983)

    The content parameter is passed to the API as plain text and the server
    base64-encodes it, but the description said only "Content of the file".
    The REST endpoint this wraps documents its own content field as base64,
    so a model reading the tool description has a strong reason to encode the
    content itself. When it does, the server encodes again and the file is
    committed containing base64 text. Every layer reports success.
    
    Describe the value by how it should end up on disk rather than by what
    not to do, so a file whose contents are legitimately base64 is still
    unambiguous, and name the encoding step so the conflict with the REST
    API docs is resolved rather than merely overridden.
    ericsciple authored Jul 31, 2026
    Configuration menu
    Copy the full SHA
    3778a41 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2026

  1. Return closing pull requests from issue_read (github#3006)

    * Return closing pull requests from issue_read
    
    Answering "is there a PR that closes this issue?" previously required
    listing pull requests and grepping their bodies for closing keywords,
    which is expensive and unreliable. GraphQL already exposes
    Issue.closedByPullRequestsReferences.
    
    Add it to the existing issue_read `get` enrichment query so the answer
    comes back in the same round-trip as the hierarchy signals, as a compact
    `closed_by_pull_requests` list. An enriched issue with no closing pull
    requests serializes an explicit empty list so an agent can stop looking.
    
    Lockdown mode filters references whose author cannot be verified as safe
    content, mirroring the existing parent reference handling.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: a0b58914-0d94-47a9-8229-c0ef7e32e69f
    
    * Cap embedded closing pull requests and report the total
    
    This enrichment runs on every issue_read get, so embedding up to 25
    references costs more than the common case is worth. Embed at most 5,
    keeping orderByState so open pull requests are the ones that survive.
    
    Select totalCount alongside the nodes and return the summary as an
    object of total_count plus references, so the rare issue with more than
    five linked pull requests cannot be read as a complete list. The common
    zero-to-two case stays compact and an empty result stays definitive.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: a0b58914-0d94-47a9-8229-c0ef7e32e69f
    
    ---------
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: a0b58914-0d94-47a9-8229-c0ef7e32e69f
    zwick and Copilot authored Aug 6, 2026
    Configuration menu
    Copy the full SHA
    e6e3a4e View commit details
    Browse the repository at this point in the history
  2. Make search_issues semantic by default (github#2964)

    * Make search_issues semantic by default
    
    * initialize description depending on the host
    
    ---------
    
    Co-authored-by: Iulia B <iulia-b@github.com>
    Co-authored-by: Iulia Bejan <64602043+iulia-b@users.noreply.github.com>
    3 people authored Aug 6, 2026
    Configuration menu
    Copy the full SHA
    f3cb662 View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2026

  1. Support removing issue types (github#2999)

    * Render union types in generated docs
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
    
    * Support clearing issue types with issue_write
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
    
    * Support clearing issue types with granular tool
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
    
    * Validate duplicate closures before updates
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
    
    ---------
    
    Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
    zwick authored Aug 7, 2026
    Configuration menu
    Copy the full SHA
    e7f7bb8 View commit details
    Browse the repository at this point in the history
  2. Add non-default find_duplicate tool gated by duplicate_detection flag (

    …github#3020)
    
    * Add non-default find_duplicate tool gated by duplicate_detection flag
    
    * Trim find_duplicate output to spec fields and relax confidence_threshold bounds
    
    * Attach repo-visibility IFC label to find_duplicate results
    michaeljacholke authored Aug 7, 2026
    Configuration menu
    Copy the full SHA
    1b3f89a View commit details
    Browse the repository at this point in the history
  3. Support singular Project Issue Field updates (github#2941)

    * Implement batch project write engine
    
    Resolve and validate shared field updates and item references before executing ordered, chunked GraphQL writes with explicit ambiguous outcomes.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    
    * Expose update_project_items
    
    Add the public projects_write contract, routing, handler coverage, and generated documentation for shared field updates across batches of up to 50 items.
    
    Co-authored-by: Lizeth Vera <47796851+veralizeth@users.noreply.github.com>
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    
    * Classify batch resolution failures
    
    Use a neutral code for non-structured lookup failures while preserving structured resolution details.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    
    * Resolve issue references concurrently
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    Copilot-Session: 5709a470-df75-43ec-9a9c-98868e6065d2
    
    * Add singular Issue Field project updates
    
    Support name-based attached Issue Field updates for singular Project items while preserving existing read and standard field behavior.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 4c94f3ce-c04a-482f-830b-ab85abc3f6e4
    
    * Preserve iteration project field updates
    
    Bypass Issue Field metadata resolution for standard field data types and recognize exact missing fragment-type schema errors.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 4c94f3ce-c04a-482f-830b-ab85abc3f6e4
    
    * Adding GraphQL-Features: update_issue_suggestions
    
    ---------
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Co-authored-by: Lizeth Vera <47796851+veralizeth@users.noreply.github.com>
    Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
    Copilot-Session: 5709a470-df75-43ec-9a9c-98868e6065d2
    Copilot-Session: 4c94f3ce-c04a-482f-830b-ab85abc3f6e4
    3 people authored Aug 7, 2026
    Configuration menu
    Copy the full SHA
    eb4c099 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2026

  1. Order list_label results by issue count (descending) (github#2974)

    * Order list_label results by issue count (descending)
    
    Sends orderBy: {field: ISSUE_COUNT, direction: DESC} on the GraphQL
    labels query so the most-used labels (by issue count) are returned
    first. ISSUE_COUNT is accepted by the GitHub GraphQL API but is not
    part of the public schema docs or the githubv4 client library's
    LabelOrderField constants, so it is defined locally.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Potential fix for pull request finding
    
    Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
    
    * regen docs
    
    ---------
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
    3 people authored Aug 10, 2026
    Configuration menu
    Copy the full SHA
    cdfa34e View commit details
    Browse the repository at this point in the history
  2. Minimize Actions workflow list responses (github#3047)

    Return compact response types for workflow run and workflow job lists while retaining diagnostic, step, and runner metadata.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 0eecbca7-7271-4a04-8d28-d952c27ed9c1
    tommaso-moro authored Aug 10, 2026
    Configuration menu
    Copy the full SHA
    eff4c3c View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2026

  1. Use minimal types for tool responses (github#3055)

    Return compact response shapes for pull request statuses, review comment replies, and individual workflow runs.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: d6786153-698a-4563-97ad-a8221c40e306
    tommaso-moro authored Aug 12, 2026
    Configuration menu
    Copy the full SHA
    ff15f68 View commit details
    Browse the repository at this point in the history
  2. Add basic project view management (github#2961)

    * Add basic project view management
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: c6f8ede6-efee-4191-900d-59a1bb0af000
    
    * Harden project view mutations
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: c6f8ede6-efee-4191-900d-59a1bb0af000
    
    * Resolve project view fields by name
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: c6f8ede6-efee-4191-900d-59a1bb0af000
    
    * Clear project view filters with explicit null
    
    Align the filter parameter with the nullable-parameter convention: omit
    to preserve, pass null to clear. Empty strings are now rejected rather
    than treated as a clear sentinel. The GraphQL and REST wire format is
    unchanged, since the API still clears a filter with an empty string.
    
    Also replace the "<nil>" string comparison in deleteProjectView with a
    direct nil check on the returned ID.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    * Use caller-specific project field hints
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: c6f8ede6-efee-4191-900d-59a1bb0af000
    
    ---------
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: c6f8ede6-efee-4191-900d-59a1bb0af000
    zwick and Copilot authored Aug 12, 2026
    Configuration menu
    Copy the full SHA
    d6cab97 View commit details
    Browse the repository at this point in the history
  3. Add visible fields to project views (github#2988)

    * Add visible fields to project views
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 1421a5d5-fdce-4c0e-9528-56d555ec30d4
    
    * Fail fast and surface orphaned views on project view writes
    
    Reject roadmap layouts before enumerating project fields in both the
    create and update paths, and verify view ownership before resolving
    visible fields on update, so rejected requests no longer pay for a
    paginated field listing.
    
    Skip the follow-up filter mutation when the filter is explicitly null,
    since a new view has no filter to clear, and include the created view ID
    when cleanup after a failed filter mutation also fails so the caller can
    recover the orphaned view.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    Copilot-Session: 1421a5d5-fdce-4c0e-9528-56d555ec30d4
    zwick and Copilot authored Aug 12, 2026
    Configuration menu
    Copy the full SHA
    2198e85 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2026

  1. fix(actions): avoid malformed response on log download failure

    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    
    Copilot-Session: 9cdeefb9-91cd-4f65-8eb2-089c9e00a2b8
    SamMorrowDrums committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    accc2e0 View commit details
    Browse the repository at this point in the history
  2. fix(security): enforce HTTPS for gh-host/GITHUB_HOST to prevent clear…

    …text credentials
    
    GHES hosts accepted an http:// scheme, which was interpolated into every
    REST/GraphQL/upload/raw/authorization URL. Authenticated requests would then
    carry the bearer token/PAT over cleartext http, exposing it to network
    interception and replay.
    
    Add a central HTTPS check in parseAPIHost so no deployment can build
    authenticated URLs over http, mirroring the existing GHEC behaviour. Permit
    http only for loopback hosts (localhost, 127.0.0.1, ::1) so local development
    against a dev server still works.
    
    Closes github/copilot-mcp-core#1815
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    SamMorrowDrums and Copilot committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    0c825b4 View commit details
    Browse the repository at this point in the history
  3. fix: preserve authority for loopback GHES hosts

    Address review: the loopback exception accepted http://localhost:3000 and
    http://[::1], but newGHESHost built URLs from u.Hostname(), which drops the
    port (silently retargeting the dev server to port 80) and strips IPv6 brackets
    (producing an unusable URL such as http://::1/api/v3/).
    
    Derive the base-host REST/GraphQL/upload/raw/authorization URLs from u.Host so
    the port and IPv6 brackets are preserved. Subdomain-isolation URLs keep using
    the bare hostname, since a label cannot be prepended to a host:port or an IP
    literal. Add tests for the ::1 case and for port preservation.
    
    Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
    SamMorrowDrums and Copilot committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    0ea1f77 View commit details
    Browse the repository at this point in the history
Loading