Skip to content

Commit 0957ac6

Browse files
fix(pull_requests): align stack tools with current API
Use the 2026-03-10 native stack endpoints, consolidate the tool surface, and cover pagination, validation, scopes, and unstack outcomes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent 39c28df commit 0957ac6

7 files changed

Lines changed: 740 additions & 541 deletions

File tree

‎README.md‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,6 +1296,24 @@ The following sets of tools are available:
12961296
- `repo`: Repository name (string, required)
12971297
- `threadId`: The node ID of the review thread (e.g., PRRT_kwDOxxx). Required for resolve_thread and unresolve_thread methods. Get thread IDs from pull_request_read with method get_review_comments. (string, optional)
12981298

1299+
- **pull_request_stack_read** - Read pull request stacks
1300+
- **OAuth Challenge Scopes**: `repo`
1301+
- `method`: The read operation: `get` retrieves one stack by stackNumber; `list` lists repository stacks and can filter by pullNumber. (string, required)
1302+
- `owner`: Repository owner (string, required)
1303+
- `page`: Page number for pagination (min 1) (number, optional)
1304+
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)
1305+
- `pullNumber`: Filter listed stacks to the stack containing this repository pull request number. Used only when method is `list`. (number, optional)
1306+
- `repo`: Repository name (string, required)
1307+
- `stackNumber`: Stack number. Required when method is `get`. (number, optional)
1308+
1309+
- **pull_request_stack_write** - Manage pull request stack
1310+
- **OAuth Challenge Scopes**: `repo`
1311+
- `method`: The write operation: `create`, `add`, or `unstack`. (string, required)
1312+
- `owner`: Repository owner (string, required)
1313+
- `pullNumbers`: Repository pull request numbers in bottom-to-top order. Required for `create` and `add`. (number[], optional)
1314+
- `repo`: Repository name (string, required)
1315+
- `stackNumber`: Stack number. Required for `add` and `unstack`. (number, optional)
1316+
12991317
- **search_pull_requests** - Search pull requests
13001318
- **OAuth Challenge Scopes**: `repo`
13011319
- `fields`: Subset of fields to return for each pull request result. If omitted, all fields are returned. Use this to reduce response size when you only need specific fields; omitting 'body', 'reactions', and 'labels' in particular drops the largest per-result data. (string[], optional)
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{
2+
"annotations": {
3+
"idempotentHint": false,
4+
"readOnlyHint": true,
5+
"title": "Read pull request stacks"
6+
},
7+
"description": "Read native GitHub pull request stacks. Use `get` for a stack number or `list` to enumerate stacks and optionally resolve the stack containing a pull request.",
8+
"inputSchema": {
9+
"properties": {
10+
"method": {
11+
"description": "The read operation: `get` retrieves one stack by stackNumber; `list` lists repository stacks and can filter by pullNumber.",
12+
"enum": [
13+
"get",
14+
"list"
15+
],
16+
"type": "string"
17+
},
18+
"owner": {
19+
"description": "Repository owner",
20+
"type": "string"
21+
},
22+
"page": {
23+
"description": "Page number for pagination (min 1)",
24+
"minimum": 1,
25+
"type": "number"
26+
},
27+
"perPage": {
28+
"description": "Results per page for pagination (min 1, max 100)",
29+
"maximum": 100,
30+
"minimum": 1,
31+
"type": "number"
32+
},
33+
"pullNumber": {
34+
"description": "Filter listed stacks to the stack containing this repository pull request number. Used only when method is `list`.",
35+
"minimum": 1,
36+
"type": "number"
37+
},
38+
"repo": {
39+
"description": "Repository name",
40+
"type": "string"
41+
},
42+
"stackNumber": {
43+
"description": "Stack number. Required when method is `get`.",
44+
"minimum": 1,
45+
"type": "number"
46+
}
47+
},
48+
"required": [
49+
"method",
50+
"owner",
51+
"repo"
52+
],
53+
"type": "object"
54+
},
55+
"name": "pull_request_stack_read"
56+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
{
2+
"annotations": {
3+
"destructiveHint": true,
4+
"idempotentHint": false,
5+
"openWorldHint": true,
6+
"readOnlyHint": false,
7+
"title": "Manage pull request stack"
8+
},
9+
"description": "Create, extend, or unstack a native GitHub pull request stack. `create` accepts 2-100 pullNumbers ordered bottom-to-top. `add` accepts 1-100 pullNumbers to append above the current top. `unstack` removes every removable unmerged pull request and may leave locked or queued pull requests in the stack. All pull requests must belong to the target repository, use branches in that repository, and form a linear base/head chain. These operations manage stack metadata only; they do not create pull requests, retarget bases, rebase commits, push branches, or merge.",
10+
"inputSchema": {
11+
"properties": {
12+
"method": {
13+
"description": "The write operation: `create`, `add`, or `unstack`.",
14+
"enum": [
15+
"create",
16+
"add",
17+
"unstack"
18+
],
19+
"type": "string"
20+
},
21+
"owner": {
22+
"description": "Repository owner",
23+
"type": "string"
24+
},
25+
"pullNumbers": {
26+
"description": "Repository pull request numbers in bottom-to-top order. Required for `create` and `add`.",
27+
"items": {
28+
"minimum": 1,
29+
"type": "number"
30+
},
31+
"maxItems": 100,
32+
"minItems": 1,
33+
"type": "array"
34+
},
35+
"repo": {
36+
"description": "Repository name",
37+
"type": "string"
38+
},
39+
"stackNumber": {
40+
"description": "Stack number. Required for `add` and `unstack`.",
41+
"minimum": 1,
42+
"type": "number"
43+
}
44+
},
45+
"required": [
46+
"method",
47+
"owner",
48+
"repo"
49+
],
50+
"type": "object"
51+
},
52+
"name": "pull_request_stack_write"
53+
}

0 commit comments

Comments
 (0)