跳到主要内容
REST API 现在已版本化。 更多信息,请参阅“关于 API 版本控制”。

规则的 REST API 端点

使用 REST API 管理组织的规则集。组织规则集控制用户如何与组织中代码库的选定分支和标签进行交互。

获取所有组织代码库规则集

获取组织的所有代码库规则集。

“获取所有组织代码库规则集”的细粒度访问令牌

此端点可与以下细粒度令牌类型配合使用:

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

  • “管理”组织权限(写入)

“获取所有组织代码库规则集”的参数

标头
名称、类型、描述
accept 字符串

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

路径参数
名称、类型、描述
org 字符串 必填

组织名称。名称不区分大小写。

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

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

默认值: 30

page 整数

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

默认值: 1

targets 字符串

用逗号分隔的规则目标列表,用于筛选。如果提供,则只返回适用于指定目标的规则集。例如,branch,tag,push

“获取所有组织代码库规则集”的 HTTP 响应状态码

状态码描述
200

OK

404

资源未找到

500

内部错误

“获取所有组织代码库规则集”的代码示例

请求示例

get/orgs/{org}/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/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 字符串

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

路径参数
名称、类型、描述
org 字符串 必填

组织名称。名称不区分大小写。

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

规则集的名称。

target 字符串

规则集的目标

默认值: branch

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

enforcement 字符串 必填

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

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

bypass_actors 对象数组

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

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

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

actor_type 字符串 必填

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

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

bypass_mode 字符串

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

默认值: always

可以是以下之一: always, pull_request

conditions 对象

组织规则集的条件。分支和标签规则集条件对象应同时包含repository_nameref_name 属性,或同时包含repository_idref_name 属性,或同时包含repository_propertyref_name 属性。推送规则集条件对象不需要ref_name 属性。

名称、类型、描述
repository_name_and_ref_name 对象 必填

按名称和引用名称定位代码库的条件

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

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

exclude 字符串数组

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

repository_name 对象 必填
名称、类型、描述
include 字符串数组

要包含的代码库名称或模式数组。必须匹配这些模式之一才能使条件通过。还接受~ALL 以包含所有代码库。

exclude 字符串数组

要排除的代码库名称或模式数组。如果任何这些模式匹配,则条件将不会通过。

protected 布尔值

是否阻止目标代码库的重命名。

repository_id_and_ref_name 对象 必填

按 ID 和引用名称定位代码库的条件

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

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

exclude 字符串数组

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

repository_id 对象 必填
名称、类型、描述
repository_ids 整数数组

规则集适用的代码库 ID。必须匹配这些 ID 之一才能使条件通过。

repository_property_and_ref_name 对象 必填

按属性和引用名称定位代码库的条件

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

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

exclude 字符串数组

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

repository_property 对象 必填
名称、类型、描述
include 对象数组

要包含的代码库属性和值。所有这些属性都必须匹配才能使条件通过。

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

要定位的代码库属性的名称

property_values 字符串数组 必填

要与代码库属性匹配的值

source 字符串

代码库属性的来源。如果未指定,则默认为“custom”。

可以是以下之一: custom, system

exclude 对象数组

要排除的仓库属性和值。如果任何属性匹配,则条件将不会通过。

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

要定位的代码库属性的名称

property_values 字符串数组 必填

要与代码库属性匹配的值

source 字符串

代码库属性的来源。如果未指定,则默认为“custom”。

可以是以下之一: custom, system

rules 对象数组

规则集中的规则数组。

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

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

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

值: creation

update 对象 必填

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

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

值: update

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

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

deletion 对象 必填

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

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

值: deletion

required_linear_history 对象 必填

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

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

值: required_linear_history

merge_queue 对象 必填

必须通过合并队列执行合并。

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

值: merge_queue

parameters 对象
名称、类型、描述
check_response_timeout_minutes 整数 必填

必需状态检查报告结论的最长时间。超过此时间后,未报告结论的检查将被假定为失败。

grouping_strategy 字符串 必填

设置为 ALLGREEN 时,为组中的每个 PR 创建的合并提交必须通过所有必需的检查才能合并。设置为 HEADGREEN 时,只有合并组头部(即包含组中所有 PR 的更改的提交)的提交必须通过其必需的检查才能合并。

可以是以下之一: ALLGREEN, HEADGREEN

max_entries_to_build 整数 必填

限制同时请求检查和工作流运行的排队拉取请求的数量。

max_entries_to_merge 整数 必填

将一起合并到一个组中的 PR 的最大数量。

merge_method 字符串 必填

从排队的拉取请求合并更改时要使用的方法。

