git-graft
NPX CLI tool that generates a configurable Git Hook that prepends branch name patterns to commit messages.
Features:
-
Generated Git Hook
-
Zero Config Option -- Utilizing GitFlow
Best Practice Examples
-
Configurable git-graft.json
-
Hook is a bin file running Node & no dependencies
-
Validates the commit message and branch
-
Usage
-
Commands
Usage
$ npx git-graft (-v|--version|version)
git-graft/0.0.0 linux-x64 node-v14.16.1
$ npx git-graft --help
Main Usage
$npx git-graft [COMMAND]
...
Commands
Init
init
will generate the Git Hook with Zero-Config or a configuration file based on prompts.
example:
npx git-graft init
The prompts will be used to construct the configuration file and ask to modify permissions to allow for execution of the generated Git Hook. Without permission to execute the Git Hook cannot work.
Doctor
Will run file, directory, and permissions check on Git Graft Hook.
example:
// automatically gets filepath
$ npx git-graft doctor
// user gives filepath
$ npx git-graft doctor [FILEPATH] --force
Configuration File
The init generates a git-graft.json
if Zero-Config isn't chosen. The config has properties for a configurable Git Hook. Configuration the patterns to validate the branch and resulting prepended commit message with branch information.
branchTypes:
RegExp List
required -- Refers to GitFlow best practices. Git Graft Hook will wrap the list in ()
and the constructor includes the forward slash & escape \/
example
branchPattern:
RegExp
required -- Refers to the code/ticket and name of the branch following the branchType. example
ticketTypes:
string
required -- Refers to the ticket code types, for example JIRA will use TICKETTYPE-{NUMBERS}. The Git Hook will use this config to construct a RegExp
for the prepending to commit messages.
regExFlag:
RegExp
optional -- Flags to pass into RegEx constructors. Default: gim
ticketOnly:
boolean
optional -- Used to determine if ticket/code or whole branch should used. Default: true
RegEx Examples: