Kako uporabiti API Azure DevOps za pridobitev skupnega časa gradnje (v minutah) za skupino gradbenih agentov. Če se morate vrniti s kupljenega agenta na brezplačno različico, ta vodnik vam bo pomagal.
Azure DevOps je priljubljena platforma za upravljanje procesov razvoja programske opreme. S svojim REST API, razvijalci lahko programsko komunicirajo s platformo in avtomatizirajo naloge, kot je upravljanje gradnje in izdaje. V tej vadnici, prikazali bomo, kako uporabiti API Azure DevOps za pridobitev skupnega časa gradnje (v minutah) za skupino gradbenih agentov v določenem časovnem obsegu. Zagotovili bomo navodila po korakih in uporabili Python za izdelavo zahtev API.
Koraki:
- Pridobite Azure DevOps Osebni dostopni žeton (PAT) Preden začnemo, moramo pridobiti Azure DevOps PAT, ki jih bomo uporabili za preverjanje pristnosti naših API zahtev. Če želite ustvariti PAT, pojdite v nastavitve organizacije Azure DevOps in kliknite “Žetoni osebnega dostopa”. Sledite navodilom za ustvarjanje novega žetona z “Zgradite (prebrati)” Obseg.
- Nastavite okolje Python Python bomo uporabljali za izdelavo zahtev API-ja. Če nimate nameščenega Pythona, lahko ga prenesete z uradne spletne strani (https://www.python.org/downloads/). Priporočamo tudi uporabo virtualnega okolja za upravljanje odvisnosti od Pythona. Za postavitev virtualnega okolja, zaženite naslednje ukaze v vašem terminalu:
pip install virtualenv
virtualenv venv
source venv/bin/activate
- Namestite knjižnico zahtev, ki jo bomo uporabljali
requests
knjižnico za izdelavo naših zahtev API. Da ga namestite, zaženite naslednji ukaz:
pip install requests
- Definirajte končno točko API Končna točka API, ki jo bomo uporabljali, je:
https://{username}:{pat}@dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.0
Zamenjati {username}
, {pat}
,{organization}
in {project}
z vašo dejansko organizacijo in imeni projektov.
- Izvedite zahtevo za API, da pridobite skupni čas gradnje za skupino agentov gradnje v določenem časovnem obsegu, moramo uporabiti
minTime
inmaxTime
poizvedbeni parametri v naši zahtevi API. Prav tako moramo filtrirati rezultate gradnje glede na skupino agentov gradnje. Tukaj je primer skripta Python, ki naredi zahtevo API in izračuna skupni čas gradnje (v minutah):
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")
Izhodni primer:
Number of build runs: 35
Total build time: 122.19 minutes