Poper makes sure that your git commit messages are well-formed. It's partly inspired by this article written by tpope. Rules specified there form the basis of Poper rules. But Poper doesn't stop there. It also doesn't like generic commit messages like 'oops, fix tests'. Poper was created to be used by Pronto, but will work perfectly well in whatever scenario you'll come up for it!
Install Poper like any other gem and then run it from your terminal, specifying a commit:
gem install poper
cd /repo/which/commits/you/want/to/check
poper run HEAD~3
Every commit between current HEAD and specified commit will be checked.
The behavior of Poper can be controlled via the .poper.yml
configuration
file. It must be placed in your project directory. A sample file, .poper.sample.yml
, is included for easy setup.
The file has the following format:
disallow_single_word:
enabled: true
character_limit:
enabled: true
number: 72
summary_character_limit:
enabled: true
number: 50
disallow_generic:
enabled: true
words:
- fix
- fixed
- fixes
- oops
- todo
- fixme
- commit
- changes
- hm
- hmm
- hmmm
- test
- tests
- quickfix
enforce_capitalized:
enabled: true
All properties that can be specified via .poper.yml
, can also be specified
via environment variables. Their names will be the upcased path to the property.
For example: POPER_ENFORCE_CAPITALIZED_ENABLED
or POPER_DISALLOW_GENERIC_WORDS
. (In the case of the latter, since environment variables don't support arrays, use a comma-separated list of words and poper will parse them appropriately.) Environment variables
will always take precedence over values in configuration file.