Как получить топ-n файлов с самой высокой когнитивной сложностью в проекте, используя REST API? - PullRequest
0 голосов
/ 01 мая 2020

Для использования этого показателя c с другим инструментом, как получить 500 лучших файлов в проекте, отсортированному по сложности познавательных способностей (используя REST API)?

1 Ответ

0 голосов
/ 01 мая 2020

На текущем SonarQube (8.2, хотя это будет работать и с более ранними версиями, согласно документации), и предполагается, что ваш экземпляр находится на localhost:9000, а имя проекта - project1, этот bash script * 1003 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"
}
...
...