Я пытаюсь извлечь данные о покрытии из нашего экземпляра SonarQube, используя 'api/measures/component. конечная точка. Это для многомодульного java-проекта. Используя POSTMAN, я могу запросить один java-файл, используя «componentKey», который состоит из строки, подобной этой.
[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'?
В идеале я хотел бы определить полное имя пакета и исходного файла java в «compomentKey» или есть способ найти «componentId» через какой-либо другой вызов REST API?