SonarQube-rapporter API och Webhooks

Denna artikel beskriver hur man programatiskt får åtkomst till SonarQube‑säkerhetsrapporter som lagras i Procurize‑plattformen. Den täcker REST‑API‑et för att lista och hämta rapporter, ladda ner rapportarkiv samt prenumerera på webhook‑notifikationer när nya rapporter tas in.

Översikt

SonarQube‑rapporter‑submodulen låter organisationer centralt lagra och hantera säkerhets‑ och kodkvalitetsrapporter som genereras av SonarQube. Procurize‑plattformen exponerar dessa data via:

  • Ett REST‑API för att hämta metadata om lagrade rapporter
  • En endpoint för att ladda ner rapportartefakter som ZIP‑arkiv
  • Webhooks för när‑nära‑realtime‑notifikationer när nya rapporter blir tillgängliga

Dessa funktioner möjliggör integrationer med CI/CD‑pipelines, GRC‑system, interna instrumentpaneler och tredjepartsverktyg för riskhantering.

Autentisering och Auktorisation

Alla API‑förfrågningar som beskrivs i den här artikeln kräver ingen autentisering.

Organisations‑ID

Ett organisations‑ID krävs för alla förfrågningar som beskrivs här.
Du kan hitta det i organisationens inställningspanelhttps://dashboard.procurize.ai.
Observera att åtkomst till inställningspanelen kräver behörighet, och åtkomst till organisationens inställningspanel kräver en användarroll på minst Administratör i den organisationen.

Kopiera ID‑knapp

Bas‑URL

Alla REST‑API‑endpoints tillhandahålls under följande bas‑URL:

https://api.procurize.com

SonarQube‑rapporter REST API

Lista rapporter

Hämtar en paginerad lista över SonarQube‑säkerhetsrapporter som lagras i plattformen.

Endpoint

GET /security/report/list

Query Parameters

  • org (required): Organisations‑ID.
  • version (optional): Den exakta versionen av produkterna i Semantic Versioning‑format.
  • minver (optional): Minimum version av produkterna i Semantic Versioning‑format.
  • maxver (optional): Maximum version av produkterna i Semantic Versioning‑format.

Observera att minst en av parametrarna version, minver eller maxver krävs för förfrågan.

Request Example

curl "https://api.procurize.com/security/report/list?org=00000000-0000-0000-0000-000000000001&version=1.0"

Response Example

{
  "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"
    }
  ]
}

Ladda ner rapportarkiv

Laddar ner ett ZIP‑arkiv som innehåller hela SonarQube‑rapportartefakterna. Arkivet inkluderar HTML‑ och PDF‑rapporter.

Endpoint

GET /security/report/files
  • org (required): Organisations‑ID.
  • reports (required): Array med rapport‑ID:n.

Request Example

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"

Response

  • Innehållstyp: application/zip
  • Svarsbody innehåller den binära ZIP‑filen

Klienter bör strömma svaret och spara det på disk.

Felhantering

API‑et använder standard‑HTTP‑statuskoder.

  • 200 OK: Förfrågan lyckades
  • 204 No Content: Rapporten finns inte
  • 400 Bad Request: Ogiltiga parametrar eller felaktig förfrågan
  • 500 Internal Server Error: Oväntat serverfel

Felrespons inkluderar en maskinläsbar felkod och ett mänskligt läsbart meddelande.

Webhooks

Procurize‑webhooks låter externa system få notifikationer när nya SonarQube‑rapporter tas in eller uppdateras.

Konfigurera webhooks

Webhooks kan läggas till eller redigeras i organisationens inställningspanel, avsnittet Security reportshttps://dashboard.procurize.ai.
Observera att åtkomst till inställningspanelen kräver behörighet, och åtkomst till organisationens inställningspanel kräver en användarroll på minst Administratör i den organisationen.

Webhooks‑redigerare

För att testa webhooks kan du använda populära onlinetjänster såsom https://webhook-test.com

Webhook‑payload

Webhook‑händelser levereras som HTTP POST‑förfrågningar med en JSON‑payload.

Example Payload

{
  "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"
    }
  ]
}

Webhook‑säkerhet

För att säkerställa äkthet inkluderar webhook‑förfrågningar ett signatur‑header som genereras med en delad hemlighet.

  • Signaturen beräknas med HMAC‑SHA256
  • Klienter bör verifiera signaturen innan de bearbetar payloaden

Detta förhindrar obehöriga eller förfalskade webhook‑leveranser.

Leverans och omförsök

  • Webhooks förväntar sig ett 2xx‑svar för att anses levereras framgångsrikt
  • Misslyckade leveranser försöks automatiskt igen varje timme.
  • Händelser kan levereras flera gånger; konsumenter bör implementera idempotent bearbetning

Vanliga användningsfall

  • Automatisk import av SonarQube‑fynd till interna säkerhetsdashboards
  • Aktivera compliance‑arbetsflöden när kvalitetsgrindar misslyckas
  • Arkivera säkerhetsrapporter för revisioner och leverantörsriskgranskningar
  • Håll tredjepartssystem synkroniserade med den senaste kodsäkerhetsstatusen
till toppen
Välj språk