1.0.0 • Published 6 years ago
seven-rule-msg v1.0.0
seven-rule-msg

Minimal, opinionated commit message validator.
Rules
All rules are inspired from Chris' post and its predecessors.
- Separate subject from body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line (not checked)
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how (not checked)
Features
- No configuration required
- Beautiful output
- Read from
$1 - Read from file
- Read from
STDIN - Verbose mode
- Silent mode
Installation
Assuming you have npm installed,
npm install --global seven-rule-msg-cliUsage
From CLI
See also: usage.txt.
CLI Argument
seven-rule-msg 'Fix all the stuff'File
seven-rule-msg [--file|-f] <path-to-file>STDIN
echo 'Fix all the stuff' | seven-rule-msgAs git hook
.git/hooks/commit-msg:
!/bin/sh
seven-rule-msg -f "$1"Using the node.js API
import validate from 'seven-rule-msg';
const results = validate('A nice lil commit message');validate(commitMessage: string)
- Return value:
Result[]- Length:
7
- Length:
The ith element of the returned array corresponds to the i + 1th rule.
interface Result {
readonly rule: Rule,
readonly type: ResultType
}interface Rule {
readonly message: string,
readonly test?: (commitMessage: string) => boolean;
}Rules without test methods are informative only. In other words, they cannot be reliably checked programmatically.
enum ResultType {
pass = 'pass',
fail = 'fail',
info = 'info'
}Badge
Here's a badge to show the world that you follow the seven rules of commit messages.
[](https://chris.beams.io/posts/git-commit)License
Licensed under the MIT License.