Goals:
- Commit hook script contains the bare bones needed to call into this library. We may want to investigate use of existing pre-commit module.
Currently only configured for read-only access to JIRA.
In order to communicate with your JIRA server, a .jirarc file needs to be placed in the root of the repo.
{
"projectName": "<Name of JIRA project - REQUIRED>",
"host":"<URL location of JIRA project - REQUIRED>",
"protocol":"[default:http|https]",
"port": default:80,
"version": default:2,
"verbose": default:false,
"strictSSL": default:true
}
To install, run the following with npm:
> npm install jira-precommit-hook
If the hooks directory in your .git folder is symlinked, the module will be unable to find it. To avoid this, do not symlink your hooks folder inside of your project's git directory.
In order to make a successful commit with the precommit hook, ALL issues being committed must meet the following requirements:
- There must be at least one issue in the commit message
- All committed issues must exist in the project designated in the .jirarc
At least one issue being committed must meet the following requirements:
- The issue must be open for commits
- The parents of the issue must also be open for commits
- The issue must lead up to an initiative
- The issue must not be an initiative, epic, nor a deployment task
By default you will get a joke presented to you upon a successful commit. This is two-fold, first to get you accustomed to the commit hook so you are aware when it's not present. The second is for some comic relief at work, cause we all need it.
> ./node_modules/.bin/jira-precommit jokes disable
> ./node_modules/.bin/jira-precommit jokes enable
To disable To disable the joke feature simply delete the .chuckNorris file from your home directory.
For repositories that have a hubot-deployments-config.json, this precommit hook will not allow you to commit if that file is an invalid json file. In addition it also provides a command to show what files are covered and uncovered by the regex patterns in that file.
> ./node_modules/.bin/jira-precommit checkconfig
This output is often long for a project, so it is useful to pipe into a file.