如何在使用REST API的项目中按认知复杂性排序前n个文件



如何获得项目中按认知复杂性排序的前500个文件(使用REST API(?其目的是导出度量以便与其他工具一起使用。

在当前的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"
}
...

最新更新