SonarQube 6.7.5-Api检索应用于项目的所有规则

时间:2018-12-14 18:41:12

标签: sonarqube

我需要编译应用于SonarQube每个项目的每个规则。 我找不到执行此操作的直接方法,因此我正在执行以下操作:

检索项目。我们有1000多个项目。 (不要问我为什么¯\ _(ツ)_ /¯)

http://host/api/components/search?qualifiers=TRK

然后我检索语言,因为如果我尝试直接检索质量配置文件而不设置语言,我将获得每个配置文件,即使是针对不同的语言。

http://host/api/measures/component?componentKey=compKey&metricKeys=ncloc_language_distribution

然后,我检索质量配置文件

http://host/api/qualityprofiles/search?project=projectKey&language=lang

最后,我检索了规则

http://host/api/rules/search?activation=true&qprofile=profile

现在,由于项目和HTTP请求数量庞大,此过程将花费很长时间。 我是否错过了一种更简单的方法?

1 个答案:

答案 0 :(得分:0)

要了解所应用的规则,您需要

  • 项目的语言
  • 每种语言使用的配置文件
  • 每个个人资料中的规则

有两种不同的方法可以解决此问题。您已找到一个。让我们看看其他人。

(我正在查看SonarQube的最新副本,但我认为所讨论的API仍应相同。)

我知道项目的最新分析中使用的配置文件已列在主页上。使用开发人员控制台,我看到该数据来自对api/navigation/component的调用。该Web服务被标记为内部服务,这意味着您可能不应该使用它。因此,我们不能直接从项目转到质量配置文件。

但是,api/measures/component不是内部的,并且首页还要求ncloc_language_distribution。这是一个DISTRIB度量标准,它提供了每种语言的项目代码行。对于我正在查看的项目,返回值为"css=11473;java=235467;js=2549;ts=95516"。如您所见,从那里我们可以了解项目中的语言。现在,让我们搁置片刻。

假设您从获取质量概况列表(api/qualityprofiles/search)开始。由此,您知道哪种配置文件是每种语言的默认配置文件。现在使用api/qualityprofiles/projects获取显式分配给每个配置文件的项目列表。这可能也是在每个配置文件中检索和本地存储规则的好地方。

现在,您可以迭代您的项目,查看每个项目的语言并找出每个项目使用的配置文件。 (是否为此语言指定了明确的配置文件分配?否?然后是默认语言!)然后,您可以将每个配置文件的规则从内存中拉出,然后您便有了该项目的列表。

*除尘手*
简单!