Automate releases on GitHub, GitLab, or Azure DevOps from your conventional commits.
yeet calculates the next semver or calver version, updates your changelog, opens a release PR/MR, and publishes the release once you merge it. It is a single static binary that you run in CI on every push to your release branch.
- One workflow for GitHub, GitLab, and Azure DevOps, including self-hosted installations
- Single repositories and monorepos
- Semver or calver, prerelease channels, and optional auto-merge
- One YAML file with a JSON schema for editor autocompletion
-
Install and preview locally.
brew install monkescience/tap/yeet export GITHUB_TOKEN=github_pat_xxx # or GITLAB_TOKEN, AZURE_DEVOPS_EXT_PAT yeet init yeet release --dry-run
yeet initcreates.yeet.yaml. See Authentication for token permissions. -
Add the release pipeline. Copy the example for your provider from CI setup, then commit it together with
.yeet.yaml. -
Release. Merge a
feat,fix, orperfcommit into the release branch. CI opens a release PR/MR. Merge it, and the next CI run creates the tag and the release.
brew install monkescience/tap/yeet
go install github.com/monkescience/yeet/cmd/yeet@v0.17.3 # x-yeet-version
docker run --rm ghcr.io/monkescience/yeet:v0.17.3 --help # x-yeet-versionOn Windows, use Scoop:
scoop bucket add monkescience https://github.com/monkescience/scoop-bucket
scoop install yeetRun yeet completion bash|zsh|fish|powershell for shell completions and yeet --help for all commands and flags.
To check a download, see Artifact verification.
| Guide | Covers |
|---|---|
| Authentication | Tokens, permissions, and self-hosted providers |
| CI setup | GitHub Actions, GitLab CI, and Azure Pipelines examples |
| Configuration | .yeet.yaml, monorepo targets, and version files |
| Writing commits | Commit format, breaking changes, and release notes |
| Versioning | Semver and calver rules |
| Changelog | Sections and issue links |
| Release PRs and MRs | Labels, reviewers, templates, and prerelease channels |
| Auto-merge | Merging release PRs/MRs automatically |
| Troubleshooting | Recovering from failed releases |
| Migrating from release-please | Moving an existing repository to yeet |
| Telemetry | What anonymous usage data is sent and how to turn it off |
The complete .yeet.yaml reference is yeet.schema.json.