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

用于规则的 REST API 端点

使用 REST API 管理仓库的规则集。规则集控制人们如何与仓库中的选定分支和标签进行交互。

获取分支的规则

返回应用于指定分支的所有活动规则。分支不需要存在;将返回应用于具有该名称的分支的规则。将返回所有适用的活动规则,无论它们是在哪个级别配置的(例如,仓库或组织)。具有“评估”或“禁用”执行状态的规则集中的规则不会返回。

用于“获取分支的规则”的细粒度访问令牌

此端点与以下细粒度令牌类型一起使用

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

  • “元数据”仓库权限(读取)

如果只请求公共资源,则无需身份验证或上述权限即可使用此端点。

“获取分支规则”的参数

标头
名称、类型、描述
accept string

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

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含.git扩展名。名称不区分大小写。

branch string 必需

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

查询参数
名称、类型、描述
per_page integer

每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 30

page integer

要获取的结果的页码。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 1

“获取分支规则”的 HTTP 响应状态代码

状态代码描述
200

OK

“获取分支规则”的代码示例

请求示例

get/repos/{owner}/{repo}/rules/branches/{branch}
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/rules/branches/BRANCH

响应

状态:200
[ { "type": "commit_message_pattern", "ruleset_source_type": "Repository", "ruleset_source": "monalisa/my-repo", "ruleset_id": 42, "parameters": { "operator": "starts_with", "pattern": "issue" } }, { "type": "commit_author_email_pattern", "ruleset_source_type": "Organization", "ruleset_source": "my-org", "ruleset_id": 73, "parameters": { "operator": "contains", "pattern": "github" } } ]

获取所有仓库规则集

获取仓库的所有规则集。

用于“获取所有仓库规则集”的细粒度访问令牌

此端点与以下细粒度令牌类型一起使用

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

  • “元数据”仓库权限(读取)

如果只请求公共资源,则无需身份验证或上述权限即可使用此端点。

用于“获取所有仓库规则集”的参数

标头
名称、类型、描述
accept string

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

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含.git扩展名。名称不区分大小写。

查询参数
名称、类型、描述
per_page integer

每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 30

page integer

要获取的结果的页码。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 1

includes_parents 布尔值

包含应用于此仓库的更高级别配置的规则集

默认: true

用于“获取所有仓库规则集”的 HTTP 响应状态码

状态代码描述
200

OK

404

资源未找到

500

内部错误

用于“获取所有仓库规则集”的代码示例

请求示例

get/repos/{owner}/{repo}/rulesets
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/rulesets

响应

状态:200
[ { "id": 42, "name": "super cool ruleset", "source_type": "Repository", "source": "monalisa/my-repo", "enforcement": "enabled", "node_id": "RRS_lACkVXNlcgQB", "_links": { "self": { "href": "https://api.github.com/repos/monalisa/my-repo/rulesets/42" }, "html": { "href": "https://github.com/monalisa/my-repo/rules/42" } }, "created_at": "2023-07-15T08:43:03Z", "updated_at": "2023-08-23T16:29:47Z" }, { "id": 314, "name": "Another ruleset", "source_type": "Repository", "source": "monalisa/my-repo", "enforcement": "enabled", "node_id": "RRS_lACkVXNlcgQQ", "_links": { "self": { "href": "https://api.github.com/repos/monalisa/my-repo/rulesets/314" }, "html": { "href": "https://github.com/monalisa/my-repo/rules/314" } }, "created_at": "2023-08-15T08:43:03Z", "updated_at": "2023-09-23T16:29:47Z" } ]

创建仓库规则集

为仓库创建规则集。

用于“创建仓库规则集”的细粒度访问令牌

此端点与以下细粒度令牌类型一起使用

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

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

创建仓库规则集的参数

标头
名称、类型、描述
accept string

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

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含.git扩展名。名称不区分大小写。

主体参数
名称、类型、描述
name 字符串 必需

规则集的名称。

target 字符串

规则集的目标

注意: push 目标处于测试阶段,可能会发生变化。

可以是以下之一:: branch, tag, push

enforcement 字符串 必需

规则集的执行级别。evaluate 允许管理员在强制执行规则之前测试规则。管理员可以在规则洞察页面查看洞察(evaluate 仅适用于 GitHub Enterprise)。

可以是以下之一:: disabled, active, evaluate

