我正在尝试创建一个查询,该查询向我提供最近两天内已更新的所有用户故事,这在使用WorkItem Batch Query的项目中应该是非常基本的。 https:// [TENNANT] .analytics.visualstudio.com / [PROJECT] /_odata/v1.0/WorkItems 我将需要更新一些设置了某些标准集的用户故事(现在无法使用DevOps中的规则进行估算的计算)
我的挑战是我们有200个项目,而我需要获得所有这些项目中最新更改的用户故事。所以我目前的解决方案如下:
所有查询将运行大约11分钟,然后由于Azure DevOps REST Api上的限制阈值而失败。
有没有一种方法可以查询租户中所有项目中的用户故事,或者查询自那时以来已更改用户故事的项目? 项目的LastChanged与底层元素无关,但与项目元数据有关。
很高兴能找到所有解决方案的提示:)
答案 0 :(得分:1)
有没有一种方法可以查询我们所有项目中的用户故事? 租户,还是查询自此以来用户故事已更改的项目?
您可以尝试Azure Devops Rest Api Query By Wiql,以便可以通过WIQL syntax自定义逻辑。
在特定项目中返回User Stories which have been changed within the last two days
的简单请求:
Post https://dev.azure.com/{OrgName}/_apis/wit/wiql?api-version=6.1-preview.2
如果要查询组织内的所有项目,请请求正文:
{
"query": "Select [System.Id] From WorkItems WHERE [System.WorkItemType]='User Story' AND [System.ChangedDate] >= @today-2 ORDER BY [System.ChangedDate] DESC"
}
请求正文,如果您要查询组织内的特定项目:
{
"query": "Select [System.Id] From WorkItems WHERE [System.WorkItemType]='User Story' AND [System.ChangedDate] >= @today-2 And ([System.TeamProject] = 'ProjectName1' OR [System.TeamProject] ='ProjectName2') ORDER BY [System.ChangedDate] DESC"
}
答案 1 :(得分:0)
作为第一个问题的跟进。我可以从所有项目中获得Wit-ID的列表,但无法从其他字段中获得值。
查询:
{
"query": "Select [System.Id], [System.Title] From WorkItems WHERE [System.WorkItemType]='User Story' AND [System.ChangedDate] >= @today ORDER BY [System.ChangedDate] DESC"
}
响应:
{
"queryType": "flat",
"queryResultType": "workItem",
"asOf": "2020-10-12T13:21:32.76Z",
"columns": [
{
"referenceName": "System.Id",
"name": "ID",
"url": "https://dev.azure.com/[organization]/_apis/wit/fields/System.Id"
},
{
"referenceName": "System.Title",
"name": "Title",
"url": "https://dev.azure.com/[organization]/_apis/wit/fields/System.Title"
}
],
"sortColumns": [
{
"field": {
"referenceName": "System.ChangedDate",
"name": "Changed Date",
"url": "https://dev.azure.com/[organization]/_apis/wit/fields/System.ChangedDate"
},
"descending": true
}
],
"workItems": [
{
"id": 19548,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19548"
},
{
"id": 19551,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19551"
},
{
"id": 13786,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/13786"
},
{
"id": 19299,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19299"
},
{
"id": 10805,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/10805"
},
{
"id": 19346,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19346"
},
{
"id": 19347,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19347"
},
{
"id": 19348,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19348"
},
{
"id": 19349,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19349"
},
{
"id": 19546,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19546"
},
{
"id": 19340,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19340"
},
{
"id": 19341,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19341"
},
{
"id": 19342,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19342"
},
{
"id": 19345,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19345"
},
{
"id": 17226,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/17226"
},
{
"id": 19006,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19006"
},
{
"id": 19544,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19544"
},
{
"id": 7412,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/7412"
},
{
"id": 19540,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/19540"
},
{
"id": 18352,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/18352"
},
{
"id": 11609,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/11609"
},
{
"id": 11636,
"url": "https://dev.azure.com/[organization]/_apis/wit/workItems/11636"
}
]
}
System.Title不是答复的一部分,由于请求URL中的项目要求,并且这些项目涉及多个项目,因此我无法使用标准的WIT批处理查询。
是否有办法从WiQL查询中获取比ID字段更多的信息?我已经尝试了所有想法,但是无法找到一种方法来查询我从每个工作项中获得的更多字段,作为对第一次查询的响应。
我这里缺少什么吗?