Skip to content

SemRels/generator-release-notes

Repository files navigation

generator-release-notes

Latest Release

Generates release notes text for providers and notification hooks.

This plugin is distributed as the standalone Go binary semrel-plugin-generator-release-notes. Semrel executes the binary as a subprocess, provides plugin configuration through SEMREL_PLUGIN_* environment variables, provides release context through SEMREL_* environment variables, reads standard output, and treats exit code 0 as success and any non-zero exit code as failure. Install the binary in ~/.semrel/plugins/ or anywhere on your $PATH.

Installation

Binary

go install github.com/SemRels/generator-release-notes/cmd/plugin@latest

Docker

Pre-built, multi-platform images (linux/amd64, linux/arm64) are published to the GitHub Container Registry on every release:

docker pull ghcr.io/semrels/generator-release-notes:latest

Images are signed with cosign and include a full SBOM attestation. Verify the signature:

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.com

Configuration

plugins:
  - name: generator-release-notes
    path: ~/.semrel/plugins/semrel-plugin-generator-release-notes
    env:
      SEMREL_PLUGIN_TEMPLATE: ".semrel/templates/release-notes.tmpl"
      SEMREL_PLUGIN_MAX_COMMITS: "50"
      SEMREL_PLUGIN_INCLUDE_BODY: "false"

SEMREL_PLUGIN_* variables

Name Required Description Default
SEMREL_PLUGIN_TEMPLATE Optional Path to a custom template file. Built-in template
SEMREL_PLUGIN_MAX_COMMITS Optional Maximum number of commits to include. 50
SEMREL_PLUGIN_INCLUDE_BODY Optional Include full commit bodies in the generated notes. false
SEMREL_PLUGIN_SIGNATURE Optional Append an opt-in footer line linking to semrel.io after the generated release notes output. false
SEMREL_PLUGIN_AI_DISCLOSURE Optional Detect AI co-author trailers and append a badge to each AI-assisted commit line. false
SEMREL_PLUGIN_AI_DISCLOSURE_BADGE Optional Badge appended to AI-assisted lines. 🤖
SEMREL_PLUGIN_AI_DISCLOSURE_SECTION Optional Append a collapsible "🤖 AI-Assisted Contributions" section (requires SEMREL_PLUGIN_AI_DISCLOSURE=true). false
SEMREL_PLUGIN_NEW_CONTRIBUTORS Optional Render a "New Contributors" section listing first-time contributors for this release (requires contributor data via SEMREL_PLUGIN_CONTRIBUTORS_JSON). true
SEMREL_PLUGIN_CONTRIBUTORS_JSON Optional JSON array of first-time contributors for this release, e.g. [{"name":"Alice","login":"alice","pr":42}]. Can be populated from semrel core's SEMREL_CONTRIBUTORS (filter to firstContribution:true).
SEMREL_PLUGIN_MVP Optional Render a "🏆 MVP" section highlighting the top contributor for this release (requires SEMREL_PLUGIN_NEW_CONTRIBUTORS=true and non-empty contributors). false
SEMREL_PLUGIN_MVP_METRIC Optional MVP ranking metric: commits (default, PR-reference count) or impact (weights breaking changes/features more heavily). commits

SEMREL_* release context used

Variable Description
SEMREL_VERSION Resolved release version for the current run.
SEMREL_TAG_NAME Git tag name semrel will create or publish.
SEMREL_NEXT_VERSION Next version computed by semrel for the release.
SEMREL_CURRENT_VERSION Current version before the new release is applied.
SEMREL_BRANCH Git branch associated with the current release run.
SEMREL_REPOSITORY_URL Repository URL used to render contributor links and MVP mentions.

Example behavior

The plugin renders release notes text that can be published by provider plugins or reused in notifications.

Set SEMREL_PLUGIN_SIGNATURE=true to append this footer after the generated notes:

---
*Generated by [semrel.io](https://semrel.io)*

License

Apache-2.0

About

Release notes generator plugin for Semantic Release

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Generated from SemRels/plugin-template