如何从sonarqube API获取项目语言?

时间:2017-06-08 14:15:40

标签: sonarqube

如何使用sonarqube API获取项目的主要编程语言?或者列出所有项目的编程语言?

2 个答案:

答案 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上测试)