husky
    Overview
    Playground
    Code
    Issues
    Career Opportunities
    Alternatives
    Dependencies
    Documentation
    Find an Expert
    Versions
    Insights & Analysis

husky

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

3.0.4  •  Published 8 days ago  •  by Typicode  •  MIT License


Announcement

Important you can support the development of v4 major release on Open Collective and GitHub Sponsors.

See next branch. Feedback is welcome 🙏


Husky

Financial Contributors on Open Collective Mac/Linux Build Status Windows Build status

Git hooks made easy

Husky can prevent bad git commit, git push and more 🐶 woof!

Install

npm install husky --save-dev
// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "npm test",
      "pre-push": "npm test",
      "...": "..."
    }
  }
}
git commit -m 'Keep calm and commit'

To go further, see the docs here.

Uninstall

npm uninstall husky

Git hooks installed by husky will be removed.

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

Requirements

Husky requires Node >= 8.6.0 and Git >= 2.13.2

Upgrading from 0.14

Simply move your existing hooks to husky.hooks field and use raw Git hooks names. Also, if you’re using the GIT_PARAMS env variable, rename it to HUSKY_GIT_PARAMS.

{
  "scripts": {
-   "precommit": "npm test",
-   "commitmsg": "commitlint -E GIT_PARAMS"
  },
+ "husky": {
+   "hooks": {
+     "pre-commit": "npm test",
+     "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
+   }
+ }
}

Alternatively, you can run the following command which will do the same automatically for you 😉

./node_modules/.bin/husky-upgrade

Starting with 1.0.0, you can also configure hooks using .huskyrc, .huskyrc.json or .huskyrc.js file.

// .huskyrc
{
  "hooks": {
    "pre-commit": "npm test"
  }
}

To view the full list of changes, please see the CHANGELOG.

Features

  • Keeps existing user hooks
  • Supports GUI Git clients
  • Supports all Git hooks (pre-commit, pre-push, …)

Used by

See also

  • pkg-ok - Prevents publishing a module with bad paths or incorrect line endings
  • please-upgrade-node - Show a message to upgrade Node instead of a stacktrace in your CLIs
  • pinst - dev only postinstall hook

Patreon

People and companies supporting via Patreon: thanks

License

MIT

Dependencies

chalk  ·  cosmiconfig  ·  execa  ·  get-stdin  ·  is-ci  ·  opencollective-postinstall  ·  pkg-dir  ·  please-upgrade-node  ·  read-pkg  ·  run-node  ·  slash  ·  @types/cosmiconfig  ·  @types/jest  ·  @types/mkdirp  ·  @types/node  ·  @types/read-pkg  ·  @typescript-eslint/eslint-plugin  ·  @typescript-eslint/parser  ·  del  ·  del-cli  ·  eslint  ·  eslint-config-prettier  ·  eslint-config-xo-space  ·  eslint-plugin-prettier  ·  formatree  ·  jest  ·  mkdirp  ·  pinst  ·  pkg-ok  ·  prettier  ·  tempy  ·  ts-jest  ·  typescript

Tags

git
hook
hooks
pre-commit
precommit
post-commit
postcommit
pre-push
prepush
post-merge
postmerge
test
lint
Get an open source license report with a click
Whether it's for legal, customers or investors, upload your package.json files, and get a comprehensive license report page and spreadsheet. No hassle, it just works!
$49 one time fee, money back guarantee

Popularity

Weekly Downloads
1.6M
Stars
15.0K

Issues and PRs

Activity

Last ver 8 days ago
Created 5 years ago
Last commit 1 month ago
4 days between commits

Sustainability

51 contributors

Technology

Node version: 12.4.0
42.7K unpacked

Legal and Compliance

MIT License
OSI Approved
0 vulnerabilities

Top Experts

Typicode
Maintainer, 401 commits, 99 merges, 37 PRs
glortho
4 commits
Bran van der Meer
3 commits, 1 PRs
Works at Pointlogic, Nielsen
Benj
2 commits, 1 PRs
Works at Health Leads
Amila Welihinda
2 commits, 2 PRs
Works at mylkguys
Masato Ohba
2 commits, 2 PRs
Works at quipper