The checklist
The whole secrets/permissions track condenses to a checklist worth running on every repo. Most teams pass 5 of the 10 on first audit.
- Org default for GITHUB_TOKEN is restricted (read-all). Set in Org Settings → Actions → Workflow permissions.
- Every workflow has explicit
permissions:at the top level, defaulting to read. - Third-party actions are SHA-pinned — never floating tags for actions you don't own.
- Cloud auth uses OIDC — no long-lived keys for AWS / GCP / Azure.
- Production environment has required reviewers + branch policy.
- Secret scanning + push protection enabled on the repo.
- No
pull_request_target+ checkout of PR head SHA anywhere. - Dependabot version updates enabled with automerge for security patches.
- CodeQL workflow exists and runs weekly.
- Secret rotation procedure documented — when (quarterly), how (provider rotate + repo update), and tested at least once.