JSPM

  • Created
  • Published
  • Downloads 34634
  • Score
    100M100P100Q162011F
  • License MIT

git commit message linter hook

Package Exports

  • git-commit-msg-linter

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (git-commit-msg-linter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

git-commit-msg-linter

What's this

It's a git "commit-msg" hook for linting your git commit message against the Google AngularJS Git Commit Message Conventions. As a hook it will run at every commit to make sure your every commit message is valid against the conventions. If not your commit will be aborted.

The repo is heavily influenced by pre-commit. Thanks.

Install

npm install git-commit-msg-linter --save-dev

How it works

  • On installing, it will copy the {PROJECT}/.git/hooks/commit-msg executable file if it exists to {PROJECT}/.git/hooks/commit-msg.old then the commit-msg will be overwrote by injecting the linting rules contained in src file commit-msg.js.

  • On uninstalling, the commit-msg file will be restored and the commit-msg.old will be deleted.

Why yet a new linter

  1. No "Google AngularJS Git Commit Message Conventions" linter hook ever existed now.
  2. It's very important to follow git commit message conventions and we recommend Google's.

TODO

  • More types can be added through package.json.
  • is-english-only should be configurable through package.json, default false.
  • First letter of subject must be a lowercase one.
  • subject must not end with dot.
  • Empty scope parenthesis not allowed.
  • scope parenthesis must be of English which means full-width ones are not allowed.
  • Keep a space between Chinese and English character.

Notice

  1. git submodules not supported yet.

FAQ