簡體   English   中英

通過 powershell 使用 REST API 添加 TFS 標簽

[英]Add TFS Tag with REST API via powershell

我想使用 Powershell 中的 REST API 向 TFS 項目添加標簽。

我正在嘗試根據Visual Studio 集成文檔提出此請求

我稱之為:

[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Client')
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.WorkItemTracking.Client')

if ( (Get-PSSnapin -Name "Microsoft.TeamFoundation.Powershell" -ErrorAction                  SilentlyContinue) -eq $null )
{
Add-PSSnapin "Microsoft.TeamFoundation.Powershell"
}
$SrcCollectionUrl = 'http://tfs.myCompany.com:8080/tfs/MyCollection' 
$SrcProjectName = 'myProject' 
[psobject] $tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($SrcCollectionUrl)
[Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStoreFlags]$WorkItemBypass =      [Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStoreFlags]::BypassRules

$tfstp = New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection($SrcCollectionUrl)
$WorkItemStore = New-Object -TypeName 'Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore' -ArgumentList $tfs.TfsTeamProjectCollection, $WorkItemBypass

$SrcProject = $WorkItemStore.Projects[$SrcProjectName]
$ProjectGuid = Split-Path $SrcProject.Uri -Leaf

$AddTagsUrl = '{0}/_apis/tagging/scopes/{1}/tags?api-version=1.0' -f $SrcCollectionUrl,$ProjectGuid

$newTagParams = @{name="PWCreateTag2"}
$outjson = $newTagParams | ConvertTo-Json
$nresp = Invoke-RestMethod -Method POST -Uri $AddTagsUrl -UseDefaultCredentials  -Body $outjson -ContentType 'application/json'

一切正常。 第一次。 但是文檔指出:“如果該名稱的標簽已存在,則不會創建標簽。相反,響應正文包含具有該名稱的現有標簽。”

我第二次撥打電話時得到:“遠程服務器返回錯誤:(400) 錯誤請求。”

任何人都知道為什么第二次失敗?

僅供參考:TFS 服務器是 2015,Powershell 是 V4

我為此創建了 powershell 模塊 - tfs

添加標簽:

'tag1','tag2' | % { Add-TFSBuildTag -Id 520 -Tag $_ }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM