Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 78 additions & 6 deletions docs/feature-flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,15 @@ user-controllable flag enabled individually. Complex multi-flag rules may
require separate documentation. Flags that only affect runtime behavior (such
as output formatting) won't appear here.

### `issues_granular` and `pull_requests_granular` together

By default, `add_issue_comment` and `update_issue_comment` work on both issues
and pull requests. When **both** granular flags are enabled, they only accept
issues and issue comments. Pull request conversation comments are then handled
by `add_pull_request_comment` and `update_pull_request_comment` from
`pull_requests_granular`. With only one of the flags enabled, both tools keep
their default behavior, so pull request commenting is always available.

<!-- START AUTOMATED FEATURE FLAG TOOLS -->

### `remote_mcp_ui_apps`
Expand Down Expand Up @@ -152,14 +161,14 @@ as output formatting) won't appear here.

### `issues_granular`

- **add_issue_comment_reaction** - Add Reaction to Issue or Pull Request Comment
- **add_issue_comment_reaction** - Add Reaction to Issue Comment
- **OAuth Challenge Scopes**: `repo`
- `comment_id`: The issue or pull request comment ID (number, required)
- `comment_id`: The issue comment ID (number, required)
- `content`: The emoji reaction type (string, required)
- `owner`: Repository owner (username or organization) (string, required)
- `repo`: Repository name (string, required)

- **add_issue_reaction** - Add Reaction to Issue or Pull Request
- **add_issue_reaction** - Add Reaction to Issue
- **OAuth Challenge Scopes**: `repo`
- `content`: The emoji reaction type (string, required)
- `issue_number`: The issue number (number, required)
Expand All @@ -184,14 +193,14 @@ as output formatting) won't appear here.
- `repo`: Repository name (string, required)
- `title`: Issue title (string, required)

- **remove_issue_comment_reaction** - Remove Reaction from Issue or Pull Request Comment
- **remove_issue_comment_reaction** - Remove Reaction from Issue Comment
- **OAuth Challenge Scopes**: `repo`
- `comment_id`: The issue or pull request comment ID (number, required)
- `comment_id`: The issue comment ID (number, required)
- `owner`: Repository owner (username or organization) (string, required)
- `reaction_id`: The reaction ID to remove (number, required)
- `repo`: Repository name (string, required)

- **remove_issue_reaction** - Remove Reaction from Issue or Pull Request
- **remove_issue_reaction** - Remove Reaction from Issue
- **OAuth Challenge Scopes**: `repo`
- `issue_number`: The issue number (number, required)
- `owner`: Repository owner (username or organization) (string, required)
Expand Down Expand Up @@ -280,6 +289,27 @@ as output formatting) won't appear here.

### `pull_requests_granular`

- **add_pull_request_comment** - Add Pull Request Comment
- **OAuth Challenge Scopes**: `repo`
- `body`: Comment content (string, required)
- `owner`: Repository owner (username or organization) (string, required)
- `pullNumber`: The pull request number (number, required)
- `repo`: Repository name (string, required)

- **add_pull_request_comment_reaction** - Add Reaction to Pull Request Comment
- **OAuth Challenge Scopes**: `repo`
- `comment_id`: The pull request conversation comment ID (number, required)
- `content`: The emoji reaction type (string, required)
- `owner`: Repository owner (username or organization) (string, required)
- `repo`: Repository name (string, required)

- **add_pull_request_reaction** - Add Reaction to Pull Request
- **OAuth Challenge Scopes**: `repo`
- `content`: The emoji reaction type (string, required)
- `owner`: Repository owner (username or organization) (string, required)
- `pullNumber`: The pull request number (number, required)
- `repo`: Repository name (string, required)

- **add_pull_request_review_comment** - Add Pull Request Review Comment
- **OAuth Challenge Scopes**: `repo`
- `body`: The comment body (string, required)
Expand Down Expand Up @@ -315,6 +345,20 @@ as output formatting) won't appear here.
- `pullNumber`: The pull request number (number, required)
- `repo`: Repository name (string, required)

- **remove_pull_request_comment_reaction** - Remove Reaction from Pull Request Comment
- **OAuth Challenge Scopes**: `repo`
- `comment_id`: The pull request conversation comment ID (number, required)
- `owner`: Repository owner (username or organization) (string, required)
- `reaction_id`: The reaction ID to remove (number, required)
- `repo`: Repository name (string, required)

