SonarQube հաշվետվությունների API#
Այս հոդվածը նկարագրում է, թե ինչպես ծրագրային կերպով հասնել SonarQube‑ի անվտանգության հաշվետվություններին, որոնք պահվում են Procurize հարթակում։ Այն ընդգրկում է REST API‑ը, որը թույլ է տալիս ցուցակել հաշվետվությունները և ներբեռնել դրանք HTML, PDF և ZIP ձևաչափերով։
Ընդհանուր ակնարկ#
SonarQube հաշվետվությունների ենթամոդուլը թույլ է տալիս կազմակերպություններին կենտրոնացված կերպով պահել և կառավարել SonarQube‑ի կողմից գեներացված անվտանգության և կոդի որակի հաշվետվությունները։ Procurize հարթակը բացում է այս տվյալները հանրային REST API‑ի միջոցով, որը թույլ է տալիս.
- Ցուցակել հաշվետվության մետադատները կազմակերպության, նախագծի խմբի կամ նախագծի համար
- Ներբեռնել մեկ հաշվետվություն HTML, PDF կամ ZIP ձևաչափով
- Ներբեռնել ընտրված հաշվետվությունները ZIP արխիվի տեսքով
- Ներբեռնել բոլոր հաշվետվությունները նախագծի կամ նախագծի խմբի համար ZIP արխիվի տեսքով
- Ստանալ վերջին OWASP Top 10 և CWE Top 25 հաշվետվությունները անմիջապես SonarQube ծառայությունից
Այս հնարավորությունները հնարավորություն են տալիս ինտեգրացնել 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 ծառայությունից։ |
Նույնականացում և թույլտվություն#
Այս հոդվածում նկարագրված հաշվետվությունների ցուցակման և ներբեռնման վայրը authentication չի պահանջում:
POST /security/reports/fetch վայրը պահանջում է API token‑ով authentication — տես API Token‑ներ։
Կազմակերպության ID#
Աշխատանքի մեծ մասը պահանջում է կազմակերպության նույնացուցիչ։ Դուք կարող եք փոխանցել կամ կազմակերպության ID‑ն (UUID) կամ նրա alias‑ը — տես Նույնացուցիչներ և Alias‑ներ։ Այն գտնվում է Կազմակերպության կարգավորումների վանդակում https://dashboard.procurize.ai հասցեում։
Խնդրում ենք նկատի ունենալ, որ կարգավորումների վանդակին հասանելիությունը պահանջում է թույլտվություն, և կազմակերպության կարգավորումների վանդակին հասանելիություն ունենալու համար պետք է օգտվողը ունենա առնվազն «Ադմինիստրատոր» դեր այդ կազմակերպությունում։

