跳至主要内容
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

资源未找到

获取分支保护的代码示例

请求示例

get/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以禁用。

名称,类型,描述
strict 布尔值 必需

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

contexts 字符串数组 必需

已弃用:要合并到此分支的所需状态检查列表。如果这些检查中的任何一个最近由特定 GitHub 应用设置,则它们将需要来自该应用,以便分支在将来合并。使用 checks 而不是 contexts 以获得更细粒度的控制。

checks 对象数组

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

名称,类型,描述
context 字符串 必需

所需检查的名称

app_id 整数

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

enforce_admins 布尔值或空值 必需

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

required_pull_request_reviews 对象或空值 必需

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

名称,类型,描述
dismissal_restrictions 对象

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

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

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

teams 字符串数组

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

apps 字符串数组

具有撤销访问权限的应用程序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 对象

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

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

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

teams 字符串数组

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

apps 字符串数组

允许绕过拉取请求要求的应用程序slug列表。

restrictions 对象或 null 必需

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

名称,类型,描述
users 字符串数组 必需

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

teams 字符串数组 必需

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

apps 字符串数组

具有推送访问权限的应用程序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分支保护设置也将阻止创建新分支的推送,除非推送是由具有推送能力的用户、团队或应用程序发起的。设置为true以限制新分支的创建。默认值:false

required_conversation_resolution 布尔值

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

lock_branch 布尔值

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

默认: false

allow_fork_syncing 布尔值

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

默认: false

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

状态码描述
200

OK

403

禁止

404

资源未找到

422

验证失败,或端点已被垃圾邮件攻击。

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

请求示例

put/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

响应

状态: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 对象

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

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

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

teams 字符串数组

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

apps 字符串数组

具有撤销访问权限的应用程序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 对象

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

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

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

teams 字符串数组

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

apps 字符串数组

允许绕过拉取请求要求的应用程序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

资源未找到

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

请求示例

删除/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

资源未找到

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

请求示例

获取/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

资源未找到

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

请求示例

发布/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 应用设置,则它们将需要来自该应用,以便分支在将来合并。使用 checks 而不是 contexts 以获得更细粒度的控制。

checks 对象数组

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

名称,类型,描述
context 字符串 必需

所需检查的名称

app_id 整数

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

“更新状态检查保护”的 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

无内容

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

请求示例

delete/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

资源未找到

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

请求示例

get/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

验证失败,或端点已被垃圾邮件攻击。

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

请求示例

post/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

验证失败,或端点已被垃圾邮件攻击。

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

请求示例

put/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

验证失败,或端点已被垃圾邮件攻击。

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

请求示例

delete/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

资源未找到

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

请求示例

get/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

无内容

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

请求示例

delete/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

资源未找到

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

请求示例

get/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 应用。 使用应用名称的简化版本。 注意:用户、应用和团队的总列表限制为 100 个项目。

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

状态码描述
200

OK

422

验证失败,或端点已被垃圾邮件攻击。

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

请求示例

post/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 应用。 使用应用名称的简化版本。 注意:用户、应用和团队的总列表限制为 100 个项目。

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

状态码描述
200

OK

422

验证失败,或端点已被垃圾邮件攻击。

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

请求示例

put/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 应用。 使用应用名称的简化版本。 注意:用户、应用和团队的总列表限制为 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 } ]