最终目标-本质上,我要通过Azure DevOps进行的工作是获取团队中每个开发人员的完整故事总点数(这是所有工作项上的一个字段),然后采用该数据并将其与使用Toggl API跟踪的每个工作项上的时间进行比较。
问题-我似乎找不到任何可以通过Azure DevOps REST API做到这一点的东西。实际上,我找不到任何东西可以让我根据指定人员的标准来获取所有工作项,然后我可以将其其余部分随身携带。我什至会把所有工作项目都带走,然后我必须自己进行所有过滤和分组。
我正在尝试通过https://github.com/microsoft/azure-devops-node-api对节点执行此操作,但很高兴在需要客户端库的情况下执行此操作。
这里的任何帮助将不胜感激!
我曾尝试使用Azure DevOps REST API来获取所有工作项,但看不到做到这一点的方法。
答案 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:
获得查询结果后,可以使用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)}
})