iO Composer Git Hooks

Installs: 6 257

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 7

Forks: 0

Open Issues: 0


v3.1.0 2024-02-06 16:09 UTC


Composer plugin to manage git hooks from bin/git-hooks/[hook].d folders.

How it works:

  1. Include the package as a dev dependency
  2. On execution of Composer's install and update commands, symlinks will be created from .git/hooks/[hook] to this module's scripts/chain-hook script for all non-remote git hooks.
  3. The chain-hook script will run the scripts found in the project's bin/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

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": "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.