aequasi / git-hook-handler
Git Hook Handler
Installs: 23 914
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 3
Open Issues: 0
Requires
- symfony/console: ^2.3|^3.0|^4.0|^5.0
- symfony/process: ^2.3|^3.0|^4.0|^5.0
- symfony/yaml: ^2.3|^3.0|^4.0|^5.0
Requires (Dev)
- composer/composer: ^1.0
README
Usage
Just create a git-hooks.yml
file in your projects base directory, and fill it with an array of commands you want to run:
# git-hook.yml config: commit-on-error : true # or false pre-commit: # Simple command - bin/phpcs # or more complex command - phpunit: description : 'Run PHPUnit' command : phpunit exitcode : 0 phpcs-fixer: description : 'Checking PHP Syntax with PHP-CS-FIXER' exitcode : 0 command : >4 COMMIT_RANGE='HEAD~..HEAD' && CHANGED_FILES=$(git diff --name-only --diff-filter=ACMRTUXB "${COMMIT_RANGE}") && if ! echo "${CHANGED_FILES}" | grep -qE "^(\\.php_cs(\\.dist)?|composer\\.lock)$"; then IFS=$'\n' EXTRA_ARGS=('--path-mode=intersection' '--' ${CHANGED_FILES[@]}); fi && ./vendor/bin/php-cs-fixer fix --config=.php_cs.dist -v --dry-run --using-cache=no "${EXTRA_ARGS[@]}" post-merge: command_name: description : 'lorem ipsum' command : 'mycommand' exitcode : 0
and then place the following in your composer.json, then run composer install
or composer update
# composer.json "scripts": { "pre-update-cmd": "Aequasi\\HookHandler\\HookScript::install", "pre-install-cmd": "Aequasi\\HookHandler\\HookScript::install" }