A re-visited approach to Git hooks - and probably other like Mercurial or Subversion?
Monohook can be installed using Composer:
composer require --dev jadb/monohook:dev-master
Now that you have the package installed, you just need to create your hooks and symlink them to
the .monohook
config you create.
To create your .monohook
, please refer to the one used for this repository.
Now, symlink the hooks you want managed by monohook:
$ ln -s ../../.monohook .git/hooks/pre-commit
$ ln -s ../../.monohook .git/hooks/post-commit
$ ln -s ../../.monohook .git/hooks/pre-rebase
- CodeSnifferProcessor: Detect violations of a defined set of coding standards in PHP and CSS.
- LintProcessor: Syntax check every new PHP file.
- PHPUnitProcessor: Test (when possible) every new PHP file.
- RebaseProcessor: Make sure that a rebase does not overwrite already pushed commits.
- TODO ContentFilterProcessor: Check any new code for filterable content (debug, wording, etc.).
- TODO ImageOptimizerProcessor: Reduce images' sizes.
- GitProvider
- TODO MercurialProvider
- TODO SubversionProvider
- StdoutHandler
- TODO EmailHandler
- TODO StreamHandler
- Fork
- Mod, fix, test
- Optionally write some documentation (currently in
README.md
) - Send pull request
All contributed code must be licensed under the BSD 3-Clause License.
http://github.com/jadb/monohook/issues
Copyright (c) 2015, Jad Bitar
Licensed under the BSD 3-Clause License Redistributions of files must retain the above copyright notice.
Originally inspired by AD7six/git-hooks and Seldaek/monolog.