This project was born to automate the communication between developers and final users.
A complete markdown file will be created using your pull request descriptions.
How Release Notes are done
-
Parse every PR in latest RELEASE.
-
Filter Pull Requests by label.
-
Add PR title and description to
RELEASE-NOTE.md
. -
Mark Release note section as feature, bug, refactor, etc.
-
If you set
publish: true
- All changes will be commited to your repo.
- Tag pull requests with
in-release-note
label.
-
Execute plugins, like TEAMS webhooks
Documentation
Install
npm i -D "@adrian.insua/relase-notes-generator"
CI Configuration
RNG uses TOKEN to authorize process repository access in CI.
If you want to push changes to a protected_branch you'll need to use an access token with enough permissions.
- Create a personal access token with enough permissions.
- Add it as a secret in your project configuration.
- Update your workflow to use it as auth token for rng
run: npm run rng
env:
GITHUB_TOKEN: ${ secrets.ADMIN_TOKEN }
Preview in pull request
You can see how RELEASE NOTES will look like using preview
and issue
attribute
Github Actions
Workflow
name: Preview Release Notes in PR
on:
workflow_dispatch:
pull_request:
branches:
- develop
jobs:
build:
name: Release notes preview
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
persist-credentials: false
- uses: actions/setup-node@v2
with:
node-version: 16
- run: npm ci
- run: npm run build
- run: npm run preview -- ${{ github.event.number }}
env:
GITHUB_TOKEN: ${{ secrets.ADMIN_TOKEN }}
{
"scripts": {
"preview": "rng gen -v --snapshot -f '' --issue"
}
}
Workflow steps:
- Pass
issue
topreview
script. - Set snapshot flag to parse pull requests since latest release.
Custom configuration file
You can use a custom config file for this process
{
"scripts": {
"preview": "rng gen -v -c .releasenotes-preview.yml --issue"
}
}
# releasenote-preview
snapshot: true
filter: ''
decoration:
type/feature: '## :sparkles: '
type/bug: '## :bug: '
Example
# releasenotesrc.yml
message: "chore: update RELEASE-NOTES [skip ci]"
token: TOKEN
repo: RELEASE_NOTES_TEST
split: true
out: '.'
ignored-labels:
- in-release-note
- released
assets:
- CHANGELOG.md
- package.json
decoration:
type/feature: '## :zap: '
type/bug: '## :bug: '
// .env
TOKEN=<your-repo-token>
RELEASE_NOTES_TEST=adrianiy/release-notes-generator
Output
# RELEASE NOTES
# :rocket: Mock testing issue
###### 2021-10-13
## :zap: Test Issue
This issue is used by release-notes-generator for test purposes
Check out our RELEASE NOTES