GitHubReleaseNotes logo

GitHubReleaseNotes Stef Heyenrath

Use this command to install GitHubReleaseNotes:
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

NuGet Badge GitHubReleaseNotes

Installation

dotnet tool install --global GitHubReleaseNotes

WinGet

winget install -e --id StefHeyenrath.GitHubReleaseNotes

Chocolatey

Chocolatey downloads 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.

Dependencies

Versions
1.0.10.1
1.0.8.0
1.0.7.1
1.0.7
1.0.6
1.0.5.3
Website
License