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čkaMetodaSvrha
/security/report/listGETPopis metapodataka izvještaja za odabrani opseg i verziju.
/security/report/filesGETPreuzimanje odabranih izvještaja kao ZIP arhivu.
/security/report/htmlGETDobijanje pojedinačnog izvještaja u HTML formatu.
/security/report/pdfGETDobijanje pojedinačnog izvještaja u PDF formatu.
/security/report/zipGETDobijanje pojedinačnog izvještaja kao ZIP arhivu.
/security/report/project-filesGETPreuzimanje svih izvještaja projekta kao ZIP arhivu.
/security/report/directory-filesGETPreuzimanje svih izvještaja grupe projekata (direktorija) kao ZIP arhivu.
/security/reports/fetchPOSTDohvać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.

Gumb za kopiranje ID-a

Identifikatori i aliasi#

Parametri opsega prihvaćaju ili ID entiteta (UUID) ili čitljiviji alias. Aliasovi olakšavaju čitanje zahtjeva i stabilni su kroz okoline.

ParametarPrihvaćaPrimjeri aliasa
orgID organizacije ili aliasaspose, groupdocs
directoryID direktorija (grupe projekata) ili aliasaspose-imaging, groupdocs-annotation
projectID projekta ili aliasaspose-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. aspose ili groupdocs). Najširi opseg.
  • directory (opcionalno): ID direktorija (grupe projekata) ili alias (npr. aspose-imaging ili groupdocs-annotation). Užeg opseg.
  • project (opcionalno): ID projekta ili alias (npr. aspose-imaging-net ili groupdocs-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 10 ili CWE 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 je A najbolja).

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. aspose ili groupdocs).
  • 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 su OWASP Top 10 i CWE Top 25.
  • rv (obavezno): Verzija izvještaja — godina standardne edicije, npr. 2025 za OWASP Top 10 ili 2024 za 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 s project (ID ili alias projekta) ili org (ID ili alias organizacije). Nemojte proslijediti version u ovom načinu.
  • Po verziji projekta — proslijedite project (ID ili alias projekta, npr. aspose-imaging-net ili groupdocs-annotation-java) i version (verzija projekta). Parametar org se 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 na true da se HTML vrati kao preuzimanje datoteke (Content-Disposition: attachment). Ako se izostavi ili je false, 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 su OWASP Top 10 i CWE 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 su OWASP Top 10 i CWE 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 proslijediti url ili key.
  • Po SonarQube usluzi — proslijedite url (URL SonarQube usluge) i key (ključ SonarQube projekta) zajedno. Nemojte proslijediti project.

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 Forbidden i 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šan
  • 204 No Content: Izvještaj ne postoji
  • 400 Bad Request: Neispravni parametri ili neispravan zahtjev
  • 401 Unauthorized: Nedostaje ili je neispravan API token
  • 403 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.

Također pogledajte:#

Povezani članci#

Što su sigurnosni izvještaji?

Repozitorij sigurnosnih izvještaja

Kako konfigurirati sigurnosne izvještaje

na vrh
Odaberite jezik