如何使用 Web API 在 Rally 中按活动项目过滤缺陷搜索

how to filter Defect search by active projects in Rally using Web API

我构建了一个自定义搜索工具,允许通过 Web API 从其他应用程序搜索 Rally,但我 运行 遇到了问题。现在我允许搜索缺陷,但我注意到缺陷又出现在与已关闭项目相关的搜索结果中。我需要过滤掉这些。我想知道是否有一种方法可以在查询另一个对象时访问引用对象的属性,例如,如果我有一个查询来搜索名称包含一些文本的缺陷,例如 https://rally1.rallydev.com/slm/webservice/v2.0/defect?query=(Name 包含 "keyword"),我可以在该查询中包含一些内容来说明我只需要打开项目的缺陷,方法是使用 Defect 上的 Project 属性,例如 Project.State 等于 "Open"。基本上我想知道是否有一种方法可以在一个 OData-ish 格式的查询中执行此操作。或者作为替代方案,如果我单独查询所有打开项目的列表,我可以向查询添加条件以说类似 (Name contains "keyword") AND (ProjectId = ... OR ProjectId OR ... )?非常感谢任何想法或建议。

缺陷(或任何其他工作项类型)的查询预计不会 return 来自已关闭项目的项目。 WS API 查询不搜索已关闭的项目。

  • 在项目中创建了一个缺陷。它恰好有 FormattedID DE529
  • 在 WS API 中测试 (FormattedID = DE529)。

这个 json 是 returned:

{
QueryResult: {
_rallyAPIMajor: "2",
_rallyAPIMinor: "0",
Errors: [ ],
Warnings: [ ],
TotalResultCount: 1,
StartIndex: 1,
PageSize: 20,
Results: [
{
_rallyAPIMajor: "2",
_rallyAPIMinor: "0",
_ref: "https://rally1.rallydev.com/slm/webservice/v2.0/defect/36182496495",
_refObjectUUID: "aa35839a-5e49-44c6-8be7-2fb17bbd91bf",
_refObjectName: "bad defect",
_type: "Defect"
}
]
}
}
  • 关闭项目。 运行 相同的查询:

无结果:

{
QueryResult: {
_rallyAPIMajor: "2",
_rallyAPIMinor: "0",
Errors: [ ],
Warnings: [ ],
TotalResultCount: 0,
StartIndex: 1,
PageSize: 20,
Results: [ ]
}
}

此外,无法按州查询项目。即使工作区 1234:

中有已关闭的项目,此查询也会 return 0 个结果
https://rally1.rallydev.com/slm/webservice/v2.0/project?workspace=https://rally1.rallydev.com/slm/webservice/v2.0/workspace/12345&query=(State = Closed)

Rally 中的项目名称不必是唯一的。当您有两个同名项目(一个是 Open,另一个是 Closed)时,按名称识别项目可能会在极端情况下产生误导性结果。