Skip to main content
The REST API is now versioned. For more information, see "About API versioning."

保护规则

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

Get all deployment protection rules for an environment

Works with GitHub Apps

Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. If the repository is private and you want to use a personal access token (classic), you must use an access token with the repo scope. GitHub Apps and fine-grained personal access tokens must have the actions:read permission to use this endpoint. For more information about environments, see "Using environments for deployment."

For more information about the app that is providing this custom deployment rule, see the documentation for the GET /apps/{app_slug} endpoint.

Parameters for "Get all deployment protection rules for an environment"

标头
名称, 类型, 说明
accept string

Setting to application/vnd.github+json is recommended.

路径参数
名称, 类型, 说明
environment_name string 必须

The name of the environment.

repo string 必须

The name of the repository without the .git extension. The name is not case sensitive.

owner string 必须

The account owner of the repository. The name is not case sensitive.

HTTP response status codes for "Get all deployment protection rules for an environment"

Status codeDescription
200

List of deployment protection rules

Code samples for "Get all deployment protection rules for an environment"

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

List of deployment protection rules

Status: 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" } } ] }

Create a custom deployment protection rule on an environment

Works with GitHub Apps

Enable a custom deployment protection rule for an environment.

You must authenticate using an access token with the repo scope to use this endpoint. Enabling a custom protection rule requires admin or owner permissions to the repository. GitHub Apps must have the actions:write permission to use this endpoint.

For more information about the app that is providing this custom deployment rule, see the documentation for the GET /apps/{app_slug} endpoint.

Parameters for "Create a custom deployment protection rule on an environment"

标头
名称, 类型, 说明
accept string

Setting to application/vnd.github+json is recommended.

路径参数
名称, 类型, 说明
environment_name string 必须

The name of the environment.

repo string 必须

The name of the repository without the .git extension. The name is not case sensitive.

owner string 必须

The account owner of the repository. The name is not case sensitive.

正文参数
名称, 类型, 说明
integration_id integer

The ID of the custom app that will be enabled on the environment.

HTTP response status codes for "Create a custom deployment protection rule on an environment"

Status codeDescription
201

The enabled custom deployment protection rule

Code samples for "Create a custom deployment protection rule on an environment"

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}'

The enabled custom deployment protection rule

Status: 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" } }

List custom deployment rule integrations available for an environment

Works with GitHub Apps

Gets all custom deployment protection rule integrations that are available for an environment. Anyone with read access to the repository can use this endpoint. If the repository is private and you want to use a personal access token (classic), you must use an access token with the repo scope. GitHub Apps and fine-grained personal access tokens must have the actions:read permission to use this endpoint.

For more information about environments, see "Using environments for deployment."

For more information about the app that is providing this custom deployment rule, see "GET an app".

Parameters for "List custom deployment rule integrations available for an environment"

标头
名称, 类型, 说明
accept string

Setting to application/vnd.github+json is recommended.

路径参数
名称, 类型, 说明
environment_name string 必须

The name of the environment.

repo string 必须

The name of the repository without the .git extension. The name is not case sensitive.

owner string 必须

The account owner of the repository. The name is not case sensitive.

查询参数
名称, 类型, 说明
page integer

Page number of the results to fetch.

默认: 1

per_page integer

The number of results per page (max 100).

默认: 30

HTTP response status codes for "List custom deployment rule integrations available for an environment"

Status codeDescription
200

A list of custom deployment rule integrations available for this environment.

Code samples for "List custom deployment rule integrations available for an environment"

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

A list of custom deployment rule integrations available for this environment.

Status: 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 a custom deployment protection rule

Works with GitHub Apps

Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. If the repository is private and you want to use a personal access token (classic), you must use an access token with the repo scope. GitHub Apps and fine-grained personal access tokens must have the actions:read permission to use this endpoint. For more information about environments, see "Using environments for deployment."

For more information about the app that is providing this custom deployment rule, see GET /apps/{app_slug}.

Parameters for "Get a custom deployment protection rule"

标头
名称, 类型, 说明
accept string

Setting to application/vnd.github+json is recommended.

路径参数
名称, 类型, 说明
owner string 必须

The account owner of the repository. The name is not case sensitive.

repo string 必须

The name of the repository without the .git extension. The name is not case sensitive.

environment_name string 必须

The name of the environment.

protection_rule_id integer 必须

The unique identifier of the protection rule.

HTTP response status codes for "Get a custom deployment protection rule"

Status codeDescription
200

OK

Code samples for "Get a custom deployment protection rule"

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

Response

Status: 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" } }

Disable a custom protection rule for an environment

Works with GitHub Apps

Disables a custom deployment protection rule for an environment.

You must authenticate using an access token with the repo scope to use this endpoint. Removing a custom protection rule requires admin or owner permissions to the repository. GitHub Apps must have the actions:write permission to use this endpoint. For more information, see "Get an app".

Parameters for "Disable a custom protection rule for an environment"

标头
名称, 类型, 说明
accept string

Setting to application/vnd.github+json is recommended.

路径参数
名称, 类型, 说明
environment_name string 必须

The name of the environment.

repo string 必须

The name of the repository without the .git extension. The name is not case sensitive.

owner string 必须

The account owner of the repository. The name is not case sensitive.

protection_rule_id integer 必须

The unique identifier of the protection rule.

HTTP response status codes for "Disable a custom protection rule for an environment"

Status codeDescription
204

No Content

Code samples for "Disable a custom protection rule for an environment"

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

Response

Status: 204