JSPM

validate-git-commit-msg

0.1.5
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6
  • Score
    100M100P100Q31119F
  • License Apache-2.0

Validate commit messages according to various presets

Package Exports

  • validate-git-commit-msg

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 (validate-git-commit-msg) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Validate Git Commit Msg

CircleCI NPM version

Validate commit messages according to various presets

Install

yarn add validate-git-commit-msg -D

Features

Even though there are a couple of other packages that do this, this one has a few quality of life changes.

  • Lets you decide how to validate the commit messages (see here)
  • It validate commit files coming from both strings and files
  • Supports the following presets:
  • Supports ignore patterns
  • Uses chalk module to color messages
  • Logging can be muted via SILENT environment variable

Usage

With Husky

E.g., using Husky.

"scripts": {
  "commitmsg": "validate-git-commit-msg"
}

From CLI

validate-git-commit-msg 'chore(package): some message'
validate-git-commit-msg -p eslint 'New: Awesome feature'
validate-git-commit-msg -p ember '[DOC beta] Update CONTRIBUTING.md'
validate-git-commit-msg -p jshint '[[DOCS]] Awesome JS docs'
...

When a wrong commit message is given it outputs an explaination.

validate-git-commit-msg 'unknown(something): wrong'
# 'unknown' is not an allowed type!
# Valid types are: feat, fix, docs, style, refactor, perf, test, chore, revert

However you can mute it:

validate-git-commit-msg -s 'unknown(something): wrong'

Validate a commit with .git directory in another location

validate-git-commit-msg --mf ../../some/.git/module/COMMIT_EDITMSG

Within node

var validateCommit = require('validate-git-commit-msg').validateMessage;
validateCommit('chore(package): some message'); // > true
validateCommit('New: Awesome', { preset: 'eslint' }); // > true
validateCommit('Unk: Awesome', { preset: 'eslint' }); // > false
// > The word "Unk" is not an allowed tag.
// > Valid types are: Fix, Update, Breaking, Docs, Build, New, Upgrade.
process.env.SILENT = true;
validateCommit('Unk: Awesome', { preset: 'eslint' }); // > false

API

JavaScript

validateMessage(message: string, ?options: object)
validateMessageFromFile(file: string, ?options: object)

CLI

This module, like many others, installs an executable in ./node_modules/.bin.

~./node_modules/.bin./validate-git-commit-msg
  Usage: validate-git-commit-msg [options] [command]


  Commands:

    validate-git-commit-msg <message>  validate a message
    help [cmd]                     display help for [cmd]

  Validate commit messages according to various presets

  Options:

    -h, --help             output usage information
    -V, --version          output the version number
    -p, --preset <preset>  specify a preset (angular|atom|eslint|ember|jquery|jshint) [angular]
    -s, --silent           mute log messages [false]
    --mf --msgfile         relative path to COMMIT_EDITMSG file

Development

yarn install

License

Apache-2.0 © Joaquin Briceno