SonarQube отчети API и Webhooks

Тази статия описва как програмистки да достъпвате сигурностните отчети на SonarQube, съхранявани в платформата Procurize. Тя обхваща REST API за изброяване и извличане на отчети, изтегляне на архиви с отчети и абониране за webhook‑ известия, когато нови отчети бъдат внесени.

Преглед

Подмодулът SonarQube Reports позволява на организации да съхраняват и управляват централно отчети за сигурност и качество на кода, генерирани от SonarQube. Платформата Procurize предоставя тези данни чрез:

  • REST API за извличане на метаданни за съхранени отчети
  • Крайна точка за изтегляне на артефакти на отчети като ZIP архиви
  • Webhook‑ове за почти реалновременни известия, когато нови отчети станат достъпни

Тези възможности позволяват интеграция с CI/CD конвейери, GRC системи, вътрешни табла и външни инструменти за управление на риска.

Удостоверяване и упълномощаване

Всички API заявки, описани в тази статия, не изискват удостоверяване.

Идентификатор на организация

Идентификаторът на организацията е задължителен за всички заявки, описани тук.
Можете да го намерите в панела за настройки на организацията на https://dashboard.procurize.ai.
Имайте предвид, че достъпът до панела за настройки изисква упълномощаване и потребителска роля поне „Администратор“ в съответната организация.

Copy ID button

Основен URL

Всички REST API крайни точки се обслужват под следния основен URL:

https://api.procurize.com

SonarQube Reports REST API

Изброяване на отчети

Връща странициран списък със сигурностни отчети на SonarQube, съхранени в платформата.

Крайна точка

GET /security/report/list

Параметри на заявката

  • org (задължителен): Идентификатор на организацията.
  • version (по избор): Точната версия на продукта във формат Semantic Versioning.
  • minver (по избор): Минималната версия на продукта във формат Semantic Versioning.
  • maxver (по избор): Максималната версия на продукта във формат Semantic Versioning.

Забележка: Поне един от параметрите version, minver или maxver е задължителен за заявката.

Примерна заявка

curl "https://api.procurize.com/security/report/list?org=00000000-0000-0000-0000-000000000001&version=1.0"

Примерен отговор

{
  "organizationId": "00000000-0000-0000-0000-000000000001",
  "reports": [
    {
      "projectName": "Test product",
      "id": "00000000-0000-0000-0000-000000000002",
      "reportType": "CWE Top 25",
      "reportVersion": 2024,
      "projectVersion": "1.0",
      "date": "2025-12-17T09:05:48.5946432+00:00",
      "uploadDate": "2025-12-17T09:05:48.5946432+00:00",
      "vulnerabilitiesCount": 0,
      "securityRating": "A"
    }
  ]
}

Изтегляне на архив с отчет

Изтегля ZIP архив, съдържащ пълните артефакти на отчета от SonarQube. Архивът включва HTML и PDF версии на отчета.

Крайна точка

GET /security/report/files
  • org (задължителен): Идентификатор на организацията.
  • reports (задължителен): Масив от идентификатори на отчети.

Примерна заявка

curl "https://api.procurize.com/security/report/files?org=00000000-0000-0000-0000-000000000001&reports=00000000-0000-0000-0000-000000000002&reports=00000000-0000-0000-0000-000000000003"

Отговор

  • Content-Type: application/zip
  • Тялото на отговора съдържа бинарния ZIP файл

Клиентите трябва да поточат отговора и да го запишат на диск.

Обработка на грешки

API‑то използва стандартните HTTP статус кодове.

  • 200 OK – заявката е успешна
  • 204 No Content – отчетът не съществува
  • 400 Bad Request – невалидни параметри или неправилна заявка
  • 500 Internal Server Error – неочаквана грешка в сървъра

Отговорите за грешки съдържат машинно‑четим код за грешка и човеко‑четимо съобщение.

Webhook‑ове

Webhook‑овете на Procurize позволяват на външни системи да получават известия, когато нови SonarQube отчети бъдат внесени или актуализирани.

Конфигуриране на webhook‑ове

Webhook‑овете могат да се добавят или редактират в панела за настройки на организацията, раздел Security reports, на https://dashboard.procurize.ai.
Отново, достъпът до панела изисква упълномощаване и потребителска роля поне „Администратор“.

Webhooks editor

За проверка на webhook‑ове можете да използвате популярни онлайн услуги като https://webhook-test.com.

Тяло на webhook‑а

Webhook събитията се доставят като HTTP POST заявки с JSON натоварване.

Примерно тяло

{
  "organizationId": "00000000-0000-0000-0000-000000000001",
  "reports": [
    {
      "projectName": "Test product",
      "id": "00000000-0000-0000-0000-000000000002",
      "reportType": "CWE Top 25",
      "reportVersion": 2024,
      "projectVersion": "1.0",
      "date": "2025-12-17T09:05:48.5946432+00:00",
      "uploadDate": "2025-12-17T09:05:48.5946432+00:00",
      "vulnerabilitiesCount": 0,
      "securityRating": "A"
    }
  ]
}

Сигурност на webhook‑а

За осигуряване на автентичност, webhook заявките включват заглавие с подпис, генерирано с общ тайна.

  • Подписът се изчислява с HMAC‑SHA256
  • Клиентите трябва да проверяват подписа преди обработка на натоварването

Това предотвратява неоторизирани или подправени доставки.

Доставка и повторни опити

  • Webhook‑овете се считат за успешно доставени, ако отговорът е в диапазона 2xx
  • Неуспешните доставки се преопитват автоматично на всеки час
  • Събитията могат да бъдат доставени повече от един път; консуматорите трябва да реализират идемпотентна обработка

Типични случаи на употреба

  • Автоматично въвеждане на открития от SonarQube в вътрешни табла за сигурност
  • Стартиране на процеси за съответствие, когато контролите за качество се провалят
  • Архивиране на сигурностни отчети за одити и прегледи на рисковете на доставчици
  • Синхронизиране на трети страни със последното състояние на сигурността на кода
към върха
Изберете език