SAVR
GitHub Action · Conventional Commits

Always-ready draft releases.

SAVR updates release notes on every push so your team can publish manually from the GitHub Releases page when ready.

  • No forced auto-publish
  • Publish from the GitHub Releases UI
Why SAVR

Prepared automatically.
Published deliberately.

01

Better than auto-publish when review matters.

Fully automated tools are great when you want releases to ship themselves. SAVR is for teams that want the release prepared continuously but still want a human to decide when it goes live.

REVIEWED
02

Better than manual workflow dispatch when friction matters.

Some teams keep manual control by triggering a release workflow. SAVR removes that extra step by keeping the release draft ready inside GitHub itself.

ZERO FRICTION
03

Narrow by design.

SAVR focuses on release preparation. It does not try to own package publishing, changelog files, or every release concern in your CI pipeline.

FOCUSED
Comparison

Choose the workflow that matches your release process.

Approach Best when
Fully automated release tools You want CI to publish releases without human review.
Manual release workflows You are comfortable triggering a release job each time someone cuts a release.
SAVR LATEST You want the release prepared continuously and published manually from the GitHub Releases UI.
Fit check

Use it when the release draft itself is the workflow.

You will feel at home.

  • You already use Conventional Commits
  • You want the next release visible before it ships
  • You want to publish directly from GitHub
  • You want manual control without manual release jobs

Pick a different tool.

  • You want end-to-end automated package publishing
  • You need changelog files managed automatically
  • You do not want Conventional Commits
  • You are happy with a workflow_dispatch release process
Quick start

Add one workflow. Stop thinking about releases.

.github/workflows/release-draft.yml
name: Release draft

on:
  push:
    branches: [main]

permissions:
  contents: write

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
      - uses: 21stdigital/savr-action@v2
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}