Получите полный JSON-ответ от Sonarqube Web API - PullRequest
0 голосов
/ 24 мая 2018

Я использую веб-API Sonarqube для обнаружения ошибок в spoon .Но я не получаю полный список из примерно 189 ошибок, а только около 100, даже когда я использовал параметр types = BUG.Используемый мной запрос GET: https://sonarqube.ow2.org/api/issues/search?componentKeys=fr.inria.gforge.spoon:spoon-core&types=BUG.Есть ли способ получить полный ответ JSON?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вы получаете только 100 элементов, так как 100 - это размер по умолчанию для страниц веб-интерфейса.В вашем примере при использовании:

https://sonarqube.ow2.org/api/issues/search?componentKeys=fr.inria.gforge.spoon:spoon-core&types=BUG&ps=200

вы получите все 189 ошибок.Максимальное значение для размера страницы составляет 500.
Если вы хотите узнать общее количество проблем, вам нужно проверить ответ:

{
  "paging": {
    "pageIndex": 1,
    "pageSize": 100,
    "total": 189 <<---------------------------
  },
  "issues": [
    {
...

Отличный фрагмент кода, использующий total для получения всех проблем с циклом:

import groovy.json.*

def sonarRest(url,method) {
  jsonSlurper = new JsonSlurper()
  raw = '...:'
  bauth = 'Basic ' + javax.xml.bind.DatatypeConverter.printBase64Binary(raw.getBytes())
  conn = new URL(url).openConnection() as HttpURLConnection
  conn.setRequestMethod(method)
  conn.setRequestProperty("Authorization", bauth)
  conn.connect()
  httpstatus = conn.responseCode
  object = jsonSlurper.parse(conn.content)
}

issues = sonarRest('https://sonarhost/api/issues/search?severities=INFO&ps=1', 'GET')
total = (issues.total.toFloat()/100).round()

counter = 1

while(counter <= total)
{
issues = sonarRest("https://sonarhost/api/issues/search?severities=INFO&ps=100&p=$counter", 'GET')
println issues
counter++
}
0 голосов
/ 25 мая 2018

Извините, мне это даже не нужно.Я могу добавить правило к параметру, поскольку я использую только одно правило за раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...