Azure devops 如何使用REST API获取计划的生成\发布数据

Azure devops 如何使用REST API获取计划的生成\发布数据,azure-devops,azure-pipelines,schedule,Azure Devops,Azure Pipelines,Schedule,希望获得下一个预期的构建/发布,并使用API获取信息,然后将其投影到某种形式的仪表板(带有收集的信息),而不是从Azure DevOps>Pipelines>Builds选项中进行检查 调度程序已为生成和发布管道启用,并且正在成功触发。我能够使用RESTAPI收集构建/发布信息,但是我可以获得已处理/完成的构建/发布的信息 根据需求,我只想获得下一个计划的构建/发布详细信息(关于它们的任何信息都可以),因为我已经为它们启用了调度器 如果调度器只是帮助触发管道,那么有没有任何方法可以通过编程方式检

希望获得下一个预期的构建/发布,并使用API获取信息,然后将其投影到某种形式的仪表板(带有收集的信息),而不是从Azure DevOps>Pipelines>Builds选项中进行检查

调度程序已为生成和发布管道启用,并且正在成功触发。我能够使用RESTAPI收集构建/发布信息,但是我可以获得已处理/完成的构建/发布的信息

根据需求,我只想获得下一个计划的构建/发布详细信息(关于它们的任何信息都可以),因为我已经为它们启用了调度器

如果调度器只是帮助触发管道,那么有没有任何方法可以通过编程方式检索该信息

如何使用REST API获取计划的生成\发布数据

您可以使用Rest API获取构建计划信息:

GET https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}?api-version=5.1
$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
例如,我使用以下Powershell脚本获取构建计划信息:

GET https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}?api-version=5.1
$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
$url=”https://dev.azure.com///_apis/build/definitions/55?api-版本=5.1“
$buildPipeline=Invoke RestMethod-Uri$url-Headers@{
Authorization=“Bearer$env:SYSTEM\u ACCESSTOKEN”
}-方法获取
$ScheduledTaskours=$buildPipeline.triggers.schedules.startHours
$scheduledstartMinutes=$buildPipeline.triggers.schedules.startMinutes
$scheduledNumber=$buildPipeline.triggers.schedules.daysToBuild
$scheduledJobId=$buildPipeline.triggers.schedules.scheduleJobId
写主机这是开始时间:$scheduledstartHours
写入主机这是开始分钟:$scheduledstartMinutes
写入主机这是计划编号:$scheduledNumber
写入主机这是计划作业Id:$scheduledJobId
作为测试结果:

注:

  • 选择“更多”时,何时生成由buildNnumber指示 计划中的天数超过1天,但MS未提供对比表
  • 使用上述脚本时,需要转到
    代理阶段
    并选择
    允许脚本访问OAuth令牌
    。看
对于发布计划信息,您可以使用相同的


希望这有帮助。

@praveenkrish,我们可以在触发此构建之前获得此信息!因为这些信息来自定义设置而不是构建,所以,您只需要设置计划,然后就可以获得这些信息。顺便说一句,以上测试结果是在构建触发之前获得的。谢谢你的建议。还有,在这个构建被触发之前,我们是否可以以主动的方式获取这些信息?或者在计划的生成运行后,此信息将立即可用?我只想得到即将到来的构建细节。这是可以实现的吗?请告诉我你的建议。谢谢