Pour valider automatiquement avec Pylint les sources Python modifiés à chaque commit, il suffit d’ajouter un hook Git.
Il faut ajouter le script shell pre-commit suivant dans le répertoire .git/hooks du projet :
#!/bin/sh
#
# Pre commit hooks
set -e
DIR=`dirname $0`
${DIR}/pylint
Ce script est appelé par Git avant chaque commit. Il appelle le script qui va réaliser la validation Pylint, appelé fort judicieusement pylint, qui se présente comme suit :
#!/bin/sh
#
# Pre commit hook to check Python code with Pylint
set -e
ROOT=`dirname $0`/../..
. ${ROOT}/venv/bin/activate
files=`git diff --name-only --cached | grep "\.py$" | xargs ls -d 2> /dev/null` || true
if [ ! -z "$files" ];
then
pylint --rcfile=${ROOT}/.pylintrc ${files}
fi
À noter que Pylint est appelé avec le fichier de configuration .pylintrc se trouvant à la racine du projet. Il est grandement recommandé de configurer Pylint avec un tel fichier que l’on pourra générer avec la commande pylint --generate-rcfile > .pylintrc
.
Ce script active aussi le virtualenv du projet se trouvant dans le répertoire venv à la racine.
Les sources des scripts de cet article sont disponibles dans cette archive.
Enjoy!