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"
}
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.