447 GitHub stars and counting — semantic-release/commit-analyzer is a JavaScript project TopGit is tracking across repositories on the platform. :bulb: semantic-release plugin to analyze commits with conventional-changelog
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
semantic-release plugin to analyze commits with conventional-changelog
Step
Description
analyzeCommits
Determine the type of release by analyzing commits with conventional-changelog.
Install
[!TIP]
You do not need to directly depend on this package if you are using semantic-release.
semantic-release already depends on this package, and defining your own direct dependency can result in conflicts when you update semantic-release.
the commits that contains BREAKING CHANGE or BREAKING CHANGES in their body will be considered breaking changes.
the commits with a 'docs' type, a 'README' scope will be associated with a patch release
the commits with a 'refactor' type will be associated with a patch release
the commits with a 'style' type will be associated with a patch release
Note: Your commits must be formatted exactly as specified by the chosen convention. For example the Angular Commit Message Conventions require the BREAKING CHANGE keyword to be followed by a colon (:) and to be in the footer of the commit message.
npm package name of a custom conventional-changelog preset.
-
parserOpts
Additional conventional-commits-parser options that will extends the ones loaded by preset or config. This is convenient to use a conventional-changelog preset with some customizations without having to create a new module.
-
releaseRules
An external module, a path to a module or an Array of rules. See releaseRules.
See releaseRules
presetConfig
Additional configuration passed to the conventional-changelog preset. Used for example with conventional-changelog-conventionalcommits.
-
Notes: in order to use a preset it must be installed (for example to use the eslint preset you must install it with npm install conventional-changelog-eslint -D)
Note: config will be overwritten by the values of preset. You should use either preset or config, but not both.
Note: Individual properties of parserOpts will override ones loaded with an explicitly set preset or config. If preset or config are not set, only the properties set in parserOpts will be used.
Note: For presets that expects a configuration object, such as conventionalcommits, the presetConfig option must be set.
releaseRules
Release rules are used when deciding if the commits since the last release warrant a new release. If you define custom release rules the default rules will be used if nothing matched. Those rules will be matched against the commit objects resulting of conventional-commits-parser parsing. Each rule property can be defined as a glob.
Rules definition
This is an Array of rule objects. A rule object has a release property and 1 or more criteria.
Each commit will be compared with each rule and when it matches, the commit will be associated with the release type in the rule's release property. If a commit match multiple rules, the highest release type (major > minor > patch) is associated with the commit.
See release types for the release types hierarchy.
With the previous example:
Commits with type 'docs' and scope 'README' will be associated with a patch release.
Commits with type 'refactor' and scope starting with 'core-' (i.e. 'core-ui', 'core-rules', ...) will be associated with a minor release.
Other commits with type 'refactor' (without scope or with a scope not matching the glob core-*) will be associated with a patch release.
Commits with scope no-release will not be associated with a release type.
Default rules matching
If a commit doesn't match any rule in releaseRules it will be evaluated against the default release rules.
With the previous example:
Commits with a breaking change will be associated with a major release.
Commits with type 'feat' will be associated with a minor release.
Commits with type 'fix' will be associated with a patch release.
Commits with type 'perf' will be associated with a patch release.
Commits with scope no-release will not be associated with a release type even if they have a breaking change or the type 'feat', 'fix' or 'perf'.
No rules matching
If a commit doesn't match any rules in releaseRules or in default release rules then no release type will be associated with the commit.
With the previous example:
Commits with type 'style' will not be associated with a release type.
Commits with type 'test' will not be associated with a release type.
Commits with type 'chore' will not be associated with a release type.
Multiple commits
If there is multiple commits that match one or more rules, the one with the highest release type will determine the global release type.
Considering the following commits:
docs(README): Add more details to the API docs
feat(API): Add a new method to the public API
With the previous example the release type determined by the plugin will be minor.
Specific commit properties
The properties to set in the rules will depends on the commit style chosen. For example conventional-changelog-angular use the commit properties type, scope and subject but conventional-changelog-eslint uses tag and message.
How active is development on semantic-release/commit-analyzer?
The most recent commit recorded on semantic-release/commit-analyzer was 4 days ago, based on the GitHub push timestamp. The repository has 81 forks — one of the better signals of community interest.
How many stars does semantic-release/commit-analyzer have?
semantic-release/commit-analyzer has 447 GitHub stars — refresh the page for the live number, or check github.com/semantic-release/commit-analyzer. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is semantic-release/commit-analyzer open source?
Yes — semantic-release/commit-analyzer ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/semantic-release/commit-analyzer.
What topics is semantic-release/commit-analyzer associated with?
GitHub's repository topics for semantic-release/commit-analyzer: "changelog", "commit-analyzer", "conventional-changelog", "conventional-commits", "github", "publish", "release", "semantic-release". TopGit's editorial category is open-source.
Where can I see semantic-release/commit-analyzer in action?
The project maintains a homepage at https://www.npmjs.com/package/@semantic-release/commit-analyzer. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about semantic-release/commit-analyzer?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/semantic-release/commit-analyzer is the definitive source.
Read full README in the tab above.
Curious whether commit-analyzer is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about commit-analyzer.