Setup tagpr
This skill guides you through setting up tagpr for automated release management.
What is tagpr?
tagpr is a GitHub Actions tool that:
- •Automatically creates pull requests for pending releases
- •Suggests semantic version increments based on commit history
- •Tags commits when PRs merge
- •Creates GitHub Releases automatically
Prerequisites
GH_PAT (Personal Access Token): tagpr requires a GitHub Personal Access Token with repo and workflow permissions to push tags and trigger subsequent workflows. Create a PAT and add it as a repository secret named GH_PAT.
Why not GITHUB_TOKEN? The default token cannot trigger other workflows when pushing tags, which is required for release workflows.
Setup Workflow
- •
Determine the project type:
- •Go project with goreleaser? → See references/goreleaser-integration.md
- •TypeScript/Node.js project? → Follow "TypeScript/Node.js workflow" below
- •Other projects → Follow "Standard workflow" below
- •
Standard workflow:
- •Create GH_PAT and add as repository secret
- •Create
.tagprconfiguration file - •Create GitHub Actions workflow file
- •
TypeScript/Node.js workflow:
- •Create GH_PAT and add as repository secret
- •Create
.tagprconfiguration file withversionFileandcommand - •Create GitHub Actions workflow with asset upload
Configuration Files
.tagpr Configuration
Create .tagpr file at the repository root.
Standard configuration (version from git tags only):
[tagpr]
releaseBranch = main
versionFile = -
vPrefix = true
release = draft
Go project with version.go:
[tagpr]
releaseBranch = main
versionFile = version.go
vPrefix = true
release = draft
TypeScript/Node.js project (e.g., Obsidian plugin):
[tagpr]
releaseBranch = main
versionFile = manifest.json,package.json
vPrefix = true
changelog = true
release = draft
majorLabels = major
minorLabels = minor
command = npm run build
Configuration Options
| Option | Description | Default |
|---|---|---|
releaseBranch | Target branch for releases | main |
versionFile | File(s) containing semantic version. Use - for git tags only. Multiple files can be comma-separated | - |
vPrefix | Whether tags include v prefix (e.g., v1.2.3) | true |
release | GitHub Release creation: true, draft, or false. Use draft for immutable releases | true |
changelog | Enable/disable changelog updates | true |
command | Command to run before release (for build/file modifications) | - |
majorLabels | Custom labels for major version increment | tagpr:major |
minorLabels | Custom labels for minor version increment | tagpr:minor |
commitPrefix | Customize commit message prefix | [tagpr] |
GitHub Actions Workflow
See references/workflow-templates.md for workflow templates.
Goreleaser Integration
For Go projects using goreleaser, see references/goreleaser-integration.md.
Version Determination
tagpr determines the next version using:
- •
Label-based: If merged PRs have labels:
- •
tagpr:majorormajor→ Major version bump - •
tagpr:minororminor→ Minor version bump - •No label → Patch version bump
- •
- •
Manual override: Edit the version file or apply labels to the tagpr PR
Verification Steps
After setup, verify by:
- •Push a commit to the release branch
- •Check that tagpr creates a release PR
- •Merge the release PR
- •Verify that a tag and GitHub Release are created