PHPackages                             redcode/pre-commit - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. redcode/pre-commit

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

redcode/pre-commit
==================

Adds ability to manipulate with git pre commit hooks

0.1.x-dev(10y ago)01101[4 issues](https://github.com/redco/redcode-precommit/issues)MITPHPPHP &gt;=5.4.0

Since Sep 6Pushed 10y ago1 watchersCompare

[ Source](https://github.com/redco/redcode-precommit)[ Packagist](https://packagist.org/packages/redcode/pre-commit)[ RSS](/packages/redcode-pre-commit/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (4)Versions (2)Used By (0)

Pre-commit
==========

[](#pre-commit)

This is a console application which adds git pre-commit hook and gives you an ability to run custom programs on this git event.

Installation
------------

[](#installation)

The easiest way to install this library is with [Composer](https://getcomposer.org/) using the following command:

```
$ composer require --dev redcode/precommit

```

Configuration
-------------

[](#configuration)

In the root folder of your project you need to add a .pre-commit.[yml](https://en.wikipedia.org/wiki/YAML) file with custom programs configuration.

```
active:
  - php-code-style # name of active custom program
hooks:
  php-code-style: # key(name) of active custom program
    description: "PHP Code Style" # description, which will be shown on process run
    class: RedCode\GitHook\Process\PhpCsProcess # custom class which extends AbstractGitHookProcess
    script: "bin/php-cs-fixer fix --diff --dry-run %relativeFile%" # custom script to execute
    file_types: "php,phtml" # files types which will be checked by pre commit hook // if empty - all files
    paths: # prjecect paths which will be checked by pre commit hook // if empty - all root directory
        - src/My/Custom/Code
        - src/My/Custom/Lib
```

You're able to add so many custom programs as you want.

Pre-commit is already contains [Php-Cs-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) in the box. So you can just activate it using following lines:

```
active:
  - php-code-style
```

If you need to extend custom program with some options, you can do it easily in your configuration file:

```
active:
  - php-code-style
hooks:
  php-code-style:
    paths:
        - src/My/Custom/Code
        - src/My/Custom/Lib
```

Be aware that fields `description` and `class`|`script` are required. Configuration node `class` has a higher priority than `script`, but one of them must be specified.

How does it work?
-----------------

[](#how-does-it-work)

After you have successfully installed this program and created configuration file, you need to activate it in your local git repository. Pre-commit hook can be activated in two ways:

- **Manually**: use command `./bin/pre-commit install`
- **Composer event** (*RECOMMENDED*):

    Add to your composer.json file following section:

    ```
    "scripts": {
        "post-update-cmd": "RedCode\\GitHook\\ComposerListener::postUpdate",
        "post-install-cmd": "RedCode\\GitHook\\ComposerListener::postInstall"
    },
    ```

    This way will add a pre-commit hook to all your developers after they do `composer install` or `update` commands.

What's next?
------------

[](#whats-next)

Just try to commit something and if your custom script says that file is *NOT* good, you will see output and commit process will be suspended.

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

3943d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1290067?v=4)[Andrew Red](/maintainers/maZahaca)[@maZahaca](https://github.com/maZahaca)

---

Top Contributors

[![maZahaca](https://avatars.githubusercontent.com/u/1290067?v=4)](https://github.com/maZahaca "maZahaca (20 commits)")

---

Tags

phpcodestylegitHOOKcommitpre-commitvcsprecommit

### Embed Badge

![Health badge](/badges/redcode-pre-commit/health.svg)

```
[![Health](https://phpackages.com/badges/redcode-pre-commit/health.svg)](https://phpackages.com/packages/redcode-pre-commit)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.6k38.2k](/packages/matomo-matomo)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

101466.4k45](/packages/friendsoftypo3-content-blocks)

PHPackages © 2026

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