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.

Przycisk kopiowania ID

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 sukcesem
  • 204 No Content: Raport nie istnieje
  • 400 Bad Request: Nieprawidłowe parametry lub niepoprawne żądanie
  • 500 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.

Edytor webhooków

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
do góry
Wybierz język