* added updatedAt and Author (aka User) login to query and payload
* added initial support for orderby and direction
* sort by created at instead of updated at by default
* remove unused code
* refactor to map to most suitable query based on user inputs at runtime
* updated readme with new description
* restore original categoryID code, simplify vars management
* quick fix
* update tests to account for recent changes (author login, updated at date)
* use switch statement for better readability
* remove comment
* linting
* refactored logic, simplified switch statement
* linting
* use original queries from discussions list tool for testing
* linting
* remove logging
* Complete merge by re-introducing pagination to ListDiscussions
* fix unit tests
* refactor: less repetitive interface
---------
Co-authored-by: LuluBeatson <lulubeatson@github.com>
Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>
* Create 'add sub-issue' tool
* Fix hardcoded API host
* Create 'list sub-issues' tool
* Create 'remove sub-issue' tool
* Fix Test_GetIssue mock data - add missing User field
The assertion was already checking User.Login but the mock was incomplete
* Create 'reprioritize sub-issue' tool
* fixes
* use go github pck to add sub-issues
* Update to use go github package
* update description
* update to use go github v73
* lint, docs
* refactor: tests to use go-github-mock
* add toolsnaps
* make RemoveSubIssue use NewGitHubAPIErrorResponse, update docstring
* Always include SHA in get_file_contents responses (#676)
* fix: Add SHA to get_file_contents while preserving MCP behavior (#595)
Enhance get_file_contents to include SHA information without changing
the existing MCP server response format.
Changes:
- Add Contents API call to retrieve SHA before fetching raw content
- Include SHA in resourceURI (repo://owner/repo/sha/{SHA}/contents/path)
- Add SHA to success messages
- Update tests to verify SHA inclusion
- Maintain original behavior: text files return raw text, binaries return base64
This preserves backward compatibility while providing SHA information
for better file versioning support.
Closes#595
* fix: Improve error handling for Contents API response
Ensure response body is properly closed even when an error occurs by moving
the defer statement before the error check. This prevents potential resource
leaks when the Contents API returns an error with a non-nil response.
Changes:
- Move defer respContents.Body.Close() before error checking
- Rename errContents to err for consistency
- Add nil check for respContents before attempting to close body
This follows Go best practices for handling HTTP responses and prevents
potential goroutine/memory leaks.
* revert changes to resource URI
* use GraphQL API to get file SHA
* refactor: mock GQL client instead of getFileSHA function to follow conventions
* lint
* revert GraphQL
---------
Co-authored-by: LuluBeatson <lulubeatson@github.com>
* Reorganize README, add dedicated install guides, include policies and governance info for the github server (#695)
* Refactor README and add host installation guides, governance docs
- Reorganized README for clarity and navigation
- Added dedicated installation guides for Claude, Cursor, Windsurf, JetBrains, and more
- Clarified contribution guidelines and approval criteria
- Added policies and governance documentation
* Update README.md
* Update README with configuration section for remote GitHub MCP Server
* Update MCP access policy description in README
Removing coding agent from the policy note, as the GitHub server is unaffected by this policy
* Update configuration steps for GitHub Copilot in JetBrains IDEs...
...to reflect changes in accessing settings and configuring MCP.
* Update install-other-copilot-ides.md
* Update Eclipse MCP support version and configuration steps...
...for GitHub Copilot plugin in installation guide.
* Update docs/installation-guides/install-cursor.md
* Update docs/installation-guides/install-windsurf.md
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
---------
Co-authored-by: Tony Truong <tonytrg@github.com>
* fix: shorten long tool name for adding pr review comments (#697)
* shorten tool name
* update function name to match tool name
* adjust wording of descriptions
* Update installation guide for GitHub MCP Server (#699)
* Update installation guide for GitHub MCP Server
Removed reference to GitHub.com in the installation guide. The GitHub server is available to Coding Agent by default, without installation needed.
* Rename section to 'Install in Other MCP Hosts'
Updating title for consistency and adding a link to the "other Copilot IDEs" install guide.
* Revise installation guide for Cursor MCP setup
Updated installation guide for Cursor with steps clarified, remote server installation, and one-click install deeplinks to open Cursor and add the github server to the config file.
* fix: make mcpcurl support "integer" type (#688)
- FYI:https://json-schema.org/understanding-json-schema/reference/numeric#integer
* Added installation instructions for mcpcurl (#719)
* Added installation instructions for mcpcurl
* Update cmd/mcpcurl/README.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add pagination support to GraphQL-based tools (#683)
* initial pagination for `ListDiscussions`
* redo category id var cast
* add GraphQL pagination support for discussion comments and categories
* remove pageinfo returns
* fix out ref for linter
* update docs
* move to unified pagination for consensus on params
* update docs
* refactor pagination handling
* update docs
* linter fix
* conv rest to gql params for safe lint
* add nolint
* add error handling for perPage value in ToGraphQLParams
* refactor pagination error handling
* unified params for rest andn graphql and rennamed to be uniform for golang
* add 'after' for pagination
* update docs
* Update pkg/github/discussions.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update pkg/github/discussions.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update pkg/github/discussions_test.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* update default page size const
* reduce default pagination size from 100 to 30 in discussion tests
* update pagination for reverse and total
* update pagination to remove from discussions
* updated README
* improve the `ToGraphQLParams` function
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* shorten param descriptions
* fix: resp nil check in error handling in RemoveSubIssue function
---------
Co-authored-by: LuluBeatson <lulubeatson@github.com>
Co-authored-by: tommaso-moro <tommaso-moro@github.com>
* fix: Add SHA to get_file_contents while preserving MCP behavior (#595)
Enhance get_file_contents to include SHA information without changing
the existing MCP server response format.
Changes:
- Add Contents API call to retrieve SHA before fetching raw content
- Include SHA in resourceURI (repo://owner/repo/sha/{SHA}/contents/path)
- Add SHA to success messages
- Update tests to verify SHA inclusion
- Maintain original behavior: text files return raw text, binaries return base64
This preserves backward compatibility while providing SHA information
for better file versioning support.
Closes#595
* fix: Improve error handling for Contents API response
Ensure response body is properly closed even when an error occurs by moving
the defer statement before the error check. This prevents potential resource
leaks when the Contents API returns an error with a non-nil response.
Changes:
- Move defer respContents.Body.Close() before error checking
- Rename errContents to err for consistency
- Add nil check for respContents before attempting to close body
This follows Go best practices for handling HTTP responses and prevents
potential goroutine/memory leaks.
* revert changes to resource URI
* use GraphQL API to get file SHA
* refactor: mock GQL client instead of getFileSHA function to follow conventions
* lint
* revert GraphQL
---------
Co-authored-by: LuluBeatson <lulubeatson@github.com>
* add contingency to match path in git tree
* resolveGitReference helper
* fix: handling of directories
* Test_filterPaths
* filterPaths - trailing slashes
* fix: close response body, improve error messages, docs
* update tool result message about resolved git ref
* unit test cases for filterPaths maxResults param
* resolveGitReference - NewGitHubAPIErrorToCtx
* feat: add GitHub Actions tools for workflow management
- Introduced new tools for managing GitHub Actions workflows, including listing workflows, running workflows, canceling workflow runs, and retrieving workflow run logs.
- Updated README.md to include new `actions` toolset and detailed descriptions of the new tools.
- Added comprehensive tests for the new functionality to ensure reliability and correctness.
* feat: enhance GitHub Actions toolset with additional workflow management capabilities
- Added new tools for managing GitHub Actions, including listing workflows, retrieving workflow run logs, and managing workflow runs.
- Integrated the new `actions` toolset into the default toolset group for improved accessibility.
* feat: enhance GetJobLogs functionality for improved job log retrieval
- Added new tests for GetJobLogs, including scenarios for retrieving logs for both single jobs and failed jobs.
- Updated GetJobLogs tool description to clarify its capabilities for fetching logs efficiently.
- Implemented error handling for missing required parameters and optimized responses for failed job logs.
- Introduced functionality to return actual log content instead of just URLs when requested.
* feat: enhance GetJobLogs functionality for improved job log retrieval
- Added new tests for GetJobLogs, including scenarios for retrieving logs for both single jobs and failed jobs.
- Updated GetJobLogs tool description to clarify its capabilities for fetching logs efficiently.
- Implemented error handling for missing required parameters and optimized responses for failed job logs.
- Introduced functionality to return actual log content instead of just URLs when requested.
* refactor: standardize parameter handling and read-only hints in GitHub Actions tools
- Replaced instances of `requiredParam` with `RequiredParam` for consistency across all tools.
- Updated `toBoolPtr` to `ToBoolPtr` in tool annotations to maintain uniformity in boolean pointer handling.
- Ensured all tools in the GitHub Actions suite adhere to the new naming conventions for improved readability and maintainability.
* docs: add missing actions toolset to Available Toolsets table
* feat: enhance GitHub Actions tool descriptions with enumerated options
- Updated descriptions for workflow run status and job filters to include enumerated options for clarity.
- Improved documentation for better usability and understanding of available parameters.
* feat: expand event type options in GitHub Actions tool descriptions
- Enhanced the event parameter description in the ListWorkflowRuns function to include a comprehensive list of supported event types.
- Improved clarity and usability for users by providing enumerated options for event types in the documentation.
* feat: add support for running workflows by ID and filename in GitHub Actions tools
- Introduced a new tool, RunWorkflowByFileName, to allow users to run workflows using the workflow filename.
- Updated the existing RunWorkflow tool to accept a numeric workflow ID instead of a filename.
- Enhanced tests to cover scenarios for both running workflows by ID and filename, including error handling for missing parameters.
- Improved tool descriptions for clarity and usability.
* feat: standardize repository parameter descriptions in GitHub Actions tools
- Introduced constants for repository owner and name descriptions to enhance consistency across multiple tools.
- Updated all relevant tools to use the new constants for improved clarity and maintainability in parameter descriptions.
* feat: enhance GitHub Actions tools with user-friendly titles
- Added user-friendly titles to tool annotations for various GitHub Actions tools, improving clarity and usability for end-users.
- Updated descriptions for tools including ListWorkflows, ListWorkflowRuns, RunWorkflow, and others to include new titles for better identification and understanding of their functionalities.
* feat: unify workflow execution in GitHub Actions tools
- Refactored the RunWorkflow tool to accept both numeric workflow IDs and filenames, enhancing flexibility for users.
- Updated the corresponding tests to reflect changes in parameter handling and added assertions for workflow type in responses.
- Removed the separate RunWorkflowByFileName tool to streamline functionality and improve code maintainability.
* fix: linting issues
* add context toolset and adjust readme
* move resources to a toolset
* add resource registration as a toolset concern
* add a note about broadening of toolsets
* Apply suggestion from @SamMorrowDrums