因此,我可以获取构建详细信息,但它不包含有关构建作业的任何信息。例如。每个构建作业都在构建代理上运行 - 如何使用REST API获得此作品?
我们是在谈论vnext构建,而不是xaml。
您可以在时间表记录中找到所有任务和作业:时间表 - 获取。您可以粘贴到浏览器此模板中以检查特定构建的结果:
https://dev.azure.com/{agrompand}/{project}/_apis/build/builds/builds/{buildid}/timeline
我使用microsoft.team -foundationserver.client软件包,这是它的示例:
static void PrintTimeLine(string TeamProjectName, int BuildId)
{
var timeline = BuildClient.GetBuildTimelineAsync(TeamProjectName, BuildId).Result;
if (timeline.Records.Count > 0)
{
Console.WriteLine("Task Name-----------------------------Start Time---Finish Time---Result");
foreach(var record in timeline.Records)
if (record.RecordType == "Task")
Console.WriteLine("{0, -35} | {1, -10} | {2, -10} | {3}",
(record.Name.Length < 35) ? record.Name : record.Name.Substring(0, 35),
(record.StartTime.HasValue) ? record.StartTime.Value.ToLongTimeString() : "",
(record.FinishTime.HasValue) ? record.FinishTime.Value.ToLongTimeString() : "",
(record.Result.HasValue) ? record.Result.Value.ToString() : "");
}
}
https://github.com/ashamrai/tfrestapi/blob/master/19.tfrestapiappquebuild/tfrestapiapp/progm.cs
https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}
将使您知道对象queue
下使用的代理,并在那里显示代理队列(91(编号(91(和池ID(8(
"queue":{
"id":91,
"name":"MotBuild-Default",
"pool":{
"id":8,
"name":"MotBuild-Default"
}
使用
https://dev.azure.com/{org}/_apis/distributedtask/pools/{pool_id}?api-version=5.0-preview.1
或https://dev.azure.com/{org}/{project}/_apis/distributedtask/queues/{queue_id}
将返回池。
因此,现在使用https://dev.azure.com/{org}/_apis/distributedtask/pools/{pool_id}/agents
将返回代理池下的代理列表
现在,我已经解释了所有的东西,让我们尝试将所有内容绑在一起。
1(使用https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}
并找到队列和池ID。
2(使用https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/timeline
并找到类型Job
的记录和属性workerName
,该记录将返回所使用的代理名称。
3(用https://dev.azure.com/{org}/_apis/distributedtask/pools/{pool_id}/agents
查询代理,并通过从上面步骤2中的名称中过滤name
查找代理id
。
4(终于查询https://dev.azure.com/{org}/_apis/distributedtask/pools/{pool_id}/agents/{agent_id}
将返回代理的高级信息,而不是太多信息。
下一个API无证件
5(要获取详细的功能查询https://dev.azure.com/{org}/_apis/distributedtask/pools/{pool_id}/agents/{agent_id}?includeCapabilities=true
,将返回一个巨大的结果集!我认为这就是您想要的。
阅读有关API的更多信息:
- 池
- 队列
- 代理