API Laporan SonarQube dan Webhooks

Artikel ini menerangkan cara mengakses laporan keselamatan SonarQube secara programatik yang disimpan dalam platform Procurize. Ia merangkumi API REST untuk menyenaraikan dan mendapatkan laporan, memuat turun arkib laporan, serta melanggan notifikasi webhook apabila laporan baru dimasukkan.

Gambaran Keseluruhan

Submodul Laporan SonarQube membolehkan organisasi menyimpan dan mengurus laporan keselamatan serta kualiti kod yang dijana oleh SonarQube secara berpusat. Platform Procurize memperlihatkan data ini melalui:

  • API REST untuk mendapatkan metadata tentang laporan yang disimpan
  • Endpoint untuk memuat turun artifak laporan sebagai arkib ZIP
  • Webhooks untuk notifikasi hampir masa nyata apabila laporan baru tersedia

Keupayaan ini membolehkan integrasi dengan pipeline CI/CD, sistem GRC, papan pemuka dalaman, dan alat pengurusan risiko pihak ketiga.

Pengesahan dan Kebenaran

Semua permintaan API yang diterangkan dalam artikel ini tidak memerlukan pengesahan.

ID Organisasi

ID organisasi diperlukan untuk semua permintaan yang diterangkan di sini.
Anda boleh menemuinya dalam panel tetapan Organisasi di https://dashboard.procurize.ai.
Sila ambil perhatian bahawa akses ke panel tetapan memerlukan kebenaran, dan akses ke panel tetapan organisasi memerlukan peranan pengguna sekurang‑kurangnya Pentadbir dalam organisasi tersebut.

butang Salin ID

URL Asas

Semua endpoint API REST disampaikan di bawah URL asas berikut:

https://api.procurize.com

API REST Laporan SonarQube

Senaraikan Laporan

Mendapatkan senarai berhalaman laporan keselamatan SonarQube yang disimpan dalam platform.

Endpoint

GET /security/report/list

Parameter Kueri

  • org (required): ID Organisasi.
  • version (optional): Versi tepat produk dalam format Semantic Versioning.
  • minver (optional): Versi minimum produk dalam format Semantic Versioning.
  • maxver (optional): Versi maksimum produk dalam format Semantic Versioning.

Sila ambil perhatian bahawa sekurang‑kurangnya satu daripada parameter version, minver atau maxver diperlukan untuk permintaan.

Contoh Permintaan

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

Contoh Respons

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

Muat Turun Arkib Laporan

Memuat turun arkib ZIP yang mengandungi artifak laporan SonarQube penuh. Arkib tersebut termasuk laporan HTML dan PDF.

Endpoint

GET /security/report/files
  • org (required): ID Organisasi.
  • reports (required): Array ID laporan.

Contoh Permintaan

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"

Respons

  • Content-Type: application/zip
  • Badan respons mengandungi fail ZIP binari

Klien seharusnya menstrim respons dan menyimpannya ke cakera.

Pengendalian Ralat

API menggunakan kod status HTTP standard.

  • 200 OK: Permintaan berjaya
  • 204 No Content: Laporan tidak wujud
  • 400 Bad Request: Parameter tidak sah atau permintaan rosak
  • 500 Internal Server Error: Ralat pelayan tidak dijangka

Respons ralat termasuk kod ralat mesin dan mesej yang dapat dibaca manusia.

Webhooks

Webhooks Procurize membolehkan sistem luar menerima notifikasi apabila laporan SonarQube baru dimasukkan atau dikemas kini.

Mengkonfigurasi webhook

Webhooks boleh ditambah atau disunting dalam panel tetapan Organisasi, bahagian Laporan keselamatan di https://dashboard.procurize.ai.
Sila ambil perhatian bahawa akses ke panel tetapan memerlukan kebenaran, dan akses ke panel tetapan organisasi memerlukan peranan pengguna sekurang‑kurangnya Pentadbir dalam organisasi tersebut.

penyunting Webhooks

Untuk memeriksa webhook, anda boleh menggunakan perkhidmatan dalam talian popular seperti https://webhook-test.com

Muatan Webhook

Acara webhook dihantar sebagai permintaan HTTP POST dengan muatan JSON.

Contoh Muatan

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

Keselamatan Webhook

Untuk memastikan keaslian, permintaan webhook termasuk tajuk tandatangan yang dijana menggunakan rahsia bersama.

  • Tandatangan dikira menggunakan HMAC‑SHA256
  • Klien harus mengesahkan tandatangan sebelum memproses muatan.

Ini menghalang penghantaran webhook yang tidak sah atau dipalsukan.

Penghantaran dan Percubaan Semula

  • Webhooks mengharapkan respons 2xx untuk dianggap berjaya dihantar
  • Penghantaran yang gagal akan dicuba semula secara automatik setiap jam.
  • Acara mungkin dihantar lebih daripada sekali; pengguna harus melaksanakan pemprosesan idempotent.

Kes Penggunaan Biasa

  • Secara automatik masukkan penemuan SonarQube ke dalam papan pemuka keselamatan dalaman
  • Picu aliran kerja pematuhan apabila pintu kualiti gagal
  • Arkibkan laporan keselamatan untuk audit dan semakan risiko vendor
  • Pastikan sistem pihak ketiga diselaraskan dengan postur keselamatan kod terkini
ke atas
Pilih bahasa