2017-09-07 7 views
0

私はTFS定義の最新ビルドを取得しようとしています。 しかし、私はすべてのsourceBranchの値を得て、私はTeamCityで行ったのと同じクエリでフィルタリングしたいと思います。 これはTFSで可能かどうか?TFS REST API最新のブランチビルドを成功

私が使用しているクエリは次のようになります。

URL /ビルドをstatusFilter =完成& resultFilter =ドキュメントが用意よる&定義= 10 & APIバージョン= 2.0

を成功https://www.visualstudio.com/en-us/docs/integrate/api/build/builds#get-a-build見つけることができません?同じリクエストで簡単にクエリを実行できます。

誰も以前に行ったことはありますか?私はかなり基本的だがTFSでは難しいと思う。

答えて

1

デフォルトでは、REST APIのブランチフィルタはGet a list of buildsにはありません。あなたが特定のブランチにキューイングされたビルドにタグを作成することができることを意味し

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}] 

あなたは直接RESTのAPI を使用する特定のブランチ上でのビルドを照会したい場合は、他のフィルタを使用することができ、例えばtagFilters、 。

もう1つの回避策は、PowerShellなどの3番目のツールでブランチをフィルタすることです。

あなたは(最初のビルドが最新のものでなければなりません)特定のブランチ上に構築をフィルタリングするための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 

enter image description here

+0

おかげで、最後に私は非常にアプローチを使用あなたがPowershellを使って提案したものに似ています。 –

関連する問題