ServiceNow
GitGuardian propose une intégration avec ServiceNow, permettant aux utilisateurs de synchroniser leurs incidents GitGuardian avec les issues ServiceNow. Cette intégration aide à simplifier les processus de remédiation d'incidents et à les aligner avec le Software Development Lifecycle (SDLC).
Bénéfices
Cette fonctionnalité simplifie le processus de création d'issues ServiceNow à partir des incidents GitGuardian :
- Supporte la création d'issues manuelle et automatique lors de la détection d'incident.
- Fournit des templates personnalisables qui utilisent les variables GitGuardian pour des descriptions d'issues sur mesure.
- Inclut une fonctionnalité d'auto-resolve qui ferme automatiquement les incidents GitGuardian lorsque les issues ServiceNow correspondantes sont résolues.
Configuration de l'intégration
Pour permettre à GitGuardian de créer et gérer des issues dans votre instance ServiceNow, vous devez configurer un utilisateur dédié, créer un web service et finaliser la configuration dans GitGuardian.
Étape A : créer l'utilisateur ServiceNow
Dans cette section, nous créons un utilisateur dédié dans ServiceNow pour authentifier et autoriser l'accès de GitGuardian à la création et mise à jour d'incidents.
-
Ouvrez ServiceNow : dans l'interface web de votre instance ServiceNow, cherchez « Users » dans la barre de recherche et cliquez sur « Users » sous System Security > Users and Groups.

-
Créer un nouvel utilisateur : cliquez sur le bouton « New ».

-
Configurer l'ID utilisateur : saisissez un nom d'utilisateur dans le champ « User ID » et cochez « Web service access only ». Cliquez sur « Submit ».
- Astuce : nous recommandons d'utiliser un nom d'utilisateur dédié pour les notifications GitGuardian.

- Astuce : nous recommandons d'utiliser un nom d'utilisateur dédié pour les notifications GitGuardian.
-
Définir le mot de passe : cliquez sur l'utilisateur nouvellement créé et définissez un mot de passe. Assurez-vous que les changements sont sauvegardés.
L'ID utilisateur et le mot de passe seront utilisés plus tard pour configurer l'intégration dans les paramètres GitGuardian. -
Assigner les rôles : sous l'onglet « Roles », cliquez sur « Edit... » et ajoutez les rôles
import_set_loaderetimport_transformer. Sauvegardez les changements.

Assurez l'accès à la table cible : si votre table cible est restreinte par des rôles, vous devez assigner ces rôles à l'utilisateur que vous créez.
Comment vérifier et ajouter les rôles requis
- Naviguez vers la définition de la table en allant dans System Definition > Tables dans le panneau de navigation.
- Ouvrez la table désirée (par exemple, Incident), et faites défiler jusqu'à la section Controls.
- Là, vous pouvez voir les rôles requis pour accéder à la table.
- Assurez-vous que l'utilisateur créé pour l'intégration GitGuardian se voit attribuer ces rôles, en plus des rôles déjà spécifiés (
import_set_loaderetimport_transformer).
Étape B : configurer le web service pour les notifications GitGuardian
Dans cette section, nous créons et configurons un web service personnalisé dans ServiceNow pour recevoir les données d'incident depuis GitGuardian et les mapper vers les enregistrements ServiceNow.
-
Créer le web service :
- Dans la barre de recherche ServiceNow, cherchez « Web Services » et sélectionnez « Create New » sous System Web Services > Inbound.

- Nommez le web service en l'identifiant pour les notifications GitGuardian.
- Sélectionnez la table cible « Incident » (ou toute table personnalisée utilisée pour les incidents).
- Ajoutez sept champs (lignes) pour le web service, en remplissant les labels pour chacun. Les champs « Name » et « Length » se rempliront automatiquement.
- Assurez-vous que la longueur des champs
description,commentsetshort descriptionest ajustée (pour éviter le rognage des données dans les tickets ServiceNow).
- Dans la barre de recherche ServiceNow, cherchez « Web Services » et sélectionnez « Create New » sous System Web Services > Inbound.
-
Finaliser la transform map
La Transform Map relie les champs de la notification GitGuardian aux champs correspondants dans votre table ServiceNow. Les champs Coalesce assurent que les enregistrements sont soit mis à jour si une correspondance est trouvée, soit créés si aucune correspondance n'existe.
- Après avoir créé le web service, sélectionnez Use Coalesce Field for Record Matching pour désigner le paramètre coalesce pour le champ approprié et cliquez sur Submit.
- Dans la section « Related Links », cliquez sur Auto Map Matching Fields pour mapper automatiquement les champs de GitGuardian vers votre table ServiceNow.

