Skip to content

franzwilhelm/gitflow-release-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gitflow-release-notes

godoc Go Report Card

Automatically generate release notes based on pull requests, and push them to Github or Slack.

Background

In order for this tool to work properly, you must follow the GitFlow workflow, at least to some degree. If you're not familiar with the GitFlow workflow, you could have a look at these great articles, giving some great insight:

GitFlow is a way of structuring pull requests and branches, that intends to simplify the branching workflow in a larger project. This tool assumes you merge branches as PRs with the following setup:

Static branhes:

  • master - Where tags are pushed - represents the stable environment
  • develop - Where new additions and non-urgent fixes are added

Branches based from develop

  • feature/[name] - Branches with this prefix contains features (merge to develop)
  • bugfix/[name] - Branches with this prefix contains bug fixes (merge to develop)
  • release/[name] - Branches with this prefix are created to prepare an upcoming release (merge to develop and master)

Branches based from master

  • hotfix/[name] - Branches with this prefix are urgent to get to the stable environment to fix bugs (merge to develop and master)

Installation

go get -u franzwilhelm/gitflow-release-notes
go install $GOPATH/src/github.com/franzwilhelm/gitflow-release-notes

Usage

In order to authenticate with the Github API, make sure to generate a personal access token on Github. For the tool to work correctly, it needs the following permissions:

  • repo - Full control of private repositories
  • repo:status - Access commit status
  • repo_deployment - Access deployment status
  • public_repo - Access public repositories
  • repo:invite - Access repository invitations
  • read:gpg_key - Read user gpg keys

Then export it as an environment variable GITHUB_ACCESS_TOKEN, before running the tool.

To use the tool and get available commands, simply run gitflow-release-notes -h.

Example

This example generates changelog for release v1.2.3 and pushes is to Github, and to a slack channel.

gitflow-release-notes changelog v1.2.3 \
  --repository franzwilhelm/gitflow-release-notes \
  --push \ # Push to Github
  --slack-channel $slack_channel \
  --slack-icon $slack_icon \
  --slack-webhook $slack_webhook_url

Features

gitflow-release-notes already has some great built-in features, and there are more to come!

  • Automatic grouping of changelogs by branch name (feature/bugfix/hotfix/other)
  • Write beautiful changelogs for a single or multiple tags to disk
  • Push or overwrite release notes directly to Github
  • Push structured release notes to a Slack channel
  • Possible to use a config file instead of flags
  • Possible to customize markdown formatting
  • Use commit messages as backup when no PRs are found for a release

Contributing

If you would like to contribute, all pull requests are welcome! This repo is currently not GitFlow enabled, so just open PRs directly to master, and I'll drop a review!

About

Automatically generate release notes based on pull requests

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages