Composer plugin to manage git hooks from bin/git-hooks/[hook].d
folders.
How it works:
- Include the package as a dev dependency
- On execution of Composer's
install
andupdate
commands, symlinks will be created from.git/hooks/[hook]
to this module'sscripts/chain-hook
script for all non-remote git hooks. - The
chain-hook
script will run the scripts found in the project'sbin/git-hooks/[hook].d
folder.
- A composer-managed project
Add the package as a dev dependency.
composer require --dev iodigital-com/composer-git-hooks
Add the package to the allow-plugins section of your composer.json
file:
{
"config": {
"allow-plugins": {
...
"iodigital-com/composer-git-hooks": true
...
}
}
}
This package is a composer plugin and will install the githooks automatically on composer install
and composer update
. Should you need it however, you can run the installer manually by adding it as a composer script and executing it.
Add the following to composer.json
:
"scripts": {
...
"install-git-hooks": "IODigital\\ComposerGitHooks\\ComposerPlugin::process"
...
},
Run it:
composer run-script install-git-hooks
Add project specific git-hooks to bin/git-hooks/[hook].d
. For example:
bin/git-hooks/pre-commit.d/phpstan
bin/git-hooks/pre-commit.d/phpcs
All scripts (for in this case pre-commit
) should give a 0 exit code for the whole hook to succeed.
Create a pull request.
This package makes use of the composer
plugin interface. See the composer documentation.