Frontmatter
| id | 7590 |
| title | Epic: Migrate GitHub MCP Services from GH CLI to GraphQL API |
| state | Closed |
| labels | enhancementepicairefactoring |
| assignees | tobiu |
| createdAt | Oct 21, 2025, 1:02 PM |
| updatedAt | Oct 23, 2025, 4:58 PM |
| githubUrl | https://github.com/neomjs/neo/issues/7590 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | 7591 Implement GraphQL Client & Auth Service 7592 Migrate Label & Issue Services to GraphQL 7593 Migrate PullRequestService to GraphQL 7594 Migrate SyncService to GraphQL 7595 Finalize GraphQL Migration & Cleanup 7598 Finalize MCP Server Config Refactoring 7599 Externalize GraphQL Queries for Label and PullRequest Services 7600 Update OpenAPI Specification to Reflect GraphQL Data Models |
| subIssuesCompleted | 8 |
| subIssuesTotal | 8 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Oct 23, 2025, 4:58 PM |
Epic: Migrate GitHub MCP Services from GH CLI to GraphQL API
tobiu assigned to @tobiu on Oct 21, 2025, 1:02 PM
tobiu added sub-issue #7591 on Oct 21, 2025, 1:04 PM
tobiu added sub-issue #7592 on Oct 21, 2025, 1:06 PM
tobiu added sub-issue #7593 on Oct 21, 2025, 1:07 PM
tobiu added sub-issue #7594 on Oct 21, 2025, 1:08 PM
tobiu added sub-issue #7595 on Oct 21, 2025, 1:09 PM
tobiu added sub-issue #7598 on Oct 22, 2025, 10:49 AM
tobiu added sub-issue #7599 on Oct 22, 2025, 11:02 AM
tobiu added sub-issue #7600 on Oct 22, 2025, 11:17 AM

tobiu
Oct 23, 2025, 4:58 PM
resolved.
tobiu closed this issue on Oct 23, 2025, 4:58 PM
To overcome the limitations of the
ghCLI and build a more scalable and performant foundation for our GitHub integration, this epic outlines the complete migration of our MCP services' data access layer. All remote data-fetching and mutation operations currently usingghsubprocess calls will be refactored to use direct calls to the official GitHub GraphQL API.While the
ghCLI provided a rapid path to a working prototype, it lacks support for critical features (e.g., issue relationships) and is less performant for complex queries. A direct GraphQL implementation will give us full, typed access to the GitHub API, improve performance by consolidating queries, and provide a single, robust data layer for all current and future features.Operations that perform local Git repository manipulations (e.g.,
gh pr checkout) will be explicitly excluded from this migration and will continue to use theghCLI.Key Sub-Tasks
#7591 - Implement GraphQL Client & Auth Service:
node-fetch) topackage.json.GraphqlServiceto encapsulate all API calls.ghCLI (gh auth token) and manage the required HTTP headers.#7592 - Migrate Label & Issue Services to GraphQL:
LabelService.listLabelsto use a GraphQL query.IssueService.addLabelsandIssueService.removeLabelsto use GraphQL mutations.#7593 - Migrate PullRequestService to GraphQL:
listPullRequests,createComment, andgetConversationto use GraphQL queries and mutations.getPullRequestDiff. Note thatcheckoutPullRequestwill remain aghCLI call.#7594 - Migrate SyncService to GraphQL:
#pullFromGitHubto use a single, comprehensive GraphQL query that fetches issues, comments, and their relationships (parent, children, etc.).#pushToGitHubto use a GraphQL mutation for updating issues.#fetchAndCacheReleasesto use a GraphQL query.#7595 - Finalize Migration & Cleanup:
#ghCommandhelper method fromSyncService.ghcalls remain.