Intégration Azure DevOps (via Microsoft Power Automate) - Créer des éléments de travail Bug et Task

Modifié le 08/11/2022 13:22

À propos de cette intégration

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

Azure DevOps est une solution proposée par Microsoft. Elle permet de disposer d'un outil de gestion de projets DevOps pour assurer le suivi des tâches, des délais, des problèmes, des calendriers, ... en lien avec les applications.

Cette intégration vous permet de créer 2 éléments de travail (work items) de type Bug et de type Task dans Azure DevOps lorsqu'un ticket est créé dans Service Manager, en utilisant Microsoft Power Automate.

  • Le numéro de l'élément de travail de type Bug est enregistré dans le ticket Service Manager.
  • L'élément de travail de type Task est rattaché à l'élément de travail de type Bug.
      

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

Logo - EV Service Manager.png

Down arrow.png

Logo Icon - Microsoft Flow.png

Down arrow.png

Logo Icon - Azure DevOps.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 Azure DevOps

Definitions_AzureDevOps
  • Azure DevOps est une solution proposée par Microsoft. Elle permet de disposer d’un outil de gestion de projets DevOps pour assurer le suivi des tâches, des délais, des problèmes, des calendriers, ... en lien avec les applications.
  • Les éléments de travail, ou work items permettent le suivi des fonctionnalités et spécifications, des erreurs de code, des bugs, ...
  • Chaque élément de travail est basé sur un type d’élément de travail et reçoit un identificateur unique.
  • Les types d’éléments de travail disponibles sont basés sur le processus utilisé lors de la création des projets (Agile, Scrum, ...). Ils peuvent être configurés de façon différente par chaque équipe.
    • Le type d'élément de travail Bug permet le suivi des bugs.
    • Le type d'élément de travail Task permet le suivi de l'activité et des tâches.
  • Les éléments de travail peuvent être assignés à d'autres éléments de travail suivant une hiérarchie d’éléments, à l’aide de liens parent-enfant.

Flux d'échange dans Microsoft Power Automate

L'intégration entre Service Manager et Azure DevOps lors de la création d'un ticket dans Service Manager donne lieu à l'exécution d'un flux dans Microsoft Power Automate.

==> Flux Création de 2 éléments de travail Bug et Task dans Azure DevOps
         Data feed diagram 1 - EN.png

Prérequis

  • Vous devez demander à EasyVista la création de 2 champs dans la table SD_REQUEST, dédiés à Azure DevOps et GitHub.
  • Vous devez créer les types d'éléments de travail Bug et Task dans Azure DevOps pour le modèle de processus utilisé par votre projet DevOps  - Open url.png voir Procédure
  • Vous devez créer 2 champs personnalisés pour le type d'élément de travail Bug, pour stocker les références du ticket Service Manager  - Open url.png 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

    Microsoft Power Automate - Best Practice search connector.png

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  - Open url.png voir Procédure détaillée

1. Créez les types d'éléments de travail Bug et Task dans Azure DevOps pour le modèle de processus utilisé par votre projet DevOps  - Open url.png voir Procédure détaillée

2. Créez les 2 champs personnalisés pour le type d'élément de travail Bug, pour stocker les références du ticket Service Manager  - Open url.png voir Procédure détaillée

3. Créez le flux MS Power Automate  - Open url.png voir Processus d'intégration pas à pas

  • Note : Le flux nécessite de créer une connexion à Azure DevOps.

Best Practice icon.png  Importez le flux ci-dessous dans MS Power Automate, qui est préparamétré et contient toutes les étapes  - Open url.png voir Procédure d'import du flux
        Download icon.png  Flux Création des éléments de travail Bug et Task dans Azure DevOps

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)

     Open url.png voir Procédure détaillée

1. Allez sur chaque fiche Ticket (incident / demande).

2. Cliquez sur Browse grey points icon.png 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.
         Add fields DevOps in ticket form.png

Création des type d'éléments de travail Bug et Task

Attention : Assurez-vous de créer les types d'éléments de travail sur le modèle de processus ou le processus utilisé par votre projet DevOps.

CreateBugWorkItemType_Procedure

Étape 1 : Connexion à Azure DevOps

1. Connectez-vous à Azure DevOps avec les informations d'identification de votre compte Azure.

2. Cliquez sur le nom de votre organisation.

3. Cliquez sur Organization settings.

          Azure DevOps - Open.png
 

Étape 2 : Création du type d'élément de travail Bug

1. Cliquez sur Boards > Process dans le panneau de menu.
La liste des processus DevOps est affichée.
         Azure DevOps - Open processes.png

2. Cliquez sur le projet DevOps à partir duquel vous voulez suivre les tickets créés dans Service Manager.
La liste des types d'éléments de travail définis pour le processus du projet est affichée.
         Azure DevOps - Work item types.png

3. Cliquez sur + New work item type.

4. Renseignez les informations du nouveau type d'élément de travail, en le nommant Bug.
         Azure DevOps - Work item types - Creation.png

5. Cliquez sur Create.
Les propriétés du nouveau type d'élément de travail sont affichées.

