Tags personnalisés
Utiliser les tags personnalisés
Les tags personnalisés offrent une façon flexible d'organiser et de gérer les objets tels que les incidents et honeytokens dans votre workspace. Contrairement aux tags GitGuardian, qui sont prédéfinis et appliqués automatiquement aux objets, les tags personnalisés vous permettent de définir vos propres labels sous forme de clés et valeurs. Vous pouvez assigner ces tags personnalisés aux incidents et honeytokens, vous permettant de les filtrer et rechercher selon des caractéristiques spécifiques pertinentes pour votre organisation.
Pour plus d'informations sur les tags GitGuardian pour les incidents, voir la documentation Tags GitGuardian.
Des limitations s'appliquent aux tags personnalisés, selon votre plan :
- Personal : tags max par workspace : 100 (10 clés × 10 valeurs), tags max par ressource : 1
- Business and Trial : tags max par workspace : 2 500 (50 clés × 50 valeurs), tags max par ressource : 10
- Limite de caractères par tag : 100 (50 pour la clé, 50 pour la valeur)
Catégoriser vos incidents
Les tags personnalisés fournissent une façon flexible d'organiser les incidents. Vous pouvez créer vos propres tags personnalisés sous forme de clés et valeurs, les assigner aux incidents et les utiliser pour filtrer et rechercher les incidents selon des caractéristiques spécifiques. Notez que vous devez avoir les permissions « Can edit » ou être manager pour assigner ou retirer des tags personnalisés des incidents.
Catégoriser vos honeytokens
Les tags personnalisés fournissent une façon flexible d'organiser les honeytokens. Vous pouvez créer vos propres tags personnalisés sous forme de clés et valeurs, les assigner aux honeytokens et les utiliser pour filtrer et rechercher les honeytokens selon des caractéristiques spécifiques.
Gérer les tags personnalisés
Allez dans Settings > Workspace > Tags pour accéder à la page de paramètres des tags. De là, vous pouvez voir les tags existants et combien d'incidents ou honeytokens sont catégorisés sous eux. Notez que vous devez être manager pour gérer les tags personnalisés.

Créer des tags personnalisés
Vous pouvez créer de nouvelles clés et valeurs depuis la page de paramètres des tags. Notez que vous pouvez créer un tag à un seul mot.
Éditer ou supprimer des tags personnalisés
Sur la page de paramètres des tags, à droite du nom du tag, cliquez sur le menu , puis sélectionnez Edit ou Delete pour faire apparaître l'option d'éditer ou supprimer le tag. Notez que la suppression d'un tag n'est pas réversible, même s'il est utilisé dans des incidents ou honeytokens. Cependant, il est toujours possible de le supprimer, ce qui le retirera de tout incident et honeytoken.
De même, si vous éditez un tag, la modification sera appliquée à tous les incidents et honeytokens qui utilisent ce tag.
Exemples d'usage
- Créer une clé
envavec des valeurs telles queprod,test,staging, etc. - Créer une clé
placeavec des valeurs telles quecodebase,docker,jenkins,jira,slack, etc., pour représenter la localisation où le honeytoken est déployé. - Créer une clé
teamavec des valeurs représentant vos équipes et indiquant quel scope est couvert par un honeytoken. - Créer un seul tag
reviewedpour indiquer que les incidents fermés ont été examinés et validés après résolution.
Exemple Python3
Voici un exemple Python3 de comment automatiser l'application d'un tag personnalisé depuis un custom webhook :
-
Créez un Service Account Token dans GitGuardian avec les permissions de lecture et écriture de tags personnalisés et incidents.
-
Recevez une nouvelle occurrence via un custom webhook :
Exemple du payload webhook
{"source": "GitGuardian","timestamp": "2025-03-23T09:10:24.594597Z","action": "new_occurrence","message": "A new occurrence has been detected for this incident.","target_user": "GitGuardian","incident": {"id": 31605,"date": "2025-03-16T08:23:40Z","detector": {"name": "aws_iam","display_name": "AWS Keys","nature": "specific","family": "Api","detector_group_name": "aws_iam","detector_group_display_name": "AWS Keys"},"secret_hash": "xxx","secret_revoked": false,"occurrence_count": 5,"status": "assigned","regression": false,"assignee_email": "bruce.wayne@charadriidae.org","severity": "high","validity": "not_checked","ignored_at": null,"ignore_reason": null,"resolved_at": null,"gitguardian_url": "https://dashboard.gitguardian.com/workspace/1/incidents/xxx","share_url": null},"occurrence": {"id": 1234,"incident_id": 1243,"kind": "RLTM","sha": "xxx","author_name": "GitHub","author_info": "noreply@github.com","date": "2025-03-23T09:10:23.529812Z","presence": "visible","url": "https://github.com/charadriidae/wrybill-new-zealand/commit/123#diff-xxx","matches": [],"filepath": "TestJS.js","change_type": "addition","source": {"id": 710,"url": "https://github.com/charadriidae/wrybill-new-zealand","type": "github","full_name": "wrybill","health": "at_risk","open_incidents_count": 5,"closed_incidents_count": 0,"visibility": "private","last_scan": {"status": "finished","date": "2025-02-18T17:07:59.079520Z"},"external_id": "github_id"}}} -
Appliquez un tag personnalisé selon l'URL source (par exemple, si elle contient
"wrybill", appliquez le tag personnalisébird:wrybill).Référez-vous à la documentation API GitGuardian pour les incidents.
Exemple d'appel API pour appliquer un tag personnalisé
PATCH https://api.gitguardian.com/v1/incidents/secrets/31605{"custom_tags": [{"key": "bird","value": "wrybill"}]}Exemple du script python
import osimport requests# Set the GitGuardian service account token and API base URL outside the functionGITGUARDIAN_API_KEY = os.getenv("GITGUARDIAN_API_KEY")GITGUARDIAN_API_BASE_URL = os.getenv("GITGUARDIAN_API_BASE_URL", "https://api.gitguardian.com") # Default to the main GitGuardian API URL, use https://my-gg-instance.com/exposed/v1 for self-hosted# Function to apply a custom tag based on the incident_iddef apply_custom_tag(incident_id, tag_key, tag_value):url = f"{GITGUARDIAN_API_BASE_URL}/v1/incidents/secrets/{incident_id}"headers = {"Authorization": f"Token {GITGUARDIAN_API_KEY}","Content-Type": "application/json"}data = {"custom_tags": [{"key": tag_key,"value": tag_value}]}# Send the PATCH request to apply the custom tagresponse = requests.patch(url, json=data, headers=headers)if response.status_code == 200:print(f"Successfully applied custom tag: {tag_key}:{tag_value}")else:print(f"Failed to apply custom tag. Status code: {response.status_code}, {response.text}")# Function to process and extract data from the webhook payloaddef process_webhook(webhook_payload):# Extract incident ID and URL from the webhook payloadincident_id = webhook_payload.get('incident', {}).get('id')secret_url = webhook_payload.get('occurrence', {}).get('url')if incident_id and secret_url:return incident_id, secret_urlelse:print("Error: Missing incident ID or URL in the webhook.")return None, Nonedef main(webhook_payload):# Retrieve the incident_id and secret_url from the webhook payloadincident_id, secret_url = process_webhook(webhook_payload)if incident_id and secret_url:# Check if the secret_url contains the string "wrybill"if "wrybill" in secret_url:# Apply the custom tag "bird:wrybill"apply_custom_tag(incident_id, "bird", "wrybill")else:print("No matching URL found for tag application.")else:print("Invalid webhook payload.")