用于保护规则的 REST API 端点
使用 REST API 创建、配置和删除部署保护规则。
获取环境的所有部署保护规则
获取为环境启用的所有自定义部署保护规则。任何具有存储库读取权限的用户都可以使用此端点。有关环境的更多信息,请参阅 "使用环境进行部署."
有关提供此自定义部署规则的应用程序的更多信息,请参阅 GET /apps/{app_slug}
端点的文档。
OAuth 应用程序令牌和个人访问令牌(经典)需要 repo
范围才能将此端点与私有存储库一起使用。
用于“获取环境的所有部署保护规则”的细粒度访问令牌
此端点适用于以下细粒度令牌类型
细粒度令牌必须具有以下权限集
- “操作”存储库权限(读取)
如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。
用于“获取环境的所有部署保护规则”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
environment_name string 必需环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 |
repo 字符串 必需仓库名称,不包含 |
owner 字符串 必需仓库的账户所有者。名称不区分大小写。 |
“获取环境的所有部署保护规则”的 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/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 建议设置为 |
名称、类型、描述 |
---|
environment_name string 必需环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 |
repo 字符串 必需仓库名称,不包含 |
owner 字符串 必需仓库的账户所有者。名称不区分大小写。 |
名称、类型、描述 |
---|
integration_id 整数 将在环境中启用的自定义应用程序的 ID。 |
“在环境上创建自定义部署保护规则”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
201 | 已启用的自定义部署保护规则 |
“在环境上创建自定义部署保护规则”的代码示例
请求示例
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}'
已启用的自定义部署保护规则
列出可用于环境的自定义部署规则集成
获取可用于环境的所有自定义部署保护规则集成。任何拥有仓库读取权限的人都可以使用此端点。
有关环境的更多信息,请参阅“使用环境进行部署”。
有关提供此自定义部署规则的应用程序的更多信息,请参阅“获取应用程序”。
OAuth 应用程序令牌和个人访问令牌(经典)需要 repo
范围才能将此端点与私有存储库一起使用。
“列出可用于环境的自定义部署规则集成”的细粒度访问令牌
此端点适用于以下细粒度令牌类型
细粒度令牌必须具有以下权限集
- “操作”存储库权限(读取)
如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。
“列出可用于环境的自定义部署规则集成”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
environment_name string 必需环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 |
repo 字符串 必需仓库名称,不包含 |
owner 字符串 必需仓库的账户所有者。名称不区分大小写。 |
名称、类型、描述 |
---|
page integer 要获取的结果页码。有关更多信息,请参阅“在 REST API 中使用分页”。 默认: |
per_page integer 每页的结果数量(最大 100)。有关更多信息,请参阅“在 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/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 建议设置为 |
名称、类型、描述 |
---|
owner 字符串 必需仓库的账户所有者。名称不区分大小写。 |
repo 字符串 必需仓库名称,不包含 |
environment_name string 必需环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 |
protection_rule_id 整数 必需保护规则的唯一标识符。 |
“获取自定义部署保护规则”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | OK |
“获取自定义部署保护规则”的代码示例
请求示例
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
响应
禁用环境的自定义保护规则
禁用环境的自定义部署保护规则。
经过身份验证的用户必须对仓库具有管理员或所有者权限才能使用此端点。
OAuth 应用程序令牌和个人访问令牌(经典)需要repo
范围才能使用此端点。
“禁用环境的自定义保护规则”的细粒度访问令牌
此端点适用于以下细粒度令牌类型
细粒度令牌必须具有以下权限集
- “管理”仓库权限(写入)
“禁用环境的自定义保护规则”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
environment_name string 必需环境的名称。名称必须进行 URL 编码。例如,名称中的任何斜杠都必须替换为 |
repo 字符串 必需仓库名称,不包含 |
owner 字符串 必需仓库的账户所有者。名称不区分大小写。 |
protection_rule_id 整数 必需保护规则的唯一标识符。 |
“禁用环境的自定义保护规则”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
204 | 无内容 |
“禁用环境的自定义保护规则”的代码示例
请求示例
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