SonarQube izvještaji API#
Ovaj članak opisuje kako programatski pristupiti SonarQube sigurnosnim izvještajima pohranjenim na Procurize platformi. Pokriva REST API za popis izvještaja i njihovo preuzimanje u HTML, PDF i ZIP formatima.
Pregled#
SonarQube izvještaji podmodul omogućuje organizacijama da centralno pohranjuju i upravljaju sigurnosnim i izvještajima o kvaliteti koda koje generira SonarQube. Procurize platforma izlaže ove podatke putem javnog REST API‑ja koji vam omogućuje:
- Popis metapodataka izvještaja za organizaciju, grupu projekata ili projekt
- Preuzimanje pojedinačnog izvještaja u HTML, PDF ili ZIP formatu
- Preuzimanje odabranih izvještaja kao ZIP arhivu
- Preuzimanje svih izvještaja projekta ili grupe projekata kao ZIP arhivu
- Dohvaćanje najnovijih OWASP Top 10 i CWE Top 25 izvještaja izravno iz SonarQube usluge
Ove mogućnosti omogućuju integracije s CI/CD cjevovodima, GRC sustavima, internim nadzornim pločama i alatima za upravljanje rizicima trećih strana.
Krajnje točke#
| Krajnja točka | Metoda | Svrha |
|---|---|---|
/security/report/list | GET | Popis metapodataka izvještaja za odabrani opseg i verziju. |
/security/report/files | GET | Preuzimanje odabranih izvještaja kao ZIP arhivu. |
/security/report/html | GET | Dobijanje pojedinačnog izvještaja u HTML formatu. |
/security/report/pdf | GET | Dobijanje pojedinačnog izvještaja u PDF formatu. |
/security/report/zip | GET | Dobijanje pojedinačnog izvještaja kao ZIP arhivu. |
/security/report/project-files | GET | Preuzimanje svih izvještaja projekta kao ZIP arhivu. |
/security/report/directory-files | GET | Preuzimanje svih izvještaja grupe projekata (direktorija) kao ZIP arhivu. |
/security/reports/fetch | POST | Dohvaćanje najnovijih izvještaja iz SonarQube usluge. |
Autentifikacija i autorizacija#
Krajnje točke za popis i preuzimanje izvještaja opisane u ovom članku ne zahtijevaju autentifikaciju.
Krajnja točka POST /security/reports/fetch zahtijeva autentifikaciju pomoću API tokena — pogledajte API tokeni.
ID organizacije#
Identifikator organizacije potreban je za većinu zahtjeva opisanih ovdje. Možete proslijediti ili ID organizacije (UUID) ili njen alias — pogledajte Identifikatori i aliasi.
Možete ga pronaći u panelu postavki organizacije na https://dashboard.procurize.ai.
Imajte na umu da pristup panelu postavki zahtijeva autorizaciju, a pristup panelu postavki organizacije zahtijeva korisničku ulogu najmanje Administrator u toj organizaciji.

