Plugin: generator-release-notes
Generates concise, formatted release notes from the release context and commit history. Running as a generator phase plugin, its stdout overrides the default SEMREL_CHANGELOG value that provider and hook plugins receive — useful for creating a polished release description on GitHub Releases, GitLab Releases, or Slack/Teams notifications.
Installation
Section titled “Installation”Binary
Section titled “Binary”semrel plugin install @semrel/generator-release-notesConfiguration
Section titled “Configuration”Docker
Section titled “Docker”Pre-built, signed multi-platform images (linux/amd64, linux/arm64) are published on every release:
docker pull ghcr.io/semrels/generator-release-notes:latestVerify the image signature with cosign:
cosign verify ghcr.io/semrels/generator-release-notes:latest \ --certificate-identity-regexp 'https://github.com/SemRels/generator-release-notes/.github/workflows/release.yml.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.complugins: - uses: @semrel/generator-release-notes phase: generator # stdout captured by semrel → becomes SEMREL_CHANGELOG args: template: .semrel/templates/release-notes.tmpl # optional max_commits: "50" include_body: "false" signature: "true" # optional semrel.io footer, opt-in - uses: @semrel/provider-gitlab # receives the formatted notes as SEMREL_CHANGELOG - uses: @semrel/hook-slack # sameEnvironment variables
Section titled “Environment variables”| Name | Required | Default | Description |
|---|---|---|---|
SEMREL_PLUGIN_TEMPLATE | no | built-in | Path to a custom template. |
SEMREL_PLUGIN_MAX_COMMITS | no | 50 | Maximum commits to include. |
SEMREL_PLUGIN_INCLUDE_BODY | no | false | Include full commit bodies. |
SEMREL_PLUGIN_SIGNATURE | no | false | Append an opt-in footer linking to https://semrel.io after the generated notes. |
SEMREL_PLUGIN_AI_DISCLOSURE | no | false | Detect AI co-author trailers and append a badge to each AI-assisted line. |
SEMREL_PLUGIN_AI_DISCLOSURE_BADGE | no | 🤖 | Badge appended to AI-assisted lines. |
SEMREL_PLUGIN_AI_DISCLOSURE_SECTION | no | false | Append a collapsible 🤖 AI-Assisted Contributions section (requires SEMREL_PLUGIN_AI_DISCLOSURE=true). |
When SEMREL_PLUGIN_SIGNATURE=true, the generated notes end with:
---*Generated by [semrel.io](https://semrel.io)*