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.

Gumb za kopiranje ID‑a

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šan
  • 204 No Content: Izvještaj ne postoji
  • 400 Bad Request: Neispravni parametri ili neispravan zahtjev
  • 500 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.

Uređivač web hookova

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 2xx odgovor 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
na vrh
Odaberite jezik