2017-06-18 9 views
1

私はTFSで多くのビルド定義を持っていますが、MMD_プロジェクトで記述された無効なビルド定義のみを取得しようとしています。Team Foundation Server特定のプロジェクトでビルド定義を無効にする方法

$baseUrl = "https://tfs.myTFS.net/tfs" 
 
$targetCollection = "DefaultCollection" 
 
$targetProject = "MMD" 
 
# Get an overview of all build definitions in this team project 
 
$definitionsOverviewUrl = "$baseUrl/$targetCollection/$targetProject/_apis/build/Definitions" 
 
$definitionsOverviewResponse = Invoke-WebRequest -UseDefaultCredentials -Uri $definitionsOverviewUrl 
 
$definitionsOverview = (ConvertFrom-Json $definitionsOverviewResponse.Content).value 
 
# Process all builds that have MMD in their name and want only disabled build def seperated from MMD_ 
 
foreach($definitionEntry in ($definitionsOverview | Where-Object { $_.name -like '*MMD_*' })) 
 
{ 
 
    $definitionUrl = $definitionEntry.url 
 
    $response = Invoke-WebRequest $buildDefinitionUrl -UseDefaultCredentials 
 
    $buildDefinition = [Newtonsoft.Json.JsonConvert]::DeserializeObject($response.Content) 
 
#check whether source settings are null or not 
 
\t if(!$buildDefinition.enabled) 
 
    { 
 
     Write-Output $definitionsOverview + 'build definition is disabled' 
 
\t \t # I need process parameter is 
 
    } 
 
}

+0

ifループで問題が発生した場合、$ buildDefinition.enabledにあるものは何かもっと複雑になっていますか? – himanshuk

+0

それはちょうどタイプミスかもしれませんか? $ definitionUrlを使用して定義しましたが、$ buildDefinitionUrlパラメータを呼び出して呼び出しましたか? – Curios

答えて

0

私はあなたが定義オプションを構築無効ので、XAMLビルド定義を照会しようとしていることを前提とXAMLのビルドシステムでのみ使用可能です。 API 2.0は新しいvNextビルドシステムのため、Build API 1.0を使用していることを確認してください。したがって、$definitionsOverviewUrlには、?api-version=1.0を追加してください。

ビルド定義が無効または一時停止の場合、ビルド定義ステータスは "queueStatus"プロパティに保存されます。ビルド定義が有効な場合、 "queueStatus"プロパティはありません。したがって、それに応じてコードを更新する必要があります。 enter image description here

+0

私はapi2.0を使用していますが、依然として出力が得られていません。 – himanshuk

+0

@himanshuk XMALビルドをクエリするにはAPI1.0を使用する必要があります。 –

+0

使用方法、2.0から始まったのは – himanshuk

関連する問題