isaac / composer-git-hooks
ISAAC Composer Git Hooks
Installs: 41 692
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 10
Forks: 2
Open Issues: 1
Type:composer-plugin
Requires
- php: ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0
- composer-plugin-api: ^2.0
Requires (Dev)
- composer/composer: ^2.0
- isaac/php-code-sniffer-standard: ^28.2.0
- phpstan/extension-installer: ^1.2.0
- phpstan/phpstan: ^1.10.1
- phpstan/phpstan-strict-rules: ^1.5.0
This package is auto-updated.
Last update: 2024-01-23 16:41:40 UTC
README
This repository has been archived and is replaced by the iO Composer Git Hooks repository.
The Composer package has been replaced by iodigital-com/composer-git-hooks
.
To upgrade to the new package, perform the following steps:
composer remove --dev isaac/composer-git-hooks composer config --unset allow-plugins.isaac/composer-git-hooks composer require --dev iodigital-com/composer-git-hooks
In the last step, confirm to automatically add iodigital-com/composer-git-hooks
to the allow-plugins
configuration.
ISAAC Composer Git Hooks
Set up the .git/hooks
folder to run scripts found in the bin/git-hooks/{hookName}.d
folders of the project.
How it works:
- Include the package as a dev dependency
- On composer install/update, all git hooks (.git/hooks/{pre-commit,post-commit,...}) will be symlinked to this module's
scripts/chain-hook
. - The
chain-hook
script will run the scripts found in the project'sbin/git-hooks/{hookName}.d
folder.
Prerequisites
- A composer-managed project
Install
Add the package as a dev dependency.
composer require --dev isaac/composer-git-hooks
Add the package to the allow-plugins section of your composer.json
file:
{ "config": { "allow-plugins": { ... "isaac/composer-git-hooks": true ... } } }
Running the script manually
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": "ISAAC\\ComposerGitHooks\\ComposerPlugin::process" ... },
Run it:
composer run-script install-git-hooks
Usage
Add project specific git-hooks to bin/git-hooks/{hookName}.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.
Contribute
Create a merge request.
This package makes use of the composer
plugin interface. See the composer documentation.