Étape 3 : Création du type d'élément de travail Task

1. Cliquez sur + New work item type.

2. Renseignez les informations du nouveau type d'élément de travail, en le nommant Task.

3. Cliquez sur Create.
Les propriétés du nouveau type d'élément de travail sont affichées.


Étape 4 : Création de 2 champs personnalisés stockant les références du ticket Service Manager

CreateEZVFieldsForBugWorkItem_Procedure

1. Sélectionnez le type d'élément de travail Bug.

2. Cliquez sur New field.

          Azure DevOps - Work item types - Creation EZV fields.png

3. Renseignez les informations du nouveau champ permettant de stocker l'identifiant du ticket, en le nommant EZV_ID.
         Azure DevOps - Work item types - Creation EZV fields - Add field.png

4. Cliquez sur Add field.
Le nouveau champ est rattaché au type d'élément de travail Bug dans la section Custom.
         Azure DevOps - Work item types - Creation EZV fields - Detail.png

5. Répétez les mêmes opérations pour créer le 2ème champ permettant de stocker l'URI du ticket, en le nommant EZV_URI.

Import du flux de travail dans Microsoft Power Automate

Note : Le flux nécessite de créer une connexion à Azure DevOps.

Étape 1 : Téléchargement du flux

1. Téléchargez le fichier ci-dessous sur votre ordinateur.

      Download icon.png  Flux Création des éléments de travail Bug et Task dans Azure DevOps

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.
         Microsoft Power Automate - Import flow - Flow list.png

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 Red nok icon.png indique que la connexion pour la ressource n'est pas trouvée.
    Microsoft Power Automate - Import flow - Package content.png
     

É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.
         Microsoft Power Automate - Import flow - Import setup link.png

Une fenêtre de configuration de l'import est affichée.
         Microsoft Power Automate - Import flow - Import setup window.png

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.

    Microsoft Power Automate - Import flow - Import setup - Select existing connection.png

Aucune connexion pour la ressource n'existe

  • Cliquez sur + Créer.

    Microsoft Power Automate - Import flow - Import setup - Create connection.png

    • Une instance MS Power Automate est ouverte dans un nouvel onglet de votre navigateur internet.
    • La liste des connexions existantes est affichée.
               Microsoft Power Automate - Import flow - Import setup - Create connection 2.png
  • 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

Microsoft Power Automate - Import flow - Import setup - Create connection 3.png

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

Microsoft Power Automate - Import flow - Import setup - New connection added.png

  • 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.
             Microsoft Power Automate - Import flow - Import setup - Refresh list.png
  • Cliquez sur la connexion puis sur Enregistrer.
    L'icône Black cross icon.png indique que la connexion pour la ressource est correctement effectuée.
             Microsoft Power Automate - Import flow - Import setup - New connection ok.png

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.

          Microsoft Power Automate - Import flow - Button.png

L'icône Green ok icon.png devant chaque ressource du package indique que l'import du flux est correctement effectué.
         Microsoft Power Automate - Import flow - Ok.png

É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.

         Microsoft Power Automate - Import flow with error - Save as new flow.png

  • Une instance MS Power Automate est ouverte dans un nouvel onglet de votre navigateur internet.
  • Le flux de travail du package importé est affiché.
             Microsoft Power Automate - Import flow with error - Invalid connection.png

2. Cliquez sur l'action indiquant que la connexion est invalide.
La liste des connexions existantes pour le type de ressource est affichée.
         Microsoft Power Automate - Import flow with error - Invalid connection - Select connection.png

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

Microsoft Power Automate - Import flow with error - Invalid connection - Configure connection.png

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

Microsoft Power Automate - Import flow with error - Invalid connection - Configure connection ok.png

  • Toutes les connexions nécessaires au flux sont configurées.
  • Le flux de travail est créé.
             Microsoft Power Automate - Import flow - Success.png
     

Étape 5 : Configuration du flux de travail

1. Survolez le libellé du flux avec la souris puis cliquez sur Edit icon.png.
         Microsoft Power Automate - Open flow.png

Le flux de travail est affiché.
         Microsoft Power Automate - Detail flow.png

2. Reportez-vous à la procédure de configuration du flux importé.

Création du flux MS Power Automate

Description du flux de travail Création des éléments de travail Bug et Task dans Azure DevOps

Azure flow description - Creation Azure DevOps work items.png
  • Étape 1 : Création de l'étape de déclenchement du flux (trigger)
  • Étape 2 : Création d'un élément de travail de type Bug contenant les références du ticket Service Manager
  • Étape 3 : Création d'un élément de travail de type Task contenant les références du ticket Service Manager
  • Étape 4 : Rattachement de l'élément de travail de type Task à l'élément de travail de type Bug
  • Étape 5 : Stockage de l'identifiant de l'élément de travail de type Bug dans le ticket Service Manager
  • Étape 6 : Sauvegarde de la configuration du flux de travail


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

==> Le flux est déclenché lorsqu'un ticket est créé dans Service Manager.

1. 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.

