我在 JIRA 中有一个标签,比如
Foo
。我想查询具有该标签且仅具有该标签的所有问题。我该怎么做?
我已经尝试过了
labels = Foo AND NOT(labels NOT IN (Foo))
但这也会返回标记为
Foo
和
Bar
的问题。我想要标记为 only
Foo
的问题。如何在 JIRA 中查询具有特定标签并且
仅该标签的问题?
显而易见的方法不起作用:
labels != Foo
根本不返回包含 Foo 的票证(根据设计,因为
!=
100% 相当于文档中的 NOT ... =
),因此执行 labels != Foo AND labels = Foo
返回空集。
~
或
!~
; JIRA 将抛出 JQL 错误:The operator '!~' is not supported by 'labels' field
。那是因为它是一个选择器/多项选择字段,而不是文本字段。
IS/IS NOT
比较“标签”的唯一值是“EMPTY”
... AND labels = Foo AND labels NOT IN (Bar1, Bar2, ...)
优点:纯JQL,简单
缺点:无法捕获较少使用的标签;添加更多标签时需要更新;如果您有太多与 Foo 配对的额外标签,则可能无法很好地扩展。
labels_count
创建自定义数字字段
@@Formula: issue.get("labels").size()
重新索引 JIRA AND labels_count = 1
缺点:我没有实际测试过,所以不确定它是否有效。它需要安装一个新插件(一个有用的插件!)并重新索引。我不知道它是否会在不进一步重新索引的情况下保持字段更新 - 我认为会,但不是 100% 确定。
据我所知,最好的是
return issue.getlabels().size()
; ex2
缺点:付费插件,不知道如何让它工作。
project = YourProjectName AND
labels = Foo AND
issueFunction IN issueFieldMatch("project = YourProjectName", labels, "^[^,]*$")
只需将 YourProjectName 替换为您的实际项目名称即可。
此 JQL 查询的工作方式如下:
project = YourProjectName AND labels = Foo
这部分查询返回项目中带有“Foo”标签的所有问题。
issueFunction in issueFieldMatch("project = YourProjectName", labels, "^[^,]*$")
这部分查询使用 ScriptRunner JQL 函数 issuesFieldMatch 来查看项目中的所有问题,并仅返回标签字段与正则表达式 ^[^,]*$
的一部分,后者是由 Adaptavist 开发的 JIRA 第三方应用程序。如果您没有安装 ScriptRunner,您可能无法完全按原样使用此查询。