如何使用sonarqube API获取项目的主要编程语言?或者列出所有项目的编程语言?
答案 0 :(得分:0)
Per SonarQube Metric Definitions documentation:
ncloc_language_distribution - 按语言分发的非注释代码行。
将它与SonarQube WebAPI api / measures (SonarQube服务器中的文档embedded)一起使用,你应该很高兴。
答案 1 :(得分:0)
试图解决同样的问题,我想出了一个小的shell脚本,它写了所有SonarQube项目键的列表和给定项目的语言分布:
#!/bin/bash
API="http://my.sonar-server.com:9000/sonar/api" ### adjust this!
API_LANG_DIST="$API/measures/component?metricKeys=ncloc_language_distribution"
# get a list of all project keys:
projKeys=$(curl -s "$API/projects/index" | jq -r '.[].k')
# for each project key, get the language distribution metric:
for key in ${projKeys}; do
langDist=$(curl -s "${API_LANG_DIST}&componentKey=${key}" | jq '.component.measures[0].value')
printf "%-80s%-80s\n" ${key} ${langDist}
done
输出将是这样的:
com.mycompany:projectA "grvy=75;java=4091"
com.mycompany:projectB "css=1966;java=52770;js=11460;less=1862"
com.mycompany:projectC "css=40185;java=11451;js=13757"
注意:此脚本使用jq
JSON解析实用程序。如果您没有,可以通过sudo yum install jq
安装它。
(在SonarQube 5.6.6和6.7.0上测试)