redcode / pre-commit
Adds ability to manipulate with git pre commit hooks
Requires
- php: >=5.4.0
- fabpot/php-cs-fixer: ~1.10
- symfony/console: >=2.5
- symfony/process: ~2.0
- symfony/yaml: >=2.5
This package is not auto-updated.
Last update: 2024-10-26 19:21:24 UTC
README
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
The easiest way to install this library is with Composer using the following command:
$ composer require --dev redcode/precommit
Configuration
In the root folder of your project you need to add a .pre-commit.yml 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 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?
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
orupdate
commands.
What's 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.