
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
git-conventional-commits
Advanced tools
[!TIP] Also have a look at Git Conventional Commits Cheat Sheet
see CHANGELOG.md
npx git-conventional-commits <command>
ℹ add help parameter -h
to commands to list all possible options
init [options] create a config file template `git-conventional-commits.yaml`
version [options] determine version from conventional commits
changelog [options] generate change log from conventional commits
commit-msg-hook [options] <commit-msg-file> check for conventional commit message format
npx git-conventional-commits init
git-conventional-commits.yaml
to your needsExample git-conventional-commits.yaml
---
convention:
commitTypes:
- feat # Commits, that add or remove a new feature to the API or UI
- fix # Commits, that fix a API or UI bug of a preceded feat commit
- refactor # Commits, that rewrite/restructure your code, however do not change any API or UI behaviour
- perf # Commits are special `refactor` commits, that improve performance
- style # Commits, that do not affect the meaning (white-space, formatting, missing semi-colons, etc)
- test # Commits, that add missing tests or correcting existing tests
- build # Commits, that affect build components like build tool, ci pipeline, dependencies, project version, ...
- ops # Commits, that affect operational components like infrastructure, deployment, backup, recovery, ...
- docs # Commits, that affect documentation only
- chore # Miscellaneous commits e.g. modifying `.gitignore`
- docs
- merge
commitScopes: []
releaseTagGlobPattern: v[0-9]*.[0-9]*.[0-9]*
changelog:
commitTypes:
- feat
- fix
- perf
- merge
includeInvalidCommits: true
commitScopes: []
commitIgnoreRegexPattern: "^WIP "
headlines:
feat: Features
fix: Bug Fixes
perf: Performance Improvements
merge: Merges
breakingChange: BREAKING CHANGES
commitUrl: https://github.com/qoomon/git-conventional-commits/commit/%commit%
commitRangeUrl: https://github.com/qoomon/git-conventional-commits/compare/%from%...%to%?diff=split
issueRegexPattern: "#[0-9]+"
issueUrl: https://github.com/qoomon/git-conventional-commits/issues/%issue%
convention
commitTypes
an array of expected commit types
["feat", "fix", "doc", "style"]
commitScopes
an array of expected commit types
["ui", "database"]
releaseTagGlobPattern
glob pattern to filter for release tags
[0-9]+\.[0-9]+\.[0-9]+
)*
issueRegexPattern
regex pattern to find issue IDs
[A-Z]{3,}-\\d+
changelog
commitTypes
filter commits by type
convention.commitTypes
plus
merge
commits["feat", "fix", "merge"]
commitScopes
filter commits by scopes
convention.commitScopes
["ui"]
includeInvalidCommits
include commits without valid type: default: true
commitTypes
will be removed from changelogcommitIgnoreRegexPattern
filter commits by commit subject regex
^WIP
headlines
a map of headline identifier and actual headline
changelog.commitTypes
plus
breakingChange
Breaking Changes Section{ "feat": "Features", "fix": "Bug Fixes", "breakingChange": "BREAKING CHANGES"}
{ "feat": "Features", "fix": "Bug Fixes", "merge": "Merges", "breakingChange": "BREAKING CHANGES"}
commitUrl
an URL template for generating markdown links to repository commits
%commit%
commit hash placeholderhttps://github.com/qoomon/git-conventional-commits/commit/%commit%
issueUrl
an URL template for generating markdown links to an issue tracker
%issue%
issue id placeholderhttps://jira.example.org/browse/%issue%
To automatically validate commit messages, a git hook can be used in the commit-msg
stage.
The hook can be created either manually or using the pre-commit framework.
.pre-commit-config.yaml
file in the root directory of your repository with following content.
repos:
- repo: https://github.com/qoomon/git-conventional-commits
rev: <RELEASE_TAG>
hooks:
- id: conventional-commits
pre-commit
framework pip install pre-commit
pre-commit install -t commit-msg
cd <repository-path>
mkdir .git-hooks
git config core.hooksPath .git-hooks
touch .git-hooks/commit-msg && chmod +x .git-hooks/commit-msg
.git-hooks/commit-msg
with your favorite editor and paste following script
#!/bin/sh
# fix for windows systems
PATH="/c/Program Files/nodejs:$HOME/AppData/Roaming/npm/:$PATH"
npx git-conventional-commits commit-msg-hook "$1"
.git-hooks/commit-msg
to repository[!IMPORTANT] Whenever you clone your repository with git hooks you need to enable git hooks once again
git config core.hooksPath .git-hooks
git-conventional-commits
npx git-conventional-commits version
git commit -am'build(release): bump project version to <version>'
npx git-conventional-commits changelog --release <version> --file 'CHANGELOG.md'
git commit -am'docs(release): create <version> change log entry'
git tag -a -m'build(release): <version>' '<version-prefix><version>'
git push
If you have an large existing repo with no release tags e.g. v1.0.0, or if you want the first changelog to be tidy, you need to create a release tag first.
git tag -a -m'build(release): 0.0.0' 'v0.0.0'
git push origin v0.0.0
This way npx git-conventional-commits
will only considre commits based on the commit the release tag is pointing at.npm install
npm test
npm login
npm publish
FAQs
git conventional commits util
The npm package git-conventional-commits receives a total of 3,355 weekly downloads. As such, git-conventional-commits popularity was classified as popular.
We found that git-conventional-commits demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.