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 soit poussée vers un remote (git push). Veuillez consulter notre centre d'apprentissage pour plus d'informations.
Le hook pre-push GitGuardian est réalisé 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

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 leur code et 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.
- Assurez-vous d'avoir installé le framework pre-commit :
pip install pre-commit
- Créez un fichier
.pre-commit-config.yamlà la racine de votre dépôt :
repos:
- repo: https://github.com/gitguardian/ggshield
rev: v1.51.0
hooks:
- id: ggshield-push
language_version: python3
stages: [pre-push]
- Ensuite, installez le hook avec la commande :
pre-commit install --hook-type pre-push
pre-commit installed at .git/hooks/pre-push
Vous êtes maintenant prêt à l'utiliser !
Pour éviter de longs délais, par défaut le hook pre-push ne scannera pas les pushs comportant plus de 50 commits. Ce paramètre peut être configuré via la clé
max-commits-for-hookdans le fichier de configuration de ggshield.
Hook pre-push global
Pour installer pre-push globalement (pour tous les dépôts actuels et futurs) :
- Connectez-vous à votre workspace GitGuardian et créez un Personal Access Token depuis vos paramètres personnels.
- Ajoutez ce Personal Access Token (clé d'API) à la variable d'environnement
GITGUARDIAN_API_KEYde votre environnement de développement. - Exécutez la commande suivante :
ggshield install --mode global -t pre-push
Cela va :
- vérifier si un dossier de hook global est défini dans la configuration globale de git.
- créer le dossier
~/.git/hooks(si nécessaire). - créer un fichier
pre-pushqui sera exécuté avant chaque commit. - donner l'accès en exécution à ce fichier.
Hook pre-push local
Vous pouvez installer le hook localement sur les dépôts souhaités :
- Connectez-vous à votre workspace GitGuardian et créez un Personal Access Token depuis vos paramètres personnels.
- Ajoutez ce Personal Access Token (clé d'API) à la variable d'environnement
GITGUARDIAN_API_KEYdans votre dépôt. - 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