GitHubReleaseNotes Stef Heyenrath
winget install --id=StefHeyenrath.GitHubReleaseNotes -e
Generate Release Notes in MarkDown format from a GitHub project.
GitHubReleaseNotes is a command-line tool designed to generate release notes in Markdown format from GitHub projects. It automates the process of compiling information about issues, pull requests, and milestones into structured and organized documentation for software releases.
Key Features:
- Generates detailed release notes directly from GitHub repositories using Oktokit and LibGit2Sharp.
- Supports custom templates with Handlebars syntax to tailor the output format.
- Provides options to skip empty releases or exclude specific labels from the generated content.
- Command-line interface with flexible arguments for path, output location, version naming, language settings, and more.
- Authentication support via GitHub API token or username/password for private repositories.
- Multi-language date formatting based on ISO-639-1 codes.
Audience & Benefit: Ideal for developers, DevOps engineers, and project managers working with GitHub to streamline the creation of consistent and comprehensive release notes. This tool saves time by automating documentation tasks while ensuring accuracy and adherence to project standards.
Available via winget installation for easy setup.
README
GitHubReleaseNotes
Generate Release Notes from GitHub.
dotnet tool
Installation
dotnet tool install --global GitHubReleaseNotes
WinGet
winget install -e --id StefHeyenrath.GitHubReleaseNotes
Chocolatey
Installation
choco install GitHubReleaseNotes
Usage
GitHubReleaseNotes can be run inside a git repository.
GitHubReleaseNotes --path . --output ReleaseNotes.md --version 1.0.4.17 --language en --skip-empty-releases --exclude-labels question
Arguments:
--path
: The path from the git repository. If not supplied, the current folder is used.--output
: The location from the generated Release Notes. If not supplied, the output is written to the console.--version
: Define a custom version name for the latest release instead of the value "next".--language
: Provide the language (two letter according to ISO-639-1) which is used to format the dates. If not provided, "en" is used. It's also possible to use a value like "system", which takes the current system ui language.--skip-empty-releases
: Define this optional argument to skip writing releases which have no associated Issues or Pull Requests.--template
: Provide a custom Handlebars template instead of the default template to generate the Release Notes.--exclude-labels
: Exclude Issues and Pull Requests which have these labels set.--exclude-labels
: To exclude issues from the generated output, provide a space separated string list from label-names you want to exclude.--token
: Provide the GitHub API token as authentication for connecting to private repositories. @--login
and--password
: Provide the GitHub API login and password as authentication for connecting to private repositories. @
@ you only can use one authentication method
Output
The generated Release Notes (Markdown formatted) will look like:
# 1.0.4.16 (11 September 2018)
- [#202](https://github.com/StefH/GitHubReleaseNotes/pull/202) - Update logic PR contributed by [StefH](https://github.com/StefH)
- [#201](https://github.com/StefH/GitHubReleaseNotes/issues/201) - Fix issue abc
Copyright
Notes
This project is based on GitTools/GitReleaseNotes.