规则的 REST API 端点
使用 REST API 管理仓库的规则集。规则集控制用户如何与仓库中选定的分支和标签交互。
获取分支规则
返回应用于指定分支的所有活动规则。分支不需要存在;将返回应用于具有该名称的分支的规则。将返回所有适用的活动规则,无论它们是在哪个级别配置的(例如,仓库或组织)。规则集强制执行状态为“评估”或“禁用”的规则不会返回。
“获取分支规则”的细粒度访问令牌
此端点可与以下细粒度令牌类型配合使用:
细粒度令牌必须具有以下权限集
- “元数据”仓库权限(读取)
如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。
“获取分支规则”的参数
名称,类型,描述 |
---|
accept 字符串建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必填仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必填不包含 |
branch 字符串 必填分支名称。不能包含通配符。要在分支名称中使用通配符,请使用GraphQL API。 |
名称,类型,描述 |
---|
per_page 整数每页结果数(最大 100)。更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
page 整数要获取的结果的页码。更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
“获取分支规则”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | 成功 |
“获取分支规则”的代码示例
请求示例
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 字符串建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必填仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必填不包含 |
名称,类型,描述 |
---|
per_page 整数每页结果数(最大 100)。更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
page 整数要获取的结果的页码。更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
includes_parents 布尔值包含应用于此仓库的更高级别配置的规则集 默认值: |
targets 字符串用逗号分隔的规则目标列表,用于过滤。如果提供,则只返回应用于指定目标的规则集。例如, |
“获取所有仓库规则集”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | 成功 |
404 | 资源未找到 |
500 | 内部错误 |
“获取所有仓库规则集”的代码示例
请求示例
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": "超级酷炫的规则集", "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": "另一个规则集", "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 字符串建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必填仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必填不包含 |
名称,类型,描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name 字符串 必填规则集的名称。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
target 字符串规则集的目标 默认值: 可以是: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enforcement 字符串 必填规则集的强制执行级别。 可以是: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bypass_actors 对象数组可以绕过此规则集中的规则的参与者 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
名称,类型,描述 |
---|
actor_id 整数或 null可绕过规则集的actor ID。如果 |
actor_type 字符串 必填可绕过规则集的actor类型。 可以是以下之一: |
bypass_mode 字符串指定actor可以绕过规则集的时间。 默认值: 可以是以下之一: |
conditions
对象仓库规则集 ref 名称条件的参数
conditions
的属性
名称,类型,描述 | |||
---|---|---|---|
ref_name 对象 | |||
|
名称,类型,描述 |
---|
include 字符串数组要包含的 ref 名称或模式数组。必须匹配这些模式之一才能使条件通过。也接受 |
exclude 字符串数组要排除的 ref 名称或模式数组。如果任何这些模式匹配,则条件将不会通过。 |
rules
对象数组规则集中的规则数组。
可以是以下对象之一
名称,类型,描述 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
creation 对象 必填只允许具有绕过权限的用户创建匹配的 refs。 | |||||||||||||
|
名称,类型,描述 |
---|
type 字符串 必填值: |
update
对象 必填只允许具有绕过权限的用户更新匹配的 refs。
update
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
update_allows_fetch_and_merge 布尔值 必填分支可以从其上游仓库拉取更改 |
deletion
对象 必填只允许具有绕过权限的用户删除匹配的 refs。
deletion
的属性
名称,类型,描述 |
---|
type 字符串 必填值: |
required_linear_history
对象 必填防止将合并提交推送到匹配的 refs。
required_linear_history
的属性
名称,类型,描述 |
---|
type 字符串 必填值: |
merge_queue
对象 必填必须通过合并队列执行合并。
merge_queue
的属性
名称,类型,描述 | ||||||||
---|---|---|---|---|---|---|---|---|
type 字符串 必填值: | ||||||||
parameters 对象 | ||||||||
|
名称,类型,描述 |
---|
check_response_timeout_minutes 整数 必填必需状态检查报告结论的最长时间。超过此时间后,未报告结论的检查将被认为已失败。 |
grouping_strategy 字符串 必填设置为ALLGREEN时,为组中每个PR创建的合并提交必须通过所有必需的检查才能合并。设置为HEADGREEN时,只有合并组头部的提交(即包含组中所有PR更改的提交)必须通过其必需的检查才能合并。 可以是以下之一: |
max_entries_to_build 整数 必填限制同时请求检查和工作流运行的排队拉取请求的数量。 |
max_entries_to_merge 整数 必填将一起合并的最大PR数量。 |
merge_method 字符串 必填从排队拉取请求合并更改时使用的合并方法。 可以是以下之一: |
min_entries_to_merge 整数 必填将一起合并的最小PR数量。 |
min_entries_to_merge_wait_minutes 整数 必填在将第一个PR添加到队列后,合并队列应等待的时间,以达到最小组大小。超过此时间后,将忽略最小组大小,并将合并较小的组。 |
required_deployments
对象 必填选择必须成功部署哪些环境才能将 refs 推送到与该规则匹配的 ref。
required_deployments
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
required_deployment_environments 字符串数组 必填在合并分支之前必须成功部署的环境。 |
required_signatures
对象 必填推送到匹配 refs 的提交必须具有已验证的签名。
required_signatures
的属性
名称,类型,描述 |
---|
type 字符串 必填值: |
pull_request
对象 必填要求所有提交都必须提交到非目标分支并通过拉取请求提交,然后才能合并。
pull_request
的属性
名称,类型,描述 | ||||||
---|---|---|---|---|---|---|
type 字符串 必填值: | ||||||
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
对象 必填选择在更新 ref 之前必须通过哪些状态检查。启用后,必须先将提交推送到另一个 ref,然后才能通过检查。
required_status_checks
的属性
名称,类型,描述 | ||||||||
---|---|---|---|---|---|---|---|---|
type 字符串 必填值: | ||||||||
parameters 对象 | ||||||||
|
名称,类型,描述 | |||
---|---|---|---|
do_not_enforce_on_create 布尔值如果检查会禁止创建,则允许创建仓库和分支。 | |||
required_status_checks 对象数组 必填必需的状态检查。 | |||
|
名称,类型,描述 |
---|
context 字符串 必填提交上必须存在的状态检查上下文名称。 |
integration_id 整数此状态检查必须源自的可选集成 ID。 |
strict_required_status_checks_policy
布尔值 必填目标分支为匹配分支的拉取请求是否必须使用最新代码进行测试。除非至少启用一个状态检查,否则此设置将不会生效。
non_fast_forward
对象 必填防止具有推送访问权限的用户强制推送 refs。
non_fast_forward
的属性
名称,类型,描述 |
---|
type 字符串 必填值: |
commit_message_pattern
对象 必填将用于commit_message_pattern规则的参数
commit_message_pattern
的属性
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
commit_author_email_pattern
对象 必填用于commit_author_email_pattern
规则的参数。
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
committer_email_pattern
对象 必填用于committer_email_pattern
规则的参数。
committer_email_pattern
的属性
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
branch_name_pattern
对象 必填用于branch_name_pattern
规则的参数。
branch_name_pattern
的属性
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
tag_name_pattern
对象 必填用于tag_name_pattern
规则的参数。
tag_name_pattern
的属性
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
file_path_restriction
对象 必填阻止将包含指定文件路径更改的提交推送到提交图。
file_path_restriction
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
restricted_file_paths 字符串数组 必填禁止推送到提交图的文件路径。 |
max_file_path_length
对象 必填阻止将包含超过指定字符限制的文件路径的提交推送到提交图。
max_file_path_length
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
max_file_path_length 整数 必填文件路径中允许的最大字符数。 |
file_extension_restriction
对象 必填阻止将包含具有指定文件扩展名的文件的提交推送到提交图。
file_extension_restriction
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
restricted_file_extensions 字符串数组 必填禁止推送到提交图的文件扩展名。 |
max_file_size
对象 必填阻止将超过指定文件大小限制的提交推送到提交。
max_file_size
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
max_file_size 整数 必填允许的最大文件大小(兆字节)。此限制不适用于 Git 大型文件存储 (Git LFS)。 |
workflows
对象 必填要求对目标分支进行的所有更改必须先通过指定的workflow才能合并。
workflows
的属性
名称,类型,描述 | |||||||||
---|---|---|---|---|---|---|---|---|---|
type 字符串 必填值: | |||||||||
parameters 对象 | |||||||||
|
名称,类型,描述 | |||||
---|---|---|---|---|---|
do_not_enforce_on_create 布尔值如果检查会禁止创建,则允许创建仓库和分支。 | |||||
workflows 对象数组 必填此规则必须通过的workflow。 | |||||
|
名称,类型,描述 |
---|
path 字符串 必填workflow文件的路径。 |
ref 字符串要使用的workflow文件的ref(分支或标签)。 |
repository_id 整数 必填定义workflow的代码库的ID。 |
sha 字符串要使用的workflow文件的提交SHA。 |
code_scanning
对象 必填选择哪些工具必须提供代码扫描结果才能更新引用。配置后,代码扫描必须启用并具有要更新的提交和引用的结果。
code_scanning
的属性
名称,类型,描述 | |||||||
---|---|---|---|---|---|---|---|
type 字符串 必填值: | |||||||
parameters 对象 | |||||||
|
名称,类型,描述 | ||||
---|---|---|---|---|
code_scanning_tools 对象数组 必填此规则必须通过的代码扫描工具。 | ||||
|
名称,类型,描述 |
---|
alerts_threshold 字符串 必填代码扫描结果引发警报阻止引用更新的严重级别。有关警报严重级别的更多信息,请参阅“关于代码扫描警报”。 可以是以下之一: |
security_alerts_threshold 字符串 必填代码扫描结果引发安全警报阻止引用更新的严重级别。有关安全严重级别的更多信息,请参阅“关于代码扫描警报”。 可以是以下之一: |
tool 字符串 必填代码扫描工具的名称。 |
“创建代码库规则集”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
201 | 已创建 |
404 | 资源未找到 |
500 | 内部错误 |
“创建代码库规则集”的代码示例
请求示例
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": "super cool ruleset", "target": "branch", "source_type": "Repository", "source": "monalisa/my-repo", "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" } } ], "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" }
获取代码库规则集
获取代码库的规则集。
注意:为防止泄露敏感信息,只有当进行 API 请求的用户对规则集具有写入权限时,才会返回bypass_actors
属性。
“获取代码库规则集”的细粒度访问令牌
此端点可与以下细粒度令牌类型配合使用:
细粒度令牌必须具有以下权限集
- “元数据”仓库权限(读取)
如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。
“获取代码库规则集”的参数
名称,类型,描述 |
---|
accept 字符串建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必填仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必填不包含 |
ruleset_id 整数 必填规则集的 ID。 |
名称,类型,描述 |
---|
includes_parents 布尔值包含应用于此仓库的更高级别配置的规则集 默认值: |
“获取代码库规则集”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | 成功 |
404 | 资源未找到 |
500 | 内部错误 |
“获取代码库规则集”的代码示例
请求示例
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": "super cool ruleset", "target": "branch", "source_type": "Repository", "source": "monalisa/my-repo", "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" } } ], "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 字符串建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必填仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必填不包含 |
ruleset_id 整数 必填规则集的 ID。 |
名称,类型,描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name 字符串规则集的名称。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
target 字符串规则集的目标 可以是: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enforcement 字符串规则集的强制执行级别。 可以是: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bypass_actors 对象数组可以绕过此规则集中的规则的参与者 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
名称,类型,描述 |
---|
actor_id 整数或 null可绕过规则集的actor ID。如果 |
actor_type 字符串 必填可绕过规则集的actor类型。 可以是以下之一: |
bypass_mode 字符串指定actor可以绕过规则集的时间。 默认值: 可以是以下之一: |
conditions
对象仓库规则集 ref 名称条件的参数
conditions
的属性
名称,类型,描述 | |||
---|---|---|---|
ref_name 对象 | |||
|
名称,类型,描述 |
---|
include 字符串数组要包含的 ref 名称或模式数组。必须匹配这些模式之一才能使条件通过。也接受 |
exclude 字符串数组要排除的 ref 名称或模式数组。如果任何这些模式匹配,则条件将不会通过。 |
rules
对象数组规则集中的规则数组。
可以是以下对象之一
名称,类型,描述 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
creation 对象 必填只允许具有绕过权限的用户创建匹配的 refs。 | |||||||||||||
|
名称,类型,描述 |
---|
type 字符串 必填值: |
update
对象 必填只允许具有绕过权限的用户更新匹配的 refs。
update
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
update_allows_fetch_and_merge 布尔值 必填分支可以从其上游仓库拉取更改 |
deletion
对象 必填只允许具有绕过权限的用户删除匹配的 refs。
deletion
的属性
名称,类型,描述 |
---|
type 字符串 必填值: |
required_linear_history
对象 必填防止将合并提交推送到匹配的 refs。
required_linear_history
的属性
名称,类型,描述 |
---|
type 字符串 必填值: |
merge_queue
对象 必填必须通过合并队列执行合并。
merge_queue
的属性
名称,类型,描述 | ||||||||
---|---|---|---|---|---|---|---|---|
type 字符串 必填值: | ||||||||
parameters 对象 | ||||||||
|
名称,类型,描述 |
---|
check_response_timeout_minutes 整数 必填必需状态检查报告结论的最长时间。超过此时间后,未报告结论的检查将被认为已失败。 |
grouping_strategy 字符串 必填设置为ALLGREEN时,为组中每个PR创建的合并提交必须通过所有必需的检查才能合并。设置为HEADGREEN时,只有合并组头部的提交(即包含组中所有PR更改的提交)必须通过其必需的检查才能合并。 可以是以下之一: |
max_entries_to_build 整数 必填限制同时请求检查和工作流运行的排队拉取请求的数量。 |
max_entries_to_merge 整数 必填将一起合并的最大PR数量。 |
merge_method 字符串 必填从排队拉取请求合并更改时使用的合并方法。 可以是以下之一: |
min_entries_to_merge 整数 必填将一起合并的最小PR数量。 |
min_entries_to_merge_wait_minutes 整数 必填在将第一个PR添加到队列后,合并队列应等待的时间,以达到最小组大小。超过此时间后,将忽略最小组大小,并将合并较小的组。 |
required_deployments
对象 必填选择必须成功部署哪些环境才能将 refs 推送到与该规则匹配的 ref。
required_deployments
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
required_deployment_environments 字符串数组 必填在合并分支之前必须成功部署的环境。 |
required_signatures
对象 必填推送到匹配 refs 的提交必须具有已验证的签名。
required_signatures
的属性
名称,类型,描述 |
---|
type 字符串 必填值: |
pull_request
对象 必填要求所有提交都必须提交到非目标分支并通过拉取请求提交,然后才能合并。
pull_request
的属性
名称,类型,描述 | ||||||
---|---|---|---|---|---|---|
type 字符串 必填值: | ||||||
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
对象 必填选择在更新 ref 之前必须通过哪些状态检查。启用后,必须先将提交推送到另一个 ref,然后才能通过检查。
required_status_checks
的属性
名称,类型,描述 | ||||||||
---|---|---|---|---|---|---|---|---|
type 字符串 必填值: | ||||||||
parameters 对象 | ||||||||
|
名称,类型,描述 | |||
---|---|---|---|
do_not_enforce_on_create 布尔值如果检查会禁止创建,则允许创建仓库和分支。 | |||
required_status_checks 对象数组 必填必需的状态检查。 | |||
|
名称,类型,描述 |
---|
context 字符串 必填提交上必须存在的状态检查上下文名称。 |
integration_id 整数此状态检查必须源自的可选集成 ID。 |
strict_required_status_checks_policy
布尔值 必填目标分支为匹配分支的拉取请求是否必须使用最新代码进行测试。除非至少启用一个状态检查,否则此设置将不会生效。
non_fast_forward
对象 必填防止具有推送访问权限的用户强制推送 refs。
non_fast_forward
的属性
名称,类型,描述 |
---|
type 字符串 必填值: |
commit_message_pattern
对象 必填将用于commit_message_pattern规则的参数
commit_message_pattern
的属性
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
commit_author_email_pattern
对象 必填用于commit_author_email_pattern
规则的参数。
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
committer_email_pattern
对象 必填用于committer_email_pattern
规则的参数。
committer_email_pattern
的属性
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
branch_name_pattern
对象 必填用于branch_name_pattern
规则的参数。
branch_name_pattern
的属性
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
tag_name_pattern
对象 必填用于tag_name_pattern
规则的参数。
tag_name_pattern
的属性
名称,类型,描述 | |||||
---|---|---|---|---|---|
type 字符串 必填值: | |||||
parameters 对象 | |||||
|
名称,类型,描述 |
---|
name 字符串此规则将如何显示给用户。 |
negate 布尔值如果为真,则模式匹配时规则将失败。 |
operator 字符串 必填用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必填要匹配的模式。 |
file_path_restriction
对象 必填阻止将包含指定文件路径更改的提交推送到提交图。
file_path_restriction
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
restricted_file_paths 字符串数组 必填禁止推送到提交图的文件路径。 |
max_file_path_length
对象 必填阻止将包含超过指定字符限制的文件路径的提交推送到提交图。
max_file_path_length
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
max_file_path_length 整数 必填文件路径中允许的最大字符数。 |
file_extension_restriction
对象 必填阻止将包含具有指定文件扩展名的文件的提交推送到提交图。
file_extension_restriction
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
restricted_file_extensions 字符串数组 必填禁止推送到提交图的文件扩展名。 |
max_file_size
对象 必填阻止将超过指定文件大小限制的提交推送到提交。
max_file_size
的属性
名称,类型,描述 | ||
---|---|---|
type 字符串 必填值: | ||
parameters 对象 | ||
|
名称,类型,描述 |
---|
max_file_size 整数 必填允许的最大文件大小(兆字节)。此限制不适用于 Git 大型文件存储 (Git LFS)。 |
workflows
对象 必填要求对目标分支进行的所有更改必须先通过指定的workflow才能合并。
workflows
的属性
名称,类型,描述 | |||||||||
---|---|---|---|---|---|---|---|---|---|
type 字符串 必填值: | |||||||||
parameters 对象 | |||||||||
|
名称,类型,描述 | |||||
---|---|---|---|---|---|
do_not_enforce_on_create 布尔值如果检查会禁止创建,则允许创建仓库和分支。 | |||||
workflows 对象数组 必填此规则必须通过的workflow。 | |||||
|
名称,类型,描述 |
---|
path 字符串 必填workflow文件的路径。 |
ref 字符串要使用的workflow文件的ref(分支或标签)。 |
repository_id 整数 必填定义workflow的代码库的ID。 |
sha 字符串要使用的workflow文件的提交SHA。 |
code_scanning
对象 必填选择哪些工具必须提供代码扫描结果才能更新引用。配置后,代码扫描必须启用并具有要更新的提交和引用的结果。
code_scanning
的属性
名称,类型,描述 | |||||||
---|---|---|---|---|---|---|---|
type 字符串 必填值: | |||||||
parameters 对象 | |||||||
|
名称,类型,描述 | ||||
---|---|---|---|---|
code_scanning_tools 对象数组 必填此规则必须通过的代码扫描工具。 | ||||
|
名称,类型,描述 |
---|
alerts_threshold 字符串 必填代码扫描结果引发警报阻止引用更新的严重级别。有关警报严重级别的更多信息,请参阅“关于代码扫描警报”。 可以是以下之一: |
security_alerts_threshold 字符串 必填代码扫描结果引发安全警报阻止引用更新的严重级别。有关安全严重级别的更多信息,请参阅“关于代码扫描警报”。 可以是以下之一: |
tool 字符串 必填代码扫描工具的名称。 |
“更新代码库规则集”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | 成功 |
404 | 资源未找到 |
500 | 内部错误 |
“更新代码库规则集”的代码示例
请求示例
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":"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"}}]}'
响应
状态:200
{ "id": 42, "name": "super cool ruleset", "target": "branch", "source_type": "Repository", "source": "monalisa/my-repo", "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" } } ], "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 字符串建议设置为 |
名称,类型,描述 |
---|
owner 字符串 必填仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必填不包含 |
ruleset_id 整数 必填规则集的 ID。 |
“删除代码库规则集”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
204 | 无内容 |
404 | 资源未找到 |
500 | 内部错误 |
“删除代码库规则集”的代码示例
请求示例
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