过滤掉私有构建

Filter out Private Builds

我们正在将我们的 Xaml 构建从 TFS 2010 升级到 TFS 2015 中的 vNext 构建定义。作为此过程的一部分,我们有几个监控构建的进程。这些过程会过滤掉私有构建(即那些 运行 针对搁置集而不提交成功更改的构建)。

在新定义中,我很难弄清楚如何识别这些类型的构建。当我查看构建中的 Reason 时,它设置为 Manual,而不是(如我所料)ValidateShelveset.

从 REST api 识别这些私有构建的最佳方法是什么?

对于 Vnext 构建,带有搁置集的队列构建不会被识别为私有构建。构建原因是 "Manual".

根据我的测试,sourcebranch 与其他手动或 BatchedCI 构建不同,因此要根据搁置集识别构建,我们可以检查“sourceBranch”。

使用REST API查看构建细节(属性):eg

GET http://server:8080/tfs/CollectionLC/TFVC-ScrumSample/_apis/build/builds/1027?api-version=2.0 

您可以使用下面的示例代码获取构建,然后检查 sourceBranch 以确定搁置集构建:

using System;
using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.VisualStudio.Services.Client;

namespace GetBuilds
{
    class Program
    {
        static void Main(string[] args)
        {
            var tfsUrl = " http://server:8080/tfs/Collection";
            var buildClient = new BuildHttpClient(new Uri(tfsUrl), new VssAadCredential());
            var builds = buildClient.GetBuildsAsync("YourProjectName");

            foreach (var build in builds.Result)

            {
                Console.WriteLine(String.Format("{0} - {1} - {2} - {3}", build.Definition.Name, build.Id.ToString(), build.Status.ToString(), build.SourceBranch.ToString()));
            }
        }
    }
}

对于其他“Private”build,您也可以查看build属性,找出与其他build的不同,然后相应地获取它们。