如何使用REST API获取项目中认知复杂度最高的前n个文件?

问题描述 投票:-1回答:1

对于使用该指标与其他工具,如何获得项目中按认知复杂度排序的前500个文件(使用REST API)?

rest sonarqube static-code-analysis
1个回答
0
投票

在当前的SonarQube上(8.2,但根据文档,这也可以在早期版本中使用),并且假设你的实例是在以下情况下使用的。localhost:9000 而项目的名称是 project1,这个bash脚本 curl的SonarQube为前500名的文件及其认知复杂度值,按认知复杂度排序,然后漂亮的打印出来,用 jq,并将其显示在 less:

#!/bin/bash                                                                                                                                                                 

curl \                                                                                                                                                                      
"localhost:9000"\                                                                                                                                                           
"/api/measures/component_tree?"\                                                                                                                                            
"component=project1&"\                                                                                                                                                          
"strategy=leaves&"\                                                                                                                                                         
"metricKeys=cognitive_complexity&"\                                                                                                                                         
"s=metric&"\                                                                                                                                                                
"metricSort=cognitive_complexity&"\                                                                                                                                         
"asc=false&"\                                                                                                                                                               
"ps=500" \                                                                                                                                                                  
| jq "[.components[] | {path: .path, cognitive_complexity: .measures[0].value}]" \                                                                                                                                                               
| less

上面的脚本产生这样的输出。

[
{
  "path": "desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java",
  "cognitive_complexity": "319"
}
{
  "path": "desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookView.java",
  "cognitive_complexity": "304"
}
{
  "path": "p2p/src/main/java/bisq/network/p2p/network/Connection.java",
  "cognitive_complexity": "228"
}
{
  "path": "desktop/src/main/java/bisq/desktop/main/support/dispute/DisputeView.java",
  "cognitive_complexity": "225"
}
{
  "path": "desktop/src/main/java/bisq/desktop/util/GUIUtil.java",
  "cognitive_complexity": "192"
}
...
© www.soinside.com 2019 - 2024. All rights reserved.