REST API endpoints for stacked pull requests
Use the REST API to interact with stacked pull requests.
List pull request stacks
Lists pull request stacks in a repository.
Детализированные токены доступа для «List pull request stacks»
Эта конечная точка работает со следующими точными типами маркеров:
- Жетоны доступа пользователей приложения GitHub
- Токены доступа к установке приложений GitHub
- Точные личные маркеры доступа
Маркер с точной детализацией должен иметь следующий набор разрешений.:
- "Pull requests" repository permissions (read)
Эту конечную точку можно использовать без проверки подлинности или указанных выше разрешений, если запрашиваются только общедоступные ресурсы.
Параметры для «List pull request stacks»
| Имя., Тип, Description |
|---|
accept string Setting to |
| Имя., Тип, Description |
|---|
owner string Обязательное полеThe account owner of the repository. The name is not case sensitive. |
repo string Обязательное полеThe name of the repository without the |
| Имя., Тип, Description |
|---|
pull_request integer Filter to the stack containing this repository pull request number. |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." По умолчанию.: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." По умолчанию.: |
HTTP-коды статуса ответа для «List pull request stacks»
| Код состояния | Description |
|---|---|
200 | OK |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Примеры кода для «List pull request stacks»
Пример запроса
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/repos/OWNER/REPO/stacksResponse
Status: 200[
{
"id": 9876543,
"number": 42,
"node_id": "S_kwDOABCDEF4AAAAA",
"url": "https://api.github.com/repos/octocat/hello-world/stacks/42",
"base": {
"ref": "main"
},
"pull_requests": [
{
"number": 101,
"state": "open",
"draft": false,
"merged_at": null,
"head": {
"ref": "user-model",
"sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11"
}
},
{
"number": 102,
"state": "open",
"draft": false,
"merged_at": null,
"head": {
"ref": "user-api",
"sha": "bbb2222bbb2222bbb2222bbb2222bbb2222bbb22"
}
}
],
"open": true,
"created_at": "2026-04-15T10:00:00Z"
}
]Create a pull request stack
Creates a stack from an ordered list of pull request numbers. Provide the pull request numbers from the bottom of the stack to the top. Each pull request's base ref must match the previous pull request's head ref.
Детализированные токены доступа для «Create a pull request stack»
Эта конечная точка работает со следующими точными типами маркеров:
- Жетоны доступа пользователей приложения GitHub
- Токены доступа к установке приложений GitHub
- Точные личные маркеры доступа
Маркер с точной детализацией должен иметь следующий набор разрешений.:
- "Pull requests" repository permissions (write)
Параметры для «Create a pull request stack»
| Имя., Тип, Description |
|---|
accept string Setting to |
| Имя., Тип, Description |
|---|
owner string Обязательное полеThe account owner of the repository. The name is not case sensitive. |
repo string Обязательное полеThe name of the repository without the |
| Имя., Тип, Description |
|---|
pull_requests array of integers Обязательное полеAn ordered list of pull request numbers forming the stack from bottom to top. |
HTTP-коды статуса ответа для «Create a pull request stack»
| Код состояния | Description |
|---|---|
201 | Created |
404 | Resource not found |
422 | Validation failed. Returned when the request references pull requests that don't exist in the repository, or when the pull requests can't form a valid stack. |
Примеры кода для «Create a pull request stack»
Пример запроса
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/repos/OWNER/REPO/stacks \
-d '{"pull_requests":[101,102,103]}'Response
Status: 201{
"id": 9876543,
"number": 42,
"node_id": "S_kwDOABCDEF4AAAAA",
"url": "https://api.github.com/repos/octocat/hello-world/stacks/42",
"base": {
"ref": "main"
},
"open": true,
"created_at": "2026-04-15T10:00:00Z",
"pull_requests": [
{
"id": 100001,
"node_id": "PR_kwDOABCDEF4AAAAA",
"title": "Add user model",
"state": "open",
"merged_at": null,
"draft": false,
"html_url": "https://github.com/octocat/hello-world/pull/101",
"user": {
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false,
"user_view_type": "public"
},
"number": 101,
"url": "https://api.github.com/repos/octocat/hello-world/pulls/101",
"head": {
"ref": "user-model",
"sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
},
"base": {
"ref": "main",
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
}
},
{
"id": 100002,
"node_id": "PR_kwDOABCDEF4AAAAB",
"title": "Add user API",
"state": "open",
"merged_at": null,
"draft": true,
"html_url": "https://github.com/octocat/hello-world/pull/102",
"user": {
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false,
"user_view_type": "public"
},
"number": 102,
"url": "https://api.github.com/repos/octocat/hello-world/pulls/102",
"head": {
"ref": "user-api",
"sha": "bbb2222bbb2222bbb2222bbb2222bbb2222bbb22",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
},
"base": {
"ref": "user-model",
"sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
}
}
]
}Get a pull request stack
Gets a pull request stack by providing its stack number.
Детализированные токены доступа для «Get a pull request stack»
Эта конечная точка работает со следующими точными типами маркеров:
- Жетоны доступа пользователей приложения GitHub
- Токены доступа к установке приложений GitHub
- Точные личные маркеры доступа
Маркер с точной детализацией должен иметь следующий набор разрешений.:
- "Pull requests" repository permissions (read)
Эту конечную точку можно использовать без проверки подлинности или указанных выше разрешений, если запрашиваются только общедоступные ресурсы.
Параметры для «Get a pull request stack»
| Имя., Тип, Description |
|---|
accept string Setting to |
| Имя., Тип, Description |
|---|
owner string Обязательное полеThe account owner of the repository. The name is not case sensitive. |
repo string Обязательное полеThe name of the repository without the |
stack_number integer Обязательное полеThe number that identifies the pull request stack. |
HTTP-коды статуса ответа для «Get a pull request stack»
| Код состояния | Description |
|---|---|
200 | OK |
404 | Resource not found |
Примеры кода для «Get a pull request stack»
Пример запроса
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/repos/OWNER/REPO/stacks/STACK_NUMBERResponse
Status: 200{
"id": 9876543,
"number": 42,
"node_id": "S_kwDOABCDEF4AAAAA",
"url": "https://api.github.com/repos/octocat/hello-world/stacks/42",
"base": {
"ref": "main"
},
"open": true,
"created_at": "2026-04-15T10:00:00Z",
"pull_requests": [
{
"id": 100001,
"node_id": "PR_kwDOABCDEF4AAAAA",
"title": "Add user model",
"state": "open",
"merged_at": null,
"draft": false,
"html_url": "https://github.com/octocat/hello-world/pull/101",
"user": {
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false,
"user_view_type": "public"
},
"number": 101,
"url": "https://api.github.com/repos/octocat/hello-world/pulls/101",
"head": {
"ref": "user-model",
"sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
},
"base": {
"ref": "main",
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
}
},
{
"id": 100002,
"node_id": "PR_kwDOABCDEF4AAAAB",
"title": "Add user API",
"state": "open",
"merged_at": null,
"draft": true,
"html_url": "https://github.com/octocat/hello-world/pull/102",
"user": {
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false,
"user_view_type": "public"
},
"number": 102,
"url": "https://api.github.com/repos/octocat/hello-world/pulls/102",
"head": {
"ref": "user-api",
"sha": "bbb2222bbb2222bbb2222bbb2222bbb2222bbb22",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
},
"base": {
"ref": "user-model",
"sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
}
}
]
}Add pull requests to a pull request stack
Appends an ordered list of pull request numbers onto the top of an existing stack. Provide only the pull requests you want to add, from the current top of the stack upward. The first new pull request's base ref must match the current top pull request's head ref.
Детализированные токены доступа для «Add pull requests to a pull request stack»
Эта конечная точка работает со следующими точными типами маркеров:
- Жетоны доступа пользователей приложения GitHub
- Токены доступа к установке приложений GitHub
- Точные личные маркеры доступа
Маркер с точной детализацией должен иметь следующий набор разрешений.:
- "Pull requests" repository permissions (write)
Параметры для «Add pull requests to a pull request stack»
| Имя., Тип, Description |
|---|
accept string Setting to |
| Имя., Тип, Description |
|---|
owner string Обязательное полеThe account owner of the repository. The name is not case sensitive. |
repo string Обязательное полеThe name of the repository without the |
stack_number integer Обязательное полеThe number that identifies the pull request stack. |
| Имя., Тип, Description |
|---|
pull_requests array of integers Обязательное полеAn ordered list of pull request numbers to append to the stack, from the current top upward. |
HTTP-коды статуса ответа для «Add pull requests to a pull request stack»
| Код состояния | Description |
|---|---|
200 | OK |
404 | Resource not found |
409 | Conflict. Returned when the stack is being modified by another request. |
422 | Validation failed. Returned when the request references pull requests that don't exist in the repository, or when the pull requests can't be appended to the stack. |
Примеры кода для «Add pull requests to a pull request stack»
Пример запроса
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/repos/OWNER/REPO/stacks/STACK_NUMBER/add \
-d '{"pull_requests":[104,102]}'Response
Status: 200{
"id": 9876543,
"number": 42,
"node_id": "S_kwDOABCDEF4AAAAA",
"url": "https://api.github.com/repos/octocat/hello-world/stacks/42",
"base": {
"ref": "main"
},
"open": true,
"created_at": "2026-04-15T10:00:00Z",
"pull_requests": [
{
"id": 100001,
"node_id": "PR_kwDOABCDEF4AAAAA",
"title": "Add user model",
"state": "open",
"merged_at": null,
"draft": false,
"html_url": "https://github.com/octocat/hello-world/pull/101",
"user": {
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false,
"user_view_type": "public"
},
"number": 101,
"url": "https://api.github.com/repos/octocat/hello-world/pulls/101",
"head": {
"ref": "user-model",
"sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
},
"base": {
"ref": "main",
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
}
},
{
"id": 100002,
"node_id": "PR_kwDOABCDEF4AAAAB",
"title": "Add user API",
"state": "open",
"merged_at": null,
"draft": true,
"html_url": "https://github.com/octocat/hello-world/pull/102",
"user": {
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false,
"user_view_type": "public"
},
"number": 102,
"url": "https://api.github.com/repos/octocat/hello-world/pulls/102",
"head": {
"ref": "user-api",
"sha": "bbb2222bbb2222bbb2222bbb2222bbb2222bbb22",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
},
"base": {
"ref": "user-model",
"sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
}
}
]
}Remove pull requests from a pull request stack
Removes the unmerged pull requests from a stack. Pull requests that cannot be
unstacked (for example, those that are queued for merge) are left in place. When pull requests remain in the stack, the updated
stack is returned with a 200. When no pull requests remain, the stack is
dissolved and a 204 is returned.
Детализированные токены доступа для «Remove pull requests from a pull request stack»
Эта конечная точка работает со следующими точными типами маркеров:
- Жетоны доступа пользователей приложения GitHub
- Токены доступа к установке приложений GitHub
- Точные личные маркеры доступа
Маркер с точной детализацией должен иметь следующий набор разрешений.:
- "Pull requests" repository permissions (write)
Параметры для «Remove pull requests from a pull request stack»
| Имя., Тип, Description |
|---|
accept string Setting to |
| Имя., Тип, Description |
|---|
owner string Обязательное полеThe account owner of the repository. The name is not case sensitive. |
repo string Обязательное полеThe name of the repository without the |
stack_number integer Обязательное полеThe number that identifies the pull request stack. |
HTTP-коды статуса ответа для «Remove pull requests from a pull request stack»
| Код состояния | Description |
|---|---|
200 | OK |
204 | A header with no content is returned. |
404 | Resource not found |
409 | Conflict. Returned when the stack is being modified by another request. |
422 | Validation failed. Returned when the stack can't be unstacked because every pull request in it is locked and cannot be removed. |
Примеры кода для «Remove pull requests from a pull request stack»
Пример запроса
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/repos/OWNER/REPO/stacks/STACK_NUMBER/unstackResponse
Status: 200{
"id": 9876543,
"number": 42,
"node_id": "S_kwDOABCDEF4AAAAA",
"url": "https://api.github.com/repos/octocat/hello-world/stacks/42",
"base": {
"ref": "main"
},
"open": true,
"created_at": "2026-04-15T10:00:00Z",
"pull_requests": [
{
"id": 100001,
"node_id": "PR_kwDOABCDEF4AAAAA",
"title": "Add user model",
"state": "open",
"merged_at": null,
"draft": false,
"html_url": "https://github.com/octocat/hello-world/pull/101",
"user": {
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false,
"user_view_type": "public"
},
"number": 101,
"url": "https://api.github.com/repos/octocat/hello-world/pulls/101",
"head": {
"ref": "user-model",
"sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
},
"base": {
"ref": "main",
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
"repo": {
"id": 1296269,
"url": "https://api.github.com/repos/octocat/hello-world",
"name": "hello-world"
}
}
}
]
}