如何使用 REST API 获取预定的 build\release 数据

How to get scheduled build\release data using REST API

想要获得下一个预期的内容 Build/Release 并使用 API 获取信息然后将其投射到某种形式的仪表板(使用收集的信息)而不是从 Azure DevOps > Pipelines 检查> 构建选项。

已为构建和发布管道启用调度程序,并且它也已成功触发。我可以使用 REST API 收集 build/release 信息,但是我可以获得 processed/completed builds/releases 的信息。

根据要求,我只想获取下一个预定的 build/release 详细信息(关于它们的任何信息都可以),因为我已经为它们启用了调度程序。

如果 Scheduler 只是帮助触发管道,我们是否可以通过编程方式检索该信息?

How to get scheduled build\release data using REST API

您可以使用 Rest API 到 Get a build definition 来获取构建计划信息:

GET https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}?api-version=5.1

例如,我使用以下 Powershell 脚本来获取构建计划信息:

$url = "https://dev.azure.com/<MyOrganization>/<MyProject>/_apis/build/definitions/55?api-version=5.1"
$buildPipeline= Invoke-RestMethod -Uri $url -Headers @{   
 Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
} -Method Get

$scheduledstartHours= $buildPipeline.triggers.schedules.startHours
$scheduledstartMinutes= $buildPipeline.triggers.schedules.startMinutes
$scheduledNumber= $buildPipeline.triggers.schedules.daysToBuild
$scheduledJobId= $buildPipeline.triggers.schedules.scheduleJobId

Write-Host This is start Hours: $scheduledstartHours
Write-Host This is start Minutes: $scheduledstartMinutes
Write-Host This is scheduled Number: $scheduledNumber
Write-Host This is scheduled Job Id: $scheduledJobId

作为测试结果:

注:

  • 何时构建由 buildNnumber 指示,当您 select 更多 比计划中的 1 天,但 MS 不提供比较 table。
  • 当你使用上面的脚本时,你需要去Agent Phase和select Allow Scripts to Access OAuth Token。请参见 使用 OAuth 令牌 访问 REST API

对于发布时间表信息,您可以使用相同的Get a Release Definition

希望这对您有所帮助。