SonarQube Raporları API ve Webhook’lar

Bu makale, Procurize platformunda depolanan SonarQube güvenlik raporlarına programlı olarak nasıl erişileceğini açıklar. Raporları listeleme ve alma, rapor arşivlerini indirme ve yeni raporlar alındığında webhook bildirimlerine abone olma konularını kapsar.

Genel Bakış

SonarQube Raporları alt modülü, organizasyonların SonarQube tarafından oluşturulan güvenlik ve kod kalitesi raporlarını merkezi olarak depolamasını ve yönetmesini sağlar. Procurize platformu bu verileri şu şekilde sunar:

  • Depolanan raporların meta verilerini almak için bir REST API
  • Rapor artefaktlarını ZIP arşivleri olarak indirmek için bir uç nokta
  • Yeni raporlar kullanılabilir olduğunda neredeyse gerçek zamanlı bildirimler için webhook’lar

Bu yetenekler, CI/CD boru hatları, GRC sistemleri, dahili gösterge panelleri ve üçüncü taraf risk yönetimi araçlarıyla entegrasyonları mümkün kılar.

Kimlik Doğrulama ve Yetkilendirme

Bu makalede açıklanan tüm API istekleri kimlik doğrulama gerektirmez.

Organizasyon Kimliği

Tüm istekler için bir organizasyon kimliği gereklidir. Bunu Organizasyonun ayarlar panelinde https://dashboard.procurize.ai adresinde bulabilirsiniz.
Lütfen ayarlar paneline erişimin yetkilendirme gerektirdiğini ve organizasyonun ayarlar paneline erişimin, o organizasyonda en az Yönetici rolüne sahip bir kullanıcı gerektirdiğini unutmayın.

Kimliği Kopyala düğmesi

Temel URL

Tüm REST API uç noktaları aşağıdaki temel URL altında hizmet verir:

https://api.procurize.com

SonarQube Raporları REST API

Raporları Listele

Platformda depolanan SonarQube güvenlik raporlarının sayfalı bir listesini alır.

Endpoint

GET /security/report/list

Query Parameters

  • org (gerekli): Organizasyon kimliği.
  • version (opsiyonel): Ürünlerin Semantik Versiyonlama formatındaki kesin sürümü.
  • minver (opsiyonel): Ürünlerin Semantik Versiyonlama formatındaki minimum sürümü.
  • maxver (opsiyonel): Ürünlerin Semantik Versiyonlama formatındaki maksimum sürümü.

Lütfen version, minver veya maxver parametrelerinden en az birinin istek için gerekli olduğunu unutmayın.

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

Rapor Arşivini İndir

Tam SonarQube rapor artefaktlarını içeren bir ZIP arşivi indirir. Arşiv HTML ve PDF raporlarını içerir.

Endpoint

GET /security/report/files
  • org (gerekli): Organizasyon kimliği.
  • reports (gerekli): Rapor kimliklerini içeren dizi.

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

  • Content-Type: application/zip
  • Yanıt gövdesi ikili ZIP dosyasını içerir

İstemciler yanıtı akış olarak almalı ve diske kaydetmelidir.

Hata İşleme

API, standart HTTP durum kodlarını kullanır.

  • 200 OK: İstek başarılı
  • 204 No Content: Rapor mevcut değil
  • 400 Bad Request: Geçersiz parametreler veya hatalı istek
  • 500 Internal Server Error: Beklenmeyen sunucu hatası

Hata yanıtları, makine tarafından okunabilir bir hata kodu ve insan tarafından okunabilir bir mesaj içerir.

Webhook’lar

Procurize webhook’ları, dış sistemlerin yeni SonarQube raporları alındığında veya güncellendiğinde bildirim almasını sağlar.

Webhook’ları Yapılandırma

Webhook’lar, Organizasyonun ayarlar panelinde, Güvenlik raporları bölümünde https://dashboard.procurize.ai adresinde eklenebilir veya düzenlenebilir.
Lütfen ayarlar paneline erişimin yetkilendirme gerektirdiğini ve organizasyonun ayarlar paneline erişimin, o organizasyonda en az Yönetici rolüne sahip bir kullanıcı gerektirdiğini unutmayın.

Webhook düzenleyici

Webhook’ları kontrol etmek için https://webhook-test.com gibi popüler çevrimiçi hizmetleri kullanabilirsiniz.

Webhook Yükü

Webhook olayları, JSON yükü ile HTTP POST istekleri olarak gönderilir.

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 Güvenliği

Kimlik doğruluğunu sağlamak için webhook istekleri, ortak bir gizli anahtar ile oluşturulan bir imza başlığı içerir.

  • İmza HMAC-SHA256 kullanılarak hesaplanır
  • İstemciler, yükü işlemeye başlamadan önce imzayı doğrulamalıdır

Bu, yetkisiz veya sahte webhook teslimatlarını önler.

Teslimat ve Yeniden Denemeler

  • Webhook’lar, başarılı teslimat olarak kabul edilmek için 2xx yanıt bekler
  • Başarısız teslimatlar otomatik olarak saatlik olarak tekrar denenir.
  • Olaylar birden fazla kez teslim edilebilir; tüketiciler idempotent işleme uygulamalıdır

Tipik Kullanım Durumları

  • SonarQube bulgularını otomatik olarak iç güvenlik gösterge panellerine al
  • Kalite geçitleri başarısız olduğunda uyumluluk iş akışlarını tetikle
  • Denetimler ve tedarikçi risk incelemeleri için güvenlik raporlarını arşivle
  • Üçüncü taraf sistemleri en son kod güvenlik durumu ile senkronize tut
En Üste
Dil seç