如何查询 Epics With All Closed Jira issue?

How To Query Epics With All Closed Jira issue?

使用 JQL 和 Adaptavist ScriptRunner,我如何编写一个查询 returns - 对于我的项目 "ABC" - epics 只关闭了 Jira 相关问题?

简介

让我们使用集合论构造此查询。第一部分将构建 return 包含我们不需要的所有内容的查询。第二部分将构建所有内容的查询。最后,我们将把两者结合起来 return 我们想要的。 进入第一部分!...

第 1 部分:项目 Epics 与开放相关的 Jira 问题

首先,让我们return 与 ABC 史诗相关的 Jira 问题:

issueFunction in issuesInEpics("project = ABC")

扩展该查询,我们在前面加上一个子句,该子句将 return epics。也就是说,与 ABC 史诗关联的 Jira 问题的 epics 个:

issueFunction in epicsOf("issueFunction in issuesInEpics(\"project = ABC\")")

到目前为止,我们还没有查询状态。但是请记住,我们只需要 epics 所有已关闭的 Jira 问题。下一个子句可能看起来违反直觉,因为在这里我们将添加一个 statusCategory 检查未完成的 Jira 问题:

issueFunction in epicsOf("issueFunction in issuesInEpics(\"project = ABC\") and statusCategory != Done")

所以,上面说的是 epics 与尚未完成的 Jira 相关的问题。这是针对关联了 ABC 项目史诗的 Jira 问题。

让我们暂时离开那个查询并开始一个新的查询。

第二部分:打开项目 Epics 以及相关的 Jira 问题

同上查询。所有与 ABC 史诗关联的 Jira 问题:

issueFunction in issuesInEpics("project = ABC")

再次,同上:

issueFunction in epicsOf("issueFunction in issuesInEpics(\"project = ABC\")")

现在,一些变化。我们不关心关闭 epics。此条款专门适用于 epics,不适用于相关的 Jira 问题...

statusCategory != Done AND issueFunction in epicsOf("issueFunction in issuesInEpics(\"project = ABC\")")

合并第一部分和第二部分

太棒了!我们现在有了与 Jira 问题相关的开放 ABC epics 列表。让我们结合两者来了解第一部分和第二部分之间的区别。也就是说,打开不在 ABC epics 集合中的 ABC epics 与打开的关联 Jira 问题:

statusCategory != Done AND issueFunction in epicsOf("issueFunction in issuesInEpics(\"project = ABC\")") AND NOT issueFunction in epicsOf("issueFunction in issuesInEpics(\"project = ABC\") and statusCategory != Done")

打开一些 epics returned,可以看到它们是打开的,但所有相关的 Jira 问题都已关闭。问题已解决!

请注意,这可以通过使用子过滤器变得更整洁。有关这方面的更多信息,请查看 ScriptRunner reference.

上的示例