Comment utiliser l'API Azure DevOps pour obtenir le temps de génération total (en minutes) pour un pool d'agents de construction. Si vous devez revenir de l'agent acheté à la version gratuite, ce guide vous aidera.
Azure DevOps est une plate-forme populaire pour la gestion des processus de développement de logiciels. Avec son API REST, les développeurs peuvent interagir avec la plate-forme par programmation et automatiser des tâches telles que la gestion des builds et des versions. Dans ce tutoriel, nous montrerons comment utiliser l'API Azure DevOps pour obtenir le temps de construction total (en minutes) pour un pool d'agents de build dans une plage de dates spécifiée. Nous fournirons des instructions étape par étape et utiliserons Python pour effectuer des requêtes API.
Pas:
- Obtenez un Azure DevOps Jeton d'accès personnel (TAPOTER) Avant de commencer, nous devons obtenir un Azure DevOps PAT, que nous utiliserons pour authentifier nos requêtes API. Pour créer un PAT, allez dans les paramètres de votre organisation Azure DevOps et cliquez sur “Jetons d'accès personnels”. Suivez les instructions pour créer un nouveau jeton avec le “Construire (lire)” portée.
- Configurer un environnement Python Nous utiliserons Python pour effectuer nos requêtes API. Si vous n'avez pas installé Python, vous pouvez le télécharger sur le site officiel (https://www.python.org/downloads/). Nous vous recommandons également d'utiliser un environnement virtuel pour gérer vos dépendances Python. Pour configurer un environnement virtuel, exécutez les commandes suivantes dans votre terminal:
pip install virtualenv
virtualenv venv
source venv/bin/activate
- Installez la bibliothèque de requêtes Nous utiliserons le
requests
bibliothèque pour faire nos requêtes API. Pour l'installer, exécutez la commande suivante:
pip install requests
- Définir le point de terminaison de l'API Le point de terminaison de l'API que nous utiliserons est:
https://{username}:{pat}@dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.0
Remplacer {username}
, {pat}
,{organization}
et {project}
avec votre organisation réelle et les noms de vos projets.
- Effectuer la requête API Pour obtenir la durée totale de build pour un pool d'agents de build dans une plage de dates spécifiée, nous devons utiliser le
minTime
etmaxTime
paramètres de requête dans notre requête API. Nous devons également filtrer les résultats de build par le pool d'agents de build. Voici un exemple de script Python qui effectue la requête API et calcule le temps total de construction (en minutes):
pip install python-dateutil requests
import requests
from dateutil.parser import parse
# Set up variables for the API request
organization = "<Organization Name>"
project = "Project Name"
queue_id = "9"
min_time = "2023-04-01"
max_time = "2023-04-05"
# you can leave username as user
username = "user"
pat = "<PAT>"
# Construct the API URL
url = f"https://{username}:{pat}@dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.0&minTime={min_time}&maxTime={max_time}&$filter=queue.id eq {queue_id}&$orderby=startTime asc"
# Send the API request
response = requests.get(url)
# Parse the response JSON
json_response = response.json()
# Retrieve the count of build runs
count = json_response["count"]
# Calculate the total build time in seconds
total_build_time = 0
for build in json_response["value"]:
start_time = parse(build["startTime"])
finish_time = parse(build["finishTime"])
duration = finish_time - start_time
total_build_time += duration.total_seconds()
# Convert the total build time to minutes
total_build_time_minutes = total_build_time / 60
print(f"Number of build runs: {count}")
print(f"Total build time: {total_build_time_minutes:.2f} minutes")
Exemple de sortie:
Number of build runs: 35
Total build time: 122.19 minutes