husky-interactive

Prevents bad commit or push (git hooks, pre-commit/precommit, pre-push/prepush, post-merge/postmerge and all that stuff...)

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
husky-interactive
000.1.24 years ago5 years agoMinified + gzip package size for husky-interactive in KB

Readme

husky-interactive npm version Mac/Linux Build Status Windows Build status
Git hooks made easy

Husky can prevent bad commit, push and more :dog: woof!
This is a fork of the original husky, which enables interactive git hooks, at the cost of compatibility with gui clients.

Install

npm install husky-interactive --save-dev

yarn add husky-interactive --dev

// Edit package.json
{
  "scripts": {
    "precommit": "npm test",
    "prepush": "npm test",
    "...": "..."
  }
}

git commit -m "Keep calm and commit"

Existing hooks aren't replaced and you can use any Git hook.
If you're migrating from ghooks, simply run npm uninstall ghooks --save-dev && npm install husky-interactive --save-dev and edit package.json. Husky-interactive will automatically migrate ghooks hooks.

Uninstall

npm uninstall husky-interactive

yarn remove husky-interactive

Tricks

Debug hooks easily

If you need to debug hooks, simply use npm run <script-name>. For example:
npm run precommit

Git GUI clients support

If you've installed Node using the standard installer
, nvm or homebrew, Git hooks will be executed in GUI applications.

Working with multiple version of Node

If nvm is installed, husky-interactive will try to use the default/current installed Node version or use the project .nvmrc.
Tip to use the system-installed version of node, nvm provides a system alias

Accessing Git params

Git params can be found in GIT_PARAMS environment variable.

accessing the initiating Git command

The command that initiated the execution of the hook can be found in the GIT_COMMAND environment variable.

Setting a different log level

By default, husky-interactive will run scripts using --silent to make the output more readable. If you want to override this, simply pass a different log level to your scripts:
"precommit": "npm run some-script -q"

-q/--quiet is equivalent to --loglevel warn which is npm default log level.

Git submodule and subtree support

Yes

Cygwin support

Yes

Yarn support

Please use yarn v0.24+

See also

License

MIT - Typicode :cactus: - Patreon