Workflow files do not enforce a process by themselves. The settings in this chapter are part of the model, and a repository has not adopted it until they are in place and have been exercised with a real pull request.

Risks and controls for settings enforcement§

A workflow file can describe a gate that repository settings do not enforce, or a required check name can refer to no actual job. Verify effective settings and exercise the boundary. The read-only settings checker reports hidden answers as unknown and identifies mismatches; a real PR with a deliberately failing check confirms whether merging is blocked. Check release and Pages environment restrictions separately. An API configuration report does not establish that a reporting channel works, a reviewer acted, or a required test covers the right behavior.

Actions§

Branch rules§

Protect the default branch with a ruleset:

Verify the rules with a real pull request: a failing check must block the merge, and a check name that no job produces must be noticed before it is relied on. If a required name identifies both a check run and a commit status, GitHub requires both.

Platform repositories that publish linker inputs allow merge commits. The publisher binds its evidence to exact commit SHAs, and a squash would replace them; see Preserve reviewed history and authority.

Releases§

Pages§

Dependencies§

Keep a weekly github-actions entry in Dependabot. Shared actions are pinned by full SHA, and Dependabot proposes each new one as a pull request. Review it like any other dependency update, and never replace a full SHA with a branch or tag.

Reporting§

Enable private vulnerability reporting and keep SECURITY.md accurate.

Confirm the settings§

The check-settings task of roc-automation reads a repository’s settings from GitHub and reports each line of this chapter as passing or failing. Run it from a checkout of roc-automation and name the repository:

blueprint run check-settings -- <owner>/<name>

Three answers only a maintainer can give are flags:

--platform

The repository publishes linker inputs. The report notes whether merge commits are allowed.

--reviewer-required

The project has more than one maintainer. The release environment must have a required reviewer.

--no-site

The repository publishes no site. The Pages lines are left out.

Each failing line is followed by its fix: the settings page to change, or the gh api command that changes it. A setting that GitHub would not show is reported as unknown, never as passing. The task exits with an error while any line fails or is unknown.