apicheats.dev github/llms.txt Raw .md
POST

POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules — GitHub API

GitHub token (required); https://api.github.com

GitHub API

Create a custom deployment protection rule on an environment

Base URL
https://api.github.com
Auth
Authorization: Bearer <GITHUB_API_KEY>
Last verified
2026-10-20 · upstream hash matched
Actions Try in browser→
Agents: curl -H "Accept: text/markdown" this URL
→ 280 tokens · Vary: Accept

Critical gotchas

GitHub recommends an Accept: application/vnd.github+json header and an explicit X-GitHub-Api-Version header.

Fine-grained tokens only authorize repositories and permissions selected when the token is created.

cURL

curl -X POST 'https://api.github.com/repos/example-owner/example-repo/environments/example-environment-name/deployment_protection_rules' \  -H "Authorization: Bearer $GITHUB_TOKEN" \  -H 'Accept: application/vnd.github+json' \  -H 'X-GitHub-Api-Version: 2026-03-10' \  -H 'Content-Type: application/json' \  -d '{}'

Parameters

Name In Type Required Description
environment_name path string Yes The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`.
repo path string Yes The name of the repository without the `.git` extension. The name is not case sensitive.
owner path string Yes The account owner of the repository. The name is not case sensitive.
integration_id body integer No The ID of the custom app that will be enabled on the environment.

Response 200 OK

{
  "id": 3515,
  "node_id": "MDQ6R2F0ZTM1MTU=",
  "enabled": true,
  "app": {
    "id": 3515,
    "slug": "my-custom-app",
    "integration_url": "https://api.github.com/apps/custom-app-slug",
    "node_id": "MDQ6R2F0ZTM1MTU="
  }
}
Get a free GitHub API key → sponsored

Affiliate link - we may earn a commission, at no extra cost to you.