-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Projects consolidation #1706
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Projects consolidation #1706
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR consolidates nine existing GitHub Projects tools into three unified tools (projects_list, projects_get, projects_write) behind a feature flag. The consolidation groups related operations into method-based interfaces, reducing tool count while maintaining functionality.
Key Changes:
- Adds three new consolidated tools with method-based dispatch for listing, getting, and modifying project resources
- Marks existing nine individual project tools for disabling via feature flag
- Includes comprehensive test coverage and toolsnap documentation for the new tools
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pkg/github/tools.go | Registers three new consolidated project tools (projects_list, projects_get, projects_write) in the tool inventory |
| pkg/github/projects.go | Adds feature flag constant, implements three consolidated tool functions with method dispatch logic, adds helper functions, and applies FeatureFlagDisable to existing tools |
| pkg/github/projects_test.go | Adds comprehensive test coverage for all three consolidated tools and their methods |
| pkg/github/toolsnaps/*.snap | Adds tool schema snapshots for the three new consolidated tools |
| README.md | Documents the three new consolidated tools with their parameters and methods |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.
SamMorrowDrums
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work @mattdholloway, I think we need to make sure the docs doesn't display stuff that is only enabled with feature flags, WDYT?
It shouldn't hide disabled with feature flags stuff, but should hide enabled with ff stuff.
Also can we consider the flow from the ADR, is there a way to pin a hold-back flag now and be like:
- once this is released you can hold back the tool with this ff and it'll be deprecated in remote server on such and such date.
We can decide whether we should do the brown out, but this is a perfect case study for how to manage this.
Summary
This pull request introduces a new consolidated set of tools for managing GitHub Projects, including listing, retrieving, and modifying project resources. These tools are added to the codebase behind a feature flag.
Why
Fixes #
What changed
New GitHub Projects toolset:
projects_get,projects_list, andprojects_writetools to the tool registry intools.go, making them available for use when the relevant feature flag is enabled.MCP impact
Prompts tested (tool changes only)
Security / limits
Tool renaming
deprecated_tool_aliases.goNote: if you're renaming tools, you must add the tool aliases. For more information on how to do so, please refer to the official docs.
Lint & tests
./script/lint./script/testDocs