用于规则的 REST API 端点
使用 REST API 管理组织的规则集。组织规则集控制人们如何在组织中的存储库中与选定的分支和标签进行交互。
获取所有组织存储库规则集
获取组织的所有存储库规则集。
用于“获取所有组织存储库规则集”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”组织权限(写入)
用于“获取所有组织存储库规则集”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
org string 必需组织名称。名称不区分大小写。 |
名称、类型、描述 |
---|
per_page integer 每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。 默认: |
page integer 要获取的结果页码。有关更多信息,请参阅“在 REST API 中使用分页”。 默认: |
用于“获取所有组织存储库规则集”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
200 | OK |
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/orgs/ORG/rulesets
响应
状态: 200
[ { "id": 21, "name": "super cool ruleset", "source_type": "Organization", "source": "my-org", "enforcement": "enabled", "node_id": "RRS_lACkVXNlcgQB", "_links": { "self": { "href": "https://api.github.com/orgs/my-org/rulesets/21" }, "html": { "href": "https://github.com/organizations/my-org/settings/rules/21" } }, "created_at": "2023-07-15T08:43:03Z", "updated_at": "2023-08-23T16:29:47Z" }, { "id": 432, "name": "Another ruleset", "source_type": "Organization", "source": "my-org", "enforcement": "enabled", "node_id": "RRS_lACkVXNlcgQQ", "_links": { "self": { "href": "https://api.github.com/orgs/my-org/rulesets/432" }, "html": { "href": "https://github.com/organizations/my-org/settings/rules/432" } }, "created_at": "2023-08-15T08:43:03Z", "updated_at": "2023-09-23T16:29:47Z" } ]
创建组织仓库规则集
为组织创建仓库规则集。
用于“创建组织仓库规则集”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”组织权限(写入)
用于“创建组织仓库规则集”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
org string 必需组织名称。名称不区分大小写。 |
名称、类型、描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name 字符串 必需规则集的名称。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
target 字符串 规则集的目标 注意: 可以是以下之一: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enforcement 字符串 必需规则集的执行级别。 可以是以下之一: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bypass_actors 对象数组 可以绕过此规则集中的规则的参与者 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
名称、类型、描述 |
---|
actor_id 整数或空值 可以绕过规则集的参与者的 ID。如果 |
actor_type 字符串 必需可以绕过规则集的参与者类型。 可以是以下之一: |
bypass_mode 字符串 必需指定参与者何时可以绕过规则集。 可以是以下之一: |
conditions
对象 组织规则集的条件。条件对象应包含 repository_name
和 ref_name
属性,或包含 repository_id
和 ref_name
属性。
可以是以下对象之一
名称、类型、描述 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
repository_name_and_ref_name 对象 必需通过名称和引用名称来定位仓库的条件 | |||||||||||||||||||
|
名称、类型、描述 | ||||
---|---|---|---|---|
ref_name 对象 | ||||
|
名称、类型、描述 |
---|
include 字符串数组 要包含的引用名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 |
exclude 字符串数组 要排除的引用名称或模式数组。如果任何这些模式匹配,则条件将不会通过。 |
repository_name
对象 必需repository_name
的属性
名称、类型、描述 |
---|
include 字符串数组 要包含的仓库名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 |
exclude 字符串数组 要排除的仓库名称或模式数组。如果任何模式匹配,则条件将不会通过。 |
protected boolean 是否阻止目标仓库的重命名。 |
repository_id_and_ref_name
object Required通过 ID 和 ref 名称来定位仓库的条件
repository_id_and_ref_name
的属性
名称、类型、描述 | |||
---|---|---|---|
ref_name 对象 | |||
|
名称、类型、描述 |
---|
include 字符串数组 要包含的引用名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 |
exclude 字符串数组 要排除的引用名称或模式数组。如果任何这些模式匹配,则条件将不会通过。 |
repository_id
object Requiredrepository_id
的属性
名称、类型、描述 |
---|
repository_ids array of integers 规则集适用的仓库 ID。必须匹配这些 ID 之一才能使条件通过。 |
repository_property_and_ref_name
object Required通过属性和 ref 名称来定位仓库的条件
repository_property_and_ref_name
的属性
名称、类型、描述 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ref_name 对象 | |||||||||||
|
名称、类型、描述 |
---|
include 字符串数组 要包含的引用名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 |
exclude 字符串数组 要排除的引用名称或模式数组。如果任何这些模式匹配,则条件将不会通过。 |
repository_property
object Requiredrepository_property
的属性
名称、类型、描述 | |||
---|---|---|---|
include array of objects 要包含的仓库属性和值。所有这些属性都必须匹配才能使条件通过。 | |||
|
名称、类型、描述 |
---|
name 字符串 必需要定位的仓库属性的名称 |
property_values array of strings Required要匹配的仓库属性的值 |
exclude
array of objects 要排除的仓库属性和值。如果任何属性匹配,则条件将不会通过。
exclude
的属性
名称、类型、描述 |
---|
name 字符串 必需要定位的仓库属性的名称 |
property_values array of strings Required要匹配的仓库属性的值 |
rules
array of objects 规则集中的规则数组。
可以是以下对象之一
名称、类型、描述 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
creation object Required只允许具有绕过权限的用户创建匹配的 ref。 | ||||||||||||
|
名称、类型、描述 |
---|
type string RequiredValue: |
update
对象 必需仅允许具有绕过权限的用户更新匹配的引用。
update
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
update_allows_fetch_and_merge 布尔值 必需分支可以从其上游存储库拉取更改 |
deletion
对象 必需仅允许具有绕过权限的用户删除匹配的引用。
deletion
的属性
名称、类型、描述 |
---|
type string Required值: |
required_linear_history
对象 必需防止将合并提交推送到匹配的引用。
required_linear_history
的属性
名称、类型、描述 |
---|
type string Required值: |
required_deployments
对象 必需选择必须成功部署到哪些环境才能将引用推送到与该规则匹配的引用。
required_deployments
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
required_deployment_environments 字符串数组 必需必须成功部署到哪些环境才能合并分支。 |
required_signatures
对象 必需推送到匹配引用的提交必须具有经过验证的签名。
required_signatures
的属性
名称、类型、描述 |
---|
type string Required值: |
pull_request
对象 必需要求所有提交都必须在非目标分支上进行,并通过拉取请求提交,然后才能合并。
pull_request
的属性
名称、类型、描述 | ||||||
---|---|---|---|---|---|---|
type string Required值: | ||||||
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 string Required值: | |||||||
parameters 对象 | |||||||
|
名称、类型、描述 | |||
---|---|---|---|
required_status_checks 对象数组 必需必需的状态检查。 | |||
|
名称、类型、描述 |
---|
context 字符串 必需提交中必须存在的状态检查上下文名称。 |
integration_id 整数 此状态检查必须来自的可选集成 ID。 |
strict_required_status_checks_policy
布尔值 必需是否必须使用最新代码测试针对匹配分支的拉取请求。除非至少启用一个状态检查,否则此设置不会生效。
non_fast_forward
对象 必需防止具有推送权限的用户强制推送至 ref。
non_fast_forward
的属性
名称、类型、描述 |
---|
type string Required值: |
commit_message_pattern
对象 必需用于 commit_message_pattern 规则的参数
commit_message_pattern
属性
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
commit_author_email_pattern
对象 必需用于 commit_author_email_pattern 规则的参数
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
committer_email_pattern
对象 必需用于 committer_email_pattern 规则的参数
committer_email_pattern
属性
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
branch_name_pattern
对象 必需用于 branch_name_pattern 规则的参数
branch_name_pattern
属性
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
tag_name_pattern
对象 必需用于 tag_name_pattern 规则的参数
tag_name_pattern
属性
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
file_path_restriction
对象 必需注意:file_path_restriction 处于测试阶段,可能会发生变化。
阻止包含对指定文件路径的更改的提交被推送到提交图。
file_path_restriction
属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
restricted_file_paths 字符串数组 必需禁止推送到提交图的文件路径。 |
max_file_path_length
对象 必需注意:max_file_path_length 处于测试阶段,可能会发生变化。
防止包含超过指定字符限制的文件路径的提交推送到提交图。
max_file_path_length
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
max_file_path_length 整数 必需文件路径中允许的最大字符数。 |
file_extension_restriction
对象 必需注意:file_extension_restriction 处于测试阶段,可能会发生变化。
防止包含指定文件扩展名的文件的提交推送到提交图。
file_extension_restriction
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
restricted_file_extensions 字符串数组 必需禁止推送到提交图的文件扩展名。 |
max_file_size
对象 必需注意:max_file_size 处于测试阶段,可能会发生变化。
防止超过指定文件大小限制的提交推送到提交。
max_file_size
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
max_file_size 整数 必需允许的最大文件大小(以兆字节为单位)。此限制不适用于 Git 大文件存储 (Git LFS)。 |
workflows
对象 必需要求对目标分支的所有更改都通过指定的 工作流程,才能合并。
workflows
的属性
名称、类型、描述 | ||||||||
---|---|---|---|---|---|---|---|---|
type string Required值: | ||||||||
parameters 对象 | ||||||||
|
名称、类型、描述 | |||||
---|---|---|---|---|---|
workflows 对象数组 必填必须通过的 Workflow,才能使此规则通过。 | |||||
|
名称、类型、描述 |
---|
path 字符串 必填Workflow 文件的路径 |
ref 字符串 要使用的 Workflow 文件的 ref(分支或标签) |
repository_id 整数 必填定义 Workflow 的存储库的 ID |
sha 字符串 要使用的 Workflow 文件的提交 SHA |
code_scanning
对象 必填选择必须提供代码扫描结果的工具,才能更新引用。配置后,代码扫描必须启用,并且必须具有对要更新的提交和引用的结果。
code_scanning
的属性
名称、类型、描述 | |||||||
---|---|---|---|---|---|---|---|
type string Required值: | |||||||
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/orgs/ORG/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*"]},"repository_name":{"include":["important_repository","another_important_repository"],"exclude":["unimportant_repository"],"protected":true}},"rules":[{"type":"commit_author_email_pattern","parameters":{"operator":"contains","pattern":"github"}}]}'
响应
状态:201
{ "id": 21, "name": "super cool ruleset", "target": "branch", "source_type": "Organization", "source": "my-org", "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*" ] }, "repository_name": { "include": [ "important_repository", "another_important_repository" ], "exclude": [ "unimportant_repository" ], "protected": true } }, "rules": [ { "type": "commit_author_email_pattern", "parameters": { "operator": "contains", "pattern": "github" } } ], "node_id": "RRS_lACkVXNlcgQB", "_links": { "self": { "href": "https://api.github.com/orgs/my-org/rulesets/21" }, "html": { "href": "https://github.com/organizations/my-org/settings/rules/21" } }, "created_at": "2023-08-15T08:43:03Z", "updated_at": "2023-09-23T16:29:47Z" }
获取组织库规则集
获取组织的库规则集。
“获取组织库规则集”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”组织权限(写入)
“获取组织库规则集”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
org string 必需组织名称。名称不区分大小写。 |
ruleset_id 整数 必需规则集的 ID。 |
“获取组织库规则集”的 HTTP 响应状态码
状态代码 | 描述 |
---|---|
200 | OK |
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/orgs/ORG/rulesets/RULESET_ID
响应
状态: 200
{ "id": 21, "name": "super cool ruleset", "target": "branch", "source_type": "Organization", "source": "my-org", "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*" ] }, "repository_name": { "include": [ "important_repository", "another_important_repository" ], "exclude": [ "unimportant_repository" ], "protected": true } }, "rules": [ { "type": "commit_author_email_pattern", "parameters": { "operator": "contains", "pattern": "github" } } ], "node_id": "RRS_lACkVXNlcgQB", "_links": { "self": { "href": "https://api.github.com/orgs/my-org/rulesets/21" }, "html": { "href": "https://github.com/organizations/my-org/settings/rules/21" } }, "created_at": "2023-08-15T08:43:03Z", "updated_at": "2023-09-23T16:29:47Z" }
更新组织库规则集
更新组织的规则集。
用于“更新组织仓库规则集”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”组织权限(写入)
“更新组织仓库规则集”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
org string 必需组织名称。名称不区分大小写。 |
ruleset_id 整数 必需规则集的 ID。 |
名称、类型、描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name 字符串 规则集的名称。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
target 字符串 规则集的目标 注意: 可以是以下之一: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enforcement 字符串 规则集的执行级别。 可以是以下之一: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bypass_actors 对象数组 可以绕过此规则集中的规则的参与者 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
名称、类型、描述 |
---|
actor_id 整数或空值 可以绕过规则集的参与者的 ID。如果 |
actor_type 字符串 必需可以绕过规则集的参与者类型。 可以是以下之一: |
bypass_mode 字符串 必需指定参与者何时可以绕过规则集。 可以是以下之一: |
conditions
对象 组织规则集的条件。条件对象应包含 repository_name
和 ref_name
属性,或包含 repository_id
和 ref_name
属性。
可以是以下对象之一
名称、类型、描述 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
repository_name_and_ref_name 对象 必需通过名称和引用名称来定位仓库的条件 | |||||||||||||||||||
|
名称、类型、描述 | ||||
---|---|---|---|---|
ref_name 对象 | ||||
|
名称、类型、描述 |
---|
include 字符串数组 要包含的引用名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 |
exclude 字符串数组 要排除的引用名称或模式数组。如果任何这些模式匹配,则条件将不会通过。 |
repository_name
对象 必需repository_name
的属性
名称、类型、描述 |
---|
include 字符串数组 要包含的仓库名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 |
exclude 字符串数组 要排除的仓库名称或模式数组。如果任何模式匹配,则条件将不会通过。 |
protected boolean 是否阻止目标仓库的重命名。 |
repository_id_and_ref_name
object Required通过 ID 和 ref 名称来定位仓库的条件
repository_id_and_ref_name
的属性
名称、类型、描述 | |||
---|---|---|---|
ref_name 对象 | |||
|
名称、类型、描述 |
---|
include 字符串数组 要包含的引用名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 |
exclude 字符串数组 要排除的引用名称或模式数组。如果任何这些模式匹配,则条件将不会通过。 |
repository_id
object Requiredrepository_id
的属性
名称、类型、描述 |
---|
repository_ids array of integers 规则集适用的仓库 ID。必须匹配这些 ID 之一才能使条件通过。 |
repository_property_and_ref_name
object Required通过属性和 ref 名称来定位仓库的条件
repository_property_and_ref_name
的属性
名称、类型、描述 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ref_name 对象 | |||||||||||
|
名称、类型、描述 |
---|
include 字符串数组 要包含的引用名称或模式数组。这些模式中必须有一个匹配才能使条件通过。还接受 |
exclude 字符串数组 要排除的引用名称或模式数组。如果任何这些模式匹配,则条件将不会通过。 |
repository_property
object Requiredrepository_property
的属性
名称、类型、描述 | |||
---|---|---|---|
include array of objects 要包含的仓库属性和值。所有这些属性都必须匹配才能使条件通过。 | |||
|
名称、类型、描述 |
---|
name 字符串 必需要定位的仓库属性的名称 |
property_values array of strings Required要匹配的仓库属性的值 |
exclude
array of objects 要排除的仓库属性和值。如果任何属性匹配,则条件将不会通过。
exclude
的属性
名称、类型、描述 |
---|
name 字符串 必需要定位的仓库属性的名称 |
property_values array of strings Required要匹配的仓库属性的值 |
rules
array of objects 规则集中的规则数组。
可以是以下对象之一
名称、类型、描述 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
creation object Required只允许具有绕过权限的用户创建匹配的 ref。 | ||||||||||||
|
名称、类型、描述 |
---|
type string RequiredValue: |
update
对象 必需仅允许具有绕过权限的用户更新匹配的引用。
update
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
update_allows_fetch_and_merge 布尔值 必需分支可以从其上游存储库拉取更改 |
deletion
对象 必需仅允许具有绕过权限的用户删除匹配的引用。
deletion
的属性
名称、类型、描述 |
---|
type string Required值: |
required_linear_history
对象 必需防止将合并提交推送到匹配的引用。
required_linear_history
的属性
名称、类型、描述 |
---|
type string Required值: |
required_deployments
对象 必需选择必须成功部署到哪些环境才能将引用推送到与该规则匹配的引用。
required_deployments
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
required_deployment_environments 字符串数组 必需必须成功部署到哪些环境才能合并分支。 |
required_signatures
对象 必需推送到匹配引用的提交必须具有经过验证的签名。
required_signatures
的属性
名称、类型、描述 |
---|
type string Required值: |
pull_request
对象 必需要求所有提交都必须在非目标分支上进行,并通过拉取请求提交,然后才能合并。
pull_request
的属性
名称、类型、描述 | ||||||
---|---|---|---|---|---|---|
type string Required值: | ||||||
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 string Required值: | |||||||
parameters 对象 | |||||||
|
名称、类型、描述 | |||
---|---|---|---|
required_status_checks 对象数组 必需必需的状态检查。 | |||
|
名称、类型、描述 |
---|
context 字符串 必需提交中必须存在的状态检查上下文名称。 |
integration_id 整数 此状态检查必须来自的可选集成 ID。 |
strict_required_status_checks_policy
布尔值 必需是否必须使用最新代码测试针对匹配分支的拉取请求。除非至少启用一个状态检查,否则此设置不会生效。
non_fast_forward
对象 必需防止具有推送权限的用户强制推送至 ref。
non_fast_forward
的属性
名称、类型、描述 |
---|
type string Required值: |
commit_message_pattern
对象 必需用于 commit_message_pattern 规则的参数
commit_message_pattern
属性
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
commit_author_email_pattern
对象 必需用于 commit_author_email_pattern 规则的参数
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
committer_email_pattern
对象 必需用于 committer_email_pattern 规则的参数
committer_email_pattern
属性
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
branch_name_pattern
对象 必需用于 branch_name_pattern 规则的参数
branch_name_pattern
属性
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
tag_name_pattern
对象 必需用于 tag_name_pattern 规则的参数
tag_name_pattern
属性
名称、类型、描述 | |||||
---|---|---|---|---|---|
type string Required值: | |||||
parameters 对象 | |||||
|
名称、类型、描述 |
---|
name 字符串 此规则将如何显示给用户。 |
negate 布尔值 如果为真,则如果模式匹配,则规则将失败。 |
operator 字符串 必需用于匹配的操作符。 可以是以下之一: |
pattern 字符串 必需要匹配的模式。 |
file_path_restriction
对象 必需注意:file_path_restriction 处于测试阶段,可能会发生变化。
阻止包含对指定文件路径的更改的提交被推送到提交图。
file_path_restriction
属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
restricted_file_paths 字符串数组 必需禁止推送到提交图的文件路径。 |
max_file_path_length
对象 必需注意:max_file_path_length 处于测试阶段,可能会发生变化。
防止包含超过指定字符限制的文件路径的提交推送到提交图。
max_file_path_length
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
max_file_path_length 整数 必需文件路径中允许的最大字符数。 |
file_extension_restriction
对象 必需注意:file_extension_restriction 处于测试阶段,可能会发生变化。
防止包含指定文件扩展名的文件的提交推送到提交图。
file_extension_restriction
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
restricted_file_extensions 字符串数组 必需禁止推送到提交图的文件扩展名。 |
max_file_size
对象 必需注意:max_file_size 处于测试阶段,可能会发生变化。
防止超过指定文件大小限制的提交推送到提交。
max_file_size
的属性
名称、类型、描述 | ||
---|---|---|
type string Required值: | ||
parameters 对象 | ||
|
名称、类型、描述 |
---|
max_file_size 整数 必需允许的最大文件大小(以兆字节为单位)。此限制不适用于 Git 大文件存储 (Git LFS)。 |
workflows
对象 必需要求对目标分支的所有更改都通过指定的 工作流程,才能合并。
workflows
的属性
名称、类型、描述 | ||||||||
---|---|---|---|---|---|---|---|---|
type string Required值: | ||||||||
parameters 对象 | ||||||||
|
名称、类型、描述 | |||||
---|---|---|---|---|---|
workflows 对象数组 必填必须通过的 Workflow,才能使此规则通过。 | |||||
|
名称、类型、描述 |
---|
path 字符串 必填Workflow 文件的路径 |
ref 字符串 要使用的 Workflow 文件的 ref(分支或标签) |
repository_id 整数 必填定义 Workflow 的存储库的 ID |
sha 字符串 要使用的 Workflow 文件的提交 SHA |
code_scanning
对象 必填选择必须提供代码扫描结果的工具,才能更新引用。配置后,代码扫描必须启用,并且必须具有对要更新的提交和引用的结果。
code_scanning
的属性
名称、类型、描述 | |||||||
---|---|---|---|---|---|---|---|
type string Required值: | |||||||
parameters 对象 | |||||||
|
名称、类型、描述 | ||||
---|---|---|---|---|
code_scanning_tools 对象数组 必填必须提供代码扫描结果的工具,才能使此规则通过。 | ||||
|
名称、类型、描述 |
---|
alerts_threshold 字符串 必填代码扫描结果引发警报的严重级别,该级别会阻止引用更新。有关警报严重级别的更多信息,请参阅 "关于代码扫描警报。"。 可以是以下之一: |
security_alerts_threshold 字符串 必填代码扫描结果引发安全警报的严重级别,该级别会阻止引用更新。有关安全严重级别的更多信息,请参阅 "关于代码扫描警报。"。 可以是以下之一: |
tool 字符串 必填代码扫描工具的名称 |
“更新组织仓库规则集”的 HTTP 响应状态码
状态代码 | 描述 |
---|---|
200 | OK |
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/orgs/ORG/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*"]},"repository_name":{"include":["important_repository","another_important_repository"],"exclude":["unimportant_repository"],"protected":true}},"rules":[{"type":"commit_author_email_pattern","parameters":{"operator":"contains","pattern":"github"}}]}'
响应
状态: 200
{ "id": 21, "name": "super cool ruleset", "target": "branch", "source_type": "Organization", "source": "my-org", "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*" ] }, "repository_name": { "include": [ "important_repository", "another_important_repository" ], "exclude": [ "unimportant_repository" ], "protected": true } }, "rules": [ { "type": "commit_author_email_pattern", "parameters": { "operator": "contains", "pattern": "github" } } ], "node_id": "RRS_lACkVXNlcgQB", "_links": { "self": { "href": "https://api.github.com/orgs/my-org/rulesets/21" }, "html": { "href": "https://github.com/organizations/my-org/settings/rules/21" } }, "created_at": "2023-08-15T08:43:03Z", "updated_at": "2023-09-23T16:29:47Z" }
删除组织仓库规则集
删除组织的规则集。
用于“删除组织仓库规则集”的细粒度访问令牌
此端点与以下细粒度令牌类型一起使用
细粒度令牌必须具有以下权限集
- “管理”组织权限(写入)
“删除组织仓库规则集”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
org string 必需组织名称。名称不区分大小写。 |
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/orgs/ORG/rulesets/RULESET_ID
响应
状态:204