Skip to content

Official Plugins

Official SemRel plugins are standalone Go binaries. Configure them through args: in .semrel.yaml, which SemRel exposes as SEMREL_PLUGIN_* environment variables.

You can also load plugin secrets from a .env file with semrel --env-file .env release. A successful plugin exits with status 0; any non-zero exit code stops the pipeline.

PluginCategoryDescription
condition-genericConditionRuns a shell command and only passes when that command exits with status 0.
condition-gitea-actionsConditionConfirms the current release is running inside Gitea Actions.
condition-github-actionsConditionConfirms the current release is running inside GitHub Actions.
condition-gitlab-ciConditionConfirms the current release is running inside GitLab CI.
hook-emailHookSends release notifications through SMTP after a SemRel run.
hook-gitpluginHookPushes release-related changes to another Git repository or branch.
hook-jiraHookUpdates Jira release metadata after SemRel publishes a version.
hook-matrixHookPosts release notifications to a Matrix room.
hook-slackHookPosts release notifications to Slack through an incoming webhook.
hook-teamsHookSends release notifications to Microsoft Teams via Incoming Webhooks.
analyzer-conventionalAnalyzerDetermines the next SemVer bump from Conventional Commit messages.
analyzer-defaultAnalyzerDetermines the next SemVer bump by matching commit messages against regular expressions.
generator-changelog-htmlGeneratorGenerates an HTML changelog for the pending release.
generator-changelog-mdGeneratorGenerates a Markdown changelog for the pending release.
generator-release-notesGeneratorBuilds concise release notes from the current release context and commit history.
updater-cargoUpdaterUpdates the version field in a Rust Cargo manifest.
updater-dockerUpdaterUpdates a version argument inside a Dockerfile.
updater-goUpdaterUpdates a Go source file that exposes the project version.
updater-gradleUpdaterUpdates the version key in a Gradle properties file.
updater-helmUpdaterUpdates chart metadata in a Helm Chart.yaml file.
updater-homebrewUpdaterUpdates a Homebrew formula with the new release URL and checksum.
updater-mavenUpdaterUpdates the version declared in a Maven pom.xml file.
updater-npmUpdaterUpdates the version field in a package.json file.
updater-nugetUpdaterUpdates the version property inside a .csproj or other NuGet project file.
updater-pythonUpdaterUpdates Python package version metadata in pyproject.toml or a similar backend file.
updater-terraformUpdaterUpdates a Terraform variable that stores the application version.
provider-bitbucketProviderPublishes release information to Bitbucket from the SemRel release context.
provider-gitProviderCreates git tags and optionally pushes branch updates through the local Git remote.
provider-giteaProviderPublishes releases to a Gitea instance.
provider-githubProviderPublishes releases to GitHub using the generated SemRel tag, version, and changelog.
provider-gitlabProviderPublishes releases to GitLab.