- **remove_pull_request_reaction** - Remove Reaction from Pull Request
- **OAuth Challenge Scopes**: `repo`
- `owner`: Repository owner (username or organization) (string, required)
- `pullNumber`: The pull request number (number, required)
- `reaction_id`: The reaction ID to remove (number, required)
- `repo`: Repository name (string, required)

- **remove_pull_request_review_comment_reaction** - Remove Pull Request Review Comment Reaction
- **OAuth Challenge Scopes**: `repo`
- `comment_id`: The numeric pull request review comment ID. Use the number from a #discussion_r... anchor, not the GraphQL thread node ID (PRRT_...). (number, required)
Expand Down Expand Up @@ -345,20 +389,48 @@ as output formatting) won't appear here.
- **OAuth Challenge Scopes**: `repo`
- `threadID`: The node ID of the review thread to unresolve (e.g., PRRT_kwDOxxx) (string, required)

- **update_pull_request_assignees** - Update Pull Request Assignees
- **OAuth Challenge Scopes**: `repo`
- `assignees`: GitHub usernames to assign to this pull request (string[], required)
- `owner`: Repository owner (username or organization) (string, required)
- `pullNumber`: The pull request number (number, required)
- `repo`: Repository name (string, required)

- **update_pull_request_body** - Update Pull Request Body
- **OAuth Challenge Scopes**: `repo`
- `body`: The new body content for the pull request (string, required)
- `owner`: Repository owner (username or organization) (string, required)
- `pullNumber`: The pull request number (number, required)
- `repo`: Repository name (string, required)

- **update_pull_request_comment** - Update Pull Request Comment
- **OAuth Challenge Scopes**: `repo`
- `body`: New comment content (string, required)
- `comment_id`: The numeric ID of the pull request conversation comment to update. Do not use a pull request review comment ID. (integer, required)
- `owner`: Repository owner (username or organization) (string, required)
- `repo`: Repository name (string, required)

- **update_pull_request_draft_state** - Update Pull Request Draft State
- **OAuth Challenge Scopes**: `repo`
- `draft`: Set to true to convert to draft, false to mark as ready for review (boolean, required)
- `owner`: Repository owner (username or organization) (string, required)
- `pullNumber`: The pull request number (number, required)
- `repo`: Repository name (string, required)

- **update_pull_request_labels** - Update Pull Request Labels
- **OAuth Challenge Scopes**: `repo`
- `labels`: Labels to apply to this pull request (string[], required)
- `owner`: Repository owner (username or organization) (string, required)
- `pullNumber`: The pull request number (number, required)
- `repo`: Repository name (string, required)

- **update_pull_request_milestone** - Update Pull Request Milestone
- **OAuth Challenge Scopes**: `repo`
- `milestone`: The milestone number to set on the pull request (integer, required)
- `owner`: Repository owner (username or organization) (string, required)
- `pullNumber`: The pull request number (number, required)
- `repo`: Repository name (string, required)