bypass_actors 对象数组

可以绕过此规则集中的规则的参与者

名称、类型、描述
actor_id 整数或空

可以绕过规则集的参与者的 ID。如果 actor_typeOrganizationAdmin,则应为 1。如果 actor_typeDeployKey,则应为空。OrganizationAdmin 不适用于个人仓库。

actor_type 字符串 必需

可以绕过规则集的参与者类型。

可以是以下之一:: Integration, OrganizationAdmin, RepositoryRole, Team, DeployKey

bypass_mode 字符串 必需

指定参与者何时可以绕过规则集。pull_request 表示参与者只能绕过拉取请求上的规则。pull_request 不适用于 DeployKey 参与者类型。

可以是以下之一:: always, pull_request

conditions 对象

仓库规则集引用名称条件的参数

名称、类型、描述
ref_name 对象
名称、类型、描述
include 字符串数组

要包含的引用名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 ~DEFAULT_BRANCH 以包含默认分支或 ~ALL 以包含所有分支。

exclude 字符串数组

要排除的引用名称或模式数组。如果这些模式中的任何一个匹配,则条件将不会通过。

rules 对象数组

规则集中的规则数组。

名称、类型、描述
creation 对象 必需

只允许具有绕过权限的用户创建匹配的引用。

名称、类型、描述
type 字符串 必需

: creation

update 对象 必需

只允许具有绕过权限的用户更新匹配的引用。

名称、类型、描述
type 字符串 必需

: update

parameters 对象
名称、类型、描述
update_allows_fetch_and_merge 布尔值 必需

分支可以从其上游仓库拉取更改

deletion 对象 必需

只允许具有绕过权限的用户删除匹配的引用。

名称、类型、描述
type 字符串 必需

: deletion

required_linear_history 对象 必需

防止将合并提交推送到匹配的引用。

名称、类型、描述
type 字符串 必需

: required_linear_history

required_deployments 对象 必需

选择哪些环境必须成功部署到才能将引用推送到与该规则匹配的引用。

名称、类型、描述
type 字符串 必需

: required_deployments

parameters 对象
名称、类型、描述
required_deployment_environments 字符串数组 必需

在分支可以合并之前,必须成功部署到这些环境。

required_signatures 对象 必需

推送到匹配的引用中的提交必须具有经过验证的签名。

名称、类型、描述
type 字符串 必需

: required_signatures

pull_request 对象 必需

要求所有提交都必须在非目标分支上进行,并通过拉取请求提交,然后才能合并。

名称、类型、描述
type 字符串 必需

: pull_request

parameters 对象
名称、类型、描述
dismiss_stale_reviews_on_push 布尔值 必需

推送新的、可审查的提交将取消先前拉取请求审查批准。

require_code_owner_review 布尔值 必需

要求在修改具有指定代码所有者的文件的拉取请求中进行批准审查。

require_last_push_approval 布尔值 必需

最近的可审查推送是否必须由推送者以外的人批准。

required_approving_review_count 整数 必需

拉取请求可以合并之前所需的批准审查数量。

required_review_thread_resolution 布尔值 必需

在拉取请求可以合并之前,必须解决代码上的所有对话。

required_status_checks 对象 必需

选择在更新引用之前必须通过哪些状态检查。启用后,提交必须首先推送到另一个引用,在那里检查通过。

名称、类型、描述
type 字符串 必需

: required_status_checks

parameters 对象
名称、类型、描述
required_status_checks 对象数组 必填

必需的状态检查。

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

提交中必须存在的状态检查上下文名称。

integration_id 整数

此状态检查必须来自的可选集成 ID。

strict_required_status_checks_policy 布尔值 必填

是否必须使用最新代码测试针对匹配分支的拉取请求。除非至少启用一个状态检查,否则此设置将不会生效。

non_fast_forward 对象 必填

阻止具有推送访问权限的用户强制推送至 refs。

名称、类型、描述
type 字符串 必需

: non_fast_forward

commit_message_pattern 对象 必填

用于 commit_message_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: commit_message_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

commit_author_email_pattern 对象 必需

用于 commit_author_email_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: commit_author_email_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

committer_email_pattern 对象 必需

用于 committer_email_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: committer_email_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

branch_name_pattern 对象 必需

用于 branch_name_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: branch_name_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

tag_name_pattern 对象 必需

用于 tag_name_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: tag_name_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

