如何从自定义生成任务创建VSTS工作项?

时间:2016-09-16 05:17:18

标签: typescript tfs azure-devops azure-pipelines azure-pipelines-build-task

我需要在VSTS扩展中从自定义构建任务创建VSTS工作项,是否有Microsoft提供的API包装器?对此最好的方法是什么?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以在打字稿中使用VSTS Node API来实现所需的功能。您需要的方法是createWorkItem()

答案 1 :(得分:0)

目前,TFS中没有此内置功能或构建任务。

然而,使用TFS REST API就像在 powershell脚本中提出的ds19建议一样。您可能不必创建自己的所有者扩展程序。

REST 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