This package provides a means to add custom git hooks to your laravel project. Easily configure any artisan command to be fired throughout the git-hook process.
By default, this package ships with artisan commands for running:
- phpunit
- phpcs
- eslint
Currently, the following git hooks are supported:
- pre-commit
- prepare-commit-msg
- pre-push
Need one that isn't listed here? Feel free to open a PR!
Via Composer
$ composer require mr-feek/laravel-git-hooks --dev
Edit your laravel project's composer.json
so that these hooks are installed for every developer after they use composer.
"post-autoload-dump": [
...
"@php artisan hooks:install"
]
- Publish this package's configuration file:
php artisan vendor:publish --provider="Feek\LaravelGitHooks\LaravelGitHooksServiceProvider"
- Register specific commands to be run in the configuration array. For example, all commands nested within the
pre-commit
array key will be run prior to a git commit. All commands nested within thepre-push
array key will be run prior to a git push. If any of these registered commands fail, then the git action will be prevented.
<?php
return [
'pre-commit' => [
'hooks:phpcs --diff --proxiedArguments="-p -n --standard=PSR2"',
'hooks:eslint --diff --proxiedArguments="--fix --quiet"',
],
'pre-push' => [
'hooks:phpunit'
]
];
The PHPCS
, PHPCBF
, and ESLINT
commands all allow you to pass arguments to the underlying process being executed. You
can utilize this via the --proxiedArguments
flag. In the code examples above, the following phpcs command will be executed:
phpcs -p -n --standard=PSR2
Laravel ^5.5 is actively supported. Need support for earlier versions of Laravel? Feel free to open a PR
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Wondering how to go about working on a laravel package? See http://laraveldaily.com/how-to-create-a-laravel-5-package-in-10-easy-steps/ and https://laravel.com/docs/5.5/packages
- Fiachra McDermott
- All Contributors
- Fish hook icon originally provided by Carson Wittenberg.
The MIT License (MIT). Please see License File for more information