受保护分支的 REST API 端点
使用 REST API 管理受保护分支。
获取分支保护
受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共仓库中可用,在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库中可用。有关更多信息,请参阅 GitHub 帮助文档中的 GitHub 产品。
用于“获取分支保护”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- "管理" 仓库权限(读取)
获取分支保护参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
获取分支保护的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
获取分支保护的代码示例
请求示例
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 产品。
保护分支需要对仓库具有管理员或所有者权限。
注意:传递新的users
和teams
数组将替换它们以前的值。
注意:用户、应用程序和团队的总列表限制为 100 个项目。
更新分支保护的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
更新分支保护参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
required_status_checks 对象或空值 必需要求状态检查在合并之前通过。设置为 | |||||||||||||||||
|
名称,类型,描述 | |||
---|---|---|---|
strict 布尔值 必需要求分支在合并之前是最新的。 | |||
contexts 字符串数组 必需已弃用:要合并到此分支的所需状态检查列表。如果这些检查中的任何一个最近由特定 GitHub 应用设置,则它们将需要来自该应用,以便分支在将来合并。使用 | |||
checks 对象数组 要合并到此分支的所需状态检查列表。 | |||
|
名称,类型,描述 |
---|
context 字符串 必需所需检查的名称 |
app_id 整数 必须提供此检查的 GitHub 应用的 ID。省略此字段以自动选择最近提供此检查的 GitHub 应用,或者如果它不是由 GitHub 应用设置,则选择任何应用。传递 -1 以明确允许任何应用设置状态。 |
enforce_admins
布尔值或空值 必需对管理员强制执行所有配置的限制。设置为 true
以对存储库管理员强制执行所需的状态检查。设置为 null
以禁用。
required_pull_request_reviews
对象或空值 必需在合并之前,要求拉取请求至少有一个批准的审查。设置为 null
以禁用。
required_pull_request_reviews
的属性
名称,类型,描述 | ||||
---|---|---|---|---|
dismissal_restrictions 对象 指定哪些用户、团队和应用可以驳回拉取请求审查。传递一个空的 | ||||
|
名称,类型,描述 |
---|
users 字符串数组 具有驳回访问权限的用户 |
teams 字符串数组 具有驳回访问权限的团队 |
apps 字符串数组 具有撤销访问权限的应用程序 |
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
对象 允许特定用户、团队或应用程序绕过拉取请求要求。
bypass_pull_request_allowances
的属性
名称,类型,描述 |
---|
users 字符串数组 允许绕过拉取请求要求的用户 |
teams 字符串数组 允许绕过拉取请求要求的团队 |
apps 字符串数组 允许绕过拉取请求要求的应用程序 |
restrictions
对象或 null 必需限制谁可以推送到受保护的分支。用户、应用程序和团队restrictions
仅适用于组织拥有的存储库。设置为null
以禁用。
restrictions
的属性
名称,类型,描述 |
---|
users 字符串数组 必需具有推送访问权限的用户 |
teams 字符串数组 必需具有推送访问权限的团队 |
apps 字符串数组 具有推送访问权限的应用程序 |
required_linear_history
布尔值 强制执行线性提交 Git 历史记录,这将阻止任何人将合并提交推送到分支。设置为true
以强制执行线性提交历史记录。设置为false
以禁用线性提交 Git 历史记录。在启用线性提交历史记录之前,您的存储库必须允许 squash 合并或 rebase 合并。默认值:false
。有关更多信息,请参阅 GitHub 帮助文档中的“要求线性提交历史记录”。
allow_force_pushes
布尔值或 null 允许任何具有仓库写入权限的人强制推送到受保护的分支。设置为true
允许强制推送。设置为false
或null
阻止强制推送。默认值: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 | 验证失败,或端点已被垃圾邮件攻击。 |
“更新分支保护”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“删除分支保护”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
204 | 无内容 |
403 | 禁止 |
“删除分支保护”代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“获取管理员分支保护”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | OK |
“获取管理员分支保护”代码示例
请求示例
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
响应
设置管理员分支保护
受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共仓库中可用,在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库中可用。有关更多信息,请参阅 GitHub 帮助文档中的 GitHub 产品。
添加管理员强制执行需要对存储库和分支保护具有管理员或所有者权限。
“设置管理员分支保护”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
“设置管理员分支保护”的参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“设置管理员分支保护”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | OK |
“设置管理员分支保护”代码示例
请求示例
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
响应
删除管理员分支保护
受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共仓库中可用,在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库中可用。有关更多信息,请参阅 GitHub 帮助文档中的 GitHub 产品。
删除管理员强制执行需要对存储库和分支保护具有管理员或所有者权限。
“删除管理员分支保护”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
“删除管理员分支保护”的参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“删除管理员分支保护”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
204 | 无内容 |
404 | 资源未找到 |
“删除管理员分支保护”代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“获取拉取请求审查保护”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
“获取拉取请求审查保护”的代码示例
请求示例
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 产品。
更新拉取请求审查强制执行需要对存储库和分支保护具有管理员或所有者权限,并且需要启用分支保护。
注意:传递新的users
和teams
数组将替换它们以前的值。
用于“更新拉取请求审查保护”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
“更新拉取请求审查保护”的参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 | ||||
---|---|---|---|---|
dismissal_restrictions 对象 指定哪些用户、团队和应用可以驳回拉取请求审查。传递一个空的 | ||||
|
名称,类型,描述 |
---|
users 字符串数组 具有驳回访问权限的用户 |
teams 字符串数组 具有驳回访问权限的团队 |
apps 字符串数组 具有撤销访问权限的应用程序 |
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
对象 允许特定用户、团队或应用程序绕过拉取请求要求。
bypass_pull_request_allowances
的属性
名称,类型,描述 |
---|
users 字符串数组 允许绕过拉取请求要求的用户 |
teams 字符串数组 允许绕过拉取请求要求的团队 |
apps 字符串数组 允许绕过拉取请求要求的应用程序 |
“更新拉取请求审查保护”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“更新拉取请求审查保护”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“删除拉取请求审查保护”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
204 | 无内容 |
404 | 资源未找到 |
“删除拉取请求审查保护”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“获取提交签名保护”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
“获取提交签名保护”的代码示例
请求示例
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
响应
创建提交签名保护
受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共仓库中可用,在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库中可用。有关更多信息,请参阅 GitHub 帮助文档中的 GitHub 产品。
当您以仓库管理员或所有者身份进行身份验证时,可以使用此端点要求在分支上签署提交。您必须启用分支保护才能要求签署提交。
“创建提交签名保护”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
“创建提交签名保护”的参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“创建提交签名保护”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
“创建提交签名保护”的代码示例
请求示例
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
响应
删除提交签名保护
受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共仓库中可用,在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库中可用。有关更多信息,请参阅 GitHub 帮助文档中的 GitHub 产品。
当您以管理员或所有者权限对存储库进行身份验证时,您可以使用此端点禁用分支上的强制签名提交。您必须启用分支保护才能强制签名提交。
“删除提交签名保护”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
“删除提交签名保护”的参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“删除提交签名保护”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
204 | 无内容 |
404 | 资源未找到 |
“删除提交签名保护”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“获取状态检查保护”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
“获取状态检查保护”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 | |||
---|---|---|---|
strict 布尔值 要求分支在合并之前是最新的。 | |||
contexts 字符串数组 已弃用:要合并到此分支的所需状态检查列表。如果这些检查中的任何一个最近由特定 GitHub 应用设置,则它们将需要来自该应用,以便分支在将来合并。使用 | |||
checks 对象数组 要合并到此分支的所需状态检查列表。 | |||
|
名称,类型,描述 |
---|
context 字符串 必需所需检查的名称 |
app_id 整数 必须提供此检查的 GitHub 应用的 ID。省略此字段以自动选择最近提供此检查的 GitHub 应用,或者如果它不是由 GitHub 应用设置,则选择任何应用。传递 -1 以明确允许任何应用设置状态。 |
“更新状态检查保护”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“更新状态检查保护”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“删除状态检查保护”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
204 | 无内容 |
“删除状态检查保护”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“获取所有状态检查上下文”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
“获取所有状态检查上下文”的代码示例
请求示例
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
响应
添加状态检查上下文
受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共仓库中可用,在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库中可用。有关更多信息,请参阅 GitHub 帮助文档中的 GitHub 产品。
针对“添加状态检查上下文”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
“添加状态检查上下文”的参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
contexts 字符串数组 必需状态检查的名称 |
“添加状态检查上下文”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
403 | 禁止 |
404 | 资源未找到 |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“添加状态检查上下文”的代码示例
请求示例
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"]}'
响应
设置状态检查上下文
受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共仓库中可用,在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库中可用。有关更多信息,请参阅 GitHub 帮助文档中的 GitHub 产品。
针对“设置状态检查上下文”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
“设置状态检查上下文”的参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
contexts 字符串数组 必需状态检查的名称 |
“设置状态检查上下文”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“设置状态检查上下文”的代码示例
请求示例
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"]}'
响应
删除状态检查上下文
受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共仓库中可用,在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库中可用。有关更多信息,请参阅 GitHub 帮助文档中的 GitHub 产品。
用于“删除状态检查上下文”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
“删除状态检查上下文”的参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
contexts 字符串数组 必需状态检查的名称 |
“删除状态检查上下文”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“删除状态检查上下文”的代码示例
请求示例
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"]}'
响应
获取访问限制
受保护分支在使用 GitHub Free 和 GitHub Free for organizations 的公共仓库中可用,在使用 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库中可用。有关更多信息,请参阅 GitHub 帮助文档中的 GitHub 产品。
列出谁有权访问此受保护分支。
注意:用户、应用程序和团队的restrictions
仅适用于组织拥有的存储库。
用于“获取访问限制”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- "管理" 仓库权限(读取)
“获取访问限制”的参数
名称,类型,描述 |
---|
accept 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“获取访问限制”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
“获取访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“删除访问限制”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
204 | 无内容 |
“删除访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
获取具有受保护分支访问权限的应用的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
获取具有受保护分支访问权限的应用的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
apps 字符串数组 必需具有对该分支的推送访问权限的 GitHub 应用。 使用应用名称的简化版本。 注意:用户、应用和团队的总列表限制为 100 个项目。 |
用于“添加应用访问限制”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
用于“添加应用访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
apps 字符串数组 必需具有对该分支的推送访问权限的 GitHub 应用。 使用应用名称的简化版本。 注意:用户、应用和团队的总列表限制为 100 个项目。 |
“设置应用访问限制”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“设置应用访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
apps 字符串数组 必需具有对该分支的推送访问权限的 GitHub 应用。 使用应用名称的简化版本。 注意:用户、应用和团队的总列表限制为 100 个项目。 |
“删除应用访问限制”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“删除应用访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“获取具有受保护分支访问权限的团队”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
“获取具有受保护分支访问权限的团队”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
teams 字符串数组 必需团队的 slug 值 |
“添加团队访问限制”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“添加团队访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
teams 字符串数组 必需团队的 slug 值 |
“设置团队访问限制”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“设置团队访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
teams 字符串数组 必需团队的 slug 值 |
“移除团队访问限制”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“移除团队访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
“获取具有受保护分支访问权限的用户”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
404 | 资源未找到 |
“获取具有受保护分支访问权限的用户”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
users 字符串数组 必需用户的用户名 |
“添加用户访问限制”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“添加用户访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
users 字符串数组 必需用户的用户名 |
“设置用户访问限制”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“设置用户访问限制”的代码示例
请求示例
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 字符串 建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需仓库的名称,不包括 |
branch 字符串 必需分支的名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
users 字符串数组 必需用户的用户名 |
“删除用户访问限制”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | OK |
422 | 验证失败,或端点已被垃圾邮件攻击。 |
“删除用户访问限制”的代码示例
请求示例
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 } ]