These are the recommended GitHub settings for the master branch once the
repository is public. They are recommendations — apply them in
Settings → Branches → Branch protection rules (or Rulesets). Nothing here
is enforced automatically by the repo; the maintainer must enable it in GitHub.
Status-check names below match the workflow jobs actually defined in
.github/workflows/. Only require checks that exist and have run at least once (GitHub only lists checks it has seen).
- Branch name pattern:
master
- ✅ Require a pull request before merging
- ✅ Require approvals: 1 (raise as the team grows)
- ✅ Require review from Code Owners (a
CODEOWNERSfile exists) - ✅ Dismiss stale approvals when new commits are pushed
- ✅ Require conversation resolution before merging
- ✅ Require status checks to pass before merging
- ✅ Require branches to be up to date before merging
- Required checks (select the ones that have run at least once):
CI / RustCI / WalletCI / SiteCI / ExtensionCI / Market APIAndroid / Debug Build SanitySecurity / GitleaksSecurity / Cargo DenySecurity / Cargo AuditSecurity / NPM Audit(optional — currently non-blocking inside the job)CodeQL / Analyze (javascript-typescript)License Audit / Rust LicensesLicense Audit / Frontend LicensesCoverage / Wallet (JS/TS)(optional — informational)Coverage / Rust(optional — informational)
- ✅ Block force pushes
- ✅ Block deletions
- ✅ Restrict who can push to matching branches (maintainers only)
- ⚙️ Require linear history — optional (enable if you prefer squash/rebase only)
- ⚙️ Require signed commits — optional but recommended for a wallet project
If you enable "Require signed commits", document it in CONTRIBUTING.md and make
sure contributors set up commit signing (GPG, SSH, or gitsign). This is
separate from the DCO Signed-off-by trailer.
The project uses a DCO Signed-off-by trailer (see CONTRIBUTING.md). To
enforce it on PRs, either:
- install the DCO GitHub App (https://github.com/apps/dco), or
- add a DCO-check action to CI.
If you enforce DCO, add its check (e.g. DCO) to the required status checks list.
Recommended:
- ✅ Allow squash merging (default)
- ⬜ Allow merge commits (optional)
- ✅ Allow rebase merging (optional)
- ✅ Automatically delete head branches after merge
- Branch protection cannot be created by the build agent; it requires repo-admin access in GitHub.
- Do not require checks that do not yet exist; merges would be blocked indefinitely.