Sont de nombreux autres outils et plugins compositeurs pour gérer les crochets Git. Mais Githooks propose:
githooks tool name-of-the-tool .De plus, il peut être utilisé avec des outils de validation JavaScript comme typicode / husky si vous avez des projets hybrides.
composer require --dev wtyd/githooks Remarque: Pour PHP <8.1, vous devez ajouter le prochain événement post-update-cmd à la section scripts dans votre composer.json :
"scripts" : {
"post-update-cmd" : [
" Wtyd \ GitHooks \ Utils \ ComposerUpdater::phpOldVersions "
]
} Exécutez ensuite composer update wtyd/githooks .
Jusqu'à la version 2.3.0, la méthode utilisée était php72orminorupdate mais elle a été obsolète et sera supprimée de la version 3.0.0
Il est également pratique de l'ajouter à l'événement post-install-cm afin que le reste des développeurs du projet n'ait pas de problèmes avec la construction
"scripts" : {
"post-update-cmd" : " Wtyd \ GitHooks \ Utils \ ComposerUpdater::phpOldVersions " ,
"post-install-cmd" : " Wtyd \ GitHooks \ Utils \ ComposerUpdater::phpOldVersions "
}githooks conf:init . Cette commande crée le fichier de configuration dans le chemin racine ( githooks.yml ). githooks hook . Il copie le script de lancement de githooks sur l'événement pré-Commiss dans le répertoire .git/hooks . Vous pouvez également exécuter githooks hook otherHook MyScriptFile.php pour définir n'importe quel crochet avec un script personnalisé. Voir le wiki pour plus d'informations. Pour nous assurer qu'il est configuré automatiquement, nous pouvons configurer la commande dans le post-update-cmd et les événements post-install-cmd du fichier composer.json (section scripts ):
"scripts" : {
"post-update-cmd" : [
" vendor/bin/githooks hook " // or "vendor/bin/githooks hook pre-commit MyScriptFile.php"
],
"post-install-cmd" : [
" vendor/bin/githooks hook "
]
}Lorsque vous vous engagez, tous les outils de vérification de code configurés sont automatiquement lancés. Si votre code passe toutes les vérifications, Githooks vous permet de vous engager. Sinon, vous devez réparer le code et réessayer:
Vous pouvez également exécuter des githooks quand vous le souhaitez. Tous les outils en même temps ou un par un:
githooks tool all # Run all tools
githooks tool phpcs # Run only phpcsEn ce moment, les outils pris en charge sont:
Mais vous pouvez définir votre propre script sur n'importe quel crochet git.
Le fichier githooks.yml est divisé sur trois parties:
Le drapeau execution marque comment Githooks va fonctionner:
full (l'option par défaut): exécute toujours tous les outils définis par rapport à tous les chemins définis pour chaque outil. Par exemple, vous avez configuré des PHPC pour l'exécution dans les répertoires src et app . Le commit contient uniquement des fichiers modifiés à partir du répertoire database . PHPCS vérifiera les répertoires src et app même si aucun fichier dans ces répertoires n'a été modifié.fast : cette option exécute les outils uniquement contre les fichiers modifiés par commit.githooks.yml ou dans le fichier de configuration de l'outil EATH, car cette option écrase les paths clés des outils afin qu'ils soient exécutés uniquement sur les fichiers modifiés. Exécutez plusieurs outils dans plusieurs processus en même temps ( tool all Command). Le nombre de processus par défaut est 1.
Il s'agit d'un tableau avec le nom des outils que Githooks exécutera. Le nom des outils est leur exécutable. Si vous souhaitez que tous les outils soient exécutés, la clé Tools sera la suivante:
Tools :
- phpstan
- security-checker
- parallel-lint
- phpcs
- phpcbf
- phpmd
- phpcpdL'ordre dans lequel les outils sont l'ordre dans lequel ils seront exécutés.
Dans l'étape suivante, vous devez configurer les outils avec le même nom que dans la touche Outils . Par exemple, pour définir des phpcs:
phpcs :
executablePath : vendor/bin/phpcs
paths : [src, tests]
ignore : [vendor]
standard : ' PSR12 'Toutes les options disponibles sont dans le wiki.
Les contributions des autres seraient très appréciées! Envoyer une demande / problème de traction. Vérifiez toutes les étapes pour faire cela dans la section Wiki pour contribuer. Merci!
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.