Get all work items from a project azure devops REST API

自作多情 提交于 2021-01-28 04:34:59

问题


I'm using Azure devops API to create a notification bot with AWS Lambda node.js. At this moment i need to check if each task work item is attached to a parent user story.

The first step will be to get all the task work items on "given" project, for this step i was reading azure devops api documentation and found this: Work Items - List

The API is asking for the id of the workitem that i want to get, but what if i need all the workitems from "given" project?

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

Or is there any other way to get all the workitem ids from a given project?


回答1:


You can use Work Items - Get Work Items Batch API that doesn't require ids but the maximum work items in the results are 200.

But, if you need to check Tasks, why you need get all the work items in the project? you can get only the Tasks, with Wiql - Query By Wiql API:

POST https://dev.azure.com/{organization}/{project}/{team}/_apis/wit/wiql?api-version=5.1

In the body make the query:

{
  "query": "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.WorkItemType] = 'Task'"
}



回答2:


Furthering Shayki's response regarding using a WIQL query, I'd suggest that you can have two birds with one stone here by doing a work item links query that looks for Tasks without a parent User Story:

POST https://dev.azure.com/{organization}/{project}/{team}/_apis/wit/wiql?api-version=5.1

request payload:

{
  "query": "SELECT [System.Id] FROM workitemLinks WHERE ([Source].[System.WorkItemType] = 'Task') AND ([System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Reverse') AND ([Target].[System.WorkItemType] = 'User Story') MODE (DoesNotContain)"
}

This way, you won't have to loop through each work item to then check if it has a parent.

Note: the WIQL query limits the results returned to 20K and returns an error if the query results in more work items than that. Further reason to use a query like the above, if applicable.



来源:https://stackoverflow.com/questions/63021168/get-all-work-items-from-a-project-azure-devops-rest-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!