Skip to content

SemRels/semrel-plugins

Repository files navigation

semrel-plugins

Official first-party plugin catalog for semrel — the semantic release tool.

All plugins follow the semrel plugin contract: they are standalone binaries that communicate via environment variables, write JSON to stdout (analyzers only), and exit with a meaningful code.

Official plugins

Analyzers

Analyzers inspect commits and determine the next semantic version.

Plugin Repository Description
analyzer-conventional SemRels/analyzer-conventional Conventional Commits (feat/fix/BREAKING CHANGE)
analyzer-default SemRels/analyzer-default Simple keyword-based bump detection

Generators

Generators produce release artefacts from commit history.

Plugin Repository Description
generator-changelog-md SemRels/generator-changelog-md Markdown changelog (CHANGELOG.md)
generator-changelog-html SemRels/generator-changelog-html HTML changelog
generator-release-notes SemRels/generator-release-notes GitHub/GitLab release notes body

Providers

Providers publish the release to a hosting platform.

Plugin Repository Description
provider-github SemRels/provider-github GitHub Releases + asset upload
provider-gitlab SemRels/provider-gitlab GitLab Releases
provider-gitea SemRels/provider-gitea Gitea Releases
provider-bitbucket SemRels/provider-bitbucket Bitbucket Cloud
provider-git SemRels/provider-git Plain git tag push

Conditions

Conditions gate the release pipeline — a non-zero exit aborts the release.

Plugin Repository Description
condition-github-actions SemRels/condition-github-actions Ensures running in GitHub Actions on the correct branch
condition-gitlab-ci SemRels/condition-gitlab-ci Ensures running in GitLab CI on the correct branch
condition-gitea-actions SemRels/condition-gitea-actions Ensures running in Gitea Actions
condition-generic SemRels/condition-generic Generic branch/env condition checks

Hooks

Hooks run before or after release for notifications and integrations.

Plugin Repository Description
hook-slack SemRels/hook-slack Slack release notification
hook-teams SemRels/hook-teams Microsoft Teams notification
hook-email SemRels/hook-email Email notification via SMTP
hook-matrix SemRels/hook-matrix Matrix (Element) notification
hook-jira SemRels/hook-jira Jira version tracking
hook-gitplugin SemRels/hook-gitplugin Git-based plugin hooks

Updaters

Updaters bump version strings in project files after the release version is determined.

Plugin Repository Description
updater-npm SemRels/updater-npm package.json version field
updater-go SemRels/updater-go Go module version constant
updater-cargo SemRels/updater-cargo Cargo.toml version field
updater-python SemRels/updater-python pyproject.toml / setup.py version
updater-maven SemRels/updater-maven pom.xml version element
updater-gradle SemRels/updater-gradle build.gradle / build.gradle.kts version
updater-docker SemRels/updater-docker Dockerfile ARG/LABEL version
updater-helm SemRels/updater-helm Helm Chart.yaml version
updater-terraform SemRels/updater-terraform Terraform module version constraint
updater-nuget SemRels/updater-nuget NuGet .csproj version
updater-homebrew SemRels/updater-homebrew Homebrew formula version

Plugin contract

See the plugin development guide for a step-by-step tutorial on writing custom plugins.

All plugins communicate via:

  • Environment variables → plugin: release context (SEMREL_*) and plugin config (SEMREL_PLUGIN_*)
  • stdout (analyzers only): JSON analysis result
  • stderr: logs and plugin_schema_version=N announcement
  • Exit code: 0 = success, non-zero = abort release

Contributing

Each plugin lives in its own repository under the SemRels organization. See CONTRIBUTING.md if present, or open an issue in the relevant plugin repo.

About

Plugin SDK library and built-in plugins for go-semrel

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors