如何获得项目中按认知复杂性排序的前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"
}
...