Un avis ? Un commentaire ?
Cet espace est pour vous.
N’est pas Cédric qui veut, certaines erreur se font silencieusement et provoquent des failles qui peuvent mettre du temps à être détectées…
Notamment, il suffit d’un instant d’inattention pour commiter un secret (fichier .env, clé SSH, jeton d’API…) dans un dépôt Git. Ce genre d’étourderie peut être commise aussi bien par les devs que par les QA ! Heureusement, il existe des manières d’empêcher ce genre de chose d’arriver. Dans cet article, nous vous montrons comment mettre en place une protection locale avec deux outils : pre-commit et GitLeaks.
Et, pour précision, cette solution est 100 % gratuite.
pre-commit est un gestionnaire de hooks Git qui s’exécute juste avant la création d’un commit.
Son rôle n’est pas de détecter les secrets lui-même ; il orchestre l’exécution d’outils de contrôle. Et en l’occurrence…
GitLeaks est un outil de détection de secrets. Il recherche notamment :
Le principe est le suivant :
Vérifier que Git et Python sont installés (on vous donne toutes les commandes, on est comme ça nous…)
git --version
python --version
pip install pre-commit
Vérifier :
pre-commit --version
À la racine du dépôt Git, créer un fichier .pre-commit-config.yaml avec le contenu suivant :
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.30.1
hooks:
- id: gitleaks
Lors du premier commit, pre-commit télécharge automatiquement la version définie et la place dans son cache local. L’intérêt : toute l’équipe utilise exactement la même version de GitLeaks, indépendamment de l’environnement de développement de chaque personne. Cela évite par exemple qu’un poste tourne avec une version ancienne, dotée de moins de règles de détection.
Toujours à la racine du dépôt :
pre-commit install
Le résultat attendu :
pre-commit installed at .git/hooks/pre-commit
À partir de maintenant, chaque git commit déclenchera automatiquement GitLeaks.
Créer un fichier (nommé « test » pour plus d’originalité) contenant un faux secret, par exemple une clé SSH créée pour l’occasion et qui ne servira jamais à rien.
Puis, essayez de commiter ce nouveau fichier.
Le commit est refusé :

La sortie de commande indique quel fichier et à quelle ligne se trouve le secret.

Sympa non ?
Attention : le hook pre-commit protège efficacement les postes de développement, mais il ne constitue pas une garantie absolue. Une personne peut techniquement contourner un hook avec :
git commit --no-verify
ou tout simplement oublier d’installer les hooks sur un nouveau poste.
Pour une protection complète, il est recommandé de cumuler :
pre-commit sur les machines de développement ;Avec quelques minutes de configuration, pre-commit et GitLeaks déplacent la détection des secrets au meilleur endroit : avant leur enregistrement dans Git. La configuration est légère, reproductible et adaptée au travail en équipe ; chaque poste applique automatiquement les mêmes règles et la même version de l’outil, sans installation supplémentaire de GitLeaks.
Et vous, avez-vous déjà retrouvé un secret oublié au fond d’un historique Git ?
Cet espace est pour vous.