Comment utiliser les données Azure Devops dans PowerBI

Florian CAILLAUD
Publié par Florian CAILLAUD
Catégorie : Azure / DevOps
06/07/2021

Introduction

 

Lors de l’utilisation d’Azure DevOps, nous générons un grand nombre de données. Cela peut être des données de planification, mais également des données sur l’équipe ou sur les différents pipelines mis en place.

Il serait dommage de ne pas se servir de ces informations pour mieux piloter notre projet Azure DevOps. Dans cet article, nous proposons d’utiliser le logiciel Power BI afin de mettre en forme ces données.

 

Création d’un rapport PowerBi

 

La toute première chose à faire est bien sûr de créer un rapport Power BI avec Power BI Desktop. Ce lien décrit comment démarrer : https://docs.microsoft.com/en-us/power-bi/create-reports/.

 

Pour mettre en place, dans ce rapport, des graphiques décrivant vos données, il va falloir définir une ou plusieurs sources de données. Azure DevOps permet de récupérer les informations de 3 manières différentes :

  • les Analytics Views
  • les requêtes OData
  • l’API Azure DevOps

 

Nous allons expliquer, dans la suite de cet article, comment créer et se servir de chacune de ces 3 sources.

 

Récupération via Analytics Views

Ce type de source permet de récupérer l’image des données sur les éléments de travail par tranches régulières de temps (et non l’ensemble de l’historique).

 

Afin d’utiliser la partie Analytics Views, la première étape est de créer une vue en allant sur le projet Azure DevOps voulu, dans « Overview/Analytics Views* ».

 

AnalyticsViews

 

Des vues sont déjà disponibles pour des besoins standards. Si nécessaire, il est possible d’en créer une nouvelle en définissant les filtres (sur les éléments de travail, sur les areas, etc.), la période de temps prise en compte et les différents champs voulus. Attention, pour utiliser une vue dans PowerBI, il faut impérativement qu’elle soit de type « Shared ».

Une fois la vue disponible, dans PowerBI, il suffit de déclarer une nouvelle source de données à travers le connecteur Azure DevOps (en allant dans le ruban « Home », puis « Get Data »).

 

PowerBiADOConnector

 

Pour paramétrer le connecteur, seul le nom de l’organisation et du projet Azure DevOps sont nécessaires. Il faut néanmoins s’identifier (soit avec ses identifiants Microsoft, soit avec un Personel Access Token). Après l’authentification, PowerBI liste les différentes vues disponibles.

 

PowerBiAnalyticsViews

 

Dans notre cas, je choisis la vue « Work Items – All history by month » et, après avoir cliqué sur « Load », on peut voir la nouvelle source de données s’afficher avec les champs voulus :

 

PowerBiDataSource

 

Récupération via OData

En ce qui concerne la récupération de données via requêtes OData, l’éventail de données est plus large. Il sera possible d’avoir accès aux informations sur les works items (par tranches régulières de temps ou l’historique précis) mais également l’ensemble des métadatas relatives à la partie Board d’Azure DevOps. Ce lien décrit assez bien les éléments manipulés et leurs relations.

Pour la création de la source de données PowerBI, nous choisirons cette fois le connecteur « OData Feed ».

 

PowerBiODataConnector

 

Il faudra, dans un premier temps, lui fournir l’URL de requête : https://analytics.dev.azure.com/{organization_name}/{project_name}/_odata/v2.0. Il s’agit ici de la version 2.0, la version 3.0 qui permet un accès encore plus large est en preview pour le moment.

Ensuite, vient la partie authentification. Si normalement l’authentification avec les identifiants Microsoft devrait fonctionner, il arrive qu’il y ait une erreur. Dans ce cas, il faut créer un PAT (https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=preview-page), aller dans la section « Basic » de l’authentification et coller le PAT comme mot de passe (on peut laisser le nom d’utilisateur vide).

PowerBI nous liste ensuite les différentes tables que l’on peut définir comme source de données :

 

PowerBiODataViews

 

Récupération via API

Dans le cas où le filtrage/la transformation des données serait trop complexe, il reste une dernière option : l’utilisation de l’API de Azure DevOps. Vous pouvez trouver de la documentation sur cette API ici : https://docs.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-6.1.

L’API d’Azure DevOps permet de requêter quasiment toutes les informations disponibles dans notre organisation Azure DevOps.

Afin de créer notre source de données, il est possible d’utiliser le connecteur Web de PowerBI. Il faudra alors renseigner l’URL de la méthode d’API voulue et s’authentifier. Cependant, si des traitements complexes (filtrages, transformations, etc.) doivent être réalisés et ne peuvent l’être dans PowerBI, cela est réalisable dans des ressources Azure. Typiquement, l’utilisation d’une LogicApp avec la shape « Send an HTTP request to Azure DevOps » utilisant la méthode d’API souhaitée permet facilement d’accéder aux données voulues.

 

LogicAppShape

 

L’insertion des données retravaillées dans une Azure SQL table ou une Azure Storage Table permet ensuite, via PowerBI, de créer la source de données grâce à un connecteur Azure SQL Database ou Azure Table Storage.