Aller au contenu principal

Référence de configuration

Exclure des chemins des scans

Vous pouvez exclure des fichiers ou répertoires spécifiques des scans effectués par ggshield à l'aide d'un fichier de configuration global. Ceci est utile pour ignorer des fixtures de test, des fichiers générés ou d'autres chemins connus comme étant sûrs.

ggshield recherche un fichier de configuration .gitguardian.yaml à deux emplacements, évalués dans cet ordre :

  1. Configuration globale dans le répertoire personnel de l'utilisateur :
    • ~/.gitguardian.yaml sur Linux ou macOS
    • %USERPROFILE%\.gitguardian.yaml sur Windows
  2. Configuration locale à ./.gitguardian.yaml dans le répertoire en cours de scan.

Les deux fichiers suivent le même format que le fichier de configuration ggshield. Les paramètres de la configuration locale prévalent sur ceux de la configuration globale. Utilisez la clé ignored_paths sous secret pour spécifier des motifs glob pour les chemins à exclure :

secret:
ignored_paths:
- 'LICENSE' # exact file at the root
- '*.log' # all .log files in the root directory
- 'doc/*' # all files directly inside doc/
- 'tests/**/*' # all files anywhere inside tests/
- '**/*.generated.ts' # all .generated.ts files in any directory
- '**/README.md' # all README.md files in any directory

Planifier les scans entre fuseaux horaires

La planification des scans est configurée au moment du déploiement. Il existe deux approches :

  • Planification native MDM : configurez la fréquence d'exécution directement dans votre MDM pour le script personnalisé (par exemple, la fréquence d'exécution des politiques de Jamf).
  • Planification au niveau de l'OS : déployez une tâche planifiée via le MDM et laissez le planificateur de l'OS gérer la récurrence : un agent launchd sur macOS, une tâche Task Scheduler sur Windows, ou un timer systemd ou une entrée cron sur Linux. Un déclencheur horaire tel que « 18:00 quotidien » se déclenche à 18 h dans le fuseau horaire local de chaque appareil automatiquement.

Identifiant machine

GitGuardian utilise un identifiant de source pour représenter chaque machine dans votre inventaire. Il a le format <hostname>/<system_id> et sert à dédupliquer les résultats entre scans successifs d'une même machine.

Le Hostname est obtenu via :

  • L'appel système gethostname() sur Linux et macOS
  • La variable d'environnement COMPUTERNAME sur Windows

Le System ID est un identifiant unique spécifique à la plateforme :

  • macOS : le IOPlatformUUID issu de ioreg -rd1 -c IOPlatformExpertDevice
  • Linux : la première valeur non vide parmi /etc/machine-id, /sys/class/dmi/id/product_uuid ou /var/lib/dbus/machine-id
  • Windows : l'UUID issu de wmic csproduct get uuid, avec un fallback PowerShell

Repli : si aucun ID spécifique à la plateforme ne peut être déterminé, un UUID v4 aléatoire est généré et mis en cache dans ~/.ggshield/machine_id afin qu'il persiste entre les scans. Un avertissement est journalisé dans ce cas — si ce fichier est supprimé, un nouvel ID est généré et la machine peut apparaître comme un doublon dans votre inventaire.