This repository is expected to operate like a production platform repository, not an informal project repo.
main and staging branches.github/workflows/ci.yml.github/workflows/dependency-review.yml.github/workflows/codeql.yml.github/workflows/secret-scan.yml.github/workflows/release-drafter.yml.github/workflows/deploy-staging.yml.github/workflows/deploy-production.yml.github/workflows/review-reminder.yml.github/CODEOWNERS.github/pull_request_template.md.gitmessage.txt.githooks/commit-msgtools/github/configure-repository.shtools/github/bootstrap-teams.shtools/github/configure-environments.shtools/github/seed-placeholder-config.shtools/github/apply-branch-protection.shBecause branch protection and environment protection live in GitHub itself, the following steps must be run against a real remote repository:
gh authenticated as a repository adminThis repository is currently designed to run on the lowest-cost GitHub footprint possible. That choice has a real trade-off:
For a tolling platform that should remain private, the practical recommendation is:
For a new repository, run:
bash tools/github/configure-repository.sh <owner>/<repo>bash tools/github/bootstrap-teams.sh <owner> <owner>/<repo> if the owner is an organizationbash tools/github/configure-environments.sh <owner>/<repo>bash tools/github/seed-placeholder-config.sh <owner>/<repo>bash tools/github/apply-branch-protection.sh <owner>/<repo>This sequence makes the repository usable immediately while still leaving sensitive deployment values as explicit placeholders that can be filled during infrastructure onboarding.
For personal public repositories used to publish GitHub Pages:
CODEOWNERS, not organization teamsmain/docsIf GitHub merge queue is available on the target plan, enable it for main. It reduces broken protected branches by validating the merge result before it lands.
If merge queue is not available, keep main protected with strict status checks and use staging as the only merge source for production promotion.