API Raportów SonarQube i Webhooki
Ten artykuł opisuje, jak programowo uzyskać dostęp do raportów bezpieczeństwa SonarQube przechowywanych w platformie Procurize. Obejmuje REST API do wyświetlania i pobierania raportów, pobieranie archiwów raportów oraz subskrypcję powiadomień webhooków, gdy nowe raporty zostaną wprowadzone.
Przegląd
Moduł podraportów SonarQube umożliwia organizacjom centralne przechowywanie i zarządzanie raportami bezpieczeństwa i jakości kodu generowanymi przez SonarQube. Platforma Procurize udostępnia te dane poprzez:
- REST API do pobierania metadanych o przechowywanych raportach
- Endpoint do pobierania artefaktów raportu jako archiwów ZIP
- Webhooki do powiadomień w czasie rzeczywistym, gdy dostępne są nowe raporty
Te możliwości umożliwiają integracje z pipeline’ami CI/CD, systemami GRC, wewnętrznymi pulpitami kontrolnymi oraz narzędziami zarządzania ryzykiem stron trzecich.
Uwierzytelnianie i uprawnienia
Wszystkie żądania API opisane w tym artykule nie wymagają uwierzytelnienia.
Identyfikator organizacji
Identyfikator organizacji jest wymagany dla wszystkich opisanych tutaj żądań.
Możesz go znaleźć w panelu ustawień organizacji pod adresem https://dashboard.procurize.ai.
Należy pamiętać, że dostęp do panelu ustawień wymaga autoryzacji, a dostęp do panelu ustawień organizacji wymaga roli użytkownika co najmniej Administrator w tej organizacji.

Podstawowy URL
Wszystkie endpointy REST API są dostępne pod następującym podstawowym adresem URL:
https://api.procurize.com
REST API Raportów SonarQube
Lista raportów
Zwraca paginowaną listę raportów bezpieczeństwa SonarQube przechowywanych w platformie.
Punkt końcowy
GET /security/report/list
Parametry zapytania
org(wymagane): Identyfikator organizacji.version(opcjonalny): Dokładna wersja produktów w formacie Semantic Versioning.minver(opcjonalny): Minimalna wersja produktów w formacie Semantic Versioning.maxver(opcjonalny): Maksymalna wersja produktów w formacie Semantic Versioning.
Należy pamiętać, że przynajmniej jeden z parametrów version, minver lub maxver jest wymagany dla żądania.
Przykład żądania
curl "https://api.procurize.com/security/report/list?org=00000000-0000-0000-0000-000000000001&version=1.0"
Przykład odpowiedzi
{
"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"
}
]
}
Pobieranie archiwum raportu
Pobiera archiwum ZIP zawierające pełne artefakty raportu SonarQube. Archiwum zawiera raporty w formacie HTML i PDF.
Punkt końcowy
GET /security/report/files
org(wymagane): Identyfikator organizacji.reports(wymagane): Tablica identyfikatorów raportów.
Przykład żądania
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"
Odpowiedź
- Content-Type:
application/zip - Treść odpowiedzi zawiera binarny plik ZIP
Klienci powinni strumieniowo odczytywać odpowiedź i zapisywać ją na dysku.
Obsługa błędów
API używa standardowych kodów statusu HTTP.
200 OK: Żądanie zakończone sukcesem204 No Content: Raport nie istnieje400 Bad Request: Nieprawidłowe parametry lub niepoprawne żądanie500 Internal Server Error: Nieoczekiwany błąd serwera
Odpowiedzi błędów zawierają kod błędu w formacie maszynowym oraz przyjazny komunikat dla użytkownika.
Webhooki
Webhooki Procurize pozwalają zewnętrznym systemom otrzymywać powiadomienia, gdy nowe raporty SonarQube zostaną wprowadzone lub zaktualizowane.
Konfigurowanie webhooków
Webhooki mogą być dodawane lub edytowane w panelu ustawień organizacji, w sekcji Raporty bezpieczeństwa pod adresem https://dashboard.procurize.ai.
Należy pamiętać, że dostęp do panelu ustawień wymaga autoryzacji, a dostęp do panelu ustawień organizacji wymaga roli użytkownika co najmniej Administrator w tej organizacji.

Aby przetestować webhooki, możesz użyć popularnych usług online, takich jak https://webhook-test.com
Ładunek webhooka
Zdarzenia webhooków są dostarczane jako żądania HTTP POST z ładunkiem JSON.
Przykładowy ładunek
{
"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"
}
]
}
Bezpieczeństwo webhooka
Aby zapewnić autentyczność, żądania webhooków zawierają nagłówek podpisu wygenerowany przy użyciu wspólnego sekretu.
- Podpis jest obliczany przy użyciu HMAC‑SHA256
- Klienci powinni weryfikować podpis przed przetworzeniem ładunku
Zapobiega to nieautoryzowanym lub sfałszowanym dostawom webhooków.
Dostarczanie i ponowne próby
- Webhooki oczekują odpowiedzi
2xx, aby uznać dostarczenie za udane - Nieudane dostarczenia są automatycznie ponawiane co godzinę
- Zdarzenia mogą być dostarczane wielokrotnie; konsumenci powinni implementować przetwarzanie idempotentne
Typowe scenariusze użycia
- Automatyczne wprowadzanie wyników SonarQube do wewnętrznych pulpitów bezpieczeństwa
- Wyzwalanie przepływów pracy zgodności, gdy bramki jakości nie zostaną spełnione
- Archiwizowanie raportów bezpieczeństwa na potrzeby audytów i przeglądów ryzyka dostawców
- Utrzymywanie synchronizacji systemów stron trzecich z najnowszą postawą bezpieczeństwa kodu
