PHPackages                             isaac/composer-git-hooks - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. isaac/composer-git-hooks

Abandoned → [iodigital-com/composer-git-hooks](/?search=iodigital-com%2Fcomposer-git-hooks)ArchivedComposer-plugin

isaac/composer-git-hooks
========================

ISAAC Composer Git Hooks

v2.2.3(2y ago)244.3k1[1 PRs](https://github.com/isaaceindhoven/composer-git-hooks/pulls)1MITPHPPHP ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0

Since Jun 5Pushed 2y ago8 watchersCompare

[ Source](https://github.com/isaaceindhoven/composer-git-hooks)[ Packagist](https://packagist.org/packages/isaac/composer-git-hooks)[ RSS](/packages/isaac-composer-git-hooks/feed)WikiDiscussions main Synced 3d ago

READMEChangelogDependencies (6)Versions (28)Used By (1)

Renamed and moved to the iO organization.
=========================================

[](#renamed-and-moved-to-the-io-organization)

This repository has been archived and is replaced by the [iO Composer Git Hooks repository](https://github.com/iodigital-com/composer-git-hooks).

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
========================

[](#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:

1. Include the package as a dev dependency
2. On composer install/update, all git hooks (.git/hooks/{pre-commit,post-commit,...}) will be symlinked to this module's `scripts/chain-hook`.
3. The `chain-hook` script will run the scripts found in the project's `bin/git-hooks/{hookName}.d` folder.

Prerequisites
-------------

[](#prerequisites)

- A composer-managed project

Install
-------

[](#install)

Add the package as a dev dependency.

```
composer require --dev isaac/composer-git-hooks
```

Add the package to the [allow-plugins section](https://getcomposer.org/doc/06-config.md#allow-plugins) of your `composer.json` file:

```
{
    "config": {
        "allow-plugins": {
            ...
            "isaac/composer-git-hooks": true
            ...
        }
    }
}
```

### Running the script manually

[](#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
-----

[](#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
----------

[](#contribute)

Create a merge request. This package makes use of the `composer` plugin interface. See the [composer documentation](https://getcomposer.org/doc/articles/plugins.md).

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity28

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 89.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~60 days

Recently: every ~139 days

Total

23

Last Release

842d ago

Major Versions

0.2.1 → 1.0.02020-10-30

v1.3.0 → v2.0.02022-05-23

PHP version history (7 changes)0.0.1PHP ~7.2.0 || ~7.3.0

0.1.4PHP ~7.2.0 || ~7.3.0 || ~7.4.0

1.0.1PHP ~7.3.0 || ~7.4.0

v1.2.0PHP ~7.3.0 || ~7.4.0 || ~8.0.0

v1.3.0PHP ~7.4.0 || ~8.0.0

v2.0.0PHP ~7.4.0 || ~8.0.0 || ~8.1.0

v2.2.0PHP ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/80809e7caf8341b1bac3d759e2b159a38b9bdab2deee5b0d4d66de6c83b992d1?d=identicon)[IntractoSupport](/maintainers/IntractoSupport)

![](https://www.gravatar.com/avatar/9e723dd83f374215e85b05fa260826f267bcef0dfb1026246ca1d845ae4f3a39?d=identicon)[JeroenNoten](/maintainers/JeroenNoten)

![](https://www.gravatar.com/avatar/6f1ed5a230a1b7a889ad5bb727fc43f070e2d57ad9f857625226096cbfcc80c7?d=identicon)[aadmathijssen](/maintainers/aadmathijssen)

![](https://www.gravatar.com/avatar/5270be3fd791a1045f0d928c0ca5d801d2c9dac77b83338a8ac877b94c6f7934?d=identicon)[mischabraam](/maintainers/mischabraam)

---

Top Contributors

[![francoisvdv](https://avatars.githubusercontent.com/u/290790?v=4)](https://github.com/francoisvdv "francoisvdv (102 commits)")[![aadmathijssen](https://avatars.githubusercontent.com/u/3796971?v=4)](https://github.com/aadmathijssen "aadmathijssen (10 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")[![muuk-iO](https://avatars.githubusercontent.com/u/97738632?v=4)](https://github.com/muuk-iO "muuk-iO (1 commits)")

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/isaac-composer-git-hooks/health.svg)

```
[![Health](https://phpackages.com/badges/isaac-composer-git-hooks/health.svg)](https://phpackages.com/packages/isaac-composer-git-hooks)
```

###  Alternatives

[humbug/box

Fast, zero config application bundler with PHARs.

1.3k801.5k69](/packages/humbug-box)[vaimo/composer-patches

Applies a patch from a local or remote file to any package that is part of a given composer project. Patches can be defined both on project and on package level. Optional support for patch versioning, sequencing, custom patch applier configuration and patch command for testing/troubleshooting added patches.

2994.3M16](/packages/vaimo-composer-patches)[mglaman/composer-drupal-lenient

1317.4M15](/packages/mglaman-composer-drupal-lenient)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5341.9M446](/packages/drupal-core-composer-scaffold)[roots/wordpress-core-installer

A Composer custom installer to handle installing WordPress as a dependency

4115.6M19](/packages/roots-wordpress-core-installer)[drupal/core-project-message

Adds a message after Composer installation.

2122.6M172](/packages/drupal-core-project-message)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
