Git branch name validator.
validate-branch-name can be used through command line directly. When using with Husky, you should make sure husky version >= v1.0.0.
# local install
$ npm i validate-branch-name -D
# global install
$ npm i validate-branch-name -g
Use through command line
npx validate-branch-name
# test target branch name
npx validate-branch-name -t test/branch/name
# define regexp to test branch name
npx validate-branch-name -r regexp -t test/branch/name
# use -h for more usage detail
npx validate-branch-name -h
Use with husky
First way:
Configure hooks and pattern using package.json.
// {app_root}/package.json
{
"husky": {
"hooks": {
"pre-commit": "npx validate-branch-name"
}
},
"validate-branch-name": {
"pattern": "^(master|main|develop){1}$|^(feature|fix|hotfix|release)\/.+$",
"errorMsg": "your own error message"
}
}
Second way:
Define pre-commit file under .husky
direcotory.
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# validate branch name before commit
npx validate-branch-name
We have set pattern and errorMsg by default, but you can still defined them as you like.
Default pattern: ^(master|main|develop){1}$|^(feature|fix|hotfix|release)/.+$
Example: feature/test/pattern-test
would be passed.
Avaliable patterns:
- ^(feature|fix|hotfix|release)/.+ - branch has to start with feature/, fix/, release/ or hotfix/
- (feature|release|hotfix)/(JIRA-\d+) - it should look like feature/JIRA-1234
-
(feature|release|hotfix)/(JIRA-\d+/)?[a-z-]+ - it should look like feature/branch-name or include JIRA's code like feature/JIRA-1234/branch-name
-
custom patterns, visit regex.
You can also use .validate-branch-namerc
, .validate-branch-namerc.json
, .validate-branch-namerc.yaml
, .validate-branch-namerc.yml
, .validate-branch-namerc.js
, .validate-branch-namerc.cjs
,
validate-branch-name.config.js
or validate-branch-name.config.cjs
file to define config.
Please open an issue here.