วิธีใช้ Azure DevOps API เพื่อรับเวลาในการสร้างทั้งหมด (ในไม่กี่นาที) สำหรับ Build Agent Pool. หากคุณต้องการย้อนกลับจากตัวแทนที่ซื้อไปเป็นเวอร์ชันฟรี, คู่มือนี้จะช่วยคุณ.
Azure DevOps เป็นแพลตฟอร์มยอดนิยมสำหรับจัดการกระบวนการพัฒนาซอฟต์แวร์. ด้วย REST API, นักพัฒนาสามารถโต้ตอบกับแพลตฟอร์มโดยเขียนโปรแกรมและทำงานอัตโนมัติ เช่น การจัดการบิลด์และรีลีส. ในบทช่วยสอนนี้, เราจะสาธิตวิธีใช้ Azure DevOps API เพื่อรับเวลาในการสร้างทั้งหมด (ในไม่กี่นาที) สำหรับกลุ่มตัวแทนบิลด์ภายในช่วงวันที่ที่ระบุ. เราจะให้คำแนะนำทีละขั้นตอนและใช้ Python เพื่อสร้างคำขอ API.
ขั้นตอน:
- ได้รับ Azure DevOps โทเค็นการเข้าถึงส่วนบุคคล (กทท) ก่อนที่เราจะเริ่ม, เราจำเป็นต้องได้รับ Azure DevOps PAT, ซึ่งเราจะใช้เพื่อตรวจสอบคำขอ API ของเรา. เพื่อสร้างกทท, ไปที่การตั้งค่าองค์กร 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