jadb / monohook
Fully configurable and extendable VCS hook manager
Installs: 54
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/jadb/monohook
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2025-09-28 03:34:05 UTC
README
A re-visited approach to Git hooks - and probably other like Mercurial or Subversion?
Install
Monohook can be installed using Composer:
composer require --dev jadb/monohook:dev-master
Usage
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
What's included?
Processors
- 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.
Providers
- GitProvider
- TODO MercurialProvider
- TODO SubversionProvider
Handlers
- StdoutHandler
- TODO EmailHandler
- TODO StreamHandler
Contributing
- 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.
Bugs & Feedback
http://github.com/jadb/monohook/issues
License
Copyright (c) 2015, Jad Bitar
Licensed under the BSD 3-Clause License Redistributions of files must retain the above copyright notice.
Acknowledgements
Originally inspired by AD7six/git-hooks and Seldaek/monolog.