Skip to content

RayOei/git-hooks

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@zeit/git-hooks

No nonsense Git hook management.

Usage

Install this module, preferably as a dev-dependency:

yarn add --dev @zeit/git-hooks

That's it. You can now use the module in two ways:

{
  "scripts": {
    "git-pre-commit": "eslint"
  }
}

The above will run a single command line, just like running npm run git-pre-commit or yarn git-pre-commit, every time you git commit.

Alternatively, if you'd like to run several scripts in succession upon a hook, you may define a git top-level property and specify an array of scripts to run:

{
  "git": {
    "pre-commit": "lint"
  }
}

or

{
  "git": {
    "pre-commit": ["lint", "test"]
  }
}

Note that any "scripts" hooks supplant any corresponding "git" hooks. That is to say, if you define both a {"scripts": {"git-pre-commit": "..."}} hook and a {"git": {"pre-commit": []}} hook, the hook in "scripts" will be the only hook that is executed.

Why? There are hundreds of these.

  • No dependencies
  • Supports NPM, Yarn, <insert package manager> - this package will detect and use whatever package manager you installed it with*
  • Tiny footprint - two script files and a couple of symlinks
  • Existing hook / anti-overwrite checks are very reliable since two proprietary scripts are added and all of 'our' hooks are just symlinks to those, so there's virtually no way the uninstall script will mistake a pre-existing hook for its own

*Caveat: The package manager needs to be npm compliant in terms of environment variables. Worst case, define the environment variables npm_node_execpath (node binary) and npm_execpath (package manager entry point) as environment variables prior to installing.

License

Copyright © 2018 by ZEIT, Inc. Released under the MIT License.

About

No nonsense Git hook management

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%