feat: implement get_repository_discussions tool with GraphQL support #261
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New Feature: Fetch GitHub Discussions
pkg/github/discussions.go
: Added a new tool to fetch discussions from a specific GitHub repository using the GraphQL API. This includes defining structures forComment
andDiscussion
, and implementing theGetRepositoryDiscussions
function.Server Setup Updates
cmd/github-mcp-server/main.go
: Updated the server setup to create and use a GraphQL client alongside the REST API client. This includes changes to therunStdioServer
function to handle OAuth2 token creation and GraphQL client initialization. [1] [2] [3]Dependency Modifications
go.mod
: Added dependencies forgithubv4
andoauth2
to support the new GraphQL functionality. [1] [2]Additional Changes
pkg/github/server.go
: Modified the server creation function to accept a GraphQL client and added the newGetRepositoryDiscussions
tool to the server. [1] [2]script/test_get_repository_discussions.sh
: Added a test script to verify the functionality of theget_repository_discussions
tool.Open questions
Debating if the client should be an interface rather than passing it in another function to the
server
.