-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Add manual approval gate to release-production push-to-main #2622
Copy link
Copy link
Open
Labels
enhancementinfra-ci-releaseCI, release automation, packaging, build containers, and test harnesses.CI, release automation, packaging, build containers, and test harnesses.securitySecurity, encryption, approvals, credentials, and trust boundaries.Security, encryption, approvals, credentials, and trust boundaries.security-workSecurity hardening, vulnerabilities, or policy work.Security hardening, vulnerabilities, or policy work.subtaskSubtask of a larger tracked effort.Subtask of a larger tracked effort.taskWork item that is not primarily a bug or a feature.Work item that is not primarily a bug or a feature.
Metadata
Metadata
Assignees
Labels
enhancementinfra-ci-releaseCI, release automation, packaging, build containers, and test harnesses.CI, release automation, packaging, build containers, and test harnesses.securitySecurity, encryption, approvals, credentials, and trust boundaries.Security, encryption, approvals, credentials, and trust boundaries.security-workSecurity hardening, vulnerabilities, or policy work.Security hardening, vulnerabilities, or policy work.subtaskSubtask of a larger tracked effort.Subtask of a larger tracked effort.taskWork item that is not primarily a bug or a feature.Work item that is not primarily a bug or a feature.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Projects
Status
Todo
Summary
release-production.ymluses a GitHub App token to push version-bump commits and tags directly tomain, bypassing branch protection. Add operational hardening.Problem / Context
Confirmed at
.github/workflows/release-production.yml:private-key: \${{ secrets.XGITHUB_APP_PRIVATE_KEY }}git push origin main+git tag+git push origin "$TAG"If the App private key leaked through a log, compromised action, or misconfigured runner, an attacker could push arbitrary commits to the default branch. CWE-250.
Identified by audit #2575 (H-3).
Scope
Add a
review-approvaljob gated by anenvironment: Release-Approval(with required reviewers) before the push step in themain_headpath:Document quarterly rotation of
XGITHUB_APP_PRIVATE_KEYindocs/release.md(or equivalent).(Stretch) Move to a PR-based release flow where CI opens a PR that a human merges, rather than direct push.
Acceptance criteria
review-approvaljob inserted before push step (main_head path)Release-ApprovalGitHub environment created with required reviewersRelated