file_path_restriction 对象 必需

注意:file_path_restriction 处于测试阶段,可能会发生变化。

阻止包含指定文件路径更改的提交推送到提交图。

名称、类型、描述
type 字符串 必需

: file_path_restriction

parameters 对象
名称、类型、描述
restricted_file_paths 字符串数组 必需

禁止推送到提交图的文件路径。

max_file_path_length 对象 必需

注意:max_file_path_length 处于测试阶段,可能会发生变化。

阻止包含超过指定字符限制的文件路径的提交推送到提交图。

名称、类型、描述
type 字符串 必需

: max_file_path_length

parameters 对象
名称、类型、描述
max_file_path_length 整数 必需

文件路径允许的最大字符数

file_extension_restriction 对象 必需

注意:file_extension_restriction 处于测试阶段,可能会发生变化。

阻止包含具有指定文件扩展名的文件的提交推送到提交图。

名称、类型、描述
type 字符串 必需

: file_extension_restriction

parameters 对象
名称、类型、描述
restricted_file_extensions 字符串数组 必需

禁止推送到提交图的文件扩展名。

max_file_size 对象 必需

注意:max_file_size 处于测试阶段,可能会发生变化。

阻止超过指定文件大小限制的提交推送到提交。

名称、类型、描述
type 字符串 必需

: max_file_size

parameters 对象
名称、类型、描述
max_file_size 整数 必需

允许的最大文件大小(以兆字节为单位)。此限制不适用于 Git 大型文件存储 (Git LFS)。

workflows 对象 必需

要求对目标分支进行的所有更改都必须通过指定的流程才能合并。

名称、类型、描述
type 字符串 必需

: workflows

parameters 对象
名称、类型、描述
workflows 对象数组 必需

此规则要通过,必须通过的流程。

名称、类型、描述
path 字符串 必需

流程文件路径

ref 字符串

要使用的流程文件的 ref(分支或标签)

repository_id 整数 必需

定义流程的存储库的 ID

sha 字符串

要使用的流程文件的提交 SHA

code_scanning 对象 必需

选择哪些工具必须提供代码扫描结果才能更新引用。配置后,代码扫描必须启用,并且必须针对提交和要更新的引用提供结果。

名称、类型、描述
type 字符串 必需

: code_scanning

parameters 对象
名称、类型、描述
code_scanning_tools 对象数组 必需

此规则要通过,必须提供代码扫描结果的工具。

名称、类型、描述
alerts_threshold 字符串 必需

代码扫描结果中触发警报的严重级别,该级别会阻止引用更新。有关警报严重级别的更多信息,请参阅“关于代码扫描警报”。

可以是以下之一: none, errors, errors_and_warnings, all

security_alerts_threshold string 必填

代码扫描结果中触发安全警报的严重级别,该级别会阻止引用更新。有关安全严重级别的更多信息,请参阅“关于代码扫描警报”。

可以是以下之一: none, critical, high_or_higher, medium_or_higher, all

tool string 必填

代码扫描工具的名称

“创建仓库规则集”的 HTTP 响应状态码

状态代码描述
201

已创建

404

资源未找到

500

内部错误

“创建仓库规则集”的代码示例

请求示例

post/repos/{owner}/{repo}/rulesets
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/rulesets \ -d '{"name":"super cool ruleset","target":"branch","enforcement":"active","bypass_actors":[{"actor_id":234,"actor_type":"Team","bypass_mode":"always"}],"conditions":{"ref_name":{"include":["refs/heads/main","refs/heads/master"],"exclude":["refs/heads/dev*"]}},"rules":[{"type":"commit_author_email_pattern","parameters":{"operator":"contains","pattern":"github"}}]}'

响应

状态:201
{ "id": 42, "name": "超级酷的规则集", "target": "分支", "source_type": "仓库", "source": "monalisa/my-repo", "enforcement": "激活", "bypass_actors": [ { "actor_id": 234, "actor_type": "团队", "bypass_mode": "始终" } ], "conditions": { "ref_name": { "include": [ "refs/heads/main", "refs/heads/master" ], "exclude": [ "refs/heads/dev*" ] } }, "rules": [ { "type": "提交者电子邮件模式", "parameters": { "operator": "包含", "pattern": "github" } } ], "node_id": "RRS_lACkVXNlcgQB", "_links": { "self": { "href": "https://api.github.com/repos/monalisa/my-repo/rulesets/42" }, "html": { "href": "https://github.com/monalisa/my-repo/rules/42" } }, "created_at": "2023-07-15T08:43:03Z", "updated_at": "2023-08-23T16:29:47Z" }

