Skip to content

Plugin Examples

Official plugins are published in the SemRels organization.

github

ProviderPlugin for GitHub. Creates releases, uploads assets, and fetches commit history via the GitHub REST API.

conventional-commits

CommitAnalyzerPlugin that follows the Conventional Commits specification to determine the version bump.

markdown-changelog

ChangelogGeneratorPlugin that renders release notes as a Markdown CHANGELOG.md section.

go-mod-updater

FilesUpdaterPlugin that stamps the next version into Go source files via ldflags-compatible version variables.

packager-nfpm

PackagerPlugin that builds Linux packages (deb, rpm, apk) through nfpm.

publisher-oci

PublisherPlugin that uploads artifacts to OCI registries with oras push.

publisher-generic-http

PublisherPlugin that uploads artifacts to custom HTTP endpoints.

Go binaries + package artifacts + OCI publishing

Section titled “Go binaries + package artifacts + OCI publishing”
plugins:
- uses: updater-go
args:
file: internal/version/version.go
var_name: Version
- uses: packager-nfpm
args:
config: packaging/nfpm.yaml
target: dist/packages
packagers: deb,rpm,apk
- uses: publisher-oci
args:
ref: ghcr.io/semrels/myapp:{version}
artifacts: dist/packages/myapp_amd64.deb,dist/packages/myapp_amd64.rpm
plugins:
- uses: updater-docker
args:
file: Dockerfile
arg_name: VERSION
- uses: publisher-generic-http
args:
url: https://uploads.example.com/releases/{version}/{artifact}
method: PUT
token: ${UPLOAD_TOKEN}
artifacts: dist/images/myapp-oci.tar
plugins:
- uses: updater-helm
args:
file: charts/myapp/Chart.yaml
update_app_version: "true"
- uses: publisher-oci
args:
ref: ghcr.io/semrels/charts/myapp:{version}
artifacts: dist/charts/myapp-{version}.tgz

Community-contributed plugins will be listed in the semrel registry once it launches. To have your plugin listed, open an issue or PR in the main repository.