如何在 SonarQube 网络服务中使用联合运算符?

How to use a union operator in SonarQube web services?

我想 select 从我遇到的所有阻塞问题和所有漏洞问题中,它们是 Blocker、Critical 或 Major。 我怎样才能在 SonarQube 6.4 的一个请求中做到这一点? 如果我这样做

http://localhost:9000/api/issues/search
severities=BLOCKER,CRITICAL,MAJOR&type=vulnerability&additionalFields=comments

我只会遇到漏洞问题。

如果我提出两个请求,一个针对拦截器问题,一个针对漏洞,我将拥有多余的拦截漏洞。

问题分为三类

  • BUG
  • CODE_SMELL
  • 漏洞

所有这些问题类型都可以设置任何严重性。因此,如果您想要所有(任何类型的)具有 Blocker、Critical 和 Major 严重性的问题,您的请求中应该包含此参数。

severities=BLOCKER,CRITICAL,MAJOR&types=CODE_SMELL,BUG,VULNERABILITY&additionalFields=comments

api/issues/search 不允许组合过滤器。它将 "AND" 所有条件放在一起。

我假设你问的是如何查询这些问题:

           CODE_SMELL | BUG | VULNERABILITY
BLOCKER  | YES        | YES | YES
CRITICAL | no         | no  | YES
MAJOR    | no         | no  | YES
MINOR    | no         | no  | YES
INFO     | no         | no  | YES

所以我建议:

(获取CODE_SMELL和BUG的所有BLOCKER问题)

           CODE_SMELL | BUG | VULNERABILITY
BLOCKER  | YES        | YES | no
CRITICAL | no         | no  | no 
MAJOR    | no         | no  | no 
MINOR    | no         | no  | no
INFO     | no         | no  | no

(获取所有漏洞问题)

           CODE_SMELL | BUG | VULNERABILITY
BLOCKER  | no         | no  | YES
CRITICAL | no         | no  | YES
MAJOR    | no         | no  | YES
MINOR    | no         | no  | YES
INFO     | no         | no  | YES

所以你不会有重复的问题,但必须做两个请求。