Intégration GitHub (via Microsoft Power Automate)


À propos de cette intégration

IntegrationIntroduction

Il existe plusieurs moyens d’intégrer des systèmes tiers avec Product name - ev itsm.png. 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.), veuillez contacter les départements "Consulting & Professional Services" et Support d'Logo - EasyVista.png 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 un problème dans GitHub à partir d'une demande de changement rattachée à un projet de mise en production, en utilisant Microsoft Power Automate. Des flux de travail MS Power Automate sont créés dans Microsoft Azure Logic Apps en utilisant le connecteur EasyVista Service Manager pour rechercher la demande, et le connecteur GitHub pour lui associer un problème GitHub
 

Aperçu des outils utilisés dans cette intégration

IntegrationTool_MicrosoftAzureLogicApps
  • Microsoft Azure Logic Apps permet d’intégrer et de connecter simplement plusieurs centaines d’applications et services web (On-Premise ou dans le cloud), des données et des appareils.
IntegrationTool_MicrosoftPowerAutomate
  • 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

Logo - EV Service Manager.png

Down arrow.png

Logo Icon - Microsoft Flow.png

Down arrow.png

Logo Icon - GitHub.png

Down arrow.png

Logo Icon - Microsoft Flow.png

Down arrow.png

Logo - EV Service Manager.png

  • Selon le service externe utilisé (authentification prise en charge par Logic Apps)
  • Basic Authentication pour l'API REST Service Manager
  • Service Manager :

    EV Integration connector icon - Workflow.png    Workflow

    EV Integration connector icon - Business rule.png    Règle métier

  • MS Power Automate :

    EV Integration connector icon - Receive.png    Connecteur : Lors de la réception d’une demande HTTP

    (Trigger Service Manager => Logic Apps)

Versions disponibles
SaaS On Premise
Service Manager Check icon.png Check icon.png
Produit tiers Check icon.png N/A

Quelques définitions sur GitHub

  • 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.
  • Des problèmes, ou issues, sont créés pour initier des discussions entre développeurs, des rapports de bugs, des suggestions d’évolution, ...

Flux d’échange dans Microsoft Azure Logic Apps

La création d'un problème dans GitHub à la suite d'une demande de changement dans Service Manager s'effectue au travers de 2 flux dans Microsoft Azure Logic Apps.

Flux MS Power Automate n° 1 : Création d'un problème dans GitHub Flux MS Power Automate n° 2 : Fermeture de la demande Service Manager
Data feed diagram 1 - FR.png Data feed diagram 2 - FR.png

Processus d'intégration pas à pas

La création d'un problème dans GitHub à la suite d'une demande de changement dans Service Manager se fait en plusieurs phases :

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 avez les comptes et droits d’accès suffisants aux services avec lesquels vous souhaitez vous interfacer avec Logic Apps.
  • Vous devez disposer d’un compte d’accès à votre plateforme Service Manager avec un profil et des droits d’accès et d’édition suffisants pour créer ou modifier un workflow, accéder au menu Administration et aux menus dont vous avez besoin, comme par exemple Service Operation et Service Transition.

Bonnes pratiques

  • La procédure décrit toutes les étapes de création des 2 flux d'échange Microsoft Azure Logic Apps. Pour vous aider, téléchargez les fichiers .zip fournis avec cette intégration, qui contiennent les 2 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, ...

Microsoft Azure Logic Apps : Création du flux MS Power Automate n° 1

Description du flux de travail Création d'un problème dans GitHub
         Azure flow description - Creation GitHub issue.png

Best Practice icon.png  Téléchargez le fichier ci-dessous qui contient le flux d'échange pré-paramétré. Une fois importé dans Microsoft Azure Logic Apps, vous pouvez l'adapter à vos besoins en vous aidant de la procédure ci-dessous qui décrit toutes les étapes de création du flux de travail.

       Download icon.png  Flux Création d'un problème dans GitHub

Étape 1 : Création de l'étape de déclenchement du flux

==> Le flux est déclenché lorsqu'une demande de changement est liée à un projet de mise en production dans Service Manager.

