如何从自定义构建任务创建 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().