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

用于保护规则的 REST API 端点

使用 REST API 创建、配置和删除部署保护规则。

获取环境的所有部署保护规则

获取为环境启用的所有自定义部署保护规则。任何具有存储库读取权限的用户都可以使用此端点。有关环境的更多信息,请参阅 "使用环境进行部署."

有关提供此自定义部署规则的应用程序的更多信息,请参阅 GET /apps/{app_slug} 端点的文档

OAuth 应用程序令牌和个人访问令牌(经典)需要 repo 范围才能将此端点与私有存储库一起使用。

用于“获取环境的所有部署保护规则”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

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

  • “操作”存储库权限(读取)

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

用于“获取环境的所有部署保护规则”的参数

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

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

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

环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 %2F

repo 字符串 必需

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

owner 字符串 必需

仓库的账户所有者。名称不区分大小写。

“获取环境的所有部署保护规则”的 HTTP 响应状态码

状态码描述
200

部署保护规则列表

“获取环境的所有部署保护规则”的代码示例

请求示例

get/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules
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/environments/ENVIRONMENT_NAME/deployment_protection_rules

部署保护规则列表

状态:200
{ "total_count": 2, "custom_deployment_protection_rules": [ { "id": 3, "node_id": "IEH37kRlcGxveW1lbnRTdGF0ddiv", "enabled": true, "app": { "id": 1, "node_id": "GHT58kRlcGxveW1lbnRTdTY!bbcy", "slug": "a-custom-app", "integration_url": "https://api.github.com/apps/a-custom-app" } }, { "id": 4, "node_id": "MDE2OkRlcGxveW1lbnRTdHJ41128", "enabled": true, "app": { "id": 1, "node_id": "UHVE67RlcGxveW1lbnRTdTY!jfeuy", "slug": "another-custom-app", "integration_url": "https://api.github.com/apps/another-custom-app" } } ] }

在环境上创建自定义部署保护规则

为环境启用自定义部署保护规则。

经过身份验证的用户必须对仓库具有管理员或所有者权限才能使用此端点。

有关提供此自定义部署规则的应用程序的更多信息,请参阅 GET /apps/{app_slug} 端点的文档

OAuth 应用程序令牌和个人访问令牌(经典)需要repo范围才能使用此端点。

“在环境上创建自定义部署保护规则”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

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

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

“在环境上创建自定义部署保护规则”的参数

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

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

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

环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 %2F

repo 字符串 必需

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

owner 字符串 必需

仓库的账户所有者。名称不区分大小写。

主体参数
名称、类型、描述
integration_id 整数

将在环境中启用的自定义应用程序的 ID。

“在环境上创建自定义部署保护规则”的 HTTP 响应状态代码

状态码描述
201

已启用的自定义部署保护规则

“在环境上创建自定义部署保护规则”的代码示例

请求示例

post/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules
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/environments/ENVIRONMENT_NAME/deployment_protection_rules \ -d '{"integration_id":5}'

已启用的自定义部署保护规则

状态:201
{ "id": 3, "node_id": "IEH37kRlcGxveW1lbnRTdGF0ddiv", "enabled": true, "app": { "id": 1, "node_id": "GHT58kRlcGxveW1lbnRTdTY!bbcy", "slug": "a-custom-app", "integration_url": "https://api.github.com/apps/a-custom-app" } }

列出可用于环境的自定义部署规则集成

获取可用于环境的所有自定义部署保护规则集成。任何拥有仓库读取权限的人都可以使用此端点。

有关环境的更多信息,请参阅“使用环境进行部署”。

有关提供此自定义部署规则的应用程序的更多信息,请参阅“获取应用程序”。

OAuth 应用程序令牌和个人访问令牌(经典)需要 repo 范围才能将此端点与私有存储库一起使用。

“列出可用于环境的自定义部署规则集成”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

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

  • “操作”存储库权限(读取)

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

“列出可用于环境的自定义部署规则集成”的参数

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

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

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

环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 %2F

repo 字符串 必需

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

owner 字符串 必需

仓库的账户所有者。名称不区分大小写。

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

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

默认: 1

per_page integer

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

默认: 30

“列出可用于环境的自定义部署规则集成”的 HTTP 响应状态代码

状态码描述
200

可用于此环境的自定义部署规则集成的列表。

“列出可用于环境的自定义部署规则集成”的代码示例

请求示例

get/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps
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/environments/ENVIRONMENT_NAME/deployment_protection_rules/apps

可用于此环境的自定义部署规则集成的列表。

状态:200
[ { "total_count": 2 }, { "available_custom_deployment_protection_rule_integrations": [ { "id": 1, "node_id": "GHT58kRlcGxveW1lbnRTdTY!bbcy", "slug": "a-custom-app", "integration_url": "https://api.github.com/apps/a-custom-app" }, { "id": 2, "node_id": "UHVE67RlcGxveW1lbnRTdTY!jfeuy", "slug": "another-custom-app", "integration_url": "https://api.github.com/apps/another-custom-app" } ] } ]

获取自定义部署保护规则

获取环境中启用的自定义部署保护规则。任何拥有仓库读取权限的人都可以使用此端点。有关环境的更多信息,请参阅“使用环境进行部署”。

有关提供此自定义部署规则的应用程序的更多信息,请参阅 GET /apps/{app_slug}

OAuth 应用程序令牌和个人访问令牌(经典)需要 repo 范围才能将此端点与私有存储库一起使用。

“获取自定义部署保护规则”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

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

  • “操作”存储库权限(读取)

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

“获取自定义部署保护规则”的参数

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

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

路径参数
名称、类型、描述
owner 字符串 必需

仓库的账户所有者。名称不区分大小写。

repo 字符串 必需

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

environment_name string 必需

环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 %2F

protection_rule_id 整数 必需

保护规则的唯一标识符。

“获取自定义部署保护规则”的 HTTP 响应状态码

状态码描述
200

OK

“获取自定义部署保护规则”的代码示例

请求示例

get/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_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/environments/ENVIRONMENT_NAME/deployment_protection_rules/PROTECTION_RULE_ID

响应

状态:200
{ "id": 3, "node_id": "IEH37kRlcGxveW1lbnRTdGF0ddiv", "enabled": true, "app": { "id": 1, "node_id": "GHT58kRlcGxveW1lbnRTdTY!bbcy", "slug": "a-custom-app", "integration_url": "https://api.github.com/apps/a-custom-app" } }

禁用环境的自定义保护规则

禁用环境的自定义部署保护规则。

经过身份验证的用户必须对仓库具有管理员或所有者权限才能使用此端点。

OAuth 应用程序令牌和个人访问令牌(经典)需要repo范围才能使用此端点。

“禁用环境的自定义保护规则”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

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

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

“禁用环境的自定义保护规则”的参数

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

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

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

环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 %2F

repo 字符串 必需

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

owner 字符串 必需

仓库的账户所有者。名称不区分大小写。

protection_rule_id 整数 必需

保护规则的唯一标识符。

“禁用环境的自定义保护规则”的 HTTP 响应状态码

状态码描述
204

无内容

“禁用环境的自定义保护规则”的代码示例

请求示例

删除/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_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/environments/ENVIRONMENT_NAME/deployment_protection_rules/PROTECTION_RULE_ID

响应

状态: 204