Aller au contenu principal

Pre-push

Prélude​

Un hook pre-push est un hook git côté client qui s'exécute juste avant qu'une référence ne soit envoyée vers un dépôt distant (git push). Veuillez consulter notre centre d'apprentissage pour plus d'informations.

Le hook pre-push de GitGuardian est effectué 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é d'API pour fonctionner.

Aperçu​

pre-push 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 leurs problèmes de code et de poursuivre leur travail.

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

Installation​

Le framework pre-commit​

Pour utiliser GitGuardian CLI avec le framework pre-commit, vous devez effectuer les étapes suivantes.

  1. Assurez-vous que le framework pre-commit est installé :
pip install pre-commit
  1. Créez un fichier .pre-commit-config.yaml à la racine de votre dépôt :
repos:
- repo: https://github.com/gitguardian/ggshield
rev: v1.55.0
hooks:
- id: ggshield-push
language_version: python3
stages: [pre-push]
  1. Installez ensuite le hook avec la commande :
pre-commit install --hook-type pre-push
pre-commit installed at .git/hooks/pre-push

Vous voilà prêt !

Pour éviter de longs délais, par défaut le hook pre-push ne scannera pas les pushes comportant plus de 50 commits. Ce paramètre peut être configuré à l'aide de la clé max-commits-for-hook dans le fichier de configuration de ggshield.

Hook pre-push global​

Pour installer pre-push de manière globale (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é d'API) à la variable d'environnement GITGUARDIAN_API_KEY de votre environnement de développement.
  3. Exécutez la commande suivante :
ggshield install --mode global -t pre-push

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-push qui sera exécuté avant chaque commit.
  • donner un accès exécutable à ce fichier.

Hook pre-push 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é d'API) à la variable d'environnement GITGUARDIAN_API_KEY dans votre dépôt.
  3. Allez dans le dépôt et exécutez la commande suivante :
ggshield install --mode local -t pre-push

Notes :

  • Si un fichier exécutable pre-push existe déjà, il ne sera pas écrasé. Vous pouvez forcer l'écrasement avec l'option --force :
ggshield install --mode local -t pre-push --force