- Vérifiez les champs mappés et créez les correspondances manquantes :
- Pour le champ
Sys ID, mappez-le manuellement versu_sys_idet assurez-vous qu'il est défini sur coalesce. Cela garantit que les mises à jour sont appliquées aux enregistrements existants.
- Pour les autres champs, ne les définissez pas sur coalesce pour éviter l'écrasement involontaire d'enregistrements.

- Pour le champ
u_timestamp, ne changez pas le format de date - il doit êtreyyyy-MM-dd HH:mm:sspour que le mapping fonctionne.
- Pour le champ
La transform map devrait ressembler à ceci :

-
Champs additionnels pour les tables personnalisées (Optionnel) :
Si vous n'utilisez pas la table Incident par défaut, sachez que les champs suivants sont accessibles et peuvent être mappés pour un contexte plus détaillé sur les secrets détectés. (Ils seront vides si l'issue est créée manuellement depuis un incident GitGuardian)
u_source_nameu_source_typeu_location_urlu_author_nameu_author_emailu_secret_typeu_occurrence_idu_triggered_on(ne changez pas le format - il doit êtreyyyy-MM-dd HH:mm:ss)
-
Récupérer l'URL du web service :
- Sous les « Related Links » du web service, cliquez sur Explore REST API.

- Copiez le lien vers l'API, en remplaçant
{stagingTableName}par le nom de votre web service.
Cette URL sera utilisée dans les paramètres de GitGuardian.
infoL'URL devrait suivre ce format : https://xxxxx.service-now.com/api/now/import/gitguardian_notification (où xxxxx est l'ID de votre instance ServiceNow).
- Sous les « Related Links » du web service, cliquez sur Explore REST API.
Étape C : finaliser la configuration dans GitGuardian
Dans cette section, nous finalisons l'intégration dans GitGuardian en utilisant les credentials et la configuration du web service créés dans les sections précédentes.
-
Configurer GitGuardian :
- Dans GitGuardian, allez dans Settings > Integration > Destination > Issue Tracking > ServiceNow.
- Cliquez sur Add Integration pour l'équipe où vous voulez que l'intégration s'applique (choisissez « All incidents » si elle n'est pas spécifique à une équipe).
- Utilisez l'URL obtenue à l'étape 9 pour l'Endpoint API URL.
- Pour Username et Password, saisissez les credentials créés aux étapes 3 et 4.

-
Définir le contenu de l'issue :
- Personnalisez le contenu de l'issue ServiceNow (titre et description), en utilisant les variables disponibles.

-
Définir les paramètres d'automatisation :
- Vous pouvez configurer les options d'automatisation suivantes :
- Auto-create : crée automatiquement une issue ServiceNow pour chaque nouvel incident détecté dans GitGuardian - dans le périmètre de l'équipe. (Si non coché, il est toujours possible de créer des issues ServiceNow depuis un incident GitGuardian existant).
- Auto-update : envoie les mises à jour de GitGuardian vers l'issue ServiceNow associée sous forme de commentaires chaque fois que l'incident GitGuardian change.
- Auto-resolve : lorsque l'issue ServiceNow liée est marquée comme fermée, l'incident GitGuardian associé sera automatiquement marqué comme Résolu.

- Vous pouvez configurer les options d'automatisation suivantes :
-
Configurer les paramètres auto-resolve (si activés) : Si vous avez sélectionné l'option « Auto-resolve », vous devez définir comment le statut d'une issue ServiceNow déclenchera la fermeture de l'incident GitGuardian correspondant.
- Pour la table, saisissez la table cible de ServiceNow (la valeur entre crochets de l'étape 6).
- Pour le resolve status, spécifiez :
- Le nom du champ dans votre table ServiceNow qui reflète le statut de l'issue (dans la table Incident, ce champ est typiquement appelé « state »).
- La/les valeur(s) du champ statut (séparées par des virgules) qui devraient déclencher la fermeture de l'incident GitGuardian correspondant.
Celles-ci peuvent être récupérées en allant dans System Definition > Tables, et en explorant le nom de la table, les colonnes et les choix.
-
Tester et valider l'intégration : Envoyez une notification de test et confirmez la création d'un incident dans ServiceNow.

Création manuelle d'issues depuis GitGuardian
Une fois qu'une intégration ServiceNow est configurée, des issues peuvent être créées depuis la page d'incident ou la page liste des incidents.

Le formulaire de création est initialisé à partir de la configuration et du template de l'intégration. Notez que les paramètres auto-update et auto-resolve sont hérités de la configuration et ne peuvent pas être mis à jour manuellement.

Après la création, l'issue ServiceNow devient visible sur la page d'incident pour un accès rapide.
La création d'issues en masse depuis la table des incidents n'est pas supportée.