Commit Graph

39 Commits

Author SHA1 Message Date
Jurre d03072f1a9 Repository security advisories (#925)
* Add support for listing repo level security advisories

* Add support for listing repo security advisories at the org level
2025-08-21 15:20:20 +02:00
Jurre 47040f43ef Add Global Security Advisories Toolset (#919) 2025-08-21 12:48:46 +02:00
Tommaso Moro 73dcb46dd8 Add get_release_by_tag tool (#938)
* add get_release_by_tag tool

* add tool

* add tests

* autogen

* remove comment
2025-08-21 09:57:46 +01:00
Matt Holloway 2621dbefd9 Add actions job log buffer and profiler (#866)
* add sliding window for actions logs

* refactor: fix sliding

* remove trim content

* only use up to 1mb of memory for logs

* update to tail lines in second pass

* add better memory usage calculation

* increase window size to 5MB

* update test

* update vers

* undo vers change

* add incremental memory tracking

* use ring buffer

* remove unused ctx param

* remove manual GC clear

* fix cca feedback

* extract ring buffer logic to new package

* handle log content processing errors and use correct param for maxjobloglines

* fix tailing

* account for if tailLines exceeds window size

* add profiling thats reusable

* remove profiler testing

* refactor profiler: introduce safeMemoryDelta for accurate memory delta calculations

* linter fixes

* Update pkg/buffer/buffer.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* use flag for maxJobLogLines

* add param passing for context window size

* refactor: rename contextWindowSize to contentWindowSize for consistency

* fix: use tailLines if bigger but only if <= 5000

* fix: limit tailLines to a maximum of 500 for log content download

* Update cmd/github-mcp-server/main.go

Co-authored-by: Adam Holt <omgitsads@github.com>

* Update cmd/github-mcp-server/main.go

Co-authored-by: Adam Holt <omgitsads@github.com>

* move profiler to internal/

* update actions test with new profiler location

* fix: adjust buffer size limits

* make line buffer 1028kb

* fix mod path

* change test to use same buffer size as normal use

* improve test for non-sliding window implementation to not count empty lines

* make test memory measurement more accurate

* remove impossible conditional

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Adam Holt <omgitsads@github.com>
2025-08-19 14:02:16 +01:00
Matt Holloway 1832210139 Add get_teams and get_team_members tools (#834)
* add team tool with tests

* add to tools

* add toolsnaps and docs

* Update pkg/github/context_tools.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* rewrite to allow providing user

* rRename get_my_teams to get_teams and update documentation and tests

* remove old snap

* rm old comments

* update test teams to numbered examples

* Update descriptions for allow finding teams of other users

* return empty result over custom empty error

* fix test expectations for no teams found

* flatten teams response to not include Nodes

* update description to include clarification about teams you are a member of

* fix typo in tool desc

* updated description to be more generic for accecss note

* amended error handling

* Update pkg/github/context_tools.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add additional tool to get team members

* update tool desc for get_team_members to include warning about auth

* added new scope info

* refactor to parse params individually

* GetTeams - rename "login" field to "org"

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: LuluBeatson <lulubeatson@github.com>
Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>
2025-08-13 13:41:04 +01:00
Alon Kenneth 0e7a25ea5a Add List issue types tool (#616)
* add list issue types action

* lint

* remove log

* update docs
2025-08-12 14:01:52 +02:00
JoannaaKL 6f06cba57f List releases (#862)
* docs: add required GitHub token permissions per action (#128)

* Feat: Add support for GitHub Releases (list and latest) tools

* Update repositories.go

Update params

* Update README.md

Add only new tool to the readme

* Revise GitHub PAT instructions and permissions section

* Readme formatting

---------

Co-authored-by: Arya Soni <aryasoni98@gmail.com>
Co-authored-by: Arya Soni <18515597+aryasoni98@users.noreply.github.com>
2025-08-12 12:58:21 +02:00
Babbage 8aa3379fea Migrate list_issues tool from REST to GraphQL API (#833)
Build and Test Go Project / build (macos-latest) (push) Has been cancelled
Build and Test Go Project / build (ubuntu-latest) (push) Has been cancelled
Build and Test Go Project / build (windows-latest) (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Docker / build (push) Has been cancelled
GoReleaser Release / release (push) Has been cancelled
License Check / license-check (push) Has been cancelled
* initial changes

* Further advances on list_issues tool to use GRPC

* Updating pagination for Graphql ListIssues

* Sorting data structures & returning mapped Issue

* Adding dynamic label queries

* Adding dynamic state queries for list_issues

* Add optional since filter, to get issues based on last update to issue

* Move ListIssues test to graphql format & removal of temp file

* Update documentation and fix linter issues

* Removal of redundant code, and increase limit on label return

* Fixing context for status to allow for better interactions

* Update tool snaps with tool description

* Update docs for final changes to context
2025-08-08 15:26:48 +01:00
Tommaso Moro 521d5e9258 Bump go-github to v74 (#826)
* update all imports to use v74

* go mod tidy

* update third party licenses

* rename

* autogen licenses
2025-08-06 22:11:50 +01:00
Maximillian Polhill 1c6171b24f Feat: Add initial Gist tools (#340)
* Add initial Gist tools: ListGists, CreateGist

* Add UpdateGist tool

* Add documentation for initial Gist tools

---------

Co-authored-by: Matt Holloway <mattdholloway@github.com>
2025-07-30 15:12:12 +01:00
Matt Holloway 771d7b411f Add initial support for multi-tool workflows (#685)
* initial workflows

* fixing tabs

* remove unused SecurityAlertWorkflowPrompt and RepositorySetupWorkflowPrompt

* add workflow prompt for creating issue and assigning to copilot

* Update pkg/github/workflow_prompts.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove notif triage

* remove code inv workflow tool

* rm another

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-30 11:39:58 +01:00
Matt Holloway d5e1f48728 Add updating draft state to update_pull_request tool (#774)
* initial impl of pull request draft state update

* appease linter

* update README

* add nosec

* fixed err return type for json marshalling

* add gql test
2025-07-29 10:58:06 +01:00
Martin Høst Normark 60a5391d67 Add tools for sub-issue endpoint (#470)
* 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>
2025-07-22 09:24:46 +01:00
Lulu b5e3348179 fix: shorten long tool name for adding pr review comments (#697)
License Check / license-check (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Docker / build (push) Has been cancelled
Build and Test Go Project / build (macos-latest) (push) Has been cancelled
Build and Test Go Project / build (ubuntu-latest) (push) Has been cancelled
Build and Test Go Project / build (windows-latest) (push) Has been cancelled
GoReleaser Release / release (push) Has been cancelled
* shorten tool name

* update function name to match tool name

* adjust wording of descriptions
2025-07-18 10:57:05 +01:00
Martin Høst Normark be91795fd3 Bump go-github to v73.0.0 (#597)
* Bump go-github to v73.0.0

* Clean up go.mod and update licenses

* Updated remaining imports to use github package v73 instead of v72

---------

Co-authored-by: Tommaso Moro <37270480+tommaso-moro@users.noreply.github.com>
Co-authored-by: tommaso-moro <tommaso-moro@github.com>
2025-07-15 15:21:24 +01:00
Lulu 23f6f3a778 Add Dependabot Alert Tools (#631)
* add dependabit get and list tools

* add toolsnaps

* add unit tests for new tools

* generate-docs
2025-07-03 13:26:57 +02:00
JoannaaKL 39109b3e5d Add discussion tools (#624) 2025-07-02 15:09:04 +02:00
JoannaaKL 805358ba3d Split pr and issue search
Add description

Extract common code

Test fixes

Updated search description

Move search prs to prs toolset

Update tools snaps
2025-06-26 13:53:13 +02:00
JoannaaKL 5f924342f1 Add search pull requests tool 2025-06-26 13:53:13 +02:00
Sam Morrow acba2848a3 cleanup search_users response (#486) 2025-06-26 12:35:12 +02:00
Sam Morrow 21389a4756 Add in an assign copilot prompt (#572)
* add in an assign copilot prompt

* Update pkg/github/issues.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-24 14:52:11 +02:00
Gabor Nyerges da6476def8 feat: add GitHub Actions tools for workflow management (#491)
* 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
2025-06-18 14:56:58 +02:00
Sam Morrow 3e32f75cf4 fix: use better raw file handling and return resources 2025-06-12 14:54:23 +02:00
Sam Morrow fe31428f80 Add context toolset and adjust readme (#499)
* 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
2025-06-10 15:44:49 +02:00
Lulu cbcf29f6d1 Export ToBoolPtr and RequiredParam (#495)
* ToBoolPtr, RequiredParam

* lint: type assertion in RequiredParam

* cap docstring
2025-06-09 15:11:38 +02:00
Sam Morrow c17ebfe50b chore: separate toolset creation from init and use typed error (#487) 2025-06-06 14:45:03 +02:00
Pranav RK c7a872b9a1 Bump go-github to v72.0.0 2025-06-02 10:55:04 +02:00
Sam Morrow e9f748f246 Add additional tools and tests for notifications
CodeQL / Analyze (actions) (push) Has been cancelled
Docker / build (push) Has been cancelled
Unit Tests / build (macos-latest) (push) Has been cancelled
Unit Tests / build (ubuntu-latest) (push) Has been cancelled
Unit Tests / build (windows-latest) (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
GoReleaser Release / release (push) Has been cancelled
License Check / license-check (push) Has been cancelled
Lint / lint (push) Has been cancelled
2025-05-23 14:00:21 +02:00
Avinash Sridhar 577190886d feat: add GitHub notifications tools for managing user notifications 2025-05-23 14:00:21 +02:00
William Martin b9a06d05f7 Support assigning copilot to issues
Co-authored-by: Martina Jireckova <martinajir@github.com>
2025-05-23 07:04:12 +02:00
William Martin eca853b28a Split PR review creation, commenting, submission and deletion 2025-05-19 17:50:36 +02:00
William Martin 7aced2b0a1 Update pkg/github/tools.go
Unit Tests / build (windows-latest) (push) Has been cancelled
Unit Tests / build (ubuntu-latest) (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Docker / build (push) Has been cancelled
Unit Tests / build (macos-latest) (push) Has been cancelled
GoReleaser Release / release (push) Has been cancelled
License Check / license-check (push) Has been cancelled
Lint / lint (push) Has been cancelled
Co-authored-by: Sam Morrow <sammorrowdrums@github.com>
2025-05-14 22:57:43 +02:00
William Martin 2fb1be93f5 Support requesting copilot as a reviewer 2025-05-14 22:57:43 +02:00
Ashwin Bhat da2df71827 feat: add DeleteFile tool to delete files from GitHub repositories (#356)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: William Martin <williammartin@github.com>
2025-05-13 14:22:43 +02:00
dependabot[bot] 705b61b814 build(deps): bump github.com/mark3labs/mcp-go from 0.25.0 to 0.27.0 (#397)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: William Martin <williammartin@github.com>
2025-05-13 13:26:36 +02:00
Eran Cohen 866a791635 feat: Add support for git tag operations
Add git tag functionality including:
- List repository tags
- Get tag details
- Support for tag-based content access

This enables basic read-only tag management through the MCP server API.
2025-04-30 20:15:39 +02:00
Sam Morrow a58937c0b3 feat: provide tool annotations 2025-04-23 13:14:01 +02:00
Tony Truong 7c197f5850 feat: Adding SecretScanning Toolset (#280)
* Adding GetSecretScanningAlert and ListSecretScanningAlerts

* adding wip for tests

* fix tests

* add readme section

* Update README.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .gitignore

Co-authored-by: Sam Morrow <info@sam-morrow.com>

* fix product name

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Sam Morrow <info@sam-morrow.com>
2025-04-17 10:19:59 +02:00
Sam Morrow ff3036d596 feat: partition tools by product/feature 2025-04-15 01:11:53 +02:00