21stdigital/SAVR Action
GitHub Action that keeps draft releases ready so teams can publish manually from the GitHub Releases UI.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 29, 2026
- License
- MIT
Pinned Snippet
uses: 21stdigital/savr-action@3a429c8eb16c876553465a5f793dfa740a87feca # v2.1.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| github-token | Token used for GitHub API authentication | yes | — |
| tag-prefix | The prefix for version tags (default: v). Must be 20 characters or fewer and contain only letters, numbers, dots (.), hyphens (-), underscores (_), and slashes (/). | no | v |
| release-branch | The branch to use for the release | no | main |
| dry-run | Boolean flag to simulate the process without creating or updating a release | no | false |
| release-notes-template | A template to format the generated release notes | no | {{#if features}} ### ✨ Features {{#each (groupByScope features)}} #### {{this.scope}} {{#each this.commits}} - {{this.subject}} {{/each}} {{/each}} {{/if}} {{#if fixes}} ### 🐛 Fixes {{#each (groupByScope fixes)}} #### {{this.scope}} {{#each this.commits}} - {{this.subject}} {{/each}} {{/each}} {{/if}} {{#if breaking}} ### 💥 Breaking Changes {{#each (groupByScope breaking)}} #### {{this.scope}} {{#each this.commits}} - {{this.subject}} {{/each}} {{/each}} {{/if}} |
| initial-version | The initial version to start from | no | 1.0.0 |
Outputs
| name | description |
|---|---|
| skipped | Whether release creation was skipped (true when dry-run, no version bump, or no new commits) |
| dry-run | Whether the action ran in dry-run mode |
| version | The calculated version for the release |
| tag | The full tag name including prefix |
| release-url | The URL of the created or updated draft release |
| release-id | The ID of the created or updated draft release |