Replies: 2 comments
|
Answers based on the current docs (quotes are from the pages linked at the end): 1. GitHub Free, personal account, private repo: no environments at all.
The minimum is GitHub Pro (personal) or GitHub Team (organization). That gives you environments, environment secrets and variables, and deployment branch/tag restrictions in private repos, but not the other protection rules. 2. Required reviewers and wait timers in private repos: GitHub Enterprise only.
Personal accounts top out at Pro, so in practice the repository has to live in an organization on GitHub Enterprise Cloud (or on GHES). 3. Preventing admin bypass: yes. In the environment settings, deselect "Allow administrators to bypass configured protection rules". It's part of the same feature set, so it has the same plan requirement:
Also consider "Prevent self-review". By default, a required reviewer can approve a run they triggered themselves, and only one of the (up to 6) reviewers needs to approve. 4. Does it stop every path? It gates every trigger (push,
5. Custom deployment protection rules: same as 2. On Free, Pro and Team they're public-repo only, so private repos need Enterprise. The closest native setup on Pro/Team is to restrict the environment to 6. Docs:
|
|
Hi @caicai202, The answer from @100rootrain covers the plan limitations and approval controls well. I'd add one important security consideration regarding question 4. Required reviewers protect deployment jobs that reference the protected environment, but they do not automatically protect every possible route to the production infrastructure. For stronger enforcement, consider these controls together: Environment approval: Require approval for jobs using the production environment, where your GitHub plan supports it. Cloud-side authorization: If using OIDC, configure the cloud provider's trust policy to accept credentials only from the intended repository and protected environment. Workflow change controls: Protect deployment workflow files and production branches using appropriate repository rulesets and pull request reviews. Administrative governance: Restrict who can change environment settings, secrets, cloud trust policies, and repository rules. Independent deployment paths: Audit any external deployment integrations, long-lived credentials, or automation that can reach production without passing through the protected workflow. For example, an OIDC subject condition can help bind cloud access to a particular GitHub environment: repo:OWNER/REPO:environment:production This is an illustrative default subject format; the actual trust policy should match your cloud provider, configured claims, and GitHub OIDC customization. The key takeaway: Environment reviewers provide an approval gate, while cloud authorization and repository governance determine whether alternative deployment paths remain possible. Even a no-bypass setting should not be treated as an absolute restriction on repository administrators who can modify the underlying configuration. Hope this additional distinction is helpful! |
Uh oh!
There was an error while loading. Please reload this page.
🏷️ Discussion Type
Question
💬 Feature/Topic Area
Other
Discussion Details
Hello GitHub Community,
I am evaluating a deployment approval control for a private repository and would appreciate clarification based on current GitHub plan capabilities.
I am asking about product capabilities only. I am not requesting account-specific troubleshooting and have intentionally omitted repository names, account identifiers, workflow names, infrastructure details, and secrets.
Thank you.
All reactions