Identifikatori i aliasi#
Parametri opsega prihvaćaju ili ID entiteta (UUID) ili čitljiviji alias. Aliasovi olakšavaju čitanje zahtjeva i stabilni su kroz okoline.
| Parametar | Prihvaća | Primjeri aliasa |
|---|---|---|
org | ID organizacije ili alias | aspose, groupdocs |
directory | ID direktorija (grupe projekata) ili alias | aspose-imaging, groupdocs-annotation |
project | ID projekta ili alias | aspose-imaging-net, groupdocs-annotation-java |
Na primjer, sljedeća dva zahtjeva su ekvivalentna:
curl "https://api.procurize.com/security/report/list?org=00000000-0000-0000-0000-000000000001&version=1.0"
curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"
Napomena: Aliasovi nisu podržani za parametar id krajnjih točaka za grupno preuzimanje. Proslijedite UUID direktorija ili projekta na GET /security/report/project-files i GET /security/report/directory-files.
Osnovni URL#
Sve REST API krajnje točke posluživaju se pod sljedećim osnovnim URL‑om:
https://api.procurize.com
SonarQube izvještaji REST API#
Popis izvještaja#
Vraća sigurnosne izvještaje dostupne za odabrani opseg i verziju, bez njihovog sadržaja datoteka. Koristite ovu krajnju točku za otkrivanje ID‑ova izvještaja koje možete proslijediti krajnjim točkama za preuzimanje.
Krajnja točka
GET /security/report/list
Parametri upita
org(opcionalno): ID organizacije ili alias (npr.asposeiligroupdocs). Najširi opseg.directory(opcionalno): ID direktorija (grupe projekata) ili alias (npr.aspose-imagingiligroupdocs-annotation). Užeg opseg.project(opcionalno): ID projekta ili alias (npr.aspose-imaging-netiligroupdocs-annotation-java). Najuži opseg.version(opcionalno): Točna verzija projekta.minver(opcionalno): Minimalna verzija projekta.maxver(opcionalno): Maksimalna verzija projekta.
Najmanje jedan od parametara opsega org, directory ili project je obavezan. Prioriteti su: ako je naveden project, pretražuje se samo taj projekt; inače, ako je naveden directory, pretražuje se cijela grupa projekata; inače se pretražuje cijela organizacija (org). Kada je org naveden zajedno s project ili directory, cilj se dodatno provjerava da pripada toj organizaciji.
Najmanje jedan od version, minver ili maxver je obavezan. Ako je naveden version, parametri minver i maxver se zanemaruju.
Primjer zahtjeva
curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"
Opseg prema grupi projekata ili projektu po aliasu:
curl "https://api.procurize.com/security/report/list?directory=aspose-imaging&minver=1.0&maxver=2.0"
curl "https://api.procurize.com/security/report/list?project=aspose-imaging-net&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"
}
]
}
Polja odgovora
organizationId: Organizacija kojoj pripadaju izvještaji.reports[].id: Jedinstveni ID izvještaja. Proslijedite ovu vrijednost krajnjim točkama za preuzimanje.reports[].projectName: Prikazno ime proizvoda.reports[].projectVersion: Verzija proizvoda.reports[].reportType: Tip izvještaja (OWASP Top 10iliCWE Top 25).reports[].reportVersion: Verzija (godina) standarda izvještaja.reports[].date: Datum generiranja izvještaja.reports[].uploadDate: Datum učitavanja izvještaja u Procurize.reports[].vulnerabilitiesCount: Broj otkrivenih ranjivosti.reports[].securityRating: Ukupna sigurnosna ocjena (A–E, gdje jeAnajbolja).
Preuzimanje izvještaja po ID-u#
Preuzima ZIP arhivu koja sadrži odabrane izvještaje. Svaki izvještaj je uključen i u HTML i PDF formatu.
Krajnja točka
GET /security/report/files
Parametri upita
org(obavezno): ID organizacije ili alias (npr.asposeiligroupdocs).reports(obavezno): ID‑ovi izvještaja za uključivanje. Ponovite parametar za više izvještaja.
Primjer zahtjeva
curl "https://api.procurize.com/security/report/files?org=aspose&reports=00000000-0000-0000-0000-000000000002&reports=00000000-0000-0000-0000-000000000003" -o reports.zip
Odgovor
- Content-Type:
application/zip - Tijelo odgovora sadrži binarnu ZIP datoteku.
Klijenti bi trebali strujati odgovor i spremiti ga na disk.
Rad s pojedinačnim izvještajem#
Krajnje točke /security/report/html, /security/report/pdf i /security/report/zip vraćaju jedan određeni izvještaj i dijele ista pravila odabira.
Odabir izvještaja#
Tip izvještaja i verzija uvijek su obavezni:
rt(obavezno): Tip izvještaja. Podržane vrijednosti suOWASP Top 10iCWE Top 25.rv(obavezno): Verzija izvještaja — godina standardne edicije, npr.2025za OWASP Top 10 ili2024za CWE Top 25.
Točan izvještaj se zatim odabire na jedan od dva načina:
- Po ID-u izvještaja — proslijedite
id(ID izvještaja) zajedno sproject(ID ili alias projekta) iliorg(ID ili alias organizacije). Nemojte proslijeditiversionu ovom načinu. - Po verziji projekta — proslijedite
project(ID ili alias projekta, npr.aspose-imaging-netiligroupdocs-annotation-java) iversion(verzija projekta). Parametarorgse ne koristi u ovom načinu.
Kada su project i org oba navedena, org se zanemaruje.
Dobijanje izvještaja kao HTML#
Renderira jedan izvještaj kao HTML stranicu ili ga vraća kao preuzimljivu HTML datoteku.
Krajnja točka
GET /security/report/html
Parametri upita
rt(obavezno): Tip izvještaja.rv(obavezno): Verzija izvještaja.- Parametri odabira izvještaja: vidi Odabir izvještaja.
download(opcionalno): Postavite natrueda se HTML vrati kao preuzimanje datoteke (Content-Disposition: attachment). Ako se izostavi ili jefalse, izvještaj se vraća inline.
Primjer zahtjeva
curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&id=00000000-0000-0000-0000-000000000004&project=aspose-imaging-net"
Za preuzimanje HTML datoteke umjesto renderiranja inline:
curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&project=aspose-imaging-net&version=1.0&download=true" -o report.html
Odgovor
- Content-Type:
text/html
Dobijanje izvještaja kao PDF#
Vraća jedan izvještaj kao PDF dokument.
Krajnja točka
GET /security/report/pdf
Parametri upita
rt(obavezno): Tip izvještaja.rv(obavezno): Verzija izvještaja.- Parametri odabira izvještaja: vidi Odabir izvještaja.
Primjer zahtjeva
curl "https://api.procurize.com/security/report/pdf?rt=CWE+Top+25&rv=2024&project=aspose-imaging-net&version=1.0" -o report.pdf
Odgovor
- Content-Type:
application/pdf
Dobijanje izvještaja kao ZIP#
Vraća jedan izvještaj kao ZIP arhivu koja sadrži i HTML i PDF verzije.
Krajnja točka
GET /security/report/zip
Parametri upita
rt(obavezno): Tip izvještaja.rv(obavezno): Verzija izvještaja.- Parametri odabira izvještaja: vidi Odabir izvještaja.
Primjer zahtjeva
curl "https://api.procurize.com/security/report/zip?rt=CWE+Top+25&rv=2024&id=00000000-0000-0000-0000-000000000004&org=groupdocs" -o report.zip
Odgovor
- Content-Type:
application/zip
Preuzimanje svih izvještaja projekta#
Preuzima ZIP arhivu koja sadrži sve izvještaje navedenog projekta, i u HTML i PDF formatima.
Krajnja točka
GET /security/report/project-files
Parametri upita
id(obavezno): ID projekta. Alias nije podržan; proslijedite UUID projekta.rt(opcionalno): Filtriraj po tipu izvještaja. Podržane vrijednosti suOWASP Top 10iCWE Top 25.rv(opcionalno): Filtriraj po verziji izvještaja (godina).version(opcionalno): Filtriraj po verziji projekta.
Ako nisu navedeni filteri, uključeni su svi izvještaji projekta. Parametre filtera možete kombinirati i primjenjuju se neovisno.
Primjer zahtjeva
curl "https://api.procurize.com/security/report/project-files?id=00000000-0000-0000-0000-000000000005" -o project-reports.zip
Odgovor
- Content-Type:
application/zip
Preuzimanje svih izvještaja grupe projekata#
Preuzima ZIP arhivu koja sadrži izvještaje svih projekata u navedenom direktoriju (grupi projekata), i u HTML i PDF formatima.
Krajnja točka
GET /security/report/directory-files
Parametri upita
id(obavezno): ID direktorija (grupe projekata). Alias nije podržan; proslijedite UUID direktorija.rt(opcionalno): Filtriraj po tipu izvještaja. Podržane vrijednosti suOWASP Top 10iCWE Top 25.rv(opcionalno): Filtriraj po verziji izvještaja (godina).version(opcionalno): Filtriraj po verziji projekta.
Ako nisu navedeni filteri, uključeni su izvještaji svih projekata u direktoriju. Parametre filtera možete kombinirati i primjenjuju se neovisno.
Primjer zahtjeva
curl "https://api.procurize.com/security/report/directory-files?id=00000000-0000-0000-0000-000000000006" -o directory-reports.zip
Odgovor
- Content-Type:
application/zip
Dohvaćanje izvještaja iz SonarQube#
Učitava najnovije podatke sigurnosnih izvještaja za proizvod iz SonarQube usluge u Procurize. Usluga dohvaća najnovije podatke o problemima iz SonarQube‑a, pretvara ih u JSON prikaze najnovijih verzija OWASP Top 10 i CWE Top 25 izvještaja i vraća ih u odgovoru.
Krajnja točka
POST /security/reports/fetch
Autentifikacija
Ova krajnja točka zahtijeva API token, proslijeđen u zaglavlju X-API-Key. Za detalje o generiranju i korištenju tokena, pogledajte API tokeni.
Parametri upita
Izvor SonarQube‑a odabire se na jedan od dva načina:
- Po projektu — proslijedite
project(ID ili alias projekta — vidi Identifikatori i aliasi). Nemojte proslijeditiurlilikey. - Po SonarQube usluzi — proslijedite
url(URL SonarQube usluge) ikey(ključ SonarQube projekta) zajedno. Nemojte proslijeditiproject.
Primjer zahtjeva
Dohvatite izvještaj za projekt po njegovom aliasu:
curl -X POST "https://api.procurize.com/security/reports/fetch?project=aspose-imaging-net" \
-H "X-API-Key: YOUR_API_TOKEN"
Dohvatite izvještaj izravno iz SonarQube usluge:
curl -X POST "https://api.procurize.com/security/reports/fetch?url=https://sonarqube.example.com&key=my-project-key" \
-H "X-API-Key: YOUR_API_TOKEN"
Primjer odgovora
{
"Owasp10_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
},
"Cwe25_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
}
}
Odgovor je koristan u pipeline‑ovima izgradnje kako bi se odlučilo zaustaviti li izgradnju kada se otkriju ranjivosti u javnim formatima sigurnosnih izvještaja.
Napomene
- Učitavanje izvještaja zahtijeva osobnu dozvolu za proizvod kojem pripadaju izvještaji. Ako nemate ovu dozvolu, pošaljite zahtjev svejedno: platforma vraća
403 Forbiddeni automatski obavještava administratore platforme, koji pregledavaju zahtjev i obavještavaju vas o odluci. - Nije svaka SonarQube usluga registrirana na Procurize platformi. Za registraciju nove usluge, kontaktirajte vašeg administratora platforme; potreban je administratorski token za tu uslugu.
Obrada pogrešaka#
API koristi standardne HTTP statusne kodove.
200 OK: Zahtjev uspješan204 No Content: Izvještaj ne postoji400 Bad Request: Neispravni parametri ili neispravan zahtjev401 Unauthorized: Nedostaje ili je neispravan API token403 Forbidden: Pristup odbijen (npr. nedostaje dozvola za proizvod)500 Internal Server Error: Neočekivana greška na poslužitelju
Odgovori na pogreške uključuju strojno čitljiv kod pogreške i poruku za čovjeka.
