Intégration GitHub (via Microsoft Power Automate) - Clôturer un ticket Service Manager rattaché à une pull request
IntegrationIntroduction
Il existe plusieurs moyens d’intégrer des systèmes tiers avec Service Manager. Cela, en fonction des besoins métiers, des contraintes d’architecture et de sécurité en vigueur ainsi que des spécificités de chaque application ou service tiers.
Cette page présente un processus d’intégration type déjà mis en œuvre dans un contexte client.
Pour plus de détails sur cette intégration (scripts à utiliser, etc.), n'hésitez pas à contacter votre interlocuteur EasyVista ou vos fournisseurs de services et intégrateurs habituels.
Synthèse de l'intégration
GitHub est un service en ligne qui permet d'héberger des sites web, des fichiers de code source, ... et toute la chronologie de leurs mises à jour, en utilisant le logiciel de gestion de version Git. C'est également un espace collaboratif où chaque utilisateur peut contribuer aux projets mis en ligne publiquement.
Cette intégration vous permet de vérifier si la pull request rattachée à un ticket Service Manager est fusionnée (merge) lorsque le ticket est clôturé, en utilisant Microsoft Power Automate.
- Une notification par e-mail est envoyée au responsable de la pull request lorsque celle-ci n'est pas fusionnée.
- Un lien d'accès direct vers la pull request dans GitHub est ajouté.
- Note : Dès que le responsable fusionne la pull request dans GitHub, un nouveau flux Microsoft Power Automate est automatiquement déclenché, qui va créer une action dans la frise chronologique (timeline) du ticket Service Manager -
voir Intégration GitHub (via Microsoft Power Automate) - Fusionner une pull request
Aperçu des outils utilisés dans cette intégration
- Microsoft Power Automate (anciennement Microsoft Flow) permet d'automatiser les tâches répétitives en construisant des flux de travail via des applications web. Ces applications utilisent des connecteurs MS Power Automate (basés sur Microsoft Azure Logic Apps) ou la passerelle MS Graph pour s'interfacer avec n'importe quel point de terminaison via HTTP/HTTPS.
Flux d'intégration des données (sens) | Type d'authentification | Options du connecteur d'intégration | ||
---|---|---|---|---|
|
|
|
Versions disponibles | ||
---|---|---|
SaaS | On Premise | |
Service Manager | ![]() |
![]() |
Produit tiers | ![]() |
N/A |
Quelques définitions sur GitHub
Definitions_GitHub
- GitHub est un service en ligne qui permet d’héberger des sites web, des fichiers de code source, ... et toute la chronologie de leurs mises à jour, en utilisant le logiciel de gestion de version Git. C'est également un espace collaboratif où chaque utilisateur peut contribuer aux projets mis en ligne publiquement.
- Git est un logiciel de contrôle de version qui gère toutes les modifications des projets et les sauvegarde dans des versions, permettant de revenir en arrière à tout moment.
- La copie, via Git, de l’intégralité des fichiers d'un projet et de ses versions est appelé un dépôt, ou repository. Il s'agit d'un espace de stockage sur le serveur centralisé GitHub qui contient chaque code source.
- Des problèmes, ou issues, sont créés pour initier des discussions entre développeurs, des rapports de bugs, des suggestions d’évolution, ...
- Une pull request est une procédure qui permet à un contributeur extérieur de proposer des modifications du code original à son auteur (request) puis de les reprendre et de les intégrer (pull).
- Une review est une revue de code pour valider une pull request. Lorsque les modifications d'une review sont approuvées, la pull request est fusionnée, ou mergée, avec la version originale.
Flux d'échange dans Microsoft Power Automate
L'intégration entre Service Manager et GitHib lors de la clôture d'un ticket Service Manager rattaché à une pull request donne lieu à l'exécution d'un flux dans Microsoft Power Automate.
==> Flux Clôture d'un ticket Service Manager
Prérequis
- Vous devez disposer d'un abonnement Azure. Sinon, vous pouvez soit en créer un gratuitement, soit souscrire à un abonnement de type paiement à l'utilisation.
- Vous devez disposer d'un compte GitHub et d'un compte Office 365 Outlook.
- Vous devez demander à EasyVista la création de 2 champs dans la table SD_REQUEST, dédiés à Azure DevOps et GitHub.
Bonnes pratiques
BestPractice
- La procédure décrit toutes les étapes de création des flux d'échange Microsoft Power Automate. Pour vous aider, téléchargez les fichiers .zip fournis avec cette intégration, qui contiennent les flux préparamétrés. Il vous suffit ensuite de renseigner les paramètres propres à votre environnement : identifiants d'accès à votre compte Azure, adresse du serveur EasyVista, identifiants d'accès à votre plateforme Service Manager, ...
- Pour trouver facilement les connecteurs et les actions à créer dans le flux de travail Power Automate, utilisez la zone de recherche.
exemple Recherche des actions du connecteur Azure DevOps
Attention
Caution_TitleActionInPowerAutomateFlow
- Lorsque vous créez les actions du flux dans Microsoft Power Automate, il est impératif de les renommer comme indiqué dans la procédure. En effet, certaines informations font référence au titre de l'action et un changement de nom bloquerait le déroulement du flux.
exemple L'instruction split(body('Analyze_Ticket_Info')'')?['AVAILABLE_FIELD_6'],',') fait référence à l'action nommée Analyze Ticket Info
Note : Les espaces dans le titre sont automatiquement remplacés par le caractère _.
Processus d'intégration
Prérequis Demandez à EasyVista la création de 2 champs dans la table SD_REQUEST, dédiés à Azure DevOps et GitHub. Ajoutez-les sur la fiche Ticket - voir Procédure détaillée
1. Créez le flux MS Power Automate déclenché lors de la clôture d'un ticket Service Manager - voir Procédure détaillée
- Note : Le flux nécessite de créer une connexion à GitHub et une connexion à Office 365 Outlook.
Importez le flux ci-dessous dans MS Power Automate, qui est préparamétré et contient toutes les étapes -
voir Procédure d'import du flux
2. Dans Service Manager, créez une ressource Merge Pull Request utilisée dans une étape REST d'un processus - voir Procédure détaillée
Processus d'intégration pas à pas
AddDevOpsFieldsInTicketForm_Procedure
Ajout des champs dédiés à Azure DevOps et GitHub dans la table SD_REQUEST
Étape 1 : Ajout des champs dans la base de données par EasyVista
1. Effectuez une demande à EasyVista pour ajouter les 2 champs suivants.
- Champ E_ADO_NUMBER de type nvarchar, taille 20 : stockage de l'identifiant de l'élément de travail Azure DevOps rattaché au ticket Service Manager.
- Champ E_PR_NUMBER de type nvarchar, taille 20 : stockage du numéro de pull request GitHub rattachée au ticket Service Manager.
Étape 2 : Ajout des champs sur les fiches Ticket (incident / demande)
voir Procédure détaillée
1. Allez sur chaque fiche Ticket (incident / demande).
2. Cliquez sur dans le bandeau supérieur, puis sur Éditer la fiche.
La représentation principale de la fiche est affichée.
3. Sélectionnez et positionnez les 2 champs sur la fiche.
4. Cliquez sur Enregistrer puis sur Enregistrer et Fermer.
La fiche est réactualisée.
Import du flux de travail dans Microsoft Power Automate
Note : Le flux nécessite de créer une connexion à GitHub et une connexion à Office 365 Outlook.
Étape 1 : Téléchargement du flux
1. Téléchargez le fichier ci-dessous sur votre ordinateur.
ImportFlowInMicrosoftPowerAutomate_Procedure
Étape 2 : Import du flux dans Microsoft Power Automate
1. Connectez-vous au site Microsoft Power Automate avec les informations d’identification de votre compte.
2. Cliquez sur Mes flux dans le menu latéral.
La liste de vos flux MS Power Automate est affichée.
3. Cliquez sur Importer dans la barre de menu et sélectionnez le fichier que vous avez téléchargé.
- Une fois importé, le contenu du package est affiché.
- L'icône
indique que la connexion pour la ressource n'est pas trouvée.
Étape 3 : Création des connexions nécessaires au flux
1. Cliquez sur le lien Sélectionner pendant l’import sous la colonne Importer la configuration, en regard de la ressource.
Une fenêtre de configuration de l'import est affichée.
2. Créez une nouvelle connexion pour la ressource ou sélectionnez une connexion existante.
Une connexion pour la ressource existe
- Cliquez sur la connexion.
- Cliquez sur Enregistrer.
Aucune connexion pour la ressource n'existe
- Cliquez sur + Créer.
- Une instance MS Power Automate est ouverte dans un nouvel onglet de votre navigateur internet.
- La liste des connexions existantes est affichée.
- Cliquez sur + Nouvelle connexion.
- Recherchez la connexion souhaitée via la zone de recherche, puis sélectionnez-la dans la liste.
exemple Recherche de la connexion GitHub
Une fenêtre affichant la liste des autorisations à accorder à Microsoft Power Platform est affichée.
- Cliquez sur Créer pour effectuer la création de la nouvelle connexion.
- Cliquez sur Accepter pour accepter les conditions et accorder l'accès à Microsoft Power Platform.
- Vous revenez sur l'onglet affichant la liste des flux MS Power Automate.
- La nouvelle connexion pour la ressource est affichée dans la liste.
exemple Nouvelle connexion GitHub
- Fermez l'onglet du navigateur internet.
Vous revenez sur l'onglet affichant le détail du package importé.
- Cliquez sur Refresh List.
La nouvelle connexion pour la ressource est affichée dans la fenêtre de configuration de l'import.
- Cliquez sur la connexion puis sur Enregistrer.
L'icôneindique que la connexion pour la ressource est correctement effectuée.
3. Répétez les mêmes opérations pour chaque connexion nécessaire au flux.
Étape 3 : Import des ressources du package
1. Cliquez sur Importer.
L'icône devant chaque ressource du package indique que l'import du flux est correctement effectué.
Étape 4 : Configuration des ressources du package
Note : Effectuez cette étape si un message en haut de la page indique que des ressources du package nécessitent une configuration.
1. Cliquez sur Save as new flow dans le message affiché en haut de page.
- Une instance MS Power Automate est ouverte dans un nouvel onglet de votre navigateur internet.
- Le flux de travail du package importé est affiché.
2. Cliquez sur l'action indiquant que la connexion est invalide.
La liste des connexions existantes pour le type de ressource est affichée.
2. Cliquez sur la connexion définie pour le type de ressource.
Les propriétés de l'action sont affichées. Elles varient en fonction du type de ressource.
exemple Propriétés non renseignées pour une action utilisant la ressource Azure DevOps
3. Renseignez les informations de la connexion pour l'action.
exemple Propriétés pour une action utilisant la ressource Azure DevOps
- Nom de l'organisation : Sélectionnez le nom de votre organisation.
- Nom du projet : Sélectionnez le nom de votre projet DevOps.
4. Répétez les mêmes opérations pour chaque action indiquant une erreur de connexion.
5. Cliquez sur Save.
- Le message d'erreur disparaît sur chaque action.
exemple Action pour la ressource Azure DevOps
- Toutes les connexions nécessaires au flux sont configurées.
- Le flux de travail est créé.
Étape 5 : Configuration du flux de travail
1. Survolez le libellé du flux avec la souris puis cliquez sur .
Le flux de travail est affiché.
2. Reportez-vous à la procédure de configuration du flux importé.
Création du flux MS Power Automate
Description du flux de travail Clôture d'un ticket Service Manager lié à une pull request
![]() |
|
Étape 1 : Création de l'étape de déclenchement du flux
==> Le flux est déclenché lorsqu'un ticket Service Manager est clôturé.
1. Créez une action de déclenchement de type Lors de la réception d'une demande HTTP pour démarrer le flux de travail (Triggers).
![]() |
|
Étape 2 : Récupération du ticket Service Manager
1. Créez une action de type HTTP pour rechercher le ticket Service Manager.
![]() |
|
2. Créez une action de type Analyser JSON pour récupérer les informations du ticket Service Manager.
![]() |
|
Étape 3 : Recherche de la date de fusion de la pull request lorsque le ticket Service Manager est rattaché à une pull request
Étape 3.a : Création de la condition pour tester l'existence d'une pull request rattachée au ticket Service Manager
3. Créez une action de type Condition pour tester l'existence d'un numéro de pull request sur le ticket Service Manager.
![]() |
|
3. Renseignez les actions à réaliser lorsque le numéro de pull request est renseigné (condition de l'action Condition if there is a PR vérifiée).
- Allez sur la branche If Yes.
- Ajoutez les actions de l'étape 3.b, via Add an action.
Étape 3.b : Création de la condition pour tester l'existence d'une date de fusion sur la pull request
1. Créez une action de type Get a Pull Request pour lire le numéro de pull request stocké dans le champ E_PR_NUMBER.
![]() |
|
2. Créez une action de type Condition pour tester l'existence d'une date de fusion sur la pull request.
![]() |
|
3. Renseignez les actions à réaliser lorsque la date de fusion sur la pull request n'est pas renseignée (condition de l'action Condition PR is merged vérifiée).
- Allez sur la branche If Yes.
- Ajoutez les actions de l'étape 4, via Add an action.
Étape 4 : Envoi d'une notification par e-mail au responsable lorsque la pull request n'est pas fusionnée
1. Créez une action de type Send an email (V2) (connecteur Office 365 Outlook) pour créer un e-mail.
![]() |
|
Étape 5 : Sauvegarde de la configuration du flux de travail
1. Cliquez sur Save en bas du flux.
Service Manager : Création d'une ressource Merge Pull Request utilisée dans une étape REST d'un processus
Notes :
- La ressource Merge Pull Request permet de vérifier si la pull request rattachée à un ticket Service Apps est fusionnée (merge) lorsque le ticket est clôturé.
- Elle est rattachée à un service Microsoft Power Automate.
- Elle est utilisée dans un processus Service Manager via un type d'action REST.
CreateInServiceManagerRestResource_Procedure
Étape 1 : Gestion des droits pour l'utilisation de l'API REST Service Manager
1. Allez sur le menu Administration > Gestion des accès > Profils utilisateur.
2. Sélectionnez un profil autorisé à utiliser l'API REST Service Manager.
3. Cochez la case REST API.
Les modifications sont automatiquement enregistrées.
4. Répétez ces actions pour tous les profils autorisés.
Étape 2 : Création d'une ressource Merge Pull Request associée à un service Microsoft Power Automate
voir Procédure détaillée
Étape 2.a : Création d'un service Microsoft Power Automate
1. Allez sur le menu Administration > REST > Services.
2. Créez un nouveau service.
3. Renseignez les informations ci-dessous.
- Nom du service : Saisissez le libellé Microsoft Power Automate.
- Méthode d'authentification : Aucune.
- URL du service : URL d'accès au nouveau service Microsoft Power Automate.
- Copiez-collez l'URL que vous avez conservée dans votre éditeur de texte lors de la création du flux MS Power Automate (étape de déclenchement du flux).
- Conservez uniquement la partie affichée ci-dessous en jaune.
https://prod-55.westeurope.logic.azure.com:443/workflows/a903f9140a874277be8b9dd39b5c4305/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=R-FJw5q_MEn-I-98MNF794bVtN91QIWFt8gixg-8
- Remplacez prod-55.westeurope par {subdomain}.
Étape 2.b : Création d'une connexion au service Microsoft Power Automate
1. Créez une nouvelle connexion.
2. Renseignez les informations ci-dessous.
- Nom de la connexion : Saisissez le libellé GitHub.
- Méthode d'authentification : Aucune.
- Nom du service : Sélectionnez le service Microsoft Power Automate créé à l'étape 2.a.
L'URL du service est automatiquement affichée.
- subdomain : Copiez-collez la valeur prod-55.westeurope de l'URL que vous avez conservée dans votre éditeur de texte.
Étape 2.c : Création d'une ressource rattachée au service Microsoft Power Automate
1. Créez une nouvelle ressource.
2. Renseignez les informations ci-dessous.
- Label : Saisissez le libellé Merge Pull Request.
- Uri de la ressource : Identifiant de la nouvelle ressource.
- Copiez-collez l'URL que vous avez conservée dans votre éditeur de texte lors de la création du flux MS Power Automate (étape de déclenchement du flux).
- Conservez uniquement la partie affichée ci-dessous en jaune.
https://prod-55.westeurope.logic.azure.com:443/workflows/a903f9140a874277be8b9dd39b5c4305/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=R-FJw5q_MEn-I-98MNF794bVtN91QIWFt8gixg-8
- Contenu : Corps de la requête contenant les données à mettre à jour. Copiez-collez le texte ci-dessous, sans insérer d'espace ni retour à la ligne.
{"Description": "{Description}","id": "{id}","Host": "{sys.EVSM_HOST}","URL": "{sys.EVSM_REST_SERVICE_URL}","Account": "{sys.EVSM_ACCOUNT}","Title": "{Title}","Priorite": "{Priorite}"}
Étape 3 : Utilisation de la ressource Merge Pull Request dans une étape REST d'un processus
1. Ouvrez le workflow ou le processus lié à une règle métier.
- Workflow : Références > Autres références > Workflow (Operation / Transition)
- Règle métier : Administration > Règles métier > Processus associés
2. Cliquez-glissez la nouvelle ressource Merge Pull Request depuis la catégorie Actions REST de la palette des types d'actions vers l'éditeur graphique du processus.
Une nouvelle étape est ajoutée au processus.
3. Renseignez les propriétés de la nouvelle étape en double-cliquant dessus.
4. Cliquez sur Valider les modifications.
Liens vers d'autres intégrations
- Intégration Microsoft Power Automate (anciennement Microsoft Flow)
- Intégration Azure DevOps (via Microsoft Power Automate)
- Intégration Azure DevOps (via Microsoft Power Automate) - Créer des éléments de travail Bug et Task
- Intégration GitHub (via Microsoft Power Automate)
- Intégration GitHub (via Microsoft Power Automate) - Valider une review
- Intégration GitHub (via Microsoft Power Automate) - Fusionner une pull request
- Intégration GitHub (via Microsoft Power Automate) - Clôturer une pull request
Liste des fichiers à télécharger
Note : Reportez-vous au processus d'intégration pas à pas pour leur utilisation.