【问题标题】:How to get project language from sonarqube API?如何从 sonarqube API 获取项目语言?
【发布时间】:2020-09-23 10:06:10
【问题描述】:

如何使用 sonarqube API 获取项目的主要编程语言?还是项目所有编程语言的列表?

【问题讨论】:

    标签: sonarqube


    【解决方案1】:

    每个 SonarQube Metric Definitions documentation

    ncloc_language_distribution - 按语言分布的非注释代码行。

    将它与 SonarQube WebAPI api/measures(SonarQube 服务器中的文档 embedded)一起使用,您应该很高兴。

    【讨论】:

    • 谢谢,正是我想要的!我的用法:api/measures/component?componentKey=[key]&metricKeys=ncloc_language_distribution
    【解决方案2】:

    为了解决同样的问题,我想出了一个小的 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 上测试)

    【讨论】:

      猜你喜欢
      • 2018-02-06
      • 2018-10-17
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      相关资源
      最近更新 更多