Check ID:
Provider: GitHub
Service:
Severity: HIGH
Categories:
Resource type:
repository_default_branch_requires_signed_commitsProvider: GitHub
Service:
repositorySeverity: HIGH
Categories:
software-supply-chainResource type:
NotDefinedWhat this check verifies
GitHub repository default branch enforces signed and verified commits (Require signed commits), allowing only commits with valid cryptographic signatures to be pushed or merged.
Risk
Without required signing, commit authorship can be spoofed and unverified changes added, impacting integrity.- Backdoor injection
- History tampering and forged identities
- Release pipeline abuse and supply-chain compromise
Recommendation
EnforceRequire signed commits on default and release branches.
- Standardize GPG/SSH/S/MIME for humans and bots
- Protect and rotate signing keys; least privilege on bypass
- Pair with required reviews and status checks for defense-in-depth
Remediation
- CLI
- Terraform
- Dashboard steps
gh api -X POST repos/<OWNER>/<REPO>/branches/<DEFAULT_BRANCH_NAME>/protection/required_signatures
References
- https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-signed-commits
- https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification
Where this check fires
This check runs on every scheduled scan against your GitHub account. Findings appear at Cloud Security → Findings filterable byCheck ID = repository_default_branch_requires_signed_commits. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to GitHub checks