Git Pre-Receive-Hook zum Starten von PHP-CodesNiffer [geschlossen
-
23-09-2019 - |
Frage
Ich möchte den Code überprüfen, der sich mit meinem Remote -Git -Repository mit PHP -CodesNiffere verpflichtet und abgelehnt hat, wenn Probleme mit dem Code -Standard vorhanden sind. Hat jemand ein Beispiel, wie man es im Git-Remote-Repository verwendet oder wie man es mit Pre-Receive-Haken verwendet? Vielen Dank.
Lösung
Vielleicht ist dieser Punkt in die richtige Richtung: (Orginal aus: http://www.squatlabs.de/versionierung/ariten-git-hooks auf Deutsch)
#!/usr/bin/php
<?php
$output = array();
$rc = 0;
exec('git rev-parse --verify HEAD 2> /dev/null', $output, $rc);
if ($rc == 0) $against = 'HEAD';
else $against = '4b825dc642cb6eb9a060e54bf8d69288fbee4904';
exec('git diff-index --cached --name-only '. $against, $output);
$needle = '/(\.php|\.module|\.install)$/';
$exit_status = 0;
foreach ($output as $file) {
if (!preg_match($needle, $file)) {
// only check php files
continue;
}
$lint_output = array();
$rc = 0;
exec('php -l '. escapeshellarg($file), $lint_output, $rc);
if ($rc == 0) {
continue;
}
# echo implode("\n", $lint_output), "\n";
$exit_status = 1;
}
exit($exit_status);
Sie müssen den EXEC -Zeilen -EXEC ('php -l ... bearbeiten, um auf Ihre CodesNifferen -Installation zu verweisen.
Andere Tipps
Nach dieser Zeile: generasacodicetagpre.
Definieren Sie ein Array mit den Namen, die Sie für jedes Bild geben möchten: generasacodicetagpre.
und statt: generasacodicetagpre.
Write: generasacodicetagpre.
Über die Verwendung von header
gibt es ein Problem, da Sie bereits echo
verwendet haben.
Fügen Sie am Ende der Datei ob_start()
zu Beginn der Datei und des generationspflichten "
Jetzt können Sie den Header () auch nach dem Senden der Ausgabe hinzufügen.
edit2: In Bezug auf Ihren Kommentar gibt es eine alternative Wege zur Umleitung.
add: generasacodicetagpre.
Nachfolgend: generasacodicetagpre.
und danach: generasacodicetagpre.
add: generasacodicetagpre.
Dies könnte helfen: http://github.com/s0enke/git-hooks/tree/master/phpcs-pre-commit/
Ich habe einen Pre-Receive-Git-Hook entwickelt, der auf PHPCODESNIFFER basiert, um das Code-Styling von PHP-, JavaScript- und CSS-Dateien zu überprüfen.
Mein Skript ist bei GitHub erhältlich:https://github.com/blueicefield/php_codesniffer_git_hook