【问题标题】:Query for lastChanged Work Items across several projects跨多个项目查询 lastChanged 工作项
【发布时间】:2020-10-12 21:43:13
【问题描述】:

我正在尝试创建查询,以提供过去两天内已更新的所有用户故事,这在使用 WorkItem Batch Query 的项目中应该是非常基本的。 https://[TENNANT].analytics.visualstudio.com/[PROJECT]/_odata/v1.0/WorkItems 我需要对一些设置了特定标准的用户故事进行更新(我无法像现在一样使用 DevOps 中的规则进行估计计算)

我的挑战是我们有 200 个项目,我需要获取所有这些项目中最后更改的用户故事。所以我目前的解决方案如下:

  1. 查询分页数为 100 的项目(现在是 3 个查询)
  2. 查询用户故事,分页数为 200(现在是 207 个查询)
  3. 遍历所有用户故事并根据需要更新计算(平均每天大约 20 个)

总而言之,查询将运行大约 11 分钟,然后由于 Azure DevOps REST Api 上的限制阈值而失败。

有没有一种方法可以查询租户中所有项目的用户故事,或者查询此后用户故事发生变化的项目? 项目的 LastChanged 与底层元素无关,而是与项目元数据相关。

希望找到解决此问题的每一个提示:)

【问题讨论】:

  • 是不是简单的查询(不是分析)不好?

标签: azure-devops azure-devops-rest-api


【解决方案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"
}

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 2022-12-01
    相关资源
    最近更新 更多