- **update_pull_request_state** - Update Pull Request State
- **OAuth Challenge Scopes**: `repo`
- `owner`: Repository owner (username or organization) (string, required)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"annotations": {
"idempotentHint": false,
"readOnlyHint": false,
"title": "Add comment to issue"
},
"description": "Add a comment and/or reaction to a specific issue or issue comment in a GitHub repository. Only works on issues; for pull requests use add_pull_request_comment. At least one of body or reaction is required.",
"inputSchema": {
"properties": {
"body": {
"description": "Comment content. Required unless reaction is provided.",
"minLength": 1,
"type": "string"
},
"comment_id": {
"description": "The numeric ID of the issue comment to react to. Use this for reactions to comments; omit it to react to the issue itself. Cannot be combined with body.",
"minimum": 1,
"type": "integer"
},
"issue_number": {
"description": "Issue number to comment on or react to.",
"type": "number"
},
"owner": {
"description": "Repository owner",
"type": "string"
},
"reaction": {
"description": "Emoji reaction to add. Required unless body is provided.",
"enum": [
"+1",
"-1",
"laugh",
"confused",
"heart",
"hooray",
"rocket",
"eyes"
],
"type": "string"
},
"repo": {
"description": "Repository name",
"type": "string"
}
},
"required": [
"owner",
"repo",
"issue_number"
],
"type": "object"
},
"name": "add_issue_comment"
}
6 changes: 3 additions & 3 deletions pkg/github/__toolsnaps__/add_issue_comment_reaction.snap
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Add Reaction to Issue or Pull Request Comment"
"title": "Add Reaction to Issue Comment"
},
"description": "Add a reaction to an issue or pull request comment.",
"description": "Add a reaction to an issue comment. Only works on issue comments; for pull request conversation comments use add_pull_request_comment_reaction.",
"inputSchema": {
"properties": {
"comment_id": {
"description": "The issue or pull request comment ID",
"description": "The issue comment ID",
"minimum": 1,
"type": "number"
},
Expand Down
4 changes: 2 additions & 2 deletions pkg/github/__toolsnaps__/add_issue_reaction.snap
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Add Reaction to Issue or Pull Request"
"title": "Add Reaction to Issue"
},
"description": "Add a reaction to an issue or pull request.",
"description": "Add a reaction to an issue. Only works on issues; for pull requests use add_pull_request_reaction.",
"inputSchema": {
"properties": {
"content": {
Expand Down
40 changes: 40 additions & 0 deletions pkg/github/__toolsnaps__/add_pull_request_comment.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Add Pull Request Comment"
},
"description": "Add a conversation comment to a pull request. This does not create a review comment on a specific line; use add_pull_request_review_comment for that.",
"inputSchema": {
"properties": {
"body": {
"description": "Comment content",
"minLength": 1,
"type": "string"
},
"owner": {
"description": "Repository owner (username or organization)",
"type": "string"
},
"pullNumber": {
"description": "The pull request number",
"minimum": 1,
"type": "number"
},
"repo": {
"description": "Repository name",
"type": "string"
}
},
"required": [
"owner",
"repo",
"pullNumber",
"body"
],
"type": "object"
},
"name": "add_pull_request_comment"
}
49 changes: 49 additions & 0 deletions pkg/github/__toolsnaps__/add_pull_request_comment_reaction.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Add Reaction to Pull Request Comment"
},
"description": "Add a reaction to a pull request conversation comment. For review comments on specific lines, use add_pull_request_review_comment_reaction.",
"inputSchema": {
"properties": {
"comment_id": {
"description": "The pull request conversation comment ID",
"minimum": 1,
"type": "number"
},
"content": {
"description": "The emoji reaction type",
"enum": [
"+1",
"-1",
"laugh",
"confused",
"heart",
"hooray",
"rocket",
"eyes"
],
"type": "string"
},
"owner": {
"description": "Repository owner (username or organization)",
"type": "string"
},
"repo": {
"description": "Repository name",
"type": "string"
}
},
"required": [
"owner",
"repo",
"comment_id",
"content"
],
"type": "object"
},
"name": "add_pull_request_comment_reaction"
}
49 changes: 49 additions & 0 deletions pkg/github/__toolsnaps__/add_pull_request_reaction.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Add Reaction to Pull Request"
},
"description": "Add a reaction to a pull request.",
"inputSchema": {
"properties": {
"content": {
"description": "The emoji reaction type",
"enum": [
"+1",
"-1",
"laugh",
"confused",
"heart",
"hooray",
"rocket",
"eyes"
],
"type": "string"
},
"owner": {
"description": "Repository owner (username or organization)",
"type": "string"
},
"pullNumber": {
"description": "The pull request number",
"minimum": 1,
"type": "number"
},
"repo": {
"description": "Repository name",
"type": "string"
}
},
"required": [
"owner",
"repo",
"pullNumber",
"content"
],
"type": "object"
},
"name": "add_pull_request_reaction"
}
6 changes: 3 additions & 3 deletions pkg/github/__toolsnaps__/remove_issue_comment_reaction.snap
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Remove Reaction from Issue or Pull Request Comment"
"title": "Remove Reaction from Issue Comment"
},
"description": "Remove a reaction from an issue or pull request comment.",
"description": "Remove a reaction from an issue comment. Only works on issue comments; for pull request conversation comments use remove_pull_request_comment_reaction.",
"inputSchema": {
"properties": {
"comment_id": {
"description": "The issue or pull request comment ID",
"description": "The issue comment ID",
"minimum": 1,
"type": "number"
},
Expand Down
Loading