SonarQube API za izvještaje i web hookove
Ovaj članak opisuje kako programski pristupiti sigurnosnim izvještajima SonarQube‑a pohranjenim na Procurize platformi. Pokriva REST API za izlistavanje i dohvaćanje izvještaja, preuzimanje arhiva izvještaja i pretplatu na web hook obavijesti kada se novi izvještaji učitaju.
Pregled
Podmodul SonarQube izvještaji omogućuje organizacijama centralizirano pohranjivanje i upravljanje sigurnosnim i kvalitetnim izvještajima koda koje generira SonarQube. Procurize platforma izlaže ove podatke putem:
- REST API‑ja za dohvat metapodataka pohranjenih izvještaja
- Krajnje točke za preuzimanje artefakata izvještaja u obliku ZIP arhiva
- Web hookova za gotovo real‑time obavijesti kada novi izvještaji postanu dostupni
Ove mogućnosti omogućuju integracije s CI/CD cjevovodima, GRC sustavima, internim nadzornim pločama i alatima za upravljanje rizicima trećih strana.
Autentifikacija i autorizacija
Sve API zahtjeve opisane u ovom članku ne zahtijevaju autentifikaciju.
ID organizacije
ID organizacije je potreban za sve zahtjeve opisane ovdje.
Možete ga pronaći u panelu postavki organizacije na https://dashboard.procurize.ai.
Napominjemo da pristup panelu postavki zahtijeva autorizaciju, a pristup panelu postavki organizacije zahtijeva korisničku ulogu najmanje Administrator u toj organizaciji.

Osnovni URL
Sve REST API krajnje točke posluživaju se pod sljedećim osnovnim URL‑om:
https://api.procurize.com
SonarQube Reports REST API
Izlistavanje izvještaja
Dohvaća paginiranu listu sigurnosnih izvještaja SonarQube‑a pohranjenih na platformi.
Krajnja točka
GET /security/report/list
Parametri upita
org(obavezno): ID organizacije.version(neobavezno): Točna verzija proizvoda u formatu Semantic Versioning.minver(neobavezno): Minimalna verzija proizvoda u formatu Semantic Versioning.maxver(neobavezno): Maksimalna verzija proizvoda u formatu Semantic Versioning.
Napominjemo da je za zahtjev potreban barem jedan od parametara version, minver ili maxver.
Primjer zahtjeva
curl "https://api.procurize.com/security/report/list?org=00000000-0000-0000-0000-000000000001&version=1.0"
Primjer odgovora
{
"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"
}
]
}
Preuzimanje arhive izvještaja
Preuzima ZIP arhivu koja sadrži kompletne artefakte SonarQube izvještaja. Arhiva uključuje HTML i PDF izvještaje.
Krajnja točka
GET /security/report/files
org(obavezno): ID organizacije.reports(obavezno): Polje ID‑ova izvještaja.
Primjer zahtjeva
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"
Odgovor
- Content-Type:
application/zip - Tijelo odgovora sadrži binarnu ZIP datoteku
Klijenti bi trebali streamati odgovor i spremiti ga na disk.
Obrada grešaka
API koristi standardne HTTP statusne kodove.
200 OK: Zahtjev uspješan204 No Content: Izvještaj ne postoji400 Bad Request: Neispravni parametri ili neispravan zahtjev500 Internal Server Error: Neočekivana greška na poslužitelju
Odgovori na greške uključuju kod pogreške čitljiv od strane programa i poruku čitljivu od strane čovjeka.
Web hookovi
Procurize web hookovi omogućuju vanjskim sustavima primanje obavijesti kada se novi SonarQube izvještaji učitavaju ili ažuriraju.
Konfiguriranje web hookova
Web hookove možete dodavati ili uređivati u panelu postavki organizacije, odjeljak Security reports na https://dashboard.procurize.ai.
Napominjemo da pristup panelu postavki zahtijeva autorizaciju, a pristup panelu postavki organizacije zahtijeva korisničku ulogu najmanje Administrator u toj organizaciji.

Za provjeru web hookova možete koristiti popularne online usluge poput https://webhook-test.com
Payload web hooka
Događaji web hooka isporučuju se kao HTTP POST zahtjevi s JSON payloadom.
Primjer payloada
{
"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"
}
]
}
Sigurnost web hooka
Kako bi se osigurala autentičnost, web hook zahtjevi uključuju zaglavlje s potpisom generiranim pomoću zajedničke tajne.
- Potpis se izračunava korištenjem HMAC‑SHA256
- Klijenti bi trebali verificirati potpis prije obrade payloada
Ovo sprječava neautorizirane ili lažne isporuke web hookova.
Isporuka i ponovni pokušaji
- Web hookovi očekuju
2xxodgovor da bi se smatrali uspješno isporučenima - Neuspjele isporuke automatski se ponovno pokušavaju svakih sat vremena.
- Događaji se mogu isporučiti više puta; potrošači bi trebali implementirati idempotentnu obradu
Tipični scenariji upotrebe
- Automatsko učitavanje SonarQube nalaza u interne sigurnosne nadzorne ploče
- Pokretanje radnih tokova usklađenosti kad kvalitativne barijere ne uspiju
- Arhiviranje sigurnosnih izvještaja za revizije i ocjene rizika dobavljača
- Održavanje sinhronizacije sustava trećih strana s najnovijim stanjem sigurnosti koda