可以是以下之一: MERGE, SQUASH, REBASE

min_entries_to_merge 整数 必填

将一起合并到一个组中的 PR 的最小数量。

min_entries_to_merge_wait_minutes 整数 必填

在将第一个 PR 添加到队列后,合并队列应等待的时间,以达到最小组大小。超过此时间后,将忽略最小组大小,并将合并较小的组。

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 对象
名称、类型、描述
do_not_enforce_on_create 布尔值

如果检查会禁止创建,则允许创建仓库和分支。

required_status_checks 对象数组 必填

必需的状态检查。

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

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

integration_id 整数

此状态检查必须发出的可选集成 ID。

strict_required_status_checks_policy 布尔值 必填

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

non_fast_forward 对象 必填

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

名称、类型、描述
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 对象 必填

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

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

值: file_path_restriction

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

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

max_file_path_length 对象 必填

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

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

值: max_file_path_length

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

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

file_extension_restriction 对象 必填

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

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

值: file_extension_restriction

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

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

max_file_size 对象 必填

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

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

值:max_file_size

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

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

workflows 对象 必填

要求对目标分支的所有更改都必须通过指定的 workflows,然后才能合并。

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

值:workflows

parameters 对象
名称、类型、描述
do_not_enforce_on_create 布尔值

如果检查会禁止创建,则允许创建仓库和分支。

workflows 对象数组 必填

此规则必须通过的工作流。

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

工作流文件的路径

ref 字符串

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

repository_id 整数 必填

定义工作流的代码库 ID

sha 字符串

要使用的工作流文件的提交 SHA

code_scanning 对象 必填

选择在更新引用之前必须提供代码扫描结果的工具。配置后,代码扫描必须启用并具有对要更新的提交和引用的结果。

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

值:code_scanning

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

此规则必须通过的代码扫描工具。

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

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

可以是以下之一:noneerrorserrors_and_warningsall

security_alerts_threshold 字符串 必填

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

可以是以下之一:nonecriticalhigh_or_highermedium_or_higherall

tool 字符串 必填

代码扫描工具的名称

“创建组织代码库规则集”的 HTTP 响应状态代码

状态码描述
201

已创建

404

资源未找到

500

内部错误

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

请求示例

post/orgs/{org}/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/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" }

获取组织代码库规则集

获取组织的代码库规则集。

注意:为防止敏感信息泄露,只有当进行 API 请求的用户对规则集具有写入权限时,才会返回 bypass_actors 属性。

“获取组织代码库规则集”的细粒度访问令牌

此端点可与以下细粒度令牌类型配合使用:

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

  • “管理”组织权限(写入)

“获取组织代码库规则集”的参数

标头
名称、类型、描述
accept 字符串

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

路径参数
名称、类型、描述
org 字符串 必填

组织名称。名称不区分大小写。

ruleset_id 整数 必填

规则集的 ID。

“获取组织代码库规则集”的 HTTP 响应状态代码

状态码描述
200

OK

404

资源未找到

500

内部错误

“获取组织代码库规则集”的代码示例

请求示例

get/orgs/{org}/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/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 字符串

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

路径参数
名称、类型、描述
org 字符串 必填

组织名称。名称不区分大小写。

ruleset_id 整数 必填

规则集的 ID。

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

规则集的名称。

target 字符串

规则集的目标

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

enforcement 字符串

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

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

bypass_actors 对象数组

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

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

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

actor_type 字符串 必填

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

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

bypass_mode 字符串

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

默认值: always

可以是以下之一: always, pull_request

conditions 对象

组织规则集的条件。分支和标签规则集条件对象应同时包含repository_nameref_name 属性,或同时包含repository_idref_name 属性,或同时包含repository_propertyref_name 属性。推送规则集条件对象不需要ref_name 属性。

名称、类型、描述
repository_name_and_ref_name 对象 必填

按名称和引用名称定位代码库的条件

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

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

exclude 字符串数组

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

repository_name 对象 必填
名称、类型、描述
include 字符串数组

要包含的代码库名称或模式数组。必须匹配这些模式之一才能使条件通过。还接受~ALL 以包含所有代码库。

exclude 字符串数组

要排除的代码库名称或模式数组。如果任何这些模式匹配,则条件将不会通过。

protected 布尔值

是否阻止目标代码库的重命名。

repository_id_and_ref_name 对象 必填

按 ID 和引用名称定位代码库的条件

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

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

exclude 字符串数组

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

repository_id 对象 必填
名称、类型、描述
repository_ids 整数数组

规则集适用的代码库 ID。必须匹配这些 ID 之一才能使条件通过。

repository_property_and_ref_name 对象 必填

