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

用于部署分支策略的 REST API 端点

使用 REST API 管理自定义部署分支策略。

关于部署分支策略

您可以使用 REST API 指定分支必须匹配的自定义名称模式,以便部署到环境。环境的 deployment_branch_policy.custom_branch_policies 属性必须设置为 true 才能使用这些端点。要更新环境的 deployment_branch_policy,请参阅“用于部署环境的 REST API 端点”。

有关将环境部署限制到特定分支的更多信息,请参阅“管理部署环境”。

列出部署分支策略

列出环境的部署分支策略。

任何具有仓库读取访问权限的用户都可以使用此端点。

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

“列出部署分支策略”的细粒度访问令牌

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

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

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

如果仅请求公共资源,则可以在没有身份验证或上述权限的情况下使用此端点。

“列出部署分支策略”的参数

Headers
名称、类型、描述
accept 字符串

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

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

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

repo 字符串 必填

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

environment_name 字符串 必填

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

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

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

默认值: 30

page 整数

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

默认值: 1

“列出部署分支策略”的 HTTP 响应状态代码

状态代码描述
200

OK

“列出部署分支策略”的代码示例

请求示例

get/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies
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-branch-policies

响应

状态:200
{ "total_count": 2, "branch_policies": [ { "id": 361471, "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzE=", "name": "release/*" }, { "id": 361472, "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzI=", "name": "main" } ] }

创建部署分支策略

为环境创建部署分支或标签策略。

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

“创建部署分支策略”的细粒度访问令牌

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

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

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

“创建部署分支策略”的参数

Headers
名称、类型、描述
accept 字符串

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

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

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

repo 字符串 必填

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

environment_name 字符串 必填

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

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

分支或标签必须匹配的名称模式,才能部署到环境。

通配符字符将不匹配 /。例如,要匹配以 release/ 开头并包含一个附加斜杠的分支,请使用 release/*/*。有关模式匹配语法的更多信息,请参阅 Ruby File.fnmatch 文档

type 字符串

此规则是针对分支还是标签

可以是以下之一: branch, tag

“创建部署分支策略”的 HTTP 响应状态代码

状态代码描述
200

OK

303

如果存在相同的分支名称模式,则返回响应

404

找不到或环境的 deployment_branch_policy.custom_branch_policies 属性设置为 false

“创建部署分支策略”的代码示例

请求示例

post/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies
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-branch-policies \ -d '{"name":"release/*"}'

响应

状态:200
{ "id": 364662, "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjQ2NjI=", "name": "release/*" }

获取部署分支策略

获取环境的部署分支或标签策略。

任何具有仓库读取访问权限的用户都可以使用此端点。

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

“获取部署分支策略”的细粒度访问令牌

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

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

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

如果仅请求公共资源,则可以在没有身份验证或上述权限的情况下使用此端点。

“获取部署分支策略”的参数

Headers
名称、类型、描述
accept 字符串

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

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

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

repo 字符串 必填

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

environment_name 字符串 必填

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

branch_policy_id 整数 必填

分支策略的唯一标识符。

“获取部署分支策略”的 HTTP 响应状态代码

状态代码描述
200

OK

“获取部署分支策略”的代码示例

请求示例

get/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_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-branch-policies/BRANCH_POLICY_ID

响应

状态:200
{ "id": 364662, "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjQ2NjI=", "name": "release/*" }

更新部署分支策略

更新环境的部署分支或标签策略。

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

“更新部署分支策略”的细粒度访问令牌

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

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

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

“更新部署分支策略”的参数

Headers
名称、类型、描述
accept 字符串

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

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

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

repo 字符串 必填

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

environment_name 字符串 必填

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

branch_policy_id 整数 必填

分支策略的唯一标识符。

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

分支必须匹配的名称模式,才能部署到环境。

通配符字符将不匹配 /。例如,要匹配以 release/ 开头并包含一个附加斜杠的分支,请使用 release/*/*。有关模式匹配语法的更多信息,请参阅 Ruby File.fnmatch 文档

“更新部署分支策略”的 HTTP 响应状态代码

状态代码描述
200

OK

“更新部署分支策略”的代码示例

请求示例

更新/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_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/repos/OWNER/REPO/environments/ENVIRONMENT_NAME/deployment-branch-policies/BRANCH_POLICY_ID \ -d '{"name":"release/*"}'

响应

状态:200
{ "id": 364662, "node_id": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjQ2NjI=", "name": "release/*" }

删除部署分支策略

删除环境的部署分支或标签策略。

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

“删除部署分支策略”的细粒度访问令牌

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

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

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

“删除部署分支策略”的参数

Headers
名称、类型、描述
accept 字符串

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

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

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

repo 字符串 必填

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

environment_name 字符串 必填

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

branch_policy_id 整数 必填

分支策略的唯一标识符。

“删除部署分支策略”的HTTP响应状态码

状态代码描述
204

无内容

“删除部署分支策略”的代码示例

请求示例

删除/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_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-branch-policies/BRANCH_POLICY_ID

响应

状态:204