Es gibt viele andere Werkzeuge und Komponisten -Plugins für die Verwaltung von Git -Hooks. Aber GitHooks bietet:
githooks tool name-of-the-tool verwendet werden muss.Darüber hinaus kann es zusammen mit JavaScript -Validierungstools wie Typicode/Husky verwendet werden, wenn Sie über hybride Projekte verfügen.
composer require --dev wtyd/githooks HINWEIS: Für PHP <8.1 müssen Sie das nächste post-update-cmd Ereignis in den Abschnitt scripts in Ihrem composer.json hinzufügen:
"scripts" : {
"post-update-cmd" : [
" Wtyd \ GitHooks \ Utils \ ComposerUpdater::phpOldVersions "
]
} Führen Sie dann composer update wtyd/githooks aus.
Bis zu Version 2.3.0 war die verwendete Methode Php72OrminorUpdate , wurde jedoch veraltet und wird von Version 3.0.0 entfernt
Es ist auch zweckmäßig, es dem Ereignis post-install-cm zu erweitern, damit der Rest der Projektentwickler keine Probleme mit dem Build hat
"scripts" : {
"post-update-cmd" : " Wtyd \ GitHooks \ Utils \ ComposerUpdater::phpOldVersions " ,
"post-install-cmd" : " Wtyd \ GitHooks \ Utils \ ComposerUpdater::phpOldVersions "
}githooks conf:init . Dieser Befehl erstellt die Konfigurationsdatei im Root -Pfad ( githooks.yml ). githooks hook laufen. Es kopiert das Skript für den Start von GitHooks im Verzeichnis von .git/hooks im Vor-Commit-Ereignis. Sie können auch githooks hook otherHook MyScriptFile.php . Weitere Informationen finden Sie im Wiki. Um sicherzustellen, dass es automatisch konfiguriert ist, können wir den Befehl in der post-update-cmd und post-install-cmd Ereignisse der composer.json Datei ( scripts ) konfigurieren:
"scripts" : {
"post-update-cmd" : [
" vendor/bin/githooks hook " // or "vendor/bin/githooks hook pre-commit MyScriptFile.php"
],
"post-install-cmd" : [
" vendor/bin/githooks hook "
]
}Wenn Sie sich begehen, werden alle konfigurierten Code -Check -Tools automatisch gestartet. Wenn Ihr Code alle Schecks übergibt, können Sie mit GitHooks festlegen. Wenn nicht, müssen Sie den Code beheben und erneut versuchen:
Sie können auch GitHooks ausführen, wann immer Sie möchten. Alle Tools gleichzeitig oder nacheinander:
githooks tool all # Run all tools
githooks tool phpcs # Run only phpcsIn diesem Moment sind die unterstützten Tools:
Sie können jedoch Ihr eigenes Skript auf jedem Git -Haken festlegen.
Die githooks.yml -Datei wird auf drei Teilen aufgeteilt:
Die execution markiert, wie GitHooks ausgeführt werden:
full (die Standardoption): Führen Sie immer alle Tools aus, die gegen den gesamten Pfad für jedes Tool festgelegt sind. Zum Beispiel haben Sie PHPCs für den Auslauf in src und app -Verzeichnissen eingerichtet. Das Komitee enthält nur modifizierte Dateien aus database . PHPCs überprüfen src und app -Verzeichnisse, auch wenn keine Dateien in diesen Verzeichnissen geändert wurden.fast : Diese Option führt die Tools nur gegen Dateien aus, die durch Commit geändert wurden.githooks.yml oder in der Konfigurationsdatei von Eath Tool festlegen, da diese Option die wichtigsten paths der Tools überschreibt, damit sie nur gegen die modifizierten Dateien ausgeführt werden. Führen Sie mehrere Tools gleichzeitig in mehreren Prozessen aus ( tool all Befehl). Die Standardzahl der Prozesse beträgt 1.
Es ist ein Array mit dem Namen der Werkzeuge, die GitHooks ausführen. Der Name der Tools ist ihre ausführbare Datei. Wenn Sie möchten, dass alle Tools ausgeführt werden, lautet der Tools -Schlüssel wie folgt:
Tools :
- phpstan
- security-checker
- parallel-lint
- phpcs
- phpcbf
- phpmd
- phpcpdDie Reihenfolge, in der die Werkzeuge sind, ist die Reihenfolge, in der sie ausgeführt werden.
Im nächsten Schritt müssen Sie die Tools mit demselben Namen wie in der Tools -Taste konfigurieren. Zum Beispiel für festgelegte PHPCs:
phpcs :
executablePath : vendor/bin/phpcs
paths : [src, tests]
ignore : [vendor]
standard : ' PSR12 'Alle verfügbaren Optionen finden Sie im Wiki.
Beiträge von anderen wären sehr geschätzt! Pull -Anfrage/Ausgabe senden. Überprüfen Sie alle Schritte, um dies im Wiki -Abschnitt zu tun, um einen Beitrag zu leisten. Danke!
Die MIT -Lizenz (MIT). Weitere Informationen finden Sie unter Lizenzdatei.