API گزارش‌های SonarQube#

این مقاله توضیح می‌دهد چگونه به‌صورت برنامه‌نویسی به گزارش‌های امنیتی SonarQube که در پلتفرم Procurise ذخیره شده‌اند دسترسی پیدا کنیم. در این مقاله به REST API برای فهرست‌کردن، بازیابی گزارش‌ها و دانلود آرشیوهای گزارش می‌پردازیم.

مرور کلی#

ماژول فرعی گزارش‌های SonarQube به سازمان‌ها امکان می‌دهد گزارش‌های امنیتی و کیفیت کد تولید شده توسط SonarQube را به‌صورت مرکزی ذخیره و مدیریت کنند. پلتفرم Procurise این داده‌ها را از طریق:

  • یک REST API برای بازیابی فراداده‌های گزارش‌های ذخیره‌شده
  • یک نقطه انتهایی برای دانلود artefactهای گزارش به‌صورت آرشیوهای ZIP

در دسترس قرار می‌دهد. این قابلیت‌ها یکپارچه‌سازی با خطوط لوله CI/CD، سیستم‌های GRC، داشبوردهای داخلی و ابزارهای مدیریت ریسک شخص ثالث را ممکن می‌سازند.

احراز هویت و اختیاردهی#

تمام درخواست‌های API که در این مقاله شرح داده شده‌اند نیازی به احراز هویت ندارند.

شناسه سازمان#

برای همهٔ درخواست‌های زیر نیاز به شناسه سازمان است. می‌توانید این شناسه را در پنل تنظیمات سازمان در آدرس https://dashboard.procurize.ai پیدا کنید. لطفاً توجه داشته باشید که دسترسی به پنل تنظیمات نیاز به اختیاردهی دارد و برای دسترسی به پنل تنظیمات سازمان باید نقش کاربری حداقل «مدیر» در آن سازمان داشته باشید.

دکمه کپی شناسه

URL پایه#

تمام نقاط انتهایی REST API تحت URL پایهٔ زیر سرو می‌شوند:

https://api.procurize.com

REST API گزارش‌های SonarQube#

فهرست گزارش‌ها#

یک فهرست صفحه‌بندی‌شده از گزارش‌های امنیتی SonarQube ذخیره‌شده در پلتفرم را بر می‌گرداند.

نقطه انتهایی

GET /security/report/list

پارامترهای پرس‌وجو

  • org (الزامی): شناسهٔ سازمان.
  • version (اختیاری): نسخهٔ دقیق محصولات با فرمت Semantic Versioning.
  • minver (اختیاری): حداقل نسخهٔ محصولات با فرمت Semantic Versioning.
  • maxver (اختیاری): حداکثر نسخهٔ محصولات با فرمت Semantic Versioning.

لطفاً توجه داشته باشید که حداقل یکی از پارامترهای version، minver یا maxver برای درخواست ضروری است.

مثال درخواست

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

مثال پاسخ

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

دانلود آرشیو گزارش#

یک آرشیو ZIP شامل artefactهای کامل گزارش SonarQube را دانلود می‌کند. این آرشیو شامل گزارش‌های HTML و PDF است.

نقطه انتهایی

GET /security/report/files
  • org (الزامی): شناسهٔ سازمان.
  • reports (الزامی): آرایه‌ای از شناسه‌های گزارش.

مثال درخواست

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"

پاسخ

  • Content‑Type: application/zip
  • بدنهٔ پاسخ شامل فایل باینری ZIP است

کلاینت‌ها باید پاسخ را به‌صورت جریان (stream) دریافت کرده و بر روی دیسک ذخیره کنند.

مدیریت خطا#

API از کدهای وضعیت استاندارد HTTP استفاده می‌کند.

  • 200 OK: درخواست موفق
  • 204 No Content: گزارش موجود نیست
  • 400 Bad Request: پارامترهای نامعتبر یا درخواست خراب
  • 500 Internal Server Error: خطای غیرمنتظره سرور

پاسخ‌های خطا حاوی کد خطای قابل پردازش توسط ماشین و پیام قابل خواندن برای انسان هستند.

همچنین ببینید:#

مقالات مرتبط#

گزارش‌های امنیتی چیست؟

مخزن گزارش‌های امنیتی

نحوه پیکربندی گزارش‌های امنیتی

به بالا
انتخاب زبان