获取每个用户的工作项字段的总计统计信息

时间:2019-05-09 02:07:03

标签: azure azure-devops devops

最终目标-本质上,我要通过Azure DevOps进行的工作是获取团队中每个开发人员的完整故事总点数(这是所有工作项上的一个字段),然后采用该数据并将其与使用Toggl API跟踪的每个工作项上的时间进行比较。

问题-我似乎找不到任何可以通过Azure DevOps REST API做到这一点的东西。实际上,我找不到任何东西可以让我根据指定人员的标准来获取所有工作项,然后我可以将其其余部分随身携带。我什至会把所有工作项目都带走,然后我必须自己进行所有过滤和分组。

我正在尝试通过https://github.com/microsoft/azure-devops-node-api对节点执行此操作,但很高兴在需要客户端库的情况下执行此操作。

这里的任何帮助将不胜感激!

我曾尝试使用Azure DevOps REST API来获取所有工作项,但看不到做到这一点的方法。

1 个答案:

答案 0 :(得分:0)

您可以使用Azure DevOps Rest API从查询中获取工作项,API为Wiql - Query By Id

GET https://dev.azure.com/{organization}/{project}/_apis/wit/wiql/{id}?api-version=5.0

为此,您需要查询ID,因此创建一个查询,该查询返回分配给用户的项目,保存查询,现在您可以在url中看到该ID:

enter image description here

获得查询结果后,可以使用Work Items - Get Work Item Api迭代工作项并获取工作项详细信息(所有字段值):

GET https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?api-version=5.0

这是Rest API,因此您可以在所需的语言(Java,C#,Node.js,PowerShell等)中进行操作。

使用PowerShell的小示例:

$user = ""
$token = "YOUR-PAT-HERE"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$url = "https://dev.azure.com/{organization}/{project}/_apis/wit/wiql/{queryId}?api-version=5.0"
$query = Invoke-RestMethod -Uri $url -Method Get -ContentType application/json -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$query.workItems.ForEach({

  $wiUrl = "https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/$($_.id)?api-version=5.0"
  $workItem = Invoke-RestMethod -Uri $wiUrl -Method Get -ContentType application/json -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

})