【问题标题】:Find changesets based on workitem ID linked根据链接的工作项 ID 查找变更集
【发布时间】:2021-09-18 17:43:53
【问题描述】:
我正在寻找一个 API 端点,它可以让我进入与我作为 API 主体提供的 workItemID 关联的变更集。
即如果我将 workitemID 设为 12,它应该返回与该 workItem 关联/链接的所有变更集。
我的项目在 Azure DevOps 中并使用 TFVC。
【问题讨论】:
标签:
azure
azure-devops
devops
tfvc
【解决方案1】:
您可以使用Get Work Item Rest Api 和expand 参数。然后您可以找到以vstfs:///VersionControl/Changeset/ URL 开头的ArtifactLink。 Powershell 示例:
$user = ""
$token = "<YOUR PAT>"
$teamProject = "<YOUR PROJECT>"
$orgUrl = "<YOUR ORG URL>"
$chUrlTemplate = "vstfs:///VersionControl/Changeset/"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$uriGetWI = "$orgUrl/$teamProject/_apis/wit/workitems/2155?api-version=6.0&`$expand=all" #update id here (2155)
$result = Invoke-RestMethod -Uri $uriGetWI -Method Get -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
foreach ($rel in $result.relations)
{
if ($rel.rel -eq "ArtifactLink" -and $rel.url.StartsWith($chUrlTemplate))
{
$changeSetId = $rel.url.Replace($chUrlTemplate, "");
Write-Host "ChangeSet Id:" $changeSetId
}
}