Նույնացուցիչներ և Alias‑ներ#
Շրջանակի պարամետրերը ընդունում են կամ entity ID (UUID) կամ մարդասան alias։ Alias‑ները հեշտացնում են հարցումների ընթերցանությունը և կայուն են տարբեր միջավայրերում։
| Պարամետր | Ընդունում է | Օրինակ Alias‑ներ |
|---|---|---|
org | Կազմակերպության ID կամ alias | aspose, groupdocs |
directory | Դիրեկտորիայի (նախագծի խմբի) ID կամ alias | aspose-imaging, groupdocs-annotation |
project | Նախագծի ID կամ alias | 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"
Նշում: Alias‑ները չի աջակցվում bulk‑ներբեռնման վայրը
idպարամետրի համար։ Ուղարկեք directory կամ project UUID‑ն՝GET /security/report/project-filesևGET /security/report/directory-filesվայրը համար։
Հիմնական URL#
Բոլոր REST API վայրը մատչելի են հետևյալ հիմքային URL‑ի տակ.
https://api.procurize.com
SonarQube հաշվետվությունների REST API#
Ցուցակել հաշվետվությունները#
Վերադարձնում է անվտանգության հաշվետվությունները, որոնք հասանելի են ընտրված շրջանակի և տարբերակի համար, առանց ֆայլի բովանդակության։ Օգտագործեք այս վայրը՝ գտնելու հաշվետվության ID‑ները, որոնք կարող են փոխանցվել ներբեռնման վայրը:
Վայրը
GET /security/report/list
Հարցման պարամետրեր
org(պարտադիր չէ): Կազմակերպության ID կամ alias (օրինակ՝asposeկամgroupdocs). Ավելի լայն շրջանակ։directory(պարտադիր չէ): Դիրեկտորիայի (նախագծի խմբի) ID կամ alias (օրինակ՝aspose-imagingկամgroupdocs-annotation). Նեղացած շրջանակ։project(պարտադիր չէ): Նախագծի ID կամ alias (օրինակ՝aspose-imaging-netկամgroupdocs-annotation-java). Ավելի նեղացած շրջանակ։version(պարտադիր չէ): Նշված նախագծի տարբերակ։minver(պարտադիր չէ): Նվազագույն նախագծի տարբերակ։maxver(պարտադիր չէ): Առավելագույն նախագծի տարբերակ։
Պարտադիր է առնվազն մեկից org, directory կամ project։ Շրջանակները առաջնահերթություն ունեն հետևյալ կերպ՝ եթե նշված է project, որոնվում է միայն այդ նախագիծը; եթե ոչ, եթե նշված է directory, որոնվում է ամբողջ նախագծի խումբը; հակառակ դեպքում որոնվում է ամբողջ կազմակերպությունը (org). Երբ org‑ը նշված է միասին project կամ directory‑ի հետ, նպատակն էլ ստուգվում է, որ պատկաննի այդ կազմակերպությանը:
Պարտադիր է առնվազն մեկից version, minver կամ maxver։ Եթե նշված է version, minver և maxver անտեսվում են:
Հարցման օրինակ
curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"
Շրջանակը նախագծի խմբի կամ նախագծի համար alias‑ով.
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"
Պատասխանի օրինակ
{
"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 ձևաչափերը։
Վայրը
GET /security/report/files
Հարցման պարամետրեր
org(պարտադիր): Կազմակերպության ID կամ alias (օրինակ՝asposeկամgroupdocs)։reports(պարտադիր): Ներառման համար հաշվետվությունների ID‑ները։ Կրկնեք պարամետրը՝ մի քանի հաշվետվություններ ներառելու համար։
Հարցման օրինակ
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
Պատասխան
- 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 կամ alias) կամorg(կազմակերպության ID կամ alias) հետ։ Այս ռեժիմումversionչի պետք է լինի։ - Նախագծի տարբերակի միջոցով — փոխանցեք
project(նախագծի ID կամ alias, օրինակaspose-imaging-netկամgroupdocs-annotation-java) ևversion(նախագծի տարբերակ)։ Այս ռեժիմումorgպարամետրը չի օգտագործվում։
Երբ project և org երկուևնույնը նշված են, org անտեսվում է։
Ստանալ հաշվետվությունը HTML‑ով#
Ցուցադրում է մեկ հաշվետվություն HTML էջի տեսքով, կամ վերադարձնում է այն որպես ներբեռնելի HTML ֆայլ։
Վայրը
GET /security/report/html
Հարցման պարամետրեր
rt(պարտադիր): Հաշվետվության տեսակ։rv(պարտադիր): Հաշվետվության տարբերակ։- Հաշվետվության ընտրության պարամետրերը՝ տես Հաշվետվության ընտրություն։
download(պարտադիր չէ): Սահմանեքtrue՝ HTML‑ը վերադարձնել որպես ֆայլի ներբեռնում (Content-Disposition: attachment)։ Եթե բացակայում է կամfalseէ, հաշվետվությունը վերադարձվում է inline։
Հարցման օրինակ
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‑ը ներբեռնելու համար, փոխարենը inline ցուցադրման:
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
Պատասխան
- Content-Type:
text/html
Ստանալ հաշվետվությունը PDF‑ով#
Վերադարձնում է մեկ հաշվետվություն PDF փաստաթղթի տեսքով։
Վայրը
GET /security/report/pdf
Հարցման պարամետրեր
rt(պարտադիր): Հաշվետվության տեսակ։rv(պարտադիր): Հաշվետվության տարբերակ։- Հաշվետվության ընտրության պարամետրերը՝ տես Հաշվետվության ընտրություն։
Հարցման օրինակ
curl "https://api.procurize.com/security/report/pdf?rt=CWE+Top+25&rv=2024&project=aspose-imaging-net&version=1.0" -o report.pdf
Պատասխան
- Content-Type:
application/pdf
Ստանալ հաշվետվությունը ZIP‑ով#
Վերադարձնում է մեկ հաշվետվություն ZIP արխիվի տեսքով, որը պարունակում է HTML և PDF տարբերակները։
Վայրը
GET /security/report/zip
Հարցման պարամետրեր
rt(պարտադիր): Հաշվետվության տեսակ։rv(պարտադիր): Հաշվետվության տարբերակ։- Հաշվետվության ընտրության պարամետրերը՝ տես Հաշվետվության ընտրություն։
Հարցման օրինակ
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
Պատասխան
- Content-Type:
application/zip
Ներբեռնել բոլոր հաշվետվությունները նախագծի համար#
Ներբեռնում է ZIP արխիվ, որը պարունակում է բոլոր հաշվետվությունները նշված նախագծի համար, HTML և PDF ձևաչափերով։
Վայրը
GET /security/report/project-files
Հարցման պարամետրեր
id(պարտադիր): Նախագծի ID։ Alias‑ները չի աջակցվում; պետք է փոխանցվի նախագծի UUID։rt(պարտադիր չէ): Ֆիլտրել ըստ հաշվետվության տեսակ։ Աջակցված արժեքներն ենOWASP Top 10ևCWE Top 25։rv(պարտադիր չէ): Ֆիլտրել ըստ հաշվետվության տարբերակ (տարի)։version(պարտադիր չէ): Ֆիլտրել ըստ նախագծի տարբերակ։
Եթե ֆիլտրեր չկան, ներառվում են բոլոր նախագծի հաշվետվությունները։ Ֆիլտրների պարամետրերը կարող են համակցվել և կիրառվում են անկախ vone‑ից:
Հարցման օրինակ
curl "https://api.procurize.com/security/report/project-files?id=00000000-0000-0000-0000-000000000005" -o project-reports.zip
Պատասխան
- Content-Type:
application/zip
Ներբեռնել բոլոր հաշվետվությունները նախագծի խմբի համար#
Ներբեռնում է ZIP արխիվ, որը պարունակում է բոլոր նախագծերի հաշվետվությունները նշված դիրեկտորիայի (նախագծի խմբի) համար, HTML և PDF ձևաչափերով։
Վայրը
GET /security/report/directory-files
Հարցման պարամետրեր
id(պարտադիր): Դիրեկտորիայի (նախագծի խմբի) ID։ Alias‑ները չի աջակցվում; պետք է փոխանցվի դիրեկտորիայի UUID։rt(պարտադիր չէ): Ֆիլտրել ըստ հաշվետվության տեսակ (OWASP Top 10կամCWE Top 25)։rv(պարտադիր չէ): Ֆիլտրել ըստ հաշվետվության տարբերակ (տարի)։version(պարտադիր չէ): Ֆիլտրել ըստ նախագծի տարբերակ։
Եթե ֆիլտրեր չկան, ներառվում են բոլոր նախագծերի հաշվետվությունները այդ դիրեկտորիայում։ Ֆիլտրների պարամետրերը կարող են համակցվել և կիրառվում են անկախ vone‑ից:
Հարցման օրինակ
curl "https://api.procurize.com/security/report/directory-files?id=00000000-0000-0000-0000-000000000006" -o directory-reports.zip
Պատասխան
- Content-Type:
application/zip
Ստանալ հաշվետվությունները SonarQube‑ից#
Վերբեռնում SonarQube ծառայությունից վերջին անվտանգության հաշվետվության տվյալները ապրանքի համար Procurize‑ում։ Սերվիսը ստանում է վերջին issue‑ների տվյալները SonarQube‑ից, փոխարկում դրանք JSON ներկայացումներով վերջին տարբերակների OWASP Top 10 և CWE Top 25 հաշվետվությունների համար և վերադարձնում է դրանք պատասխանում։
Վայրը
POST /security/reports/fetch
Նույնականացում
Այս վայրը պահանջում է API token, որը պետք է փոխանցվի X-API-Key header‑ում։ Token‑ների ստեղծման և օգտագործման մանրամասները տես API Token‑ներ։
Հարցման պարամետրեր
SonarQube աղբյուրը ընտրվում է երկու եղանակներից մեկով.
- Նախագծի միջոցով — փոխանցեք
project(նախագծի ID կամ alias — տես Նույնացուցիչներ և Alias‑ներ)։urlկամkeyչպետք է փոխանցվի։ - SonarQube ծառայության միջոցով — փոխանցեք
url(SonarQube ծառայության URL) ևkey(SonarQube նախագծի key) միասին։projectչպետք է լինի:
Հարցման օրինակ
Ստանալ հաշվետվությունը նախագծի alias‑ով.
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"
Պատասխանի օրինակ
{
"Owasp10_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
},
"Cwe25_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
}
}
Պատասխանը օգտակար է release‑բիլդ պիպլայններում՝ որոշելու, պետք է դադարեցնել բիլդը, եթե հայտնաբերված են խոցելիություններ հանրային անվտանգության հաշվետվությունների ձևաչափերում։
Նշումներ
- Հաշվետվության վերբեռնումը պահանջում է անձնական թույլտվություն այն ապրանքի համար, որի հաշվետվություններն պատկանում են։ Եթե այս թույլտվությունը չունեք, դեռևս կարող եք ուղարկել հարցումը՝ պլատֆորմը վերադարձնում է
403 Forbiddenև ինքնաբար ծանուցում է պլատֆորմի ադմինիստրատորներին, ովքեր վերանայում են հարցումը և ձեզ տեղեկացնում են որոշման մասին։ - Ոչ բոլոր SonarQube ծառայությունները կարող են լինել գրանցված Procurize պլատֆորմում։ Նոր ծառայություն գրանցելու համար կապնվեք ձեր պլատֆորմի ադմինիստրատորի հետ՝ անհրաժեշտ է այդ ծառայության համար ադմինիստրատորի token:
Սխալների կառավարում#
API‑ն օգտագործում է ստանդարտ HTTP կարգավիճակների կոդեր.
200 OK: Հարցումը հաջողված է204 No Content: Հաշվետվությունը գոյություն չունի400 Bad Request: Անվավեր պարամետրեր կամ սխալ ձևավորված հարցում401 Unauthorized: Անհասանելի կամ անվավեր API token403 Forbidden: Մուտք արգելված (օրինակ՝ բացակայում է արտոնություն ապրանքի համար)500 Internal Server Error: Անսպասված սերվերի սխալ
Սխալի պատասխանում ներառված են մեքենա‑կարդացվող սխալի կոդ և մարդասան հաղորդագրություն։
Տես նաև#
Կապված հոդվածներ#
Ի՞նչ են անվտանգության հաշվետվությունները?
