TFS REST API在分支上获得最新的成功构建

All*_*n.C 3 rest tfs

我正在尝试获取TFS定义的最新版本.但是我获得了所有的sourceBranch值,并且我希望在与TeamCity上相同的查询中进行过滤.这在TFS中是否可行?

我正在使用的查询类似于:

URL /构建?statusFilter =完成&resultFilter =成功&定义= 10 API-版本= 2.0

根据提供的资料https://www.visualstudio.com/en-us/docs/integrate/api/build/builds#get-a-build不能找到一个简单的方法在相同的请求来查询.

有人做过吗?我认为这在TFS中非常基本但很难.

And*_*SFT 7

默认情况下,REST API没有Branch过滤器来获取构建列表.

GET https://{instance}/DefaultCollection/{project}/_apis/build/builds?api-version={version}[&definitions={string}][&queues={string}][&buildNumber={string}][&type={string}][&minFinishTime={DateTime}][&maxFinishTime={DateTime}][&requestedFor={string}][&reasonFilter={string}][&statusFilter={string}][&tagFilters={string}][&propertyFilters={string}][&$top={int}][&continuationToken={string}]
Run Code Online (Sandbox Code Playgroud)

如果要查询特定分支上的构建,请直接使用REST API ,您可以使用其他过滤器,例如tagFilters,这意味着您可以为在特定分支上排队的构建创建标记.

另一种解决方法是使用第三个工具过滤分支,例如PowerShell.

您可以使用以下PowerShell脚本过滤掉特定分支上的构建(第一个构建应该是最新的构建):

$baseUrl = "http://server:8080/tfs/CollectionLC/0418Scrum/_apis/build/builds?api-version=2.0&statusFilter=completed&resultFilter=succeeded&definitions=57"  # Filter added.         
$builds = (Invoke-RestMethod -Uri $baseUrl -Method Get -UseDefaultCredential).value|where({$_.sourceBranch -eq '$/0418Scrum/web0418'}) # filter branch, just change '$/0418Scrum/web0418' to your branch.

$BuildResults = @()

foreach($build in $builds){

    $customObject = new-object PSObject -property @{
          "BuildDefinition" = $build.definition.name
          "BuildId" = $build.id
          "BuildNumber" = $build.buildNumber
          "status" = $build.status
          "result" = $build.result
          "finishTime" = $build.finishTime
          "sourceBranch" = $build.sourceBranch
        } 

    $BuildResults += $customObject      
}

$BuildResults | Select `
                BuildDefinition,
                BuildId, 
                BuildNumber, 
                status,
                result,
                finishTime,
                sourceBranch
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述