2.1.2 • Published 8 years ago
@invisible/release-note v2.1.2
This package is deprecated and will no longer be maintained. Use @invisible/changelog-update instead.
@invisible/release-note
Provides three helper methods to publish the latest additions to your changelog.
assert-release-note
Asserts if there is an addition to your changelog in the current Pull Request.
push-release-note
Pushes the changelog additions to Slack (more adapters will be added in the future).
last-changelog-additions
Logs the latest changelog additions to stdout. If you are on master, looks at the diff from two merges ago. If you are not on master, looks at the diff between master and HEAD
Install
- Install the package as devDependency:
yarn add -D @invisible/release-note
# or
npm install -D @invisible/release-note- If you wish to use the
push-release-notemethod, set up a Slack Webhook. NOTE: Slack will reject mutliplePOST's to the same webhook that have identical messages, so you might run into this while testing.
Usage
Programmatically
'use strict'
const {
assertReleaseNote,
lastChangelogAdditions,
pushReleaseNote,
} = require('@invisible/release-note')
// changelogFile defaults to CHANGELOG.md if no argument given
// This method will throw if no addition has been made to your changelogFile since
// the last merge commit
assertReleaseNote({ changelogFile: 'CHANGELOG.txt' })
const webhookUrl = process.env.CHANGELOG_WEBHOOK_URL
// This method is async so it returns a promise that resolves the Response object from POST'ing to the Slack webhook
pushReleaseNote({
changelogFile: 'CHANGELOG.txt', // defaults to CHANGELOG.md
iconEmoji: 'joy', // defaults to :robot_face:
slackbotName: 'Cool Bot Name' , // defaults to Changelog
webhookUrl,
}).then(console.log).catch(console.error)
const notes = lastChangelogAdditions()
console.log(notes) // or do something cool with itHook scripts
assert-release-note
- Append
assert-release-notetoposttestonscriptssection of yourpackage.json.
// It would look something like this:
"scripts": {
"posttest": "assert-release-note"
}You can also run it at any time from your CLI.
$ assert-release-notepush-release-note
- Add to the
deploymentsection of your projectcircle.ymlfile the following:- push-release-note
# Your circle.yml should look like the below:
deployment:
production:
branch: master
commands:
- push-release-noteYou can also run it at any time from your CLI.
$ push-release-note- Optional: set a name for your slack bot and an icon emoji in your
package.json
"releaseNote": {
"slackbotName": "Changelog Robot",
"iconEmoji": "joy"
}- If using Circle CI, add the
CHANGELOG_WEBHOOK_URLvariable to your project. This package will optionally loaddotenvif it's present, so you may add this to your.envfile as well.
TODO
- Unit Tests
- Testing on multiple platforms