Je voudrais vérifier le code commis à mon dépôt git distant avec PHP CodeSniffer et le rejeter s'il y a des normes de code de problèmes. Est-ce que quelqu'un a un exemple comment l'utiliser sur le dépôt à distance git ou peut-être exemple comment l'utiliser avec le crochet de pré-réception? Merci.Git pré-recevoir le crochet pour lancer PHP CodeSniffer
Répondre
Peut-être que ce point vous dans la bonne direction: (Orginal de: http://www.squatlabs.de/versionierung/arbeiten-git-hooks en allemand)
#!/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);
Vous devrez modifier l'exécutif de ligne exec ('php -l ... pour pointer vers votre codesniffer . Installation
Ok j'ai trouvé la solution :)
Ceci est une preuve de concept :) code pour crochet pré-recevoir:
#!/bin/bash
while read old_sha1 new_sha1 refname; do
echo "ns: " $new_sha1;
echo "os: " $old_sha1;
echo "----"
git ls-tree -r $new_sha1 | cut -f 3 -d ' ' | cut -f 1 | while read file; do
git cat-file blob $file
done;
echo "----"
done
exit 1
Cet exemple de code n'imprimera que les blobs reçus par le dépôt distant mais cela suffira pour que quelqu'un ait besoin de quelque chose comme ça (j'espère).
Vous pouvez mettre chaque blob dans une course de fichier temporaire que vous avez besoin sur ce fichier supprimer le fichier et ainsi de suite ...
merci, cela a beaucoup aidé –
Cela pourrait aider: http://github.com/s0enke/git-hooks/tree/master/phpcs-pre-commit/
Ceci est un crochet pré-commit, ce qui est très différent. –
J'ai développé un crochet git pré-réception basé sur PHPCodeSniffer pour vérifier le style de code des fichiers PHP, JavaScript et CSS.
Mon script est disponible à partir Github: https://github.com/blueicefield/PHP_CodeSniffer_GIT_Hook
Pouvez-vous étendre votre réponse avec un exemple? Comme l'exemple bash dans une réponse ci-dessus? Donc, il est clair à partir de la réponse seule comment utiliser? – hakre
- 1. Git pré-réception crochet
- 2. crochet git pré-poussé?
- 3. J'ai besoin d'un crochet Git pour synchroniser le schéma MySql
- 4. Git post-réception crochet ne fonctionne pas
- 5. client Git lancer d'erreur
- 6. crochet git-clone et post-checkout
- 7. Crochet de validation de code JIRA pour 'git'
- 8. Pear CodeSniffer Cyclomatic Complexity
- 9. Crochet de pré-validation Git: fichiers modifiés/ajoutés
- 10. Comment utiliser correctement le crochet après réception?
- 11. Git crochet de courrier électronique pour inclure le message de validation et les fichiers modifiés
- 12. Écrire un crochet git pour modifier automatiquement le code pendant les validations locales
- 13. Git pré-auto-gc crochet pas invoqué du tout
- 14. Git post-réception crochet agit différemment à shell
- 15. fonctionnalité de pré-extraction du crochet dans git
- 16. git: qui a poussé en post-recevoir crochet
- 17. git pull dans un crochet ne pas exécuter
- 18. Comment utiliser git pour le déploiement?
- 19. Crochet sur le moniteur d'allumer
- 20. Git post-recevoir un crochet pour mettre à jour plusieurs serveurs
- 21. Comment écrire un crochet git pour restreindre l'écriture à la branche?
- 22. Git: crochet de courrier après réception pour montrer un diff de couleur au format html?
- 23. Remplacer le crochet par Powershell
- 24. Subversion échoue sur le crochet post-commit?
- 25. Lancer le script PHP local avec le script Python local
- 26. Pourquoi est-ce que je reçois une exception de PHP CodeSniffer?
- 27. Doctrine sur le crochet construit par requête
- 28. Comment faire pour lancer des objets en PHP
- 29. SetWindowsHookEx(), le crochet n'est pas maintenu? (éventuellement)
- 30. script shell pour télécharger le fichier distant et lancer le script et écrire autre en PHP
malheureusement, il ne fonctionne pas avec pré-recevoir crochet :( – Ralphz
Nop, vous devrez créer un pré-engagement sur le côté client, mais vous pouvez suivre la AFAIK, vous le serveur ne peut pas tester le contenu en poussant ... :( – FMaz008