获取仓库规则集

获取仓库的规则集。

获取仓库规则集的细粒度访问令牌

此端点与以下细粒度令牌类型一起使用

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

  • “元数据”仓库权限(读取)

如果只请求公共资源,则无需身份验证或上述权限即可使用此端点。

获取仓库规则集的参数

标头
名称、类型、描述
accept string

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

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含.git扩展名。名称不区分大小写。

ruleset_id 整数 必需

规则集的 ID。

查询参数
名称、类型、描述
includes_parents 布尔值

包含应用于此仓库的更高级别配置的规则集

默认: true

获取仓库规则集的 HTTP 响应状态码

状态代码描述
200

OK

404

资源未找到

500

内部错误

获取仓库规则集的代码示例

请求示例

获取/repos/{owner}/{repo}/rulesets/{ruleset_id}
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/rulesets/RULESET_ID

响应

状态:200
{ "id": 42, "name": "超级酷的规则集", "target": "分支", "source_type": "仓库", "source": "monalisa/my-repo", "enforcement": "激活", "bypass_actors": [ { "actor_id": 234, "actor_type": "团队", "bypass_mode": "始终" } ], "conditions": { "ref_name": { "include": [ "refs/heads/main", "refs/heads/master" ], "exclude": [ "refs/heads/dev*" ] } }, "rules": [ { "type": "提交者电子邮件模式", "parameters": { "operator": "包含", "pattern": "github" } } ], "node_id": "RRS_lACkVXNlcgQB", "_links": { "self": { "href": "https://api.github.com/repos/monalisa/my-repo/rulesets/42" }, "html": { "href": "https://github.com/monalisa/my-repo/rules/42" } }, "created_at": "2023-07-15T08:43:03Z", "updated_at": "2023-08-23T16:29:47Z" }

更新仓库规则集

更新仓库的规则集。

更新仓库规则集的细粒度访问令牌

此端点与以下细粒度令牌类型一起使用

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

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

更新仓库规则集的参数

标头
名称、类型、描述
accept string

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

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含.git扩展名。名称不区分大小写。

ruleset_id 整数 必需

规则集的 ID。

主体参数
名称、类型、描述
name 字符串

规则集的名称。

target 字符串

规则集的目标

注意: push 目标处于测试阶段,可能会发生变化。

可以是以下之一:: branch, tag, push

enforcement 字符串

规则集的执行级别。evaluate 允许管理员在强制执行规则之前测试规则。管理员可以在规则洞察页面查看洞察(evaluate 仅适用于 GitHub Enterprise)。

可以是以下之一:: disabled, active, evaluate

bypass_actors 对象数组

可以绕过此规则集中的规则的参与者

名称、类型、描述
actor_id 整数或空

可以绕过规则集的参与者的 ID。如果 actor_typeOrganizationAdmin,则应为 1。如果 actor_typeDeployKey,则应为空。OrganizationAdmin 不适用于个人仓库。

actor_type 字符串 必需

可以绕过规则集的参与者类型。

可以是以下之一:: Integration, OrganizationAdmin, RepositoryRole, Team, DeployKey

bypass_mode 字符串 必需

指定参与者何时可以绕过规则集。pull_request 表示参与者只能绕过拉取请求上的规则。pull_request 不适用于 DeployKey 参与者类型。

可以是以下之一:: always, pull_request

conditions 对象

仓库规则集引用名称条件的参数

名称、类型、描述
ref_name 对象
名称、类型、描述
include 字符串数组

要包含的引用名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 ~DEFAULT_BRANCH 以包含默认分支或 ~ALL 以包含所有分支。

exclude 字符串数组

要排除的引用名称或模式数组。如果这些模式中的任何一个匹配,则条件将不会通过。

rules 对象数组

规则集中的规则数组。

名称、类型、描述
creation 对象 必需

只允许具有绕过权限的用户创建匹配的引用。

名称、类型、描述
type 字符串 必需

: creation

update 对象 必需

只允许具有绕过权限的用户更新匹配的引用。

名称、类型、描述
type 字符串 必需

