SonarQube отчети API и Webhooks
Тази статия описва как програмистки да достъпвате сигурностните отчети на SonarQube, съхранявани в платформата Procurize. Тя обхваща REST API за изброяване и извличане на отчети, изтегляне на архиви с отчети и абониране за webhook‑ известия, когато нови отчети бъдат внесени.
Преглед
Подмодулът SonarQube Reports позволява на организации да съхраняват и управляват централно отчети за сигурност и качество на кода, генерирани от SonarQube. Платформата Procurize предоставя тези данни чрез:
- REST API за извличане на метаданни за съхранени отчети
- Крайна точка за изтегляне на артефакти на отчети като ZIP архиви
- Webhook‑ове за почти реалновременни известия, когато нови отчети станат достъпни
Тези възможности позволяват интеграция с CI/CD конвейери, GRC системи, вътрешни табла и външни инструменти за управление на риска.
Удостоверяване и упълномощаване
Всички API заявки, описани в тази статия, не изискват удостоверяване.
Идентификатор на организация
Идентификаторът на организацията е задължителен за всички заявки, описани тук.
Можете да го намерите в панела за настройки на организацията на https://dashboard.procurize.ai.
Имайте предвид, че достъпът до панела за настройки изисква упълномощаване и потребителска роля поне „Администратор“ в съответната организация.

Основен 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.
Отново, достъпът до панела изисква упълномощаване и потребителска роля поне „Администратор“.

За проверка на 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 в вътрешни табла за сигурност
- Стартиране на процеси за съответствие, когато контролите за качество се провалят
- Архивиране на сигурностни отчети за одити и прегледи на рисковете на доставчици
- Синхронизиране на трети страни със последното състояние на сигурността на кода
