Exciting news!Announcing our $4.6M Series Seed. Learn more
Socket
LoveBlogFAQ
Install
Log in

ezchangelog

Package Overview
Dependencies
8
Maintainers
1
Versions
20
Issues
File Explorer

Advanced tools

ezchangelog

changelog

    6.0.0latest

Version published
Maintainers
1
Yearly downloads
12,106
increased by7.14%

Weekly downloads

Changelog

Source

v6.0.0 (2016-04-06)

Readme

Source

ezchangelog

version status coverage dependencies devDependencies

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

{ "changelog": { "baseUrl": "https://github.com/zoubin/ezchangelog/commit/", "plugin": ["pluginName"], "out": "changelog.md" } }

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 = require('ezchangelog')

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: [ [function pluginFn(instance, opt) {}, 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: new Date('Sat Nov 7 18:41:37 2015 +0800'), }, // raw message lines messages: ['', ' 4.0.3', ''], // raw headers before the messages headers: [ ['Author', 'zoubin <[email protected]>'], ['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 = require('ezchangelog').Changelog var c = new Changelog() c.plugin(fn) source.pipe(c.pipeline).pipe(dest) funciton fn(c, opts) { // parse emails c.pipeline.get('parse').push(emailParser) // replace the default formatter with a custom one c.pipeline.get('format').splice('markdownify', 1, myOwesomeFormatter) }

Keywords

Socket

Product

Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc