我有一个powershell脚本作为我的VSTS构建定义的一部分。在这里,我可以访问触发构建的分支名称。
每个分支属于相关的工作项(通过工作项的“创建新分支”链接完成)。
问题:如何在我的脚本中获取工作项ID?
我认为一个地方可能是WIQL但无法找到与工作项分支对应的字段名称(如果有的话): https://docs.microsoft.com/en-us/vsts/work/work-items/guidance/work-item-field
编辑1 :根据@starian chen-MSFT的回答
当我运行以下动态查询时:
$body = @{query = "Select [System.Id], [System.AssignedTo] From WorkItemLinks WHERE Source.[System.TeamProject] = 'MyProj' and (Source.[System.State] = 'New' OR Source.[System.State] = 'Active') and Source.[System.ExternalLinkCount] > 0"}
在uri:
$uri = "https://MyAccount.visualstudio.com/DefaultCollection/_apis/wit/wiql?api-version=1.0"
我在返回的回复中得到以下内容:
"workItemRelations": [
{
"rel": null,
"source": null,
"target": "@{id=11; url=https://MyProj.visualstudio.com/DefaultCollection/_apis/wit/workItems/11}"
},
{
"rel": "System.LinkTypes.Hierarchy-Forward",
"source": "@{id=11; url=https://MyProj.visualstudio.com/DefaultCollection/_apis/wit/workItems/11}",
"target": "@{id=3; url=https://MyProj.visualstudio.com/DefaultCollection/_apis/wit/workItems/3}"
}
]
问题:只有ID为11的工作项才有外部链接,因此不知道如何阻止Hierarchy-Forward
条目进入。
另外,如何在那里获得AssignedTo
值?它似乎没有出现在回复中。
答案 0 :(得分:1)
您无法直接通过查询获取带分支名称的工作项。
您可以使用该分支名称添加标记,然后很容易获得具有分支名称的工作项。
另一种方式是:
External Link Count >= 1
)更新
获取分支名称的简单代码:
$branchUrl="vstfs:///Git/Ref/b8ee4b6d-d5a8-4e3d-a7f8-f2da9713a830%2Fed10a5f5-f558-4dc2-bce9-dee7bfe617b0%2FGBworkitembranch"
$branchName=$branchUrl.Split("%2F")[-1]
$branchName=$branchName.Substring(2,$branchName.Length-2)