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.

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 berjaya204 No Content: Laporan tidak wujud400 Bad Request: Parameter tidak sah atau permintaan rosak500 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.

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
2xxuntuk 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
