Skip to content

Latest commit

 

History

History
62 lines (48 loc) · 2.33 KB

File metadata and controls

62 lines (48 loc) · 2.33 KB

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.