Azure DevOps Server 2020.1.1 API - 如何获取包含它 运行 上的代理的构建
Azure DevOps Server 2020.1.1 API - How to get a build including the agent it ran on
我正在使用 nuget 包 Microsoft.TeamFoundationServer.Client
的 BuildHttpClient
实例来获取我的构建。不幸的是,Build
类型的获取对象不包括用于 运行 构建的代理的名称或 ID。
属性 Queue
仅包含有关已使用队列的信息,但不包含有关特定代理的信息。还有一个属性AgentSpecification
,不过这个好像一直是空的
我或许可以解析构建的附加日志,但这会非常麻烦。
是的,这是一个问题。但是,作为解决方法,您可以尝试从日志中提取该信息。小例子:
var logs = BuildClient.GetBuildLogsAsync(TeamProjectName, buildId).Result;
foreach(var log in logs)
{
var lines = BuildClient.GetBuildLogLinesAsync(TeamProjectName, buildId, log.Id).Result;
foreach (var line in lines)
if (line.Contains("Agent")) Console.WriteLine(line);
}
结果:
我正在使用 nuget 包 Microsoft.TeamFoundationServer.Client
的 BuildHttpClient
实例来获取我的构建。不幸的是,Build
类型的获取对象不包括用于 运行 构建的代理的名称或 ID。
属性 Queue
仅包含有关已使用队列的信息,但不包含有关特定代理的信息。还有一个属性AgentSpecification
,不过这个好像一直是空的
我或许可以解析构建的附加日志,但这会非常麻烦。
是的,这是一个问题。但是,作为解决方法,您可以尝试从日志中提取该信息。小例子:
var logs = BuildClient.GetBuildLogsAsync(TeamProjectName, buildId).Result;
foreach(var log in logs)
{
var lines = BuildClient.GetBuildLogLinesAsync(TeamProjectName, buildId, log.Id).Result;
foreach (var line in lines)
if (line.Contains("Agent")) Console.WriteLine(line);
}
结果: