davegarvey/Grubble - Semantic Version Bump
Automatically bump semantic version based on conventional commits
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 9, 2026
- License
- MIT
Pinned Snippet
uses: davegarvey/grubble@5891c777d028f21508070f340a2c7e7417458674 # v5.0.1tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| push | Push changes to remote | no | false |
| tag | Create git tag for the version | no | false |
| release-notes | Include release notes in the git tag annotation | no | false |
| raw | Output only the new version string (dry run, no changes) | no | false |
| quiet | Suppress commit list output | no | false |
| preset | Versioning strategy (node, rust, git) | no | "" |
| tag-prefix | Prefix for git tags | no | "" |
| commit-prefix | Prefix for commit messages | no | "" |
| package-files | Comma-separated list of files to update | no | "" |
| git-user-name | Git user name for commits | no | github-actions[bot] |
| git-user-email | Git user email for commits | no | 41898282+github-actions[bot]@users.noreply.github.com |
| update-major-tag | Update major version tag (e.g., v4 -> v4.x.x) | no | false |
| update-minor-tag | Update minor version tag (e.g., v4.1 -> v4.1.x) | no | false |
| changelog | Generate and maintain a CHANGELOG.md file | no | false |
| dry-run | Check if bump is needed without making changes. Does not modify any files; exit code 0 in all non-error cases. Use --bump-type to detect whether a bump would occur. | no | false |
| bump-type-only | Output only the bump type and exit (major, minor, patch, or none) | no | false |
| branch | Push the bump to this branch instead of HEAD (e.g., release/v0.35.0). When set, uses `git push --set-upstream origin <branch>`. The branch is created locally if it does not exist. | no | "" |
| create-pr | After pushing, automatically open a pull request from the branch to the default branch. Requires `push: true`. When `branch` is not set, it is auto-generated as `release/v<version>`. | no | false |
| auto-merge | Enable auto-merge with squash on the created PR. Requires `create-pr` to be set. The PR will merge when branch protection requirements (status checks, reviews) pass. WARNING: GitHub does not allow a bot-created PR to approve itself, so if your branch requires review approval the PR will sit in `Waiting for approval` indefinitely. Prefer the release-please flow (no `auto-merge`; a human merges the release PR) when reviews are required — see the README. | no | false |
| token | Optional: a GitHub token (PAT or GitHub App installation token) to use for git push authentication. Only needed if you must bypass branch protection. When set, the remote URL is rewritten with the token before grubble runs. Prefer the `branch` + `create-pr` flow instead. | no | "" |
| release-from-pr | Run `grubble --release-from-pr <NUMBER>` instead of the bump. When set, the bump-related steps are skipped and the resolved tag spec is emitted as the `release-spec` output. Use this in a post-merge workflow step after a release PR has been merged. Requires `GH_TOKEN` or `GITHUB_TOKEN` in the env. The Action is read-only in this mode (no commits, tags, or pushes). | no | "" |
Outputs
| name | description |
|---|---|
| version | The new version number (empty in `release-from-pr` mode) |
| previous-version | The previous version number (empty in `release-from-pr` mode) |
| bump-type | The type of version bump (major, minor, patch, none; empty in `release-from-pr` mode) |
| branch | The branch that was pushed to (auto-generated or user-specified; empty in `release-from-pr` mode) |
| release-spec | JSON tag spec from `grubble --release-from-pr`. Contains `version`, `tag_name`, `major_tag_name`, `merge_commit_sha`, `title`, and `body`. Empty when `release-from-pr` is not set. |