Skip to content

elliotttf/semantic-release-conventional-commits

Repository files navigation

Semantic Release Conventional Commits

Greenkeeper badge

Build Status Coverage Status

This is an analyzeCommits plugin for semantic-release. semantic-release-conventional-commits can be used to detect all of the conventional commit message styles.

The commit analyzer that ships with semantic-release only catches fix and feat commits (#12).

To use this plugin, add the following to package.json:

"release": {
  "analyzeCommits": "semantic-release-conventional-commits"
}

Configuration

By default, the behavior of this analyzer is very similar to the analyzer that ships with semantic-release. In addition to fix, feat and BREAKING CHANGE: support, the following messages create the corresponding releases:

  • minor
    • feat
    • chore
  • patch
    • fix
    • docs
    • refactor
    • style
    • test

You can also configure additional behavior in package.json as follows:

"release": {
  "analyzeCommits": {
    "path": "semantic-release-conventional-commits",
    "majorTypes": ["major", "breaking"],
    "minorTypes": ["feat", "minor"],
    "patchTypes": ["fix", "patch"],
    "mergePattern": "/^Merge pull request #(\\d+) from (.*)$/",
    "mergeCorrespondence": "['id', 'source']"
  }
}

Which would cause major releases on messages with a major or breaking type, minor releases on messages with a feat or minor type, and patch releases on messages with a fix or patch type.

The mergePattern and mergeCorrespondence allow you to detect a merge commit and use the first line of the body as the header to determine the release type.

Note: configuring the type behavior will override the default type detection behavior.

About

Semantic release commit analyzer support for all of the conventional commit message types

Resources

Stars

Watchers

Forks

Packages

No packages published