gitcommit.ast
v1.0.26
Published
Configurable git precommit hook
Downloads
6
Readme
** Configurable git precommit ast **
Description
The aim of this library is to train developer coding standard.
When you execuate git commit -m "xxxx"
, below points will be execuated.
- performance: checking if there's too much nested for/if
- clean code: ckecking if some file should be ignored like package-lock.json
- support: if there's conflict code or readme file
- quality: unit test passed (to be developed)
Usage
Installation
npm install gitcommit.ast
Configure rules
Under your root project. create .checkrc
Example
{
"target": ["^test"],
"plugins": {
"conflictCheck":true,
"ignore":{
"ignoreCase": true,
"fileList": ["package-lock.json"]
},
"required": {
"ignoreCase": true,
"fileList": ["readme"]
},
"unittest": {
"run": "echo 1"
},
"nestedFor": {
"test": "\\.jsx?$",
"maxdepth": 3
},
"nestedIf": {
"test": "\\.jsx?$",
"maxdepth": 4
},
"customPlugin": {
"run": "echo 2"
}
}
}
Pre-defined Features
please checkout some of pre-defined features.
check if commit msg has jira id if not, get jira id from branch name, otherwise, give error alert
check if there's nested if
.checkrc
{
"target": ["^test"],
"plugins": {
"nestedIf": {
"test": "\\.jsx?$",
"maxdepth": 4
}
}]
}
Test file: under /test
Running result:
git commit -m "test"
check if there's nested for
.checkrc
{
"target": ["^test"],
"plugins": {
"nestedFor": {
"test": "\\.jsx?$",
"maxdepth": 3
}
}]
}
Test file: under /test
Running result:
git commit -m "test"
check if there's ignore file submitted
.checkrc
{
"target": ["^test"],
"plugins": {
"ignore":{
"ignoreCase": true,
"fileList": ["package-lock.json"]
}
}]
}
Test file: under /
Running result:
git commit -m "test"
check if there's required file which is not submitted
.checkrc
{
"target": ["^test"],
"plugins": {
"required": {
"ignoreCase": true,
"fileList": ["readme1"]
}
}]
}
Running result:
git commit -m "test"
check if there's conflict files
.checkrc
{
"target": ["^test"],
"plugins": {
"conflictCheck":true
}]
}
Test file: under /test
Running result:
git commit -m "test"
custom、unittest plugin
.checkrc
{
"target": ["^test"],
"plugins": {
"unittest": {
"run": "echo 1"
},
"customPlugin": {
"run": "echo 2"
}
}]
}
Running result:
git commit -m "test"
A successful result
Running result:
git commit -m "test"