我已经使用 Codescan 对 Sonarqube 进行了分析。返回的问题数量远高于 10000 个 Web api 限制。因此,在我的客户端/代码中,我想遍历质量配置文件中的所有规则并返回每个规则的所有问题。
如何使用 java 的 web api 获取规则列表?
我已经使用 Codescan 对 Sonarqube 进行了分析。返回的问题数量远高于 10000 个 Web api 限制。因此,在我的客户端/代码中,我想遍历质量配置文件中的所有规则并返回每个规则的所有问题。
如何使用 java 的 web api 获取规则列表?
您可以使用api/qualityprofiles/backup
. 它将质量配置文件键作为参数并返回一个包含所有“活动规则”的 xml。
较新的 SonarQube 版本没有 10K 个问题的限制。
您必须循环 n 次才能收集所有结果。
例如:
考虑一个有 44K 问题的项目。
你必须首先发现你必须阅读多少问题,调用一次 /api/issues/search ,只有你的项目密钥和参数 ps ( pagesize ) 等于 100
http:///api/issues/search?componentKeys =&ps=100
你可能会收到这样的答案
{"total":44130,"p":1,"ps":100,"paging":{"pageIndex":1,"pageSize":100,"total":44130},"issues":[{"键":"AVtoCSNP6OwvnmtEJjae","ru.......
因此,我们必须声明 44130 个问题,使用 100 的页面大小,然后您必须为您的项目调用 (44130 / 100 ) + 1 倍 /api/issues/search 并且对于每个请求,请记住将 p ( page ) 参数增加 1 (所以你可以指出结果的正确部分)
您的命令顺序将是这样的
http:///api/issues/search?componentKeys=YOUR_PROJECT_KEY>&ps=100&p=1 http:///api/issues/search?componentKeys=YOUR_PROJECT_KEY>&ps=100&p=2 http:///api/issues/search ?componentKeys=YOUR_PROJECT_KEY>&ps=100&p=3 .... http:///api/issues/search?componentKeys=YOUR_PROJECT_KEY>&ps=100&p=442
解析每次调用的结果,您将获得问题列表。
干杯
马西莫