Як використовувати API Azure DevOps для отримання загального часу збірки (за хвилини) для пулу агентів збірки. Якщо потрібно відкотитися з купленого агента на безкоштовну версію, цей посібник допоможе вам.
Azure DevOps — популярна платформа для керування процесами розробки програмного забезпечення. З його REST API, розробники можуть програмно взаємодіяти з платформою та автоматизувати такі завдання, як керування створенням і випуском. У цьому підручнику, ми продемонструємо, як використовувати API Azure DevOps, щоб отримати загальний час збірки (за хвилини) для пулу агентів збірки протягом указаного діапазону дат. Ми надамо покрокові інструкції та використаємо Python для створення запитів API.
Кроки:
- Отримати Azure DevOps Персональний маркер доступу (PAT) Перш ніж почати, нам потрібно отримати Azure DevOps PAT, який ми будемо використовувати для автентифікації наших запитів API. Щоб створити PAT, перейдіть до налаштувань організації Azure DevOps і натисніть “Персональні маркери доступу”. Дотримуйтесь інструкцій, щоб створити новий маркер за допомогою “Будувати (читати)” сфера застосування.
- Налаштування середовища Python Ми будемо використовувати Python для виконання наших запитів API. Якщо у вас не встановлено Python, ви можете завантажити його з офіційного сайту (https://www.python.org/downloads/). Ми також рекомендуємо використовувати віртуальне середовище для керування залежностями Python. Щоб створити віртуальне середовище, запустіть наступні команди у вашому терміналі:
pip install virtualenv
virtualenv venv
source venv/bin/activate
- Встановіть бібліотеку запитів, яку ми будемо використовувати
requests
бібліотеку для виконання запитів API. Щоб встановити його, запустіть наступну команду:
pip install requests
- Визначте кінцеву точку API Кінцевою точкою API, яку ми будемо використовувати, є:
https://{username}:{pat}@dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.0
Замінити {username}
, {pat}
,{organization}
і {project}
із вашою фактичною організацією та назвами проектів.
- Зробіть запит API, щоб отримати загальний час збірки для пулу агентів збірки в межах указаного діапазону дат, нам потрібно використовувати
minTime
іmaxTime
параметри запиту в нашому запиті API. Нам також потрібно відфільтрувати результати збірки за пулом агентів збірки. Ось приклад сценарію Python, який робить запит API і обчислює загальний час збірки (за хвилини):
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")
Вихідний приклад:
Number of build runs: 35
Total build time: 122.19 minutes