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

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

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

关于部署分支策略

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

有关将环境部署限制为特定分支的更多信息,请参阅“使用环境进行部署”。

列出部署分支策略

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

任何对存储库具有读取权限的人员都可以使用此端点。

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

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

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

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

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

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

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

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

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

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

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包括 `.git` 扩展名。名称不区分大小写。

environment_name string 必需

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

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

每页的结果数(最大 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范围才能使用此端点。

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

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

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

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

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

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

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

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

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包括 `.git` 扩展名。名称不区分大小写。

environment_name string 必需

环境的名称。名称必须进行 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` 范围才能将此端点与私有存储库一起使用。

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

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

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

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

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

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

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

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

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

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包括 `.git` 扩展名。名称不区分大小写。

environment_name string 必需

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

branch_policy_id integer 必需

分支策略的唯一标识符。

“获取部署分支策略”的 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范围才能使用此端点。

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

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

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

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

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

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

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

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

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包括 `.git` 扩展名。名称不区分大小写。

environment_name string 必需

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

branch_policy_id integer 必需

分支策略的唯一标识符。

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

分支必须匹配的名称模式,以便部署到环境中。

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

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

状态代码描述
200

OK

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

请求示例

put/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范围才能使用此端点。

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

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

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

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

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

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

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

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

存储库的帐户所有者。名称不区分大小写。

repo string 必需

存储库的名称,不包括 `.git` 扩展名。名称不区分大小写。

environment_name string 必需

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

branch_policy_id integer 必需

分支策略的唯一标识符。

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

状态代码描述
204

无内容

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

请求示例

delete/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