Skip to main content

repo-release-tools

GitHub PyPI

REPO-RELEASE-TOOLS pipeline banner

repo-release-tools keeps release policy boring in the best possible way.

Use it from GitHub Marketplace when you want CI to validate branch names, commit subjects, and changelog policy. Install it from PyPI when you want a local CLI, hook integration, version bumps, and release-branch automation.

Choose your entry point

Use the GitHub Action for CI policy checks

Choose the action if you want pull requests and pushes to fail fast when a repo drifts from your release policy.

  • validates branch names such as feat/add-parser
  • validates Conventional Commit subjects
  • validates changelog policy in CI
  • optionally checks that the working tree stays clean
  • can run rrt doctor as a pre-release health gate
- uses: actions/checkout@v6
  with:
    fetch-depth: 0

- uses: Anselmoo/repo-release-tools@v1.14.1
  with:
    check-branch-name: "true"
    check-commit-subject: "true"
    check-changelog: "true"

See the full action guide: https://anselmoo.github.io/repo-release-tools/action/

See the full CLI and commands reference: https://github.com/Anselmoo/repo-release-tools/blob/main/docs/commands/rrt-cli.md

Use the Python package for local workflow automation

Choose the package if you want the developer-side tools: branch helpers, version bumps, config inspection, pre-commit hooks, and release automation. The Python package is published on PyPI and has a CI counterpart in the GitHub Action guide.

pip install repo-release-tools
rrt init
rrt branch new feat "add parser"
rrt git commit "add parser"
rrt git doctor
rrt bump patch

Or run the CLI without installing it permanently:

uvx repo-release-tools branch new feat "add parser"

If rrt is already installed and you want the bundled agent skill for Copilot, Claude, or Codex, install it with:

rrt skill install --target copilot-local
rrt skill install --target claude-local --target codex-local
rrt skill install --target codex-global --dry-run

For basic versioning, bump and ci-version can run without [tool.rrt] by auto-detecting repo-root pyproject.toml, package.json, Cargo.toml, .rrt.toml, or .config/rrt.toml. If multiple version files are found, they are updated together. Explicit config is for the nice extras: grouped releases, changelog paths, release branches, lock commands, generated files, and custom patterns.

Version targets also support common language/project files such as Python (pep621, python_version), Node/JS/TS (package_json), Go (go_version), Rust (cargo_toml), and .NET (csproj) so multi-language repositories can keep their release versions aligned.

Changelog workflows

Pick the style that matches how your repository lands changes.

incremental (default) — for teams that maintain changelog entries during development.

  • rrt-update-unreleased and rrt-changelog hooks stay active.
  • The GitHub Action resolves changelog-strategy: auto to per-commit.
  • rrt bump defaults to auto.

squash — for repositories that squash many commits into one PR merge.

  • Changelog write and check hooks skip enforcement.
  • The GitHub Action resolves changelog-strategy: auto to release-only.
  • rrt bump defaults to generate.

Minimal config:

[tool.rrt]
release_branch = "release/v{version}"
changelog_file = "CHANGELOG.md"
changelog_workflow = "incremental"  # or "squash"

[[tool.rrt.version_targets]]
path = "pyproject.toml"
kind = "pep621"

Native config is also supported in package.json ("rrt": { ... }) and Cargo.toml ([package.metadata.rrt] / [workspace.metadata.rrt]). Go repos should use .rrt.toml or .config/rrt.toml.

What the project includes

  • rrt CLI for branches, bumps, config inspection, and Git helpers
  • rrt-hooks for pre-commit, lefthook, husky, and CI validation
  • a reusable GitHub Action in action.yml
  • bundled agent skills for uvx and installed-CLI workflows
  • docs for branch policy, hook setup, and release workflows

Start with the doc that matches your task

License

repo-release-tools is released under the MIT License.

Some workflow ideas were initially inspired by joseluisq/gitnow, but the rrt git surface is intentionally narrower and reshaped around conventional branching, safe commits, and release automation.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repo_release_tools-1.14.1.tar.gz (403.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repo_release_tools-1.14.1-py3-none-any.whl (509.2 kB view details)

Uploaded Python 3

File details

Details for the file repo_release_tools-1.14.1.tar.gz.

File metadata

  • Download URL: repo_release_tools-1.14.1.tar.gz
  • Upload date:
  • Size: 403.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for repo_release_tools-1.14.1.tar.gz
Algorithm Hash digest
SHA256 7ca99a02e9a79497b184e54f74dc438581481f7ff36e01f2d2fd9042ecea087d
MD5 0e57134411391445acd5f69ec2f371e3
BLAKE2b-256 5b5b7a014663122293e9e81c52a30c05ea5b5ed01e9cc0cde194c7a83ec408ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_release_tools-1.14.1.tar.gz:

Publisher: cicd.yml on Anselmoo/repo-release-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file repo_release_tools-1.14.1-py3-none-any.whl.

File metadata

File hashes

Hashes for repo_release_tools-1.14.1-py3-none-any.whl
Algorithm Hash digest
SHA256 912a6198872db3b95c7525303069cdf2635e66669208082941159388f5cf2e5f
MD5 dc4791fe3c2f2fcd9359dcd56718f7ff
BLAKE2b-256 3de0bc2fc561660c606e3c917283019a8d101276cc1d1194f4ac3cbfba5fc0eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_release_tools-1.14.1-py3-none-any.whl:

Publisher: cicd.yml on Anselmoo/repo-release-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.15.0

2 files

This release

1.14.1 This release

2 files

1.14.0

2 files

1.13.1

2 files

1.13.0

2 files

1.12.0

2 files

1.11.2

2 files

1.11.1

2 files

1.11.0

2 files

1.10.1

2 files

1.10.0

2 files

1.9.1

2 files

1.9.0

2 files

1.8.3

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.0

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page