Skip to content

glennawatson/GitReleaseNoteGenerator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitReleaseNoteGenerator

A .NET global tool that generates categorized release notes from git commit history using the GitHub API.

Installation

dotnet tool install -g GitReleaseNoteGenerator

Quick Start

# Generate release notes for the latest release
git-release-notes --token <GITHUB_PAT> --owner myorg --repo myrepo --release-version v2.0.0

# Auto-detect version via NBGV, write to file
git-release-notes --token <GITHUB_PAT> --owner myorg --repo myrepo --output-file release-notes.md

# Use with GITHUB_OUTPUT in CI
git-release-notes --github-output --output-name changelog

CLI Reference

Option Type Default Description
--token string GITHUB_TOKEN env var GitHub personal access token
--owner string From GITHUB_REPOSITORY env Repository owner
--repo string From GITHUB_REPOSITORY env Repository name
--base-ref string Latest release tag Base ref to compare from
--head-ref string Default branch Head ref to compare to
--release-version string Auto-detect via NBGV Version string for the heading
--output-file path (none) Write release notes to a file
--github-output flag false Write to GITHUB_OUTPUT
--output-name string changelog Variable name for GITHUB_OUTPUT

Commit Prefix Categories

Commits are categorized by their conventional-commit-style prefix:

Prefix Category Emoji
break Breaking Changes 💥
feat Features
refactor Refactoring ♻️
fix, bug Fixes 🐛
perf Performance
housekeeping, chore, update General Changes 🧹
test Tests
doc Documentation 📝
style Style Changes 💅
dep Dependencies 📦

Commits from dependabot[bot] and renovate[bot] are automatically categorized as Dependencies.

GitHub Actions Usage

name: Create Release
on:
  push:
    tags: ['v*']
jobs:
  release:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.0.x'
      - run: dotnet tool install -g GitReleaseNoteGenerator
      - name: Generate Release Notes
        env:
          GITHUB_TOKEN: ${{ github.token }}
        run: git-release-notes --release-version ${{ github.ref_name }} --output-file release-notes.md
      - name: Create GitHub Release
        env:
          GH_TOKEN: ${{ github.token }}
        run: gh release create "${{ github.ref_name }}" --title "${{ github.ref_name }}" --notes-file release-notes.md

Migration from ChangeLog Action

If you are migrating from the ChangeLog GitHub Action:

  1. Replace the glennawatson/ChangeLog@... step with the dotnet tool install and run steps shown above.
  2. The commit prefix categories and emoji mappings are the same.
  3. Use --output-file with gh release create --notes-file instead of action outputs.
  4. The GITHUB_TOKEN environment variable is read automatically when --token is not specified.

License

MIT

About

A C# generator of notes which supports nerdbank git versioning and other tools

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages