SonarQube रिपोर्ट API#

यह लेख बताता है कि कैसे प्रोग्रामेटिक रूप से Procurize प्लेटफ़ॉर्म में संग्रहीत SonarQube सुरक्षा रिपोर्ट तक पहुँच प्राप्त की जा सकती है। यह रिपोर्ट सूचीबद्ध करने और उन्हें HTML, PDF, और ZIP फ़ॉर्मेट में डाउनलोड करने के लिए REST API को कवर करता है।

अवलोकन#

SonarQube रिपोर्ट सबमॉड्यूल संगठनों को SonarQube द्वारा उत्पन्न सुरक्षा और कोड गुणवत्ता रिपोर्ट को केंद्रीकृत रूप से संग्रहीत और प्रबंधित करने की सुविधा देता है। Procurize प्लेटफ़ॉर्म इस डेटा को एक सार्वजनिक REST API के माध्यम से उजागर करता है जो आपको सक्षम बनाता है:

  • किसी संगठन, प्रोजेक्ट समूह, या प्रोजेक्ट के लिए रिपोर्ट मेटाडेटा सूचीबद्ध करना
  • एकल रिपोर्ट को HTML, PDF, या ZIP फ़ॉर्मेट में डाउनलोड करना
  • चयनित रिपोर्टों को ZIP आर्काइव के रूप में डाउनलोड करना
  • किसी प्रोजेक्ट या प्रोजेक्ट समूह की सभी रिपोर्टों को ZIP आर्काइव के रूप में डाउनलोड करना
  • SonarQube सेवा से सीधे नवीनतम OWASP टॉप 10 और CWE टॉप 25 रिपोर्ट प्राप्त करना

इन क्षमताओं से CI/CD पाइपलाइन, GRC सिस्टम, आंतरिक डैशबोर्ड, और थर्ड‑पार्टी जोखिम प्रबंधन टूल्स के साथ एकीकरण संभव होता है।

एंडपॉइंट्स#

एंडपॉइंटविधिउद्देश्य
/security/report/listGETचयनित स्कोप और संस्करण के लिए रिपोर्ट मेटाडेटा सूचीबद्ध करें।
/security/report/filesGETचयनित रिपोर्टों को ZIP आर्काइव के रूप में डाउनलोड करें।
/security/report/htmlGETएकल रिपोर्ट को HTML के रूप में प्राप्त करें।
/security/report/pdfGETएकल रिपोर्ट को PDF के रूप में प्राप्त करें।
/security/report/zipGETएकल रिपोर्ट को ZIP आर्काइव के रूप में प्राप्त करें।
/security/report/project-filesGETकिसी प्रोजेक्ट की सभी रिपोर्टों को ZIP आर्काइव के रूप में डाउनलोड करें।
/security/report/directory-filesGETकिसी प्रोजेक्ट समूह (डायरेक्टरी) की सभी रिपोर्टों को ZIP आर्काइव के रूप में डाउनलोड करें।
/security/reports/fetchPOSTSonarQube सेवा से नवीनतम रिपोर्ट प्राप्त करें।

प्रमाणीकरण और प्राधिकरण#

इस लेख में वर्णित रिपोर्ट सूचीबद्ध करने और डाउनलोड करने वाले एंडपॉइंट्स को प्रमाणीकरण की आवश्यकता नहीं होती।

POST /security/reports/fetch एंडपॉइंट को API टोकन के साथ प्रमाणीकरण की आवश्यकता होती है — विवरण के लिए देखें API Tokens।

संगठन ID#

अधिकांश अनुरोधों के लिए एक संगठन पहचानकर्ता आवश्यक है। आप या तो संगठन ID (एक UUID) या उसका उपनाम पास कर सकते हैं — देखें Identifiers and Aliases। इसे आप संगठन के सेटिंग्स पैनल में https://dashboard.procurize.ai पर पा सकते हैं।
कृपया ध्यान दें कि सेटिंग्स पैनल तक पहुँच के लिए प्राधिकरण आवश्यक है, और संगठन के सेटिंग्स पैनल तक पहुँच के लिए उस संगठन में कम से कम एडमिनिस्ट्रेटर भूमिका आवश्यक है।

ID कॉपी बटन

पहचानकर्ता और उपनाम#

स्कोप पैरामीटर या तो एंटिटी ID (एक UUID) या मानव‑पठनीय उपनाम स्वीकार करते हैं। उपनाम अनुरोधों को पढ़ने में आसान बनाते हैं और विभिन्न वातावरणों में स्थिर रहते हैं।

पैरामीटरस्वीकार करता हैउदाहरण उपनाम
orgसंगठन ID या उपनामaspose, groupdocs
directoryडायरेक्टरी (प्रोजेक्ट समूह) ID या उपनामaspose-imaging, groupdocs-annotation
projectप्रोजेक्ट ID या उपनामaspose-imaging-net, groupdocs-annotation-java

उदाहरण के लिए, निम्न दो अनुरोध समान हैं:

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

नोट: बुल्क डाउनलोड एंडपॉइंट्स के id पैरामीटर के लिए उपनाम समर्थित नहीं हैं। GET /security/report/project-files और GET /security/report/directory-files को कॉल करते समय डायरेक्टरी या प्रोजेक्ट UUID पास करें।

बेस URL#

सभी REST API एंडपॉइंट्स निम्न बेस URL के तहत सर्व किए जाते हैं:

https://api.procurize.com

SonarQube रिपोर्ट REST API#

रिपोर्ट सूचीबद्ध करें#

चयनित स्कोप और संस्करण के लिए उपलब्ध सुरक्षा रिपोर्टों को उनके फ़ाइल कंटेंट के बिना लौटाता है। इस एंडपॉइंट का उपयोग उन रिपोर्ट IDs को खोजने के लिए किया जाता है जिन्हें डाउनलोड एंडपॉइंट्स को पास किया जा सकता है।

Endpoint

GET /security/report/list

क्वेरी पैरामीटर

  • org (वैकल्पिक): संगठन ID या उपनाम (उदाहरण: aspose या groupdocs)। सबसे व्यापक स्कोप।
  • directory (वैकल्पिक): डायरेक्टरी (प्रोजेक्ट समूह) ID या उपनाम (उदाहरण: aspose-imaging या groupdocs-annotation)। संकीर्ण स्कोप।
  • project (वैकल्पिक): प्रोजेक्ट ID या उपनाम (उदाहरण: aspose-imaging-net या groupdocs-annotation-java)। सबसे संकीर्ण स्कोप।
  • version (वैकल्पिक): सटीक प्रोजेक्ट संस्करण।
  • minver (वैकल्पिक): न्यूनतम प्रोजेक्ट संस्करण।
  • maxver (वैकल्पिक): अधिकतम प्रोजेक्ट संस्करण।

कम से कम एक स्कोप पैरामीटर org, directory, या project आवश्यक है। स्कोप को निम्न क्रम में प्राथमिकता दी जाती है: यदि project निर्दिष्ट है, तो केवल उस प्रोजेक्ट को खोजा जाता है; अन्यथा यदि directory निर्दिष्ट है, तो पूरे प्रोजेक्ट समूह को खोजा जाता है; अन्यथा पूरे संगठन (org) को खोजा जाता है। जब org को project या directory के साथ निर्दिष्ट किया जाता है, तो लक्ष्य को अतिरिक्त रूप से सत्यापित किया जाता है कि वह उस संगठन से संबंधित है।

कम से कम एक version, minver, या maxver आवश्यक है। यदि version निर्दिष्ट है, तो minver और maxver को अनदेखा किया जाता है।

Request Example

curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"

उपनाम द्वारा प्रोजेक्ट समूह या प्रोजेक्ट को स्कोप करना:

curl "https://api.procurize.com/security/report/list?directory=aspose-imaging&minver=1.0&maxver=2.0"

curl "https://api.procurize.com/security/report/list?project=aspose-imaging-net&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"
    }
  ]
}

प्रतिक्रिया फ़ील्ड

  • organizationId: वह संगठन जिससे रिपोर्टें संबंधित हैं।
  • reports[].id: विशिष्ट रिपोर्ट ID। इसे डाउनलोड एंडपॉइंट्स को पास करें।
  • reports[].projectName: उत्पाद का प्रदर्शित नाम।
  • reports[].projectVersion: उत्पाद का संस्करण।
  • reports[].reportType: रिपोर्ट प्रकार (OWASP Top 10 या CWE Top 25)।
  • reports[].reportVersion: रिपोर्ट मानक का संस्करण (वर्ष)।
  • reports[].date: रिपोर्ट उत्पन्न होने की तिथि।
  • reports[].uploadDate: रिपोर्ट को Procurize पर अपलोड करने की तिथि।
  • reports[].vulnerabilitiesCount: पाए गए कमजोरियों की संख्या।
  • reports[].securityRating: समग्र सुरक्षा रेटिंग (A–E, जहाँ A सबसे अच्छा है)।

ID द्वारा रिपोर्ट डाउनलोड करें#

चयनित रिपोर्टों को शामिल करने वाला एक ZIP आर्काइव डाउनलोड करता है। प्रत्येक रिपोर्ट HTML और PDF दोनों फ़ॉर्मेट में शामिल होती है।

Endpoint

GET /security/report/files

क्वेरी पैरामीटर

  • org (आवश्यक): संगठन ID या उपनाम (उदाहरण: aspose या groupdocs)।
  • reports (आवश्यक): शामिल करने के लिए रिपोर्ट IDs। कई रिपोर्टों को शामिल करने के लिए पैरामीटर को दोहराएँ।

Request Example

curl "https://api.procurize.com/security/report/files?org=aspose&reports=00000000-0000-0000-0000-000000000002&reports=00000000-0000-0000-0000-000000000003" -o reports.zip

Response

  • Content-Type: application/zip
  • प्रतिक्रिया बॉडी में बाइनरी ZIP फ़ाइल होती है।

क्लाइंट को प्रतिक्रिया को स्ट्रीम करके डिस्क पर सहेजना चाहिए।

एकल रिपोर्ट के साथ काम करना#

/security/report/html, /security/report/pdf, और /security/report/zip एंडपॉइंट्स एक विशिष्ट रिपोर्ट लौटाते हैं और समान चयन नियम साझा करते हैं।

रिपोर्ट चयन#

रिपोर्ट प्रकार और संस्करण हमेशा आवश्यक होते हैं:

  • rt (आवश्यक): रिपोर्ट प्रकार। समर्थित मान OWASP Top 10 और CWE Top 25 हैं।
  • rv (आवश्यक): रिपोर्ट संस्करण — मानक संस्करण का वर्ष, उदाहरण 2025 (OWASP Top 10) या 2024 (CWE Top 25)।

वास्तविक रिपोर्ट दो तरीकों में से एक से चुनी जाती है:

  • रिपोर्ट ID द्वारा — id (रिपोर्ट ID) को project (प्रोजेक्ट ID या उपनाम) या org (संगठन ID या उपनाम) के साथ पास करें। इस मोड में version पास न करें।
  • प्रोजेक्ट संस्करण द्वारा — project (प्रोजेक्ट ID या उपनाम, उदाहरण aspose-imaging-net या groupdocs-annotation-java) और version (प्रोजेक्ट संस्करण) पास करें। इस मोड में org पैरामीटर उपयोग नहीं होता।

जब project और org दोनों निर्दिष्ट हों, तो org को अनदेखा किया जाता है।

रिपोर्ट को HTML के रूप में प्राप्त करें#

एकल रिपोर्ट को HTML पेज के रूप में रेंडर करता है, या इसे डाउनलोड योग्य HTML फ़ाइल के रूप में लौटाता है।

Endpoint

GET /security/report/html

क्वेरी पैरामीटर

  • rt (आवश्यक): रिपोर्ट प्रकार।
  • rv (आवश्यक): रिपोर्ट संस्करण।
  • रिपोर्ट चयन पैरामीटर: देखें रिपोर्ट चयन।
  • download (वैकल्पिक): यदि true सेट किया जाए तो HTML को फ़ाइल डाउनलोड (Content-Disposition: attachment) के रूप में लौटाया जाता है। यदि छोड़ा जाए या false हो, तो रिपोर्ट इनलाइन लौटाई जाती है।

Request Example

curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&id=00000000-0000-0000-0000-000000000004&project=aspose-imaging-net"

इनलाइन रेंडर करने के बजाय HTML फ़ाइल डाउनलोड करने के लिए:

curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&project=aspose-imaging-net&version=1.0&download=true" -o report.html

Response

  • Content-Type: text/html

रिपोर्ट को PDF के रूप में प्राप्त करें#

एकल रिपोर्ट को PDF दस्तावेज़ के रूप में लौटाता है।

Endpoint

GET /security/report/pdf

क्वेरी पैरामीटर

  • rt (आवश्यक): रिपोर्ट प्रकार।
  • rv (आवश्यक): रिपोर्ट संस्करण।
  • रिपोर्ट चयन पैरामीटर: देखें रिपोर्ट चयन।

Request Example

curl "https://api.procurize.com/security/report/pdf?rt=CWE+Top+25&rv=2024&project=aspose-imaging-net&version=1.0" -o report.pdf

Response

  • Content-Type: application/pdf

रिपोर्ट को ZIP के रूप में प्राप्त करें#

एकल रिपोर्ट को ZIP आर्काइव के रूप में लौटाता है जिसमें HTML और PDF दोनों संस्करण होते हैं।

Endpoint

GET /security/report/zip

क्वेरी पैरामीटर

  • rt (आवश्यक): रिपोर्ट प्रकार।
  • rv (आवश्यक): रिपोर्ट संस्करण।
  • रिपोर्ट चयन पैरामीटर: देखें रिपोर्ट चयन।

Request Example

curl "https://api.procurize.com/security/report/zip?rt=CWE+Top+25&rv=2024&id=00000000-0000-0000-0000-000000000004&org=groupdocs" -o report.zip

Response

  • Content-Type: application/zip

एक प्रोजेक्ट की सभी रिपोर्ट डाउनलोड करें#

निर्दिष्ट प्रोजेक्ट की सभी रिपोर्टों को ZIP आर्काइव में डाउनलोड करता है, जिसमें HTML और PDF दोनों फ़ॉर्मेट शामिल होते हैं।

Endpoint

GET /security/report/project-files

क्वेरी पैरामीटर

  • id (आवश्यक): प्रोजेक्ट ID। उपनाम समर्थित नहीं हैं; प्रोजेक्ट UUID पास करें।
  • rt (वैकल्पिक): रिपोर्ट प्रकार द्वारा फ़िल्टर। समर्थित मान OWASP Top 10 और CWE Top 25 हैं।
  • rv (वैकल्पिक): रिपोर्ट संस्करण (वर्ष) द्वारा फ़िल्टर।
  • version (वैकल्पिक): प्रोजेक्ट संस्करण द्वारा फ़िल्टर।

यदि कोई फ़िल्टर नहीं दिया गया, तो प्रोजेक्ट की सभी रिपोर्टें शामिल की जाती हैं। फ़िल्टर पैरामीटर को संयोजित किया जा सकता है और स्वतंत्र रूप से लागू होते हैं।

Request Example

curl "https://api.procurize.com/security/report/project-files?id=00000000-0000-0000-0000-000000000005" -o project-reports.zip

Response

  • Content-Type: application/zip

एक प्रोजेक्ट समूह की सभी रिपोर्ट डाउनलोड करें#

निर्दिष्ट डायरेक्टरी (प्रोजेक्ट समूह) के सभी प्रोजेक्टों की रिपोर्टों को ZIP आर्काइव में डाउनलोड करता है, जिसमें HTML और PDF दोनों फ़ॉर्मेट शामिल होते हैं।

Endpoint

GET /security/report/directory-files

क्वेरी पैरामीटर

  • id (आवश्यक): डायरेक्टरी (प्रोजेक्ट समूह) ID। उपनाम समर्थित नहीं हैं; डायरेक्टरी UUID पास करें।
  • rt (वैकल्पिक): रिपोर्ट प्रकार द्वारा फ़िल्टर। समर्थित मान OWASP Top 10 और CWE Top 25 हैं।
  • rv (वैकल्पिक): रिपोर्ट संस्करण (वर्ष) द्वारा फ़िल्टर।
  • version (वैकल्पिक): प्रोजेक्ट संस्करण द्वारा फ़िल्टर।

यदि कोई फ़िल्टर नहीं दिया गया, तो डायरेक्टरी के सभी प्रोजेक्टों की रिपोर्टें शामिल की जाती हैं। फ़िल्टर पैरामीटर को संयोजित किया जा सकता है और स्वतंत्र रूप से लागू होते हैं।

Request Example

curl "https://api.procurize.com/security/report/directory-files?id=00000000-0000-0000-0000-000000000006" -o directory-reports.zip

Response

  • Content-Type: application/zip

SonarQube से रिपोर्ट प्राप्त करें#

एक SonarQube सेवा से उत्पाद के लिए नवीनतम सुरक्षा रिपोर्ट डेटा को Procurize पर अपलोड करता है। सेवा SonarQube से नवीनतम इश्यू डेटा प्राप्त करती है, उसे OWASP टॉप 10 और CWE टॉप 25 रिपोर्टों के नवीनतम संस्करणों के JSON प्रतिनिधित्व में बदलती है, और उन्हें प्रतिक्रिया में लौटाती है।

Endpoint

POST /security/reports/fetch

Authentication

इस एंडपॉइंट को X-API-Key हेडर में पास किए गए API टोकन की आवश्यकता होती है। टोकन बनाने और उपयोग करने के विवरण के लिए देखें API Tokens।

क्वेरी पैरामीटर

SonarQube स्रोत को दो तरीकों में से एक से चुना जाता है:

  • प्रोजेक्ट द्वारा — project (प्रोजेक्ट ID या उपनाम — देखें Identifiers and Aliases) पास करें। url या key पास न करें।
  • SonarQube सेवा द्वारा — url (SonarQube सेवा URL) और key (SonarQube प्रोजेक्ट कुंजी) को साथ में पास करें। project पास न करें।

Request Example

उपनाम द्वारा प्रोजेक्ट की रिपोर्ट प्राप्त करें:

curl -X POST "https://api.procurize.com/security/reports/fetch?project=aspose-imaging-net" \
  -H "X-API-Key: YOUR_API_TOKEN"

सीधे SonarQube सेवा से रिपोर्ट प्राप्त करें:

curl -X POST "https://api.procurize.com/security/reports/fetch?url=https://sonarqube.example.com&key=my-project-key" \
  -H "X-API-Key: YOUR_API_TOKEN"

Response Example

{
  "Owasp10_2025": {
    "TOTAL_SECURITY_RATING": "A",
    "TOTAL_COUNT": 0,
    ...
  },
  "Cwe25_2025": {
    "TOTAL_SECURITY_RATING": "A",
    "TOTAL_COUNT": 0,
    ...
  }
}

यह प्रतिक्रिया रिलीज़ बिल्ड पाइपलाइन में उपयोगी होती है ताकि सार्वजनिक सुरक्षा रिपोर्ट फ़ॉर्मेट में कमजोरियों का पता चलने पर बिल्ड को रोकने का निर्णय लिया जा सके।

नोट्स

  • रिपोर्ट अपलोड करने के लिए उस उत्पाद के लिए व्यक्तिगत अनुमति आवश्यक है जिससे रिपोर्टें संबंधित हैं। यदि आपके पास यह अनुमति नहीं है, तो फिर भी अनुरोध भेजें: प्लेटफ़ॉर्म 403 Forbidden लौटाएगा और स्वचालित रूप से प्लेटफ़ॉर्म प्रशासकों को सूचित करेगा, जो अनुरोध की समीक्षा करके आपको निर्णय की सूचना देंगे।
  • हर SonarQube सेवा को Procurize प्लेटफ़ॉर्म पर पंजीकृत नहीं किया गया हो सकता है। नई सेवा पंजीकृत करने के लिए अपने प्लेटफ़ॉर्म प्रशासक से संपर्क करें; उस सेवा के लिए एक प्रशासक टोकन आवश्यक होगा।

त्रुटि संभालना#

API मानक HTTP स्थिति कोड का उपयोग करता है।

  • 200 OK: अनुरोध सफल
  • 204 No Content: रिपोर्ट मौजूद नहीं है
  • 400 Bad Request: अमान्य पैरामीटर या गलत फ़ॉर्मेट वाला अनुरोध
  • 401 Unauthorized: अनुपस्थित या अमान्य API टोकन
  • 403 Forbidden: पहुँच अस्वीकृत (उदाहरण के लिए, उत्पाद के लिए अनुमति नहीं है)
  • 500 Internal Server Error: अप्रत्याशित सर्वर त्रुटि

त्रुटि प्रतिक्रियाओं में मशीन‑पठनीय त्रुटि कोड और मानव‑पठनीय संदेश शामिल होते हैं।

देखें भी:#

संबंधित लेख#

सुरक्षा रिपोर्ट क्या हैं?

सुरक्षा रिपोर्ट रिपॉज़िटरी

सुरक्षा रिपोर्ट कैसे कॉन्फ़िगर करें

ऊपर
भाषा चुनें