1. Connectez-vous au portail Azure avec les informations d’identification de votre compte Azure.

2. Créez une nouvelle application Logic App, puis ouvrez le concepteur Logic Apps.
         Open url.png voir Intégration Microsoft Azure Logic Apps pour le détail de la procédure

3. Créez une étape de déclenchement de type Lors de la réception d’une demande HTTP pour démarrer le flux de travail.

         Action Azure - Creation GitHub issue - When a http request is received.png

4. Renseignez les informations du déclencheur.

  • Body : Effectuez un copier-coller du schéma JSON ci-dessous.

    Afficher le schéma JSON

    {
       "$id": "http://example.com/example.json",
       "type": "object",
       "definitions": {},
       "$schema": "http://json-schema.org/draft-07/schema#",
       "properties": {
           "Description": {
               "$id": "/properties/Description",
               "type": "string",
               "title": "Description",
               "default": "",
               "examples": [
                   "{Description}"
                ]
            },
           "id": {
               "$id": "/properties/id",
               "type": "string",
               "title": "Id",
               "default": "",
               "examples": [
                   "{id}"
                ]
            },
           "Host": {
               "$id": "/properties/Host",
               "type": "string",
               "title": "Host",
               "default": "",
               "examples": [
                   "{Host}"
                ]
          
     },
           "URL": {
               "$id": "/properties/URL",
               "type": "string",
               "title": "URL",
               "default": "",
               "examples": [
                   "{URL}"
                ]
            },
           "Account": {
               "$id": "/properties/Account",
               "type": "string",
               "title": "Account",
               "default": "",
               "examples": [
                   "{Account}"
                ]
            }
        }
    }
  • Méthode : Sélectionnez la valeur POST.

5. Sauvegardez le déclencheur.

  Les informations suivantes sont récupérées depuis Service Manager : Description du ticket, ID du ticket, Host, URL, Account.

6. Copiez l'URL affichée dans le champ HTTP POST URL, via Copy icon.png et conservez-la temporairement dans votre éditeur de texte. Elle vous sera demandée lors du paramétrage dans Service Manager (étape 2).

Étape 2 : Conversion de la description de la demande Service Manager en texte brut

1. Créez une étape de type Html to text.

         Action Azure - Creation GitHub issue - Html to text.png

2. Renseignez le champ Contenu en sélectionnant la valeur dynamique Description provenant de l’étape de déclenchement du flux Lors de la réception d’une demande HTTP.

Étape 3 : Création du problème dans GitHub

1. Recherchez le connecteur GitHub et créez une action de type Créer un problème.

Best Practice icon.png  Utilisez la zone de recherche pour trouver facilement le connecteur et le type d'action.

         Action Azure - Creation GitHub issue - Select GitHub connector.png

2. Connectez-vous à votre compte GitHub, via Se connecter.

         Action Azure - Creation GitHub issue - GitHub connexion.png

Les dépôts (repositories) rattachés à votre compte deviennent accessibles depuis MS Power Automate.

3. Renseignez les informations d'identification de GitHub et de la demande Service Manager.

  • Propriétaire du dépôt : Identifiant de connexion à GitHub.
  • Nom du dépôt : Dépôt dans lequel doit être créé le problème GitHub.
  • Titre : Identifiant de la demande Service Manager. Sélectionnez la valeur dynamique Id provenant de l’étape de déclenchement du flux Lors de la réception d’une demande HTTP.
  • Corps : Description de la demande Service Manager en texte brut. Sélectionnez la valeur dynamique The plain text contain contenant le résultat de l’étape Html to text.
             Action Azure - Creation GitHub issue - Information.png

5. Enregistrez le flux de travail.

Microsoft Azure Logic Apps : Création du flux MS Power Automate n° 2

Description du flux de travail Fermeture de la demande Service Manager
         Azure flow description - GitHub issue closing.png

