Skip to content

openregs bump

Open the release-bump pull request in a consuming repository.

Move a consuming repository’s pinned release forward by one release, on a branch, with the impact report as the request body. The pin is the release: field of that repository’s own controls.yaml — the file already states which corpus its atom ids were written against — and a bump rewrites that one line, preserving every comment around it, then re-parses the file and refuses the bump if anything else moved. The branch is cut from a temporary clone and pushed to the repository’s remote, so the caller’s working tree is never touched; turning that branch into a pull request (gh pr create) or a merge request (git push -o merge_request.create) belongs to the CI integration that calls this. Exits 1 when an atom the mapping maps to a control changed SUBSTANTIVELY, which is openregs impact’s contract unchanged, so the check is red exactly when the bump needs a control owner before it merges.

openregs bump [-h] [--repo <path>] --to <regime>@<tag> [--map <path>] [--from <registry>]
[--corpus <path>] [--trust <path>] [--remote <url>] [--base <branch>]
[--branch <name>] [--out <dir>] [--push-option <option>] [--no-push]
Option
--repo <path>the consuming repository’s checkout; its origin is where the branch is pushed (default .)
--to <regime>@<tag>the release to pin to, for example fixreg@2025.04 (required)
--map <path>the mapping to bump and report against, relative to the repository root (default: controls.yaml). It is also the pin file: its release: field is the pin (default controls.yaml)
--from <registry>pull the release from this registry and verify it — signatures, digests, provenance, log inclusion — before anything is read from it. Without this, the release is read from —corpus
--corpus <path>a checkout holding the release under regimes/<regime>/releases/<tag>/. Defaults to the checkout this command is running from
--trust <path>the trust roster —from is verified against (default: the checkout’s config/)
--remote <url>push the branch here instead of the repository’s origin
--base <branch>the branch the bump is cut from and opened against (default: main) (default main)
--branch <name>the branch to open (default: openregs/bump-<regime>-<tag>)
--out <dir>where the four output files are written (default: .openregs/): impact.json, pull-request.md, pull-request-title.txt, verdict.txt (default .openregs)
--push-option <option>a git push option, repeatable. This is how a GitLab pipeline opens the merge request: —push-option merge_request.create (repeatable)
--no-pushprepare the branch and the report without pushing anything (a dry run)

Rendered from openregs/openregs@cbe9615:tooling/openregs/cli/main.py