Skip to content
This repository has been archived by the owner on Jul 17, 2021. It is now read-only.
/ LaravelGitHooks Public archive

💥 A package for running artisan commands as git hooks in your laravel projects. Ships with phpunit, phpcs, and eslint 🎣

License

Notifications You must be signed in to change notification settings

mr-feek/LaravelGitHooks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b3ea790 Â· Jul 10, 2019
Jul 10, 2019
Jul 10, 2019
Sep 5, 2017
Sep 16, 2017
Sep 5, 2017
Jul 9, 2019
Jul 10, 2019
Sep 5, 2017
Sep 5, 2017
Oct 18, 2017
Sep 5, 2017
Oct 19, 2017
Jul 10, 2019
Jul 10, 2019
Jul 10, 2019
Jul 9, 2019
Jul 9, 2019
Jul 9, 2019
Sep 16, 2017

Repository files navigation

Laravel Git Hooks

Laravel Git Hooks

This is a community project and not an "official" Laravel one

Latest Stable Version Total Downloads License Build Status

This package provides a way to add custom git hooks to your laravel project. Easily configure any command to be fired throughout the git-hook process. Want to ensure that all tests pass before a bad commit is pushed? Now's your chance!

Currently, the following git hooks are supported:

  • pre-commit
  • prepare-commit-msg
  • pre-push
  • post-checkout

Install

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"
]

Configuration

  • Publish this package's configuration file: php artisan vendor:publish --provider="Feek\LaravelGitHooks\LaravelGitHooksServiceProvider"
  • Register specific artisan 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 the pre-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 [
    'commit-msg' => [
        //
    ],
    'pre-commit' => [
        'php artisan hooks:phpcs --diff --proxiedArguments="-p -n --standard=PSR2"',
        'php artisan hooks:eslint --diff --proxiedArguments="--fix --quiet"',
    ],
    'pre-push' => [
        './vendor/bin/phpunit'
    ],
    'post-checkout' => [
        'php artisan hooks:install-deps'
    ],
    'prepare-commit-msg' => [
        'php artisan hooks:semantic-commits',
    ],
];

Commands

This package ships with several handy artisan commands which work nicely as git hooks. The following commands come included:

  • phpcs
  • phpcbf
  • phpstan
  • install dependencies (composer, yarn, npm)
  • eslint
  • semantic commit messages

Sniffer Commands

The PHPCS, PHPCBF, PHPSTAN, 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

Supported Versions Of Laravel

Laravel ^5.5 is actively supported. Need support for earlier versions of Laravel? Feel free to open a PR

Change log

Please see CHANGELOG for more information on what has changed recently.

Contributing

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

Credits

License

The MIT License (MIT). Please see License File for more information

About

💥 A package for running artisan commands as git hooks in your laravel projects. Ships with phpunit, phpcs, and eslint 🎣

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published