跳至主要内容
REST API 现在已版本化。 有关更多信息,请参阅“关于 API 版本控制”。

受保护分支的 REST API 端点

使用 REST API 管理受保护分支。

获取分支保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“获取分支保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取分支保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取分支保护”的 HTTP 响应状态代码

状态代码描述
200

OK

404

资源未找到

“获取分支保护”的代码示例

请求示例

获取/repos/{owner}/{repo}/branches/{branch}/protection
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection", "required_status_checks": { "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks", "contexts": [ "continuous-integration/travis-ci" ], "contexts_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts", "enforcement_level": "non_admins" }, "enforce_admins": { "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins", "enabled": true }, "required_pull_request_reviews": { "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_pull_request_reviews", "dismissal_restrictions": { "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions", "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/users", "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/teams", "users": [ { "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 } ], "teams": [ { "id": 1, "node_id": "MDQ6VGVhbTE=", "url": "https://api.github.com/teams/1", "html_url": "https://github.com/orgs/github/teams/justice-league", "name": "Justice League", "slug": "justice-league", "description": "A great team.", "privacy": "closed", "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } ], "apps": [ { "id": 1, "slug": "octoapp", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { "login": "github", "id": 1, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "hooks_url": "https://api.github.com/orgs/github/hooks", "issues_url": "https://api.github.com/orgs/github/issues", "members_url": "https://api.github.com/orgs/github/members{/member}", "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "description": "A great organization" }, "name": "Octocat App", "description": "", "external_url": "https://example.com", "html_url": "https://github.com/apps/octoapp", "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ] } ] }, "dismiss_stale_reviews": true, "require_code_owner_reviews": true, "required_approving_review_count": 2, "require_last_push_approval": true }, "restrictions": { "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions", "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/users", "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", "apps_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/apps", "users": [ { "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 } ], "teams": [ { "id": 1, "node_id": "MDQ6VGVhbTE=", "url": "https://api.github.com/teams/1", "html_url": "https://github.com/orgs/github/teams/justice-league", "name": "Justice League", "slug": "justice-league", "description": "A great team.", "privacy": "closed", "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } ], "apps": [ { "id": 1, "slug": "octoapp", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { "login": "github", "id": 1, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "hooks_url": "https://api.github.com/orgs/github/hooks", "issues_url": "https://api.github.com/orgs/github/issues", "members_url": "https://api.github.com/orgs/github/members{/member}", "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "description": "A great organization" }, "name": "Octocat App", "description": "", "external_url": "https://example.com", "html_url": "https://github.com/apps/octoapp", "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ] } ] }, "required_linear_history": { "enabled": true }, "allow_force_pushes": { "enabled": true }, "allow_deletions": { "enabled": true }, "required_conversation_resolution": { "enabled": true }, "lock_branch": { "enabled": true }, "allow_fork_syncing": { "enabled": true } }

更新分支保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

保护分支需要对代码库具有管理员或所有者权限。

注意

传递新的 usersteams 数组将替换其先前值。

注意

用户、应用和团队的总列表限制为 100 个项目。

“更新分支保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“更新分支保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
required_status_checks 对象或 null 必填

合并前需要状态检查通过。设置为 null 以禁用。

名称、类型、描述
strict 布尔值 必填

合并前要求分支是最新的。

contexts 字符串数组 必填

关闭分支保护通知:合并到此分支所需的状态检查列表。如果这些检查中的任何一个最近是由特定的 GitHub App 设置的,则将来合并到该分支时,将需要来自该 App。使用checks代替contexts以获得更细粒度的控制。

checks 对象数组

合并到此分支所需的状态检查列表。

名称、类型、描述
context 字符串 必填

所需检查的名称

app_id 整数

必须提供此检查的 GitHub App 的 ID。省略此字段以自动选择最近提供此检查的 GitHub App,或者如果它不是由 GitHub App 设置的,则选择任何 App。传递 -1 以显式允许任何 App 设置状态。

enforce_admins 布尔值或 null 必填

对所有配置的管理员限制进行强制执行。设置为true以对存储库管理员强制执行所需的状态检查。设置为null以禁用。

required_pull_request_reviews 对象或 null 必填

在合并之前,要求拉取请求至少有一个批准的审查。设置为null以禁用。

名称、类型、描述
dismissal_restrictions 对象

指定哪些用户、团队和 App 可以驳回拉取请求审查。传递一个空dismissal_restrictions对象以禁用。用户和团队dismissal_restrictions仅适用于组织拥有的存储库。对于个人存储库,省略此参数。

名称、类型、描述
users 字符串数组

具有驳回访问权限的用户login列表

teams 字符串数组

具有驳回访问权限的团队slug列表

apps 字符串数组

具有驳回访问权限的 App slug列表

dismiss_stale_reviews 布尔值

如果要有人推送新提交时自动驳回批准的审查,则设置为true

require_code_owner_reviews 布尔值

阻止合并拉取请求,直到代码所有者审查它们。

required_approving_review_count 整数

指定批准拉取请求所需的审阅者数量。使用 1 到 6 之间的数字或 0 表示不需要审阅者。

require_last_push_approval 布尔值

最近的推送是否必须由推送者以外的人批准。默认值:false

默认值: false

bypass_pull_request_allowances 对象

允许特定用户、团队或 App 绕过拉取请求要求。

名称、类型、描述
users 字符串数组

允许绕过拉取请求要求的用户login列表。

teams 字符串数组

允许绕过拉取请求要求的团队slug列表。

apps 字符串数组

允许绕过拉取请求要求的 App slug列表。

restrictions 对象或 null 必填

限制谁可以推送到受保护的分支。用户、App 和团队restrictions仅适用于组织拥有的存储库。设置为null以禁用。

名称、类型、描述
users 字符串数组 必填

具有推送访问权限的用户login列表

teams 字符串数组 必填

具有推送访问权限的团队slug列表

apps 字符串数组

具有推送访问权限的 App slug列表

required_linear_history 布尔值

强制执行线性提交 Git 历史记录,这会阻止任何人将合并提交推送到分支。设置为true以强制执行线性提交历史记录。设置为false以禁用线性提交 Git 历史记录。在启用线性提交历史记录之前,您的存储库必须允许 squash 合并或 rebase 合并。默认值:false。有关更多信息,请参阅 GitHub 帮助文档中的“要求线性提交历史记录”。

allow_force_pushes 布尔值或 null

允许任何具有对存储库的写入访问权限的人员强制推送到受保护的分支。设置为true以允许强制推送。设置为falsenull以阻止强制推送。默认值:false。有关更多信息,请参阅 GitHub 帮助文档中的“启用对受保护分支的强制推送”。

allow_deletions 布尔值

允许任何具有对存储库的写入访问权限的人员删除受保护的分支。设置为false以防止删除受保护的分支。默认值:false。有关更多信息,请参阅 GitHub 帮助文档中的“启用对受保护分支的强制推送”。

block_creations 布尔值

如果设置为true,则限制谁可以推送的restrictions分支保护设置也将阻止创建新分支的推送,除非推送是由能够推送的用户、团队或 App 发起的。设置为true以限制新分支的创建。默认值:false

required_conversation_resolution 布尔值

要求在将拉取请求合并到与此规则匹配的分支之前,解决代码上的所有对话。设置为false以禁用。默认值:false

lock_branch 布尔值

是否将分支设置为只读。如果为 true,则用户将无法推送到分支。默认值:false

默认值: false

allow_fork_syncing 布尔值

当分支被锁定时,用户是否可以从上游拉取更改。设置为true以允许 fork 同步。设置为false以防止 fork 同步。默认值:false

默认值: false

“更新分支保护”的 HTTP 响应状态代码

状态代码描述
200

OK

403

禁止

404

资源未找到

422

验证失败或端点已被垃圾邮件发送。

“更新分支保护”的代码示例

请求示例

put/repos/{owner}/{repo}/branches/{branch}/protection
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection \ -d '{"required_status_checks":{"strict":true,"contexts":["continuous-integration/travis-ci"]},"enforce_admins":true,"required_pull_request_reviews":{"dismissal_restrictions":{"users":["octocat"],"teams":["justice-league"]},"dismiss_stale_reviews":true,"require_code_owner_reviews":true,"required_approving_review_count":2,"require_last_push_approval":true,"bypass_pull_request_allowances":{"users":["octocat"],"teams":["justice-league"]}},"restrictions":{"users":["octocat"],"teams":["justice-league"],"apps":["super-ci"]},"required_linear_history":true,"allow_force_pushes":true,"allow_deletions":true,"block_creations":true,"required_conversation_resolution":true,"lock_branch":true,"allow_fork_syncing":true}'

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection", "required_status_checks": { "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_status_checks", "strict": true, "contexts": [ "continuous-integration/travis-ci" ], "contexts_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_status_checks/contexts", "checks": [ { "context": "continuous-integration/travis-ci", "app_id": null } ] }, "restrictions": { "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions", "users_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions/users", "teams_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions/teams", "apps_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/restrictions/apps", "users": [], "teams": [], "apps": [] }, "required_pull_request_reviews": { "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_pull_request_reviews", "dismiss_stale_reviews": true, "require_code_owner_reviews": true, "required_approving_review_count": 2, "require_last_push_approval": true, "dismissal_restrictions": { "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/dismissal_restrictions", "users_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/dismissal_restrictions/users", "teams_url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/dismissal_restrictions/teams", "users": [], "teams": [], "apps": [] } }, "required_signatures": { "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/required_signatures", "enabled": false }, "enforce_admins": { "url": "https://api.github.com/repos/octocat/hello-world/branches/main/protection/enforce_admins", "enabled": true }, "required_linear_history": { "enabled": true }, "allow_force_pushes": { "enabled": true }, "allow_deletions": { "enabled": true }, "block_creations": { "enabled": true }, "required_conversation_resolution": { "enabled": true }, "lock_branch": { "enabled": true }, "allow_fork_syncing": { "enabled": true } }

删除分支保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“删除分支保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“删除分支保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“删除分支保护”的 HTTP 响应状态代码

状态代码描述
204

无内容

403

禁止

“删除分支保护”的代码示例

请求示例

delete/repos/{owner}/{repo}/branches/{branch}/protection
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection

响应

状态:204

获取管理员分支保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“获取管理员分支保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取管理员分支保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取管理员分支保护”的 HTTP 响应状态代码

状态代码描述
200

OK

“获取管理员分支保护”的代码示例

请求示例

get/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/enforce_admins

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins", "enabled": true }

设置管理员分支保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

添加管理员强制执行需要对存储库和分支保护具有管理员或所有者权限,并且必须启用分支保护。

“设置管理员分支保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“设置管理员分支保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“设置管理员分支保护”的 HTTP 响应状态代码

状态代码描述
200

OK

“设置管理员分支保护”的代码示例

请求示例

post/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/enforce_admins

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins", "enabled": true }

删除管理员分支保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

删除管理员强制执行需要对存储库和分支保护具有管理员或所有者权限,并且必须启用分支保护。

“删除管理员分支保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“删除管理员分支保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“删除管理员分支保护”的 HTTP 响应状态码

状态代码描述
204

无内容

404

资源未找到

“删除管理员分支保护”的代码示例

请求示例

delete/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/enforce_admins

响应

状态:204

获取拉取请求审查保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“获取拉取请求审查保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取拉取请求审查保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取拉取请求审查保护”的 HTTP 响应状态码

状态代码描述
200

OK

“获取拉取请求审查保护”的代码示例

请求示例

get/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_pull_request_reviews

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_pull_request_reviews", "dismissal_restrictions": { "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions", "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/users", "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/teams", "users": [ { "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 } ], "teams": [ { "id": 1, "node_id": "MDQ6VGVhbTE=", "url": "https://api.github.com/teams/1", "html_url": "https://github.com/orgs/github/teams/justice-league", "name": "Justice League", "slug": "justice-league", "description": "A great team.", "privacy": "closed", "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } ], "apps": [ { "id": 1, "slug": "octoapp", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { "login": "github", "id": 1, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "hooks_url": "https://api.github.com/orgs/github/hooks", "issues_url": "https://api.github.com/orgs/github/issues", "members_url": "https://api.github.com/orgs/github/members{/member}", "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "description": "A great organization" }, "name": "Octocat App", "description": "", "external_url": "https://example.com", "html_url": "https://github.com/apps/octoapp", "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ] } ] }, "dismiss_stale_reviews": true, "require_code_owner_reviews": true, "required_approving_review_count": 2, "require_last_push_approval": true }

更新拉取请求审查保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

更新拉取请求审查强制执行需要对存储库和分支保护具有管理员或所有者权限,并且需要启用分支保护。

注意

传递新的 usersteams 数组将替换其先前值。

“更新拉取请求审查保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“更新拉取请求审查保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
dismissal_restrictions 对象

指定哪些用户、团队和 App 可以驳回拉取请求审查。传递一个空dismissal_restrictions对象以禁用。用户和团队dismissal_restrictions仅适用于组织拥有的存储库。对于个人存储库,省略此参数。

名称、类型、描述
users 字符串数组

具有驳回访问权限的用户login列表

teams 字符串数组

具有驳回访问权限的团队slug列表

apps 字符串数组

具有驳回访问权限的 App slug列表

dismiss_stale_reviews 布尔值

如果要有人推送新提交时自动驳回批准的审查,则设置为true

require_code_owner_reviews 布尔值

代码所有者审查之前阻止合并拉取请求。

required_approving_review_count 整数

指定批准拉取请求所需的审查者数量。使用 1 到 6 之间的数字或 0 表示不需要审查者。

require_last_push_approval 布尔值

是否必须由推送者以外的人批准最近的推送。默认值:false

默认值: false

bypass_pull_request_allowances 对象

允许特定用户、团队或 App 绕过拉取请求要求。

名称、类型、描述
users 字符串数组

允许绕过拉取请求要求的用户login列表。

teams 字符串数组

允许绕过拉取请求要求的团队slug列表。

apps 字符串数组

允许绕过拉取请求要求的 App slug列表。

“更新拉取请求审查保护”的 HTTP 响应状态码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“更新拉取请求审查保护”的代码示例

请求示例

patch/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews
curl -L \ -X PATCH \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_pull_request_reviews \ -d '{"dismissal_restrictions":{"users":["octocat"],"teams":["justice-league"],"apps":["octoapp"]},"bypass_pull_request_allowances":{"users":["octocat"],"teams":["justice-league"],"apps":["octoapp"]},"dismiss_stale_reviews":true,"require_code_owner_reviews":true,"required_approving_review_count":2,"require_last_push_approval":true}'

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_pull_request_reviews", "dismissal_restrictions": { "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions", "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/users", "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/teams", "users": [ { "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 } ], "teams": [ { "id": 1, "node_id": "MDQ6VGVhbTE=", "url": "https://api.github.com/teams/1", "html_url": "https://github.com/orgs/github/teams/justice-league", "name": "Justice League", "slug": "justice-league", "description": "A great team.", "privacy": "closed", "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } ], "apps": [ { "id": 1, "slug": "octoapp", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { "login": "github", "id": 1, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "hooks_url": "https://api.github.com/orgs/github/hooks", "issues_url": "https://api.github.com/orgs/github/issues", "members_url": "https://api.github.com/orgs/github/members{/member}", "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "description": "A great organization" }, "name": "Octocat App", "description": "", "external_url": "https://example.com", "html_url": "https://github.com/apps/octoapp", "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ] } ] }, "dismiss_stale_reviews": true, "require_code_owner_reviews": true, "required_approving_review_count": 2, "require_last_push_approval": true }

删除拉取请求审查保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“删除拉取请求审查保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“删除拉取请求审查保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“删除拉取请求审查保护”的 HTTP 响应状态码

状态代码描述
204

无内容

404

资源未找到

“删除拉取请求审查保护”的代码示例

请求示例

delete/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_pull_request_reviews

响应

状态:204

获取提交签名保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

使用管理员或所有者权限对存储库进行身份验证后,您可以使用此端点检查分支是否需要签名的提交。启用状态为 true 表示您必须在此分支上签署提交。有关更多信息,请参阅 GitHub 帮助中的使用 GPG 签署提交

注意

您必须启用分支保护才能要求签名的提交。

“获取提交签名保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取提交签名保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取提交签名保护”的 HTTP 响应状态码

状态代码描述
200

OK

404

资源未找到

“获取提交签名保护”的代码示例

请求示例

get/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_signatures

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures", "enabled": true }

创建提交签名保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

使用管理员或所有者权限对存储库进行身份验证后,您可以使用此端点要求在分支上签署提交。您必须启用分支保护才能要求签名的提交。

“创建提交签名保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“创建提交签名保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“创建提交签名保护”的 HTTP 响应状态码

状态代码描述
200

OK

404

资源未找到

“创建提交签名保护”的代码示例

请求示例

post/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_signatures

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures", "enabled": true }

删除提交签名保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

使用管理员或所有者权限对存储库进行身份验证后,您可以使用此端点禁用分支上所需的签名的提交。您必须启用分支保护才能要求签名的提交。

“删除提交签名保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“删除提交签名保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“删除提交签名保护”的 HTTP 响应状态码

状态代码描述
204

无内容

404

资源未找到

“删除提交签名保护”的代码示例

请求示例

delete/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_signatures

响应

状态:204

获取状态检查保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“获取状态检查保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取状态检查保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取状态检查保护”的 HTTP 响应状态码

状态代码描述
200

OK

404

资源未找到

“获取状态检查保护”的代码示例

请求示例

get/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_status_checks

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks", "strict": true, "contexts": [ "continuous-integration/travis-ci" ], "contexts_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts" }

更新状态检查保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

更新必需的状态检查需要对存储库具有管理员或所有者权限,并且需要启用分支保护。

“更新状态检查保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“更新状态检查保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
strict 布尔值

合并前要求分支是最新的。

contexts 字符串数组

关闭分支保护通知:合并到此分支所需的状态检查列表。如果这些检查中的任何一个最近是由特定的 GitHub App 设置的,则将来合并到该分支时,将需要来自该 App。使用checks代替contexts以获得更细粒度的控制。

checks 对象数组

合并到此分支所需的状态检查列表。

名称、类型、描述
context 字符串 必填

所需检查的名称

app_id 整数

必须提供此检查的 GitHub App 的 ID。省略此字段以自动选择最近提供此检查的 GitHub App,或者如果它不是由 GitHub App 设置的,则选择任何 App。传递 -1 以显式允许任何 App 设置状态。

“更新状态检查保护”的 HTTP 响应状态码

状态代码描述
200

OK

404

资源未找到

422

验证失败或端点已被垃圾邮件发送。

“更新状态检查保护”的代码示例

请求示例

patch/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks
curl -L \ -X PATCH \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_status_checks \ -d '{"strict":true,"contexts":["continuous-integration/travis-ci"]}'

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks", "strict": true, "contexts": [ "continuous-integration/travis-ci" ], "contexts_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts" }

删除状态检查保护

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“删除状态检查保护”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“删除状态检查保护”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“删除状态检查保护”的 HTTP 响应状态码

状态代码描述
204

无内容

“移除状态检查保护”的代码示例

请求示例

删除/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_status_checks

响应

状态:204

获取所有状态检查上下文

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“获取所有状态检查上下文”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取所有状态检查上下文”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取所有状态检查上下文”的HTTP响应状态代码

状态代码描述
200

OK

404

资源未找到

“获取所有状态检查上下文”的代码示例

请求示例

获取/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_status_checks/contexts

响应

状态:200
[ "continuous-integration/travis-ci" ]

添加状态检查上下文

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“添加状态检查上下文”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“添加状态检查上下文”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
contexts 字符串数组 必填

状态检查的名称

“添加状态检查上下文”的HTTP响应状态代码

状态代码描述
200

OK

403

禁止

404

资源未找到

422

验证失败或端点已被垃圾邮件发送。

“添加状态检查上下文”的代码示例

请求示例

发布/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_status_checks/contexts \ -d '{"contexts":["continuous-integration/travis-ci","continuous-integration/jenkins"]}'

响应

状态:200
[ "continuous-integration/travis-ci", "continuous-integration/jenkins" ]

设置状态检查上下文

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“设置状态检查上下文”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“设置状态检查上下文”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
contexts 字符串数组 必填

状态检查的名称

“设置状态检查上下文”的HTTP响应状态代码

状态代码描述
200

OK

404

资源未找到

422

验证失败或端点已被垃圾邮件发送。

“设置状态检查上下文”的代码示例

请求示例

更新/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_status_checks/contexts \ -d '{"contexts":["continuous-integration/travis-ci"]}'

响应

状态:200
[ "continuous-integration/travis-ci" ]

移除状态检查上下文

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

“移除状态检查上下文”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“移除状态检查上下文”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
contexts 字符串数组 必填

状态检查的名称

“移除状态检查上下文”的HTTP响应状态代码

状态代码描述
200

OK

404

资源未找到

422

验证失败或端点已被垃圾邮件发送。

“移除状态检查上下文”的代码示例

请求示例

删除/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/required_status_checks/contexts \ -d '{"contexts":["continuous-integration/jenkins"]}'

响应

状态:200
[ "continuous-integration/travis-ci" ]

获取访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

列出谁有权访问此受保护分支。

注意

用户、应用和团队restrictions仅适用于组织拥有的仓库。

“获取访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取访问限制”的HTTP响应状态代码

状态代码描述
200

OK

404

资源未找到

“获取访问限制”的代码示例

请求示例

获取/repos/{owner}/{repo}/branches/{branch}/protection/restrictions
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions", "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/users", "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", "apps_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/apps", "users": [ { "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 } ], "teams": [ { "id": 1, "node_id": "MDQ6VGVhbTE=", "url": "https://api.github.com/teams/1", "html_url": "https://github.com/orgs/github/teams/justice-league", "name": "Justice League", "slug": "justice-league", "description": "A great team.", "privacy": "closed", "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } ], "apps": [ { "id": 1, "slug": "octoapp", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { "login": "github", "id": 1, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "hooks_url": "https://api.github.com/orgs/github/hooks", "issues_url": "https://api.github.com/orgs/github/issues", "members_url": "https://api.github.com/orgs/github/members{/member}", "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "description": "A great organization" }, "name": "Octocat App", "description": "", "external_url": "https://example.com", "html_url": "https://github.com/apps/octoapp", "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ] } ] }

删除访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

禁用限制谁可以推送到此分支的功能。

“删除访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“删除访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“删除访问限制”的HTTP响应状态代码

状态代码描述
204

无内容

“删除访问限制”的代码示例

请求示例

删除/repos/{owner}/{repo}/branches/{branch}/protection/restrictions
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions

响应

状态:204

获取有权访问受保护分支的应用

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

列出具有推送到此分支权限的GitHub应用。仅安装在仓库上并已授予对仓库内容的写入访问权限的GitHub应用才能作为受权操作者添加到受保护分支中。

“获取有权访问受保护分支的应用”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取有权访问受保护分支的应用”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取有权访问受保护分支的应用”的HTTP响应状态代码

状态代码描述
200

OK

404

资源未找到

“获取有权访问受保护分支的应用”的代码示例

请求示例

获取/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/apps

响应

状态:200
[ { "id": 1, "slug": "octoapp", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { "login": "github", "id": 1, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "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", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": true }, "name": "Octocat App", "description": "", "external_url": "https://example.com", "html_url": "https://github.com/apps/octoapp", "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ] } ]

添加应用访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

授予指定的应用对该分支的推送访问权限。仅安装在仓库上并已授予对仓库内容的写入访问权限的GitHub应用才能作为受权操作者添加到受保护分支中。

“添加应用访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“添加应用访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
apps 字符串数组 必填

具有对该分支推送访问权限的GitHub应用。使用应用名称的slug化版本。**注意**:用户、应用和团队的总列表限制为100个项目。

“添加应用访问限制”的HTTP响应状态代码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“添加应用访问限制”的代码示例

请求示例

发布/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/apps \ -d '{"apps":["octoapp"]}'

响应

状态:200
[ { "id": 1, "slug": "octoapp", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { "login": "github", "id": 1, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "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", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": true }, "name": "Octocat App", "description": "", "external_url": "https://example.com", "html_url": "https://github.com/apps/octoapp", "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ] } ]

设置应用访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

替换具有对该分支推送访问权限的应用列表。这将删除以前具有推送访问权限的所有应用,并授予新应用列表推送访问权限。仅安装在仓库上并已授予对仓库内容的写入访问权限的GitHub应用才能作为受权操作者添加到受保护分支中。

“设置应用访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“设置应用访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
apps 字符串数组 必填

具有对该分支推送访问权限的GitHub应用。使用应用名称的slug化版本。**注意**:用户、应用和团队的总列表限制为100个项目。

“设置应用访问限制”的HTTP响应状态代码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“设置应用访问限制”的代码示例

请求示例

更新/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/apps \ -d '{"apps":["octoapp"]}'

响应

状态:200
[ { "id": 1, "slug": "octoapp", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { "login": "github", "id": 1, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "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", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": true }, "name": "Octocat App", "description": "", "external_url": "https://example.com", "html_url": "https://github.com/apps/octoapp", "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ] } ]

移除应用访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

移除应用向此分支推送的权限。只有安装在仓库上并被授予对仓库内容的写入访问权限的 GitHub 应用才能作为受保护分支上的授权执行者添加。

“移除应用访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“移除应用访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
apps 字符串数组 必填

具有对该分支推送访问权限的GitHub应用。使用应用名称的slug化版本。**注意**:用户、应用和团队的总列表限制为100个项目。

“移除应用访问限制”的 HTTP 响应状态代码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“移除应用访问限制”的代码示例

请求示例

delete/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/apps \ -d '{"apps":["my-app"]}'

响应

状态:200
[ { "id": 1, "slug": "octoapp", "node_id": "MDExOkludGVncmF0aW9uMQ==", "owner": { "login": "github", "id": 1, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "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", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": true }, "name": "Octocat App", "description": "", "external_url": "https://example.com", "html_url": "https://github.com/apps/octoapp", "created_at": "2017-07-08T16:18:44-04:00", "updated_at": "2017-07-08T16:18:44-04:00", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ] } ]

获取有权访问受保护分支的团队

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

列出对此分支具有推送访问权限的团队。该列表包括子团队。

“获取有权访问受保护分支的团队”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取有权访问受保护分支的团队”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取有权访问受保护分支的团队”的 HTTP 响应状态代码

状态代码描述
200

OK

404

资源未找到

“获取有权访问受保护分支的团队”的代码示例

请求示例

get/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/teams

响应

状态:200
[ { "id": 1, "node_id": "MDQ6VGVhbTE=", "url": "https://api.github.com/teams/1", "html_url": "https://github.com/orgs/github/teams/justice-league", "name": "Justice League", "slug": "justice-league", "description": "A great team.", "privacy": "closed", "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } ]

添加团队访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

授予指定团队对此分支的推送访问权限。您还可以授予子团队推送访问权限。

“添加团队访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“添加团队访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
teams 字符串数组 必填

团队的 slug 值

“添加团队访问限制”的 HTTP 响应状态代码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“添加团队访问限制”的代码示例

请求示例

post/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/teams \ -d '{"teams":["justice-league"]}'

响应

状态:200
[ { "id": 1, "node_id": "MDQ6VGVhbTE=", "url": "https://api.github.com/teams/1", "html_url": "https://github.com/orgs/github/teams/justice-league", "name": "Justice League", "slug": "justice-league", "description": "A great team.", "privacy": "closed", "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } ]

设置团队访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

替换对此分支具有推送访问权限的团队列表。这将删除之前具有推送访问权限的所有团队,并授予新团队列表推送访问权限。团队限制包括子团队。

“设置团队访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“设置团队访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
teams 字符串数组 必填

团队的 slug 值

“设置团队访问限制”的 HTTP 响应状态代码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“设置团队访问限制”的代码示例

请求示例

put/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/teams \ -d '{"teams":["justice-league"]}'

响应

状态:200
[ { "id": 1, "node_id": "MDQ6VGVhbTE=", "url": "https://api.github.com/teams/1", "html_url": "https://github.com/orgs/github/teams/justice-league", "name": "Justice League", "slug": "justice-league", "description": "A great team.", "privacy": "closed", "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } ]

移除团队访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

移除团队向此分支推送的权限。您还可以移除子团队的推送访问权限。

“移除团队访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“移除团队访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
teams 字符串数组 必填

团队的 slug 值

“移除团队访问限制”的 HTTP 响应状态代码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“移除团队访问限制”的代码示例

请求示例

delete/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/teams \ -d '{"teams":["octocats"]}'

响应

状态:200
[ { "id": 1, "node_id": "MDQ6VGVhbTE=", "url": "https://api.github.com/teams/1", "html_url": "https://github.com/orgs/github/teams/justice-league", "name": "Justice League", "slug": "justice-league", "description": "A great team.", "privacy": "closed", "notification_setting": "notifications_enabled", "permission": "admin", "members_url": "https://api.github.com/teams/1/members{/member}", "repositories_url": "https://api.github.com/teams/1/repos", "parent": null } ]

获取有权访问受保护分支的用户

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

列出对此分支具有推送访问权限的人员。

“获取有权访问受保护分支的用户”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(读取)

“获取有权访问受保护分支的用户”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

“获取有权访问受保护分支的用户”的 HTTP 响应状态代码

状态代码描述
200

OK

404

资源未找到

“获取有权访问受保护分支的用户”的代码示例

请求示例

get/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/users

响应

状态:200
[ { "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 } ]

添加用户访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

授予指定人员对此分支的推送访问权限。

类型描述
数组可以拥有推送访问权限的人员的用户名。**注意**:用户、应用和团队的总列表限制为 100 个项目。

“添加用户访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“添加用户访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
users 字符串数组 必填

用户的用户名

“添加用户访问限制”的 HTTP 响应状态代码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“添加用户访问限制”的代码示例

请求示例

post/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/users \ -d '{"users":["octocat"]}'

响应

状态:200
[ { "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 } ]

设置用户访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

替换对此分支具有推送访问权限的人员列表。这将删除之前具有推送访问权限的所有人员,并授予新人员列表推送访问权限。

类型描述
数组可以拥有推送访问权限的人员的用户名。**注意**:用户、应用和团队的总列表限制为 100 个项目。

“设置用户访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“设置用户访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
users 字符串数组 必填

用户的用户名

“设置用户访问限制”的 HTTP 响应状态代码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“设置用户访问限制”的代码示例

请求示例

put/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users
curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/users \ -d '{"users":["octocat"]}'

响应

状态:200
[ { "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 } ]

移除用户访问限制

受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共代码库中可用,以及在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有代码库中可用。有关更多信息,请参阅 GitHub 帮助文档中的GitHub 产品

移除用户向此分支推送的权限。

类型描述
数组不再应该具有推送访问权限的人员的用户名。**注意**:用户、应用和团队的总列表限制为 100 个项目。

“移除用户访问限制”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “管理”代码库权限(写入)

“移除用户访问限制”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必填

代码库的账户所有者。名称不区分大小写。

repo 字符串 必填

不带 .git 扩展名的代码库名称。名称不区分大小写。

branch 字符串 必填

分支的名称。不能包含通配符字符。要在分支名称中使用通配符字符,请使用GraphQL API

主体参数
名称、类型、描述
users 字符串数组 必填

用户的用户名

“移除用户访问限制”的 HTTP 响应状态代码

状态代码描述
200

OK

422

验证失败或端点已被垃圾邮件发送。

“移除用户访问限制”的代码示例

请求示例

delete/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/branches/BRANCH/protection/restrictions/users \ -d '{"users":["octocat"]}'

响应

状态:200
[ { "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 } ]