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. redcode/pre-commit

ActiveLibrary

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 1mo 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 27% 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

3897d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/141e58f9f8c19ad2f259d706caade38f44873f47260e09ae03c2cc1effa32bed?d=identicon)[maZahaca](/maintainers/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

[vimeo/psalm

A static analysis tool for finding errors in PHP applications

5.8k77.5M6.7k](/packages/vimeo-psalm)[captainhook/captainhook

PHP git hook manager

1.1k6.8M365](/packages/captainhook-captainhook)[ramsey/conventional-commits

A PHP library for creating and validating commit messages according to the Conventional Commits specification. Includes a CaptainHook action!

1931.2M120](/packages/ramsey-conventional-commits)[marcocesarato/php-conventional-changelog

Generate changelogs and release notes from a project's commit messages and metadata and automate versioning with semver.org and conventionalcommits.org

2511.3M107](/packages/marcocesarato-php-conventional-changelog)[nilportugues/php_backslasher

Adds all PHP internal functions to its namespace by adding backslash to them. Improves the application's performance when OPCache is on.

889.3k17](/packages/nilportugues-php-backslasher)[nilportugues/php_todo

Looks into the code using a user-defined list of to-do phrases and stops commit if the total amount increased or is above a threshold.

1210.0k](/packages/nilportugues-php-todo)

PHPackages © 2026

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