【问题标题】:SonarQube 5.5 API - componentKey conventionSonarQube 5.5 API - componentKey 约定
【发布时间】:2017-01-21 00:17:28
【问题描述】:

我正在尝试使用“api/measures/component”端点从我们的 SonarQube 实例中提取覆盖数据。这是一个多模块java项目。使用 POSTMAN,我可以使用由这样的字符串构建的“componentKey”查询单个 java 文件

[maven-groupId]:[maven-artifactId]:[path to java file]

生成类似的字符串

com.i.pc.e.components.o:om-wf-e:src/main/java/com/i/e/o/wf/actions/Xxxx.java

并返回此 json 响应

{
"component": {
  "id": "AVci_6G7elHqFlTqG_OC",
  "key": "com.i.pc.e.components.o:om-wfl-e:src/main/java/com/i/e/o/wf/actions/Xxxx.java",
  "name": "Xxxx.java",
  "qualifier": "FIL",
  "path": "src/main/java/com/i/e/om/wf/actions/Xxxxx.java",
  "language": "java",
  "measures": []
},
"metrics": [
  {
    "key": "coverage",
    "name": "Coverage",
    "description": "Coverage by unit tests",
    "domain": "Coverage",
    "type": "PERCENT",
    "higherValuesAreBetter": true,
    "qualitative": true,
    "hidden": false,
    "custom": false,
    "decimalScale": 1,
    "bestValue": "100.0",
    "worstValue": "0.0"
  }
]

}

这对于一次性请求来说很好,但我需要为许多 Java 源文件执行此操作,而且我手头没有 Maven 详细信息。

是否有关于“componentKey”格式的约定或文档?

理想情况下,我想在“compomentKey”中定义完整的包和 java 源文件名,或者有没有办法通过其他 REST API 调用来查找“componentId”?

【问题讨论】:

    标签: sonarqube sonarqube-web


    【解决方案1】:

    使用components 服务从您的项目开始遍历您的树(或树中的子树),并将您的sonar.projectKey 值输入baseComponentKey 参数。请特别注意 strategy 参数,该参数确定调用检索的子集子集。

    获得每个孩子的数据后,应该很容易遍历它们以获取它们的测量值。

    【讨论】:

    • 感谢@g-ann-sonarsource-team - 但这仍然假设我知道'baseComponentKey'或'baseComponentId'。是否有一个搜索或查询 api,我可以在其中传递完整的类和包名称?
    • 我稍微扩展了@emeraldjava。看看有没有帮助
    猜你喜欢
    • 2016-11-30
    • 2016-09-15
    • 1970-01-01
    • 2021-12-26
    • 2016-12-12
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多