: update

parameters 对象
名称、类型、描述
update_allows_fetch_and_merge 布尔值 必需

分支可以从其上游仓库拉取更改

deletion 对象 必需

只允许具有绕过权限的用户删除匹配的引用。

名称、类型、描述
type 字符串 必需

: deletion

required_linear_history 对象 必需

防止将合并提交推送到匹配的引用。

名称、类型、描述
type 字符串 必需

: required_linear_history

required_deployments 对象 必需

选择哪些环境必须成功部署到才能将引用推送到与该规则匹配的引用。

名称、类型、描述
type 字符串 必需

: required_deployments

parameters 对象
名称、类型、描述
required_deployment_environments 字符串数组 必需

在分支可以合并之前,必须成功部署到这些环境。

required_signatures 对象 必需

推送到匹配的引用中的提交必须具有经过验证的签名。

名称、类型、描述
type 字符串 必需

: required_signatures

pull_request 对象 必需

要求所有提交都必须在非目标分支上进行,并通过拉取请求提交,然后才能合并。

名称、类型、描述
type 字符串 必需

: pull_request

parameters 对象
名称、类型、描述
dismiss_stale_reviews_on_push 布尔值 必需

推送新的、可审查的提交将取消先前拉取请求审查批准。

require_code_owner_review 布尔值 必需

要求在修改具有指定代码所有者的文件的拉取请求中进行批准审查。

require_last_push_approval 布尔值 必需

最近的可审查推送是否必须由推送者以外的人批准。

required_approving_review_count 整数 必需

拉取请求可以合并之前所需的批准审查数量。

required_review_thread_resolution 布尔值 必需

在拉取请求可以合并之前,必须解决代码上的所有对话。

required_status_checks 对象 必需

选择在更新引用之前必须通过哪些状态检查。启用后,提交必须首先推送到另一个引用,在那里检查通过。

名称、类型、描述
type 字符串 必需

: required_status_checks

parameters 对象
名称、类型、描述
required_status_checks 对象数组 必填

必需的状态检查。

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

提交中必须存在的状态检查上下文名称。

integration_id 整数

此状态检查必须来自的可选集成 ID。

strict_required_status_checks_policy 布尔值 必填

是否必须使用最新代码测试针对匹配分支的拉取请求。除非至少启用一个状态检查,否则此设置将不会生效。

non_fast_forward 对象 必填

阻止具有推送访问权限的用户强制推送至 refs。

名称、类型、描述
type 字符串 必需

: non_fast_forward

commit_message_pattern 对象 必填

用于 commit_message_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: commit_message_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

commit_author_email_pattern 对象 必需

用于 commit_author_email_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: commit_author_email_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

committer_email_pattern 对象 必需

用于 committer_email_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: committer_email_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

branch_name_pattern 对象 必需

用于 branch_name_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: branch_name_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

tag_name_pattern 对象 必需

用于 tag_name_pattern 规则的参数

名称、类型、描述
type 字符串 必需

: tag_name_pattern

parameters 对象
名称、类型、描述
name 字符串

此规则将如何显示给用户。

negate 布尔值

如果为真,则如果模式匹配,则规则将失败。

operator 字符串 必填

用于匹配的操作符。

可以是以下之一: starts_with, ends_with, contains, regex

pattern 字符串 必填

要匹配的模式。

file_path_restriction 对象 必需

注意:file_path_restriction 处于测试阶段,可能会发生变化。

阻止包含指定文件路径更改的提交推送到提交图。

名称、类型、描述
type 字符串 必需

: file_path_restriction

parameters 对象
名称、类型、描述
restricted_file_paths 字符串数组 必需

禁止推送到提交图的文件路径。

max_file_path_length 对象 必需

注意:max_file_path_length 处于测试阶段,可能会发生变化。

阻止包含超过指定字符限制的文件路径的提交推送到提交图。

名称、类型、描述
type 字符串 必需

: max_file_path_length

parameters 对象
名称、类型、描述
max_file_path_length 整数 必需

文件路径允许的最大字符数

file_extension_restriction 对象 必需

注意:file_extension_restriction 处于测试阶段,可能会发生变化。

阻止包含具有指定文件扩展名的文件的提交推送到提交图。

名称、类型、描述
type 字符串 必需

: file_extension_restriction

parameters 对象
名称、类型、描述
restricted_file_extensions 字符串数组 必需