Microsoft Power Automate - Trigger - When a http request is received.png
  • 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}"
                  ]
              },
             "Account": {
                 "$id": "/properties/Account",
                 "type": "string",
                 "title": "Account",
                 "default": "",
                 "examples": [
                     "{Account}"
                  ]
              },
             "URL": {
                 "$id": "/properties/URL",
                 "type": "string",
                 "title": "URL",
                 "default": "",
                 "examples": [
                     "{URL}"
                  ]
              },
             "Title": {
                 "$id": "/properties/Title",
                 "type": "string",
                 "title": "Title",
                 "default": "",
                 "examples": [
                     "{Title}"
                  ]
              },
             "Priorite": {
                 "$id": "/properties/Priorite",
                 "type": "string",
                 "title": "Priorite",
                 "default": "",
                 "examples": [
                     "{Priorite}"
                  ]
              }
          }
      }
    • Méthode : Sélectionnez la valeur POST.
  • Sauvegardez le déclencheur.

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


Étape 2 : Création d'un élément de travail de type Bug contenant les références du ticket Service Manager

1. Créez une action de type Créer un élément de travail (connecteur Azure DevOps).

Microsoft Power Automate - Action - Create a work item Azure DevOps.png
  • Renommez-la par Create a Work Item (Bug), via Browse black points icon.png dans la barre de titre.
  • Renseignez les informations de l'action.
    • Nom de l'organisation : Nom de votre organisation.
    • Nom du projet : Nom de votre projet DevOps.
    • Type d'élément de travail : Sélectionnez le type Bug.
    • Titre : Saisissez la valeur suivante.
      concat(triggerBody()?['id'],' ',triggerBody()?['Priorite'],' ',triggerBody()?['Title'])
    • Description : Description du ticket Service Manager. Sélectionnez la valeur dynamique Description de l'étape Lors de la réception d'une demande HTTP.


Étape 3 : Création d'un élément de travail de type Task contenant les références du ticket Service Manager

1. Créez une action de type Créer un élément de travail (connecteur Azure DevOps).

Microsoft Power Automate - Action - Create a work item Azure DevOps.png
  • Renommez-la par Create a Work Item (Task), via Browse black points icon.png dans la barre de titre.
  • Renseignez les informations de l'action.
    • Nom de l'organisation : Nom de votre organisation.
    • Nom du projet : Nom de votre projet DevOps.
    • Type d'élément de travail : Sélectionnez le type Task.
    • Titre : Saisissez la valeur suivante.
      concat(triggerBody()?['id'],' ',triggerBody()?['Priorite'],' ',triggerBody()?['Title'])
    • Description : Description du ticket Service Manager. Sélectionnez la valeur dynamique Description de l'étape Lors de la réception d'une demande HTTP.


Étape 4 : Rattachement de l'élément de travail de type Task à l'élément de travail de type Bug

1. Créez une action de type Modifier un élément de travail (connecteur Azure DevOps).

Microsoft Power Automate - Action - Update a work item Azure DevOps.png
  • Renseignez les informations de l'action.
    • Nom de l'organisation : Nom de votre organisation.
    • ID élément de travail : Identifiant de l'élément de travail Task. Sélectionnez la valeur dynamique ID de l'étape Créer un élément de travail (Task).
    • Type d'élément de travail : Sélectionnez le type Bug.

    • Options avancées :
      • Lien URL : Saisissez l'URL de l'élément de travail Bug, sous la forme suivante, en remplaçant les valeurs en jaune par celles de votre environnement.
        https://dev.azure.com/{your_organization}/{your_project}/_apis/wit/workItems/@{outputs('Create_a_Work_Item_(Bug)')?['body/id']}
      • Type de lien : Sélectionnez la valeur Hiérarchie-reverse.


Étape 5 : Stockage de l'identifiant de l'élément de travail de type Bug dans le ticket Service Manager

1. Créez une action de type HTTP pour mettre à jour le ticket Service Manager.

Microsoft Power Automate - Action - HTTP Put.png
  • Renommez-la par Update Ticket, via Browse black points icon.png dans la barre de titre.
  • Renseignez les informations de l'action.* Méthode : Saisissez la valeur PUT.
    • URI : Saisissez l'URL suivante.
      concat(triggerBody()?['URL'],'requests/',triggerBody()?['id'])
    • Body : Effectuez un copier-coller du schéma JSON ci-dessous.
      { "E_ADO_NUMBER": "@{outputs('Create_a_Work_Item_(Bug)')?['body/id']}" }
    • Options avancées :
      • Authentification : Sélectionnez la valeur Basic.
      • Nom utilisateur : Compte de la plate-forme Service Manager.
      • Mot de passe : Mot de passe associé au compte de la plate-forme Service Manager.


Étape 6 : Sauvegarde de la configuration du flux de travail

1. Cliquez sur Save en bas du flux.

        Azure flow - Save configuration.png

Liens vers d'autres intégrations

Liste des fichiers à télécharger

Note : Reportez-vous au processus d'intégration pas à pas pour leur utilisation.

       Download icon.png  Flux Création des éléments de travail Bug et Task dans Azure DevOps

Tags :
Powered by XWiki © EasyVista 2022