Azure devops Azure DevOps服务器对象Api按更改id获取构建

Azure devops Azure DevOps服务器对象Api按更改id获取构建,azure-devops,azure-devops-rest-api,Azure Devops,Azure Devops Rest Api,使用Azure管道对象API,可以获得构建 BuildHttpClient.GetBuildsAsync(params) 现在我可以获得构建的更改,因为我需要通过特定的更改id(提交哈希)过滤构建 有没有办法在一次查询中通过具有特定更改id的API获取版本?您可以从BuildHttpClient.GetBuildsAsync获取sourceVersion和id,并直接过滤sourceVersionsourceVersion是变更集ID/CommitId。例如: string _

使用Azure管道对象API,可以获得构建

BuildHttpClient.GetBuildsAsync(params)
现在我可以获得构建的更改,因为我需要通过特定的更改id(提交哈希)过滤构建


有没有办法在一次查询中通过具有特定更改id的API获取版本?

您可以从
BuildHttpClient.GetBuildsAsync
获取
sourceVersion
id
,并直接过滤
sourceVersion
sourceVersion
是变更集ID/CommitId。例如:

        string _personalAccessToken = "xxxxxxxxx";
        VssBasicCredential credentials = new VssBasicCredential("", _personalAccessToken);
        var connection = new VssConnection(new Uri(@"https://dev.azure.com/xxxx"), credentials);
        var buildServer = connection.GetClient<BuildHttpClient>();
        var builds = buildServer.GetBuildsAsync($"teamprojectname").Result;

        foreach (var build in builds)
        {
            if (build.SourceVersion == "commitID")
            {
                Console.WriteLine(build.Id);
            }
        }
string\u personalAccessToken=“xxxxxxxxx”;
VssBasicCredential凭证=新的VssBasicCredential(“,_personalAccessToken”);
var连接=新VssConnection(新Uri(@)https://dev.azure.com/xxxx(a)全权证书;
var buildServer=connection.GetClient();
var builds=buildServer.GetBuildsAsync($“teamprojectname”).Result;
foreach(var内置版本)
{
if(build.SourceVersion==“commitID”)
{
Console.WriteLine(build.Id);
}
}

您可以从
BuildHttpClient.GetBuildsAsync
获取
sourceVersion
id
,并直接过滤
sourceVersion
sourceVersion
是变更集ID/CommitId。例如:

        string _personalAccessToken = "xxxxxxxxx";
        VssBasicCredential credentials = new VssBasicCredential("", _personalAccessToken);
        var connection = new VssConnection(new Uri(@"https://dev.azure.com/xxxx"), credentials);
        var buildServer = connection.GetClient<BuildHttpClient>();
        var builds = buildServer.GetBuildsAsync($"teamprojectname").Result;

        foreach (var build in builds)
        {
            if (build.SourceVersion == "commitID")
            {
                Console.WriteLine(build.Id);
            }
        }
string\u personalAccessToken=“xxxxxxxxx”;
VssBasicCredential凭证=新的VssBasicCredential(“,_personalAccessToken”);
var连接=新VssConnection(新Uri(@)https://dev.azure.com/xxxx(a)全权证书;
var buildServer=connection.GetClient();
var builds=buildServer.GetBuildsAsync($“teamprojectname”).Result;
foreach(var内置版本)
{
if(build.SourceVersion==“commitID”)
{
Console.WriteLine(build.Id);
}
}

这不符合我们的要求。如果我们有多个提交,这将不再有效。为此,构建的变更集包含具有任何提交id的任何变更,这正是我们需要的。另一点是,如果我们在GetBuildsAsync参数上有一个top集合,那么这将是一个额外的筛选器,并且不会返回所需的生成数。。。因此,我们需要加载更多的构建,直到达到顶部,这很糟糕。如果是这种情况,恐怕您必须像以前一样循环更改。没有默认的方式使用api通过变更id获取构建。这对于我们的需求来说是不可靠的。如果我们有多个提交,这将不再有效。为此,构建的变更集包含具有任何提交id的任何变更,这正是我们需要的。另一点是,如果我们在GetBuildsAsync参数上有一个top集合,那么这将是一个额外的筛选器,并且不会返回所需的生成数。。。因此,我们需要加载更多的构建,直到达到顶部,这很糟糕。如果是这种情况,恐怕您必须像以前一样循环更改。没有默认的方法使用api通过更改id获取构建。