Best Practice icon.png  Téléchargez le fichier ci-dessous qui contient le flux d'échange pré-paramétré. Une fois importé dans Microsoft Azure Logic Apps, vous pouvez l'adapter à vos besoins en vous aidant de la procédure ci-dessous qui décrit toutes les étapes de création du flux de travail.

       Download icon.png  Flux Fermeture de la demande Service Manager

Étape 1 : Création de l'étape de déclenchement du flux

==> Le flux est déclenché lorsque le problème GitHub lié à la demande de changement Service Manager est fermé.

1. Recherchez le connecteur GitHub et sélectionnez le déclencheur de type Lorsqu'un problème assigné à moi est fermé.

Best Practice icon.png  Utilisez la zone de recherche pour trouver facilement le connecteur et le type de déclencheur.

         Action Azure - GitHub issue closing - When an issue assigned to me is closed - Selection trigger.png

L'étape de déclenchement est créée. Elle ne nécessite aucun paramètre.
         Action Azure - GitHub issue closing - When an issue assigned to me is closed.png

Étape 2 : Récupération du commentaire de fermeture du problème GitHub

1. Créez une étape de type HTTP.

2. (optionnel) Renommez l'étape pour l'identifier rapidement, via Browse black points icon.png dans la barre de titre.

exemple Récupération du commentaire de fermeture

         Action Azure - GitHub issue closing - HTTP action - Pulling comment - Rename action.png

3. Renseignez les informations de l'étape.

  • Méthode : Saisissez la valeur GET.
  • URI : Saisissez la formule suivante, en remplaçant les valeurs indiquées en jaune par les valeurs de votre compte GitHub.

    concat(concat('https://api.github.com/repos/{your_repository_owner}/{your_repository_name}/issues/', triggerBody()?['number']),'/comments')

  • En-têtes :
    • Saisissez une première ligne avec les valeurs suivantes.
      • Clé : Content-Type
      • Valeur : application/json
    • Saisissez une 2ème ligne avec les valeurs suivantes.
      • Clé : Authorization
      • Valeur : token {your_GitHub_token}. Remplacez la valeur indiquée en jaune par le token de votre problème GitHub.

         Action Azure - GitHub issue closing - HTTP action - Pulling comment.png

4. Définissez la variable Message permettant de récupérer le commentaire de fermeture du problème GitHub, en créant dans l'ordre la suite d'actions ci-dessous.

Action Détail
4.a Créez une action de type Initialiser la variable

Action Azure - GitHub issue closing - Initialize variable Body - Information.png

  • Nom : Nom de la variable.

    exemple   Body

  • Type : Sélectionnez la valeur String.
  • Valeur : Sélectionnez la valeur dynamique Body provenant de l'étape HTTP > Récupération du commentaire de fermeture.
4.b Créez une action de type Initialiser la variable.

Action Azure - GitHub issue closing - Initialize variable Body array - Information.png

  • Nom : Nom de la variable.

    exemple   Body array

  • Type : Sélectionnez la valeur Array.
  • Valeur : Saisissez la formule suivante.
    split(variables('Body'),';')
4.c Créez une action de type Message.

Action Azure - GitHub issue closing - Compose Body array - Information.png

  • Entrées : Saisissez la formule suivante.
    last(variables('Body array'))
4.d Créez une action de type Initialiser la variable.

Action Azure - GitHub issue closing - Initialize variable Message array - Information.png

  • Nom : Nom de la variable.

    exemple   Message array

  • Type : Sélectionnez la valeur Array.
  • Valeur : Saisissez la formule suivante.
    split(outputs('Compose'),'"')
4.e Créez une action de type Initialiser la variable.

Action Azure - GitHub issue closing - Initialize variable Message - Information.png

  • Nom : Nom de la variable.

    exemple   Message

  • Type : Sélectionnez la valeur String.
  • Valeur : Saisissez la formule suivante.
    variables('Message array')[3]

Étape 3 : Stockage du commentaire de fermeture du problème GitHub dans la demande Service Manager

1. Recherchez le connecteur EasyVista Service Manager et créez une action de type Update Request-Incident.