禁止推送到提交图的文件扩展名。

max_file_size 对象 必需

注意:max_file_size 处于测试阶段,可能会发生变化。

阻止超过指定文件大小限制的提交推送到提交。

名称、类型、描述
type 字符串 必需

: max_file_size

parameters 对象
名称、类型、描述
max_file_size 整数 必需

允许的最大文件大小(以兆字节为单位)。此限制不适用于 Git 大型文件存储 (Git LFS)。

workflows 对象 必需

要求对目标分支进行的所有更改都必须通过指定的流程才能合并。

名称、类型、描述
type 字符串 必需

: workflows

parameters 对象
名称、类型、描述
workflows 对象数组 必需

此规则要通过,必须通过的流程。

名称、类型、描述
path 字符串 必需

流程文件路径

ref 字符串

要使用的流程文件的 ref(分支或标签)

repository_id 整数 必需

定义流程的存储库的 ID

sha 字符串

要使用的流程文件的提交 SHA

code_scanning 对象 必需

选择哪些工具必须提供代码扫描结果才能更新引用。配置后,代码扫描必须启用,并且必须针对提交和要更新的引用提供结果。

名称、类型、描述
type 字符串 必需

: code_scanning

parameters 对象
名称、类型、描述
code_scanning_tools 对象数组 必需

此规则要通过,必须提供代码扫描结果的工具。

名称、类型、描述
alerts_threshold 字符串 必需

代码扫描结果中触发警报的严重级别,该级别会阻止引用更新。有关警报严重级别的更多信息,请参阅“关于代码扫描警报”。

可以是以下之一: none, errors, errors_and_warnings, all

security_alerts_threshold string 必填

代码扫描结果中触发安全警报的严重级别,该级别会阻止引用更新。有关安全严重级别的更多信息,请参阅“关于代码扫描警报”。

可以是以下之一: none, critical, high_or_higher, medium_or_higher, all

tool string 必填

代码扫描工具的名称

更新仓库规则集的 HTTP 响应状态码

状态代码描述
200

OK

404

资源未找到

500

内部错误

更新仓库规则集的代码示例

请求示例

更新/repos/{owner}/{repo}/rulesets/{ruleset_id}
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/rulesets/RULESET_ID \ -d '{"name":"超级酷的规则集","target":"分支","enforcement":"激活","bypass_actors":[{"actor_id":234,"actor_type":"团队","bypass_mode":"始终"}],"conditions":{"ref_name":{"include":["refs/heads/main","refs/heads/master"],"exclude":["refs/heads/dev*"]}},"rules":[{"type":"提交者电子邮件模式","parameters":{"operator":"包含","pattern":"github"}}]}'

响应

状态:200
{ "id": 42, "name": "超级酷的规则集", "target": "分支", "source_type": "仓库", "source": "monalisa/my-repo", "enforcement": "激活", "bypass_actors": [ { "actor_id": 234, "actor_type": "团队", "bypass_mode": "始终" } ], "conditions": { "ref_name": { "include": [ "refs/heads/main", "refs/heads/master" ], "exclude": [ "refs/heads/dev*" ] } }, "rules": [ { "type": "提交者电子邮件模式", "parameters": { "operator": "包含", "pattern": "github" } } ], "node_id": "RRS_lACkVXNlcgQB", "_links": { "self": { "href": "https://api.github.com/repos/monalisa/my-repo/rulesets/42" }, "html": { "href": "https://github.com/monalisa/my-repo/rules/42" } }, "created_at": "2023-07-15T08:43:03Z", "updated_at": "2023-08-23T16:29:47Z" }

删除仓库规则集

删除仓库的规则集。

用于“删除仓库规则集”的细粒度访问令牌

此端点与以下细粒度令牌类型一起使用

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

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

“删除仓库规则集”的参数

标头
名称、类型、描述
accept string

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

路径参数
名称、类型、描述
owner string 必需

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包含.git扩展名。名称不区分大小写。

ruleset_id 整数 必需

规则集的 ID。

“删除仓库规则集”的 HTTP 响应状态代码

状态代码描述
204

无内容

404

资源未找到

500

内部错误

“删除仓库规则集”的代码示例

请求示例

delete/repos/{owner}/{repo}/rulesets/{ruleset_id}
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/rulesets/RULESET_ID

响应

状态:204