Intégration GitHub (via Microsoft Power Automate) - Clôturer 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 créer une action dans la frise chronologique (timeline) d'un ticket Service Manager lorsque la pull request à laquelle il est rattaché dans GitHub est clôturée, en utilisant Microsoft Power Automate.
- Le statut est modifié sur l'élément de travail Azure DevOps.
- Un lien d'accès direct vers la pull request dans GitHub est ajouté.
Note : Le lien entre GitHub et Service Manager se fait au travers d'un commentaire type ajouté sur la pull request. Ce commentaire doit comprendre le numéro du ticket Service Manager et l'identifiant de l'élément de travail Azure DevOps de type Bug auquel il est rattaché.
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 GitHub lors de la clôture d'une pull request rattachée à un ticket Service Manager donne lieu à l'exécution d'un flux dans Microsoft Power Automate.
==> Flux Clôture d'une pull request dans GitHub
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 Azure DevOps.
- Vous devez demander à EasyVista la création de 2 champs dans la table SD_REQUEST, dédiés à Azure DevOps et GitHub.
- Vous devez ajouter un commentaire type sur la pull request lorsqu'elle est clôturée -
voir Procédure
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'une pull request - voir Procédure détaillée
- Note : Le flux nécessite de créer une connexion à GitHub et une connexion à Azure DevOps.
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. Créez le commentaire type sur la pull request - voir Procédure détaillée
Note : Vous devez ajouter ce commentaire type à chaque clôture d'une pull request qui est rattachée à un ticket Service Manager.
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 à Azure DevOps.
É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'une pull request dans GitHub
![]() |
|
Étape 1 : Création de l'étape de déclenchement du flux (trigger)
==> Le flux est déclenché lorsqu'une pull request est clôturée dans GitHub.
1. Créez une action de déclenchement de type When a Pull Request is created or modified pour démarrer le flux de travail (connecteur GitHub > Triggers).
![]() |
|
Étape 2 : Initialisation de variables
1. Définissez les variables ci-dessous, en créant dans l'ordre la suite d'actions de type Initialiser la variable ci-dessous.
![]() |
Variable 1 : Pour stocker l'identifiant de l'élément de travail Azure DevOps
|
Variable 2 : Pour stocker le numéro de ticket Service Manager
|
Étape 3 : Recherche du numéro du ticket Service Manager lorsque le statut de la pull request est Clôturé
Étape 3.a : Création de la condition pour tester le statut de la pull request
1. Créez une action de type Condition.
![]() |
|
2. Renseignez les actions à réaliser lorsque le statut de la pull request est clôturé (condition de l'action Condition if the PR is closed vérifiée).
- Allez sur la branche If Yes.
- Ajoutez les actions de l'étape 3.b, via Add an action.
Étape 3.b : Recherche du commentaire type contenant la section Resources lorsque le statut est Clôturé
1. Créez une action de type HTTP pour lire tous les commentaires de la pull request.
![]() |
|
2. Créez une action de type Analyser JSON pour récupérer les informations des commentaires.
![]() |
|
Étape 3.c : Création de la condition pour récupérer la section Resources du commentaire type
1. Créez une action de type Apply to each.
![]() |
|
2. Créez une action de type HTTP pour lire chaque commentaire de la pull request.
![]() |
|
3. Créez une action de type Analyser JSON pour récupérer les informations du commentaire.
![]() |
|
4. Créez une action de type Condition pour tester l'existence de la section Resources dans les informations récupérées dans l'étape Parse JSON Get a comment.
![]() |
|
5. Renseignez les actions à réaliser lorsque la section Resources est trouvée (condition de l'action Condition if comment is EZV vérifiée).
- Allez sur la branche If Yes.
- Ajoutez les actions de l'étape 3.d, via Add an action.
Étape 3.d : Recherche de l'identifiant de l'élément de travail Azure DevOps et du numéro de ticket Service Manager
1. Créez dans l'ordre la suite d'actions ci-dessous de type Compose pour décomposer le contenu de la section Resources et récupérer l'identifiant de l'élément de travail Azure DevOps (recherche de la chaîne de caractère ADO dans le commentaire type).
![]() |
Compose 1 :
|
Compose 2 :
|
|
Compose 3 :
|
|
Compose 4 :
|
2. Créez une action de type Set variable pour stocker l'identifiant de l'élément de travail Azure DevOps dans la variable Work Item ID.
![]() |
|
3. Créez dans l'ordre la suite d'actions ci-dessous de type Compose pour décomposer le contenu de la section Resources et récupérer le numéro du ticket Service Manager (recherche de la chaîne de caractère Ticket number dans le commentaire type).
![]() |
Compose 1 :
|
Compose 2 :
|
|
Compose 3 :
|
|
Compose 4 :
|
4. Créez une action de type Set variable pour stocker le numéro du ticket Service Manager dans la variable RFC NUMBER.
![]() |
|
Étape 4 : Mise à jour du statut de l'élément de travail Azure DevOps lorsque la variable Work Item ID contient un identifiant
Étape 4.a : Création de la condition pour tester l'existence d'un identifiant d'élément de travail Azure DevOps
1. Créez une action de type Condition.
![]() |
|
2. Renseignez les actions à réaliser lorsque la variable Work Item ID contient un identifiant d'élément de travail Azure DevOps (conditions de l'action Condition if the card exists vérifiées).
- Allez sur la branche If Yes.
- Ajoutez les actions de l'étape 4.b, via Add an action.
Étape 4.b : Mise à jour du statut de l'élément de travail Azure DevOps à Closed
1. Créez une action de type Modifier un élément de travail (connecteur Azure DevOps).
![]() |
|
Étape 5 : Création d'une action dans la frise chronologique (timeline) du ticket Service Manager lorsque la date de fusion de la pull request est nulle
Étape 5.a : 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 Condition.
![]() |
|
2. Renseignez les actions à réaliser lorsque la date de fusion de la pull request est nulle (condition de l'action Condition if it's a merge vérifiée).
- Allez sur la branche If Yes.
- Ajoutez les actions de l'étape 5.b, via Add an action.
Étape 5.b : Recherche du ticket Service Manager
1. Créez une action de type HTTP pour rechercher le ticket Service Manager correspondant à la variable RFC NUMBER.
![]() |
|
2. Créez une action de type Analyser JSON pour récupérer les informations du ticket Service Manager.
![]() |
|
Étape 5.c : Création de l'action dans la frise chronologique (timeline) du ticket Service Manager
1. Créez une action de type Apply to each.
![]() |
|
2. Créez une action de type HTTP pour créer une action dans la frise chronologique (timeline) du ticket Service Manager.
![]() |
|
Étape 6 : Stockage du numéro de pull request dans le ticket Service Manager
1. Créez une action de type HTTP pour mettre à jour le ticket Service Manager.
![]() |
|
Étape 7 : Sauvegarde de la configuration du flux de travail
1. Cliquez sur Save en bas du flux.
Création du commentaire type sur la pull request
Note : Vous devez ajouter un commentaire type sur chaque pull request rattachée à un ticket Service Manager lorsqu'elle est clôturée.
CreatePullRequestTypeComment_Procedure
Étape 1 : Connexion à GitHub
1. Connectez-vous à GitHub avec les informations d’identification de votre compte.
2. Sélectionnez le compte du propriétaire du répertoire GitHub puis le répertoire GitHub où est enregistrée la pull request.
Étape 2 : Recherche de la pull request
1. Allez sur l'onglet Pull requests.
La liste des pull requests est affichée.
2. Cliquez sur la pull request à traiter.
Les actions effectuées sur la pull request sont affichées.
Étape 3 : Création du commentaire type sur la pull request
1. Cliquez sur Comment en bas de la pull request.
2. Saisissez le commentaire type suivant dans l'onglet Write, en remplaçant les valeurs indiquées en jaune.
- RXXXXXX_XXXXXX : Numéro du ticket Service Manager
- ID_Azure : Élément de travail Azure DevOps de type Bug auquel est rattaché le ticket
## Resources
| Resource | URL |
|------------------------|:----------------:|
| Ticket number | [RXXXXXX_XXXXXX](https://autoconnect_link) |
| ADO | [ID Azure](https://dev.azure.com/Organization/Project_Name/_workitems/edit/ID_Azure) |
3. Cliquez sur Comment.
Le commentaire est mis à jour dynamiquement sur la pull request. Il affiche le numéro du ticket Service Manager et l'identifiant de l'élément de travail Azure DevOps de type Bug auquel il est rattaché.
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) - Valider une review
- Intégration GitHub (via Microsoft Power Automate) - Fusionner une pull request
- Intégration GitHub (via Microsoft Power Automate) - Clôturer un ticket Service Manager rattaché à une pull request
Liste des fichiers à télécharger
Note : Reportez-vous au processus d'intégration pas à pas pour leur utilisation.