我正在尝试获取特定变更集的分支名称,但此信息不存在。 我正在用这个:
GET https://dev.azure.com/fabrikam/_apis/tfvc/changesets/16?api-version=7.1
有办法获得分支吗?
恐怕没有现成的方法可以通过单个 Rest API 直接获取变更集的分支名称。
有办法获得分支吗?
是的。我们可以使用 PowerShell 脚本来运行 Rest API:Changesets - Get Changeset Changes 和 Branches - 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"
}
}
}
结果: