Como usar a API do Azure DevOps para obter o tempo total de compilação (em minutos) para um pool de agentes de construção. Se você precisar reverter do agente adquirido para a versão gratuita, este guia irá ajudá-lo.
Azure DevOps é uma plataforma popular para gerenciar processos de desenvolvimento de software. Com sua API REST, os desenvolvedores podem interagir com a plataforma de forma programática e automatizar tarefas como gerenciamento de compilação e lançamento. Neste tutorial, demonstraremos como usar a API Azure DevOps para obter o tempo total de construção (em minutos) para um pool de agentes de build dentro de um intervalo de datas especificado. Forneceremos instruções passo a passo e usaremos Python para fazer solicitações de API.
Passos:
- Obtenha um Azure DevOps Token de acesso pessoal (PAT) Antes de começarmos, precisamos obter um PAT do Azure DevOps, que usaremos para autenticar nossas solicitações de API. Para criar um PAT, acesse as configurações da organização do Azure DevOps e clique em “Tokens de acesso pessoal”. Siga as instruções para criar um novo token com o “Construir (ler)” escopo.
- Configure um ambiente Python Estaremos usando Python para fazer nossas solicitações de API. Se você não tiver o Python instalado, você pode baixá-lo no site oficial (https://www.python.org/downloads/). Também recomendamos o uso de um ambiente virtual para gerenciar suas dependências Python. Para configurar um ambiente virtual, execute os seguintes comandos no seu terminal:
pip install virtualenv
virtualenv venv
source venv/bin/activate
- Instale a biblioteca de solicitações Estaremos usando o
requests
biblioteca para fazer nossas solicitações de API. Para instalá-lo, execute o seguinte comando:
pip install requests
- Defina o endpoint da API O endpoint da API que usaremos é:
https://{username}:{pat}@dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.0
Substituir {username}
, {pat}
,{organization}
e {project}
com sua organização real e nomes de projetos.
- Faça a solicitação de API para obter o tempo total de construção de um pool de agentes de construção dentro de um intervalo de datas especificado, precisamos usar o
minTime
emaxTime
parâmetros de consulta em nossa solicitação de API. Também precisamos filtrar os resultados da compilação pelo pool de agentes de compilação. Aqui está um exemplo de script Python que faz a solicitação da API e calcula o tempo total de construção (em minutos):
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")
Exemplo de saída:
Number of build runs: 35
Total build time: 122.19 minutes