如何通过 PowerShell 获取专用变更集编号的分支名称

问题描述 投票:0回答:1

我正在尝试获取特定变更集的分支名称,但此信息不存在。 我正在用这个:

GET https://dev.azure.com/fabrikam/_apis/tfvc/changesets/16?api-version=7.1

https://learn.microsoft.com/en-us/rest/api/azure/devops/tfvc/changesets/get?view=azure-devops-rest-7.1&tabs=HTTP

有办法获得分支吗?

powershell azure-devops tfs tfvc
1个回答
0
投票

恐怕没有现成的方法可以通过单个 Rest API 直接获取变更集的分支名称。

有办法获得分支吗?

是的。我们可以使用 PowerShell 脚本来运行 Rest API:Changesets - Get Changeset ChangesBranches - Get Branches。然后我们可以比较变更路径和 TFVC 分支路径来确定变更集位于哪个分支。

这是 PowerShell 示例:

$token = "PAT"

$ChangesetID = ChangesetID

$OrgName= "OrganizationName"

$ProjName= "ProjectName"

$GetChangesetURL="https://dev.azure.com/$($OrgName)/_apis/tfvc/changesets/$($ChangesetID)/changes?api-version=7.1"

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))

$GetChangesets= Invoke-RestMethod -Uri $GetChangesetURL -Headers @{Authorization = "Basic $token"} -Method Get  -ContentType application/json

foreach($Changeset in $GetChangesets.value)
{
   $ChangePath = $Changeset.item.path
   echo $ChangePath
   $GetBranchURL="https://dev.azure.com/$($OrgName)/$($ProjName)/_apis/tfvc/branches?api-version=7.1"
   $GetBranches= Invoke-RestMethod -Uri $GetBranchURL -Headers @{Authorization = "Basic $token"} -Method Get  -ContentType application/json
   foreach($Branch in $GetBranches.value)
   {
     $BranchPath= $Branch.path
     if($ChangePath.Contains($BranchPath))
     {
       echo "$ChangesetID belong to Branch: $BranchPath"
     }
   }


}

结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.