Best Practice icon.png  Utilisez la zone de recherche pour trouver facilement le connecteur et le type de déclencheur.

         Action Azure - Update request - Selection action.png

2. Renseignez les informations de l'action.

  • Account : Saisissez votre compte d'accès à Service Manager
  • Unique identification of request or incident : Identifiant de la demande Service Manager. Sélectionnez la valeur dynamique Title provenant de l’étape de déclenchement du flux Lorsqu'un problème assigné à moi est fermé.
  • Comment : Commentaire de fermeture du problème GitHub. Sélectionnez la valeur dynamique Message provenant du résultat de l'étape Initialiser la variable > Message.

         Action Azure - Update request - Information.png

Étape 4 : Fermeture de la demande Service Manager

1. Recherchez le connecteur EasyVista Service Manager et créez une action de type Close Request-Incident.

2. Renseignez les informations de l'action.

  • Account : Saisissez votre compte d'accès à Service Manager
  • Unique identification of request or incident : Identifiant de la demande Service Manager. Sélectionnez la valeur dynamique Title provenant de l’étape de déclenchement du flux Lorsqu'un problème assigné à moi est fermé.
  • Closed comment : Commentaire de fermeture du problème GitHub. Sélectionnez les valeurs dynamiques Title provenant de l’étape de déclenchement du flux Lorsqu'un problème assigné à moi est fermé / Message provenant du résultat de l'étape Initialiser la variable > Message.

         Action Azure - Close request - Information.png

3. Enregistrez le flux de travail.

Service Manager : Création d'une ressource Problème GitHub utilisée dans une étape REST d'un processus de création de ticket

Étape 1 : Gestion des droits pour l’utilisation de l’API REST Service Manager

    Open url.png voir Description des profils

1. Allez sur le menu Administration > Gestion des accès > Profils utilisateur.

2. Sélectionnez un profil autorisé à utiliser l'API REST.

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 Problème GitHub associée à un service Microsoft Power Automate

       Open url.png  voir procédure Comment définir une nouvelle ressource et l'associer à un type d'action REST

1. Allez sur le menu Administration > REST > Services.

2. Créez un nouveau service.
         Service Manager - Microsoft Flow Service.png

  • Nom du service : 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 Création d'un problème dans GitHub dans Logic Apps (étape 1).
    • 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}.
       

3. Créez une connexion au service Microsoft Power Automate.
         Service Manager - Microsoft Flow Connection.png

  • Nom de la connexion : GitHub Flow.
  • Méthode d'authentification : Aucune.
  • Nom du service : Service Microsoft Power Automate créé précédemment.
    L'URL du service Microsoft Power Automate 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.
     

4. Créez une ressource rattachée au service Microsoft Power Automate, permettant un accès aux problèmes GitHub.
         Service Manager - Microsoft Flow Resource.png

  • Label : Nom de la ressource.
  • 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 Création d'un problème dans GitHub dans Logic Apps (étape 1).
    • 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.

    Note : Si vous collez un schéma JSON copié depuis un éditeur tiers (Microsoft Word, notepad++, etc.), des caractères invisibles peuvent être insérés et créer un dysfonctionnement dans le traitement de l’étape REST utilisant la ressource.

    {"Description": "{Description}","id": "{id}","Host": "{sys.EVSM_HOST}","URL": "{sys.EVSM_REST_SERVICE_URL}","Account": "{sys.EVSM_ACCOUNT}"}

Étape 3 : Utilisation de la ressource Problème GitHub dans une étape REST d'un processus de création de ticket

       Open url.png  voir procédure Comment définir une nouvelle ressource et l'associer à un type d'action REST

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 depuis la catégorie Actions REST 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.

Liens vers d'autres intégrations

Tags:
Modifié par Christine Daussac le 2021/05/17 15:54
Créé par Administrator XWiki le 2020/09/11 10:55

Raccourcis

L'actualité mensuelle
•  Newsletter

Tous les changements
•  Service Manager
•  Service Apps
•  Self Help
•  Service Bots

Powered by XWiki ©, EasyVista 2021