按属性和引用名称定位代码库的条件

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

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

exclude 字符串数组

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

repository_property 对象 必填
名称、类型、描述
include 对象数组

要包含的代码库属性和值。所有这些属性都必须匹配才能使条件通过。

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

要定位的代码库属性的名称

property_values 字符串数组 必填

要与代码库属性匹配的值

source 字符串

代码库属性的来源。如果未指定,则默认为“custom”。

可以是以下之一: custom, system

exclude 对象数组

要排除的仓库属性和值。如果任何属性匹配,则条件将不会通过。

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

要定位的代码库属性的名称

property_values 字符串数组 必填

要与代码库属性匹配的值

source 字符串

代码库属性的来源。如果未指定,则默认为“custom”。

可以是以下之一: custom, system

rules 对象数组

规则集中的规则数组。

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

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

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

值: creation

update 对象 必填

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

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

值: update

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

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

deletion 对象 必填

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

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

值: deletion

required_linear_history 对象 必填

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

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

值: required_linear_history

merge_queue 对象 必填

必须通过合并队列执行合并。

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

值: merge_queue

parameters 对象
名称、类型、描述
check_response_timeout_minutes 整数 必填

必需状态检查报告结论的最长时间。超过此时间后,未报告结论的检查将被假定为失败。

grouping_strategy 字符串 必填

设置为 ALLGREEN 时,为组中的每个 PR 创建的合并提交必须通过所有必需的检查才能合并。设置为 HEADGREEN 时,只有合并组头部(即包含组中所有 PR 的更改的提交)的提交必须通过其必需的检查才能合并。

可以是以下之一: ALLGREEN, HEADGREEN

max_entries_to_build 整数 必填

限制同时请求检查和工作流运行的排队拉取请求的数量。

max_entries_to_merge 整数 必填

将一起合并到一个组中的 PR 的最大数量。

merge_method 字符串 必填

从排队的拉取请求合并更改时要使用的方法。

可以是以下之一: MERGE, SQUASH, REBASE

min_entries_to_merge 整数 必填

将一起合并到一个组中的 PR 的最小数量。

min_entries_to_merge_wait_minutes 整数 必填

在将第一个 PR 添加到队列后,合并队列应等待的时间,以达到最小组大小。超过此时间后,将忽略最小组大小,并将合并较小的组。

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 对象
名称、类型、描述
do_not_enforce_on_create 布尔值

如果检查会禁止创建,则允许创建仓库和分支。

required_status_checks 对象数组 必填

必需的状态检查。

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

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

integration_id 整数

此状态检查必须发出的可选集成 ID。

strict_required_status_checks_policy 布尔值 必填

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

non_fast_forward 对象 必填

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

名称、类型、描述
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 对象 必填

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

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

值: file_path_restriction

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

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

max_file_path_length 对象 必填

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

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

值: max_file_path_length

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

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

file_extension_restriction 对象 必填

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

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

值: file_extension_restriction

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

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

max_file_size 对象 必填

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

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

值:max_file_size

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

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

workflows 对象 必填

要求对目标分支的所有更改都必须通过指定的 workflows,然后才能合并。

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

值:workflows

parameters 对象
名称、类型、描述
do_not_enforce_on_create 布尔值

如果检查会禁止创建,则允许创建仓库和分支。

workflows 对象数组 必填

此规则必须通过的工作流。

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

工作流文件的路径

ref 字符串

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

repository_id 整数 必填

定义工作流的代码库 ID

sha 字符串

要使用的工作流文件的提交 SHA

code_scanning 对象 必填

选择在更新引用之前必须提供代码扫描结果的工具。配置后,代码扫描必须启用并具有对要更新的提交和引用的结果。

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

值:code_scanning

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

此规则必须通过的代码扫描工具。

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

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

可以是以下之一:noneerrorserrors_and_warningsall

security_alerts_threshold 字符串 必填

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

可以是以下之一:nonecriticalhigh_or_highermedium_or_higherall

tool 字符串 必填

代码扫描工具的名称

“更新组织代码库规则集”的 HTTP 响应状态代码

状态码描述
200

OK

404

资源未找到

500

内部错误

“更新组织代码库规则集”的代码示例

请求示例

put/orgs/{org}/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/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 字符串

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

路径参数
名称、类型、描述
org 字符串 必填

组织名称。名称不区分大小写。

ruleset_id 整数 必填

规则集的 ID。

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

状态码描述
204

无内容

404

资源未找到

500

内部错误

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

请求示例

delete/orgs/{org}/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/orgs/ORG/rulesets/RULESET_ID

响应

状态:204