ezchangelog
Make it easy to update changelog with commit messages.
Usage
npm i -g ezchangelog cd repo # create a new changelog.md file changelog # do some commits # prepend new changes use `git log --no-merges` changelog # prepend new changes git log --before Nov.10 | changelog
Example
See changelog
Command line
changelog -h
to see options.
There are two ways in the command line.
The following command will call git log --no-merges
to generate changes info:
changelog [options]
You can also pipe the changes into it:
git log --before Nov.10 | changelog [options]
package.json
There are links to all commits.
baseUrl
: specify the base path for each commit.
By default, commits are linked to github.
out
: specify the changelog file path
API
var changelog =
changelog(opts)
Return a transform to process git log
outputs.
opts.baseUrl
Specify the url base for commits.
Type: String
opts.plugin
Specify extra plugins to apply to the pipeline.
Type: Array
Each element should be an Array
,
if the plugin should take an extra argument besides the Changelog
instance.
plugin: {} opt
changelog.Changelog
The constructor for loggers.
You can process the pipeline
property and the plugin
function.
pipeline
A duplex created by labeled-stream-splicer, assembling a group of transforms to process the log.
There are two main phases:
- parse: containing sub-phases: split, commit, tag, url. The main purpose of this phase is to create commit objects.
- format: containing one sub-phase: markdownify. Commit objects are formatted to markdown in this phase.
The default commit object is like:
commit: // commit sha1 long: '3bf9055b732cc23a9c14f295ff91f48aed5ef31a' short: '3bf9055' committer: // commit date date: 'Sat Nov 7 18:41:37 2015 +0800' // raw message lines messages: '' ' 4.0.3' '' // raw headers before the messages headers: 'Author' 'zoubin <zoubin04@gmail.com>' 'Date' 'Sat Nov 7 18:41:37 2015 +0800' // the first non-empty message line subject: '4.0.3' // other message lines body: '' // git tag tag: 'v4.0.3' // link to the commit. opts.baseUrl should be specified. url: 'https://github.com/zoubin/ezchangelog/commit/3bf9055'
You can manipulate the pipeline
in the way labeled-stream-splicer supports.
plugin
Type: Array
Each element is a plugin with optional argument.
A plugin is used to manipulate the pipeline
property:
var Changelog = Changelogvar c = c source funciton { // parse emails cpipeline // replace the default formatter with a custom one cpipeline}