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/list | GET | चयनित स्कोप और संस्करण के लिए रिपोर्ट मेटाडेटा सूचीबद्ध करें। |
/security/report/files | GET | चयनित रिपोर्टों को ZIP आर्काइव के रूप में डाउनलोड करें। |
/security/report/html | GET | एकल रिपोर्ट को HTML के रूप में प्राप्त करें। |
/security/report/pdf | GET | एकल रिपोर्ट को PDF के रूप में प्राप्त करें। |
/security/report/zip | GET | एकल रिपोर्ट को ZIP आर्काइव के रूप में प्राप्त करें। |
/security/report/project-files | GET | किसी प्रोजेक्ट की सभी रिपोर्टों को ZIP आर्काइव के रूप में डाउनलोड करें। |
/security/report/directory-files | GET | किसी प्रोजेक्ट समूह (डायरेक्टरी) की सभी रिपोर्टों को ZIP आर्काइव के रूप में डाउनलोड करें। |
/security/reports/fetch | POST | SonarQube सेवा से नवीनतम रिपोर्ट प्राप्त करें। |
प्रमाणीकरण और प्राधिकरण#
इस लेख में वर्णित रिपोर्ट सूचीबद्ध करने और डाउनलोड करने वाले एंडपॉइंट्स को प्रमाणीकरण की आवश्यकता नहीं होती।
POST /security/reports/fetch एंडपॉइंट को API टोकन के साथ प्रमाणीकरण की आवश्यकता होती है — विवरण के लिए देखें API Tokens।
संगठन ID#
अधिकांश अनुरोधों के लिए एक संगठन पहचानकर्ता आवश्यक है। आप या तो संगठन ID (एक UUID) या उसका उपनाम पास कर सकते हैं — देखें Identifiers and Aliases। इसे आप संगठन के सेटिंग्स पैनल में https://dashboard.procurize.ai पर पा सकते हैं।
कृपया ध्यान दें कि सेटिंग्स पैनल तक पहुँच के लिए प्राधिकरण आवश्यक है, और संगठन के सेटिंग्स पैनल तक पहुँच के लिए उस संगठन में कम से कम एडमिनिस्ट्रेटर भूमिका आवश्यक है।

पहचानकर्ता और उपनाम#
स्कोप पैरामीटर या तो एंटिटी 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: अप्रत्याशित सर्वर त्रुटि
त्रुटि प्रतिक्रियाओं में मशीन‑पठनीय त्रुटि कोड और मानव‑पठनीय संदेश शामिल होते हैं।
