Aller au contenu principal

Pre-commit

Prélude

Un hook pre-commit est un hook git côté client qui s'exécute juste avant la création du commit. Veuillez vous référer à notre centre d'apprentissage pour plus d'informations.

Le hook pre-commit de GitGuardian est exécuté via notre application CLI : ggshield. ggshield est un wrapper autour de l'API GitGuardian pour la détection de secrets qui nécessite une clé API pour fonctionner.

Aperçu

pre-commit preview

info

Personnalisez le message de remédiation et ajoutez le vôtre pour offrir aux développeurs des conseils précis afin de résoudre les problèmes de code et poursuivre leur travail.

En savoir plus ici - Message de remédiation personnalisé GitGuardian CLI

Installation

Le framework pre-commit

Afin d'utiliser ggshield avec le framework pre-commit, vous devez effectuer les étapes suivantes.

  1. Assurez-vous d'avoir pre-commit installé :
$ pip install pre-commit
  1. Créez un fichier .pre-commit-config.yaml à la racine de votre dépôt avec le contenu suivant :
repos:
- repo: https://github.com/gitguardian/ggshield
rev: v1.51.0
hooks:
- id: ggshield
language_version: python3
stages: [pre-commit]
  1. Puis installez le hook avec la commande :
$ pre-commit install
pre-commit installed at .git/hooks/pre-commit

Vous êtes maintenant prêt !

Note : Si vous souhaitez ignorer toutes les vérifications pre-commit, vous pouvez ajouter le paramètre -n comme suit :

$ git commit -m "commit message" -n

Alternativement, si vous souhaitez uniquement ignorer ggshield, vous pouvez utiliser SKIP=ggshield avant la commande :

$ SKIP=ggshield git commit -m "commit message"

Hook pre-commit global

Pour installer pre-commit globalement (pour tous les dépôts actuels et futurs) :

  1. Connectez-vous à votre workspace GitGuardian et créez un Personal Access Token depuis vos paramètres personnels.
  2. Ajoutez ce Personal Access Token (clé API) à la variable d'environnement GITGUARDIAN_API_KEY de votre environnement de développement.
  3. Exécutez la commande suivante :
$ ggshield install --mode global

Elle va :

  • vérifier si un dossier de hooks global est défini dans la configuration git globale.
  • créer le dossier ~/.git/hooks (si nécessaire).
  • créer un fichier pre-commit qui sera exécuté avant chaque commit.
  • donner les droits d'exécution à ce fichier.

Hook pre-commit local

Vous pouvez installer le hook localement sur les dépôts souhaités :

  1. Connectez-vous à votre workspace GitGuardian et créez un Personal Access Token depuis vos paramètres personnels.
  2. Ajoutez ce Personal Access Token (clé API) à la variable d'environnement GITGUARDIAN_API_KEY dans votre dépôt.
  3. Rendez-vous dans le dépôt et exécutez la commande suivante :
$ ggshield install --mode local

Notes :

  • Si un fichier exécutable pre-commit existe déjà, il ne sera pas écrasé. Vous pouvez forcer l'écrasement avec l'option --force :
$ ggshield install --mode local --force
  • Si vous avez déjà un fichier exécutable pre-commit et que vous souhaitez utiliser ggshield, il vous suffit d'ajouter cette ligne dans le fichier :
$ ggshield secret scan pre-commit
  • Si vous souhaitez essayer le scan pre-commit via l'image docker :
$ docker run -e GITGUARDIAN_API_KEY -v $(pwd):/data --rm gitguardian/ggshield ggshield secret scan pre-commit