Skip to content

Conversation

@mattdholloway
Copy link
Contributor

@mattdholloway mattdholloway commented Dec 31, 2025

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:

  • Added projects_get, projects_list, and projects_write tools to the tool registry in tools.go, making them available for use when the relevant feature flag is enabled.

MCP impact

  • No tool or API changes
  • Tool schema or behavior changed
  • New tool added

Prompts tested (tool changes only)

Security / limits

  • No security or limits impact
  • Auth / permissions considered
  • Data exposure, filtering, or token/size limits considered

Tool renaming

  • I am renaming tools as part of this PR (e.g. a part of a consolidation effort)
    • I have added the new tool aliases in deprecated_tool_aliases.go
  • I am not renaming tools as part of this PR

Note: 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

  • Linted locally with ./script/lint
  • Tested locally with ./script/test

Docs

  • Not needed
  • Updated (README / docs / examples)

@mattdholloway mattdholloway marked this pull request as ready for review December 31, 2025 11:58
@mattdholloway mattdholloway requested a review from a team as a code owner December 31, 2025 11:58
Copilot AI review requested due to automatic review settings December 31, 2025 11:58
Copy link
Contributor

Copilot AI left a 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

Copy link
Contributor

Copilot AI left a 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.

Copy link
Collaborator

@SamMorrowDrums SamMorrowDrums left a 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants