This file is the repository-side source of truth for GitHub settings that cannot be enforced by committed files alone.
Last audited through the GitHub API: 2026-09-20.
At audit time:
- no repository rulesets were configured,
- GitHub Discussions was disabled,
- squash, merge-commit, and rebase merge methods were all enabled,
- merged branches were not deleted automatically,
- pull-request branches did not expose the update-branch control,
- private vulnerability reporting could not be verified through the connected GitHub integration,
- classic branch protection could not be read through the connected integration and is therefore not assumed absent.
Create an active branch ruleset named main-quality-gate.
Target:
- default branch only.
Bypass:
- no routine bypass actors.
Rules:
- restrict deletions,
- block force pushes,
- require linear history,
- require a pull request before merging,
- required approving reviews: 0 while the repository has only one write-capable maintainer,
- require all review conversations to be resolved,
- allow squash merges for protected-branch pull requests,
- require status checks before merging,
- require branches to be up to date before merging.
Required status checks:
quality (3.10)quality (3.12)quality (3.14)package
Why review count is zero is documented in GOVERNANCE.md. Increase it to one and require CODEOWNER review only after an independent write-capable maintainer exists.
If any CI job is renamed, update this ruleset together with the workflow change. A stale required-check name can block every merge.
Create an active tag ruleset named release-tag-immutability.
Target:
- tags matching
v*.*.*.
Rules:
- restrict deletions,
- restrict updates.
Do not restrict tag creation; the release process must still be able to create a new version tag.
Published versions are repaired through the Release object or superseded by a new version. Existing version tags are never moved.
Set:
- squash merge: enabled,
- merge commits: disabled,
- rebase merge: disabled,
- automatically delete head branches: enabled,
- allow pull-request branches to be updated: enabled,
- default squash title: pull request title or commit + PR title according to maintainer preference.
Auto-merge may be enabled because required checks remain authoritative, but it is optional.
For this public repository:
- enable Private vulnerability reporting,
- keep Dependabot alerts and security updates enabled when available,
- subscribe maintainers to security-alert notifications.
Private vulnerability reporting gives reporters a structured private disclosure path and avoids forcing exploit details into public issues.
Enable GitHub Discussions.
Recommended use:
- Issues: reproducible defects, compatibility reports, actionable proposals.
- Discussions: questions, usage patterns, design exploration, examples, and early ideas.
- Security advisories: vulnerability details.
Disable the repository Wiki unless the project intentionally chooses to maintain a second documentation surface. The versioned docs/ directory should remain the canonical documentation source.
Re-read the repository API and ruleset pages and confirm:
has_discussionsis true,- only squash merge is enabled,
delete_branch_on_mergeis true,allow_update_branchis true,main-quality-gateis active with the four required CI checks,release-tag-immutabilityis active forv*.*.*,- private vulnerability reporting exposes a Report a vulnerability path on the Security page.
Do not mark a platform setting as complete solely because this document requests it.