如何从自定义构建任务创建 VSTS 工作项?
How to create VSTS Work Items from custom build task?
我需要从 VSTS 扩展中的自定义构建任务创建 VSTS 工作项,Microsoft 是否为此提供了 API 包装器?最好的方法应该是什么?
提前致谢。
目前,TFS 中没有此内置功能或构建任务。
但是,正如 ds19 在 powershell 脚本 中建议的那样,使用 TFS REST API 就可以了。您可能不必创建您的所有者扩展。
休息 API:Create a work item
PATCH https://{instance}/DefaultCollection/{project}/_apis/wit/workitems/${workItemTypeName}?api-version={version}
下面是示例代码:
Try
{
$WorkItemAssociatedURL = $collectionURL + $project + “/_apis/build/builds/” + $BuildId + “/workitems?api-version=2.0”
$ResponseJSON = Invoke-RestMethod -Uri $WorkItemAssociatedURL -ContentType “application/json” -headers $headers -Method GET
$CountWorkitems = $ResponseJSON.count
$WorkitemUrlArray = $ResponseJSON.value
for($i = 0; $i -lt $CountWorkitems ; $i++)
{
$body =
‘[
{
“op”: “add”,
“path”: “/fields/Microsoft.VSTS.Build.IntegrationBuild”,
“value”:’ + $BuildNumber +’
}
]’
$WorkitemUpdateURL = $WorkitemUrlArray[$i].url + “?api-version=1.0”
Invoke-RestMethod -Uri $WorkitemUpdateURL -Body $body -ContentType “application/json-patch+json” -headers $headers -Method Patch
}
}
Catch
{
Write-Host “No work item associated with this build. Kindly check the changesets”
}
更详细的步骤和信息可以参考这篇博客Build association with work Items in vNext
您可以使用 VSTS Node API in your typescript to achieve the feature you want. The method you need will be createWorkItem().
我需要从 VSTS 扩展中的自定义构建任务创建 VSTS 工作项,Microsoft 是否为此提供了 API 包装器?最好的方法应该是什么?
提前致谢。
目前,TFS 中没有此内置功能或构建任务。
但是,正如 ds19 在 powershell 脚本 中建议的那样,使用 TFS REST API 就可以了。您可能不必创建您的所有者扩展。
休息 API:Create a work item
PATCH https://{instance}/DefaultCollection/{project}/_apis/wit/workitems/${workItemTypeName}?api-version={version}
下面是示例代码:
Try
{
$WorkItemAssociatedURL = $collectionURL + $project + “/_apis/build/builds/” + $BuildId + “/workitems?api-version=2.0”
$ResponseJSON = Invoke-RestMethod -Uri $WorkItemAssociatedURL -ContentType “application/json” -headers $headers -Method GET
$CountWorkitems = $ResponseJSON.count
$WorkitemUrlArray = $ResponseJSON.value
for($i = 0; $i -lt $CountWorkitems ; $i++)
{
$body =
‘[
{
“op”: “add”,
“path”: “/fields/Microsoft.VSTS.Build.IntegrationBuild”,
“value”:’ + $BuildNumber +’
}
]’
$WorkitemUpdateURL = $WorkitemUrlArray[$i].url + “?api-version=1.0”
Invoke-RestMethod -Uri $WorkitemUpdateURL -Body $body -ContentType “application/json-patch+json” -headers $headers -Method Patch
}
}
Catch
{
Write-Host “No work item associated with this build. Kindly check the changesets”
}
更详细的步骤和信息可以参考这篇博客Build association with work Items in vNext
您可以使用 VSTS Node API in your typescript to achieve the feature you want. The method you need will be createWorkItem().