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/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/fetchPOSTՍտանալ վերջին հաշվետվությունները SonarQube ծառայությունից։

Նույնականացում և թույլտվություն#

Այս հոդվածում նկարագրված հաշվետվությունների ցուցակման և ներբեռնման վայրը authentication չի պահանջում:

POST /security/reports/fetch վայրը պահանջում է API token‑ով authentication — տես API Token‑ներ։

Կազմակերպության ID#

Աշխատանքի մեծ մասը պահանջում է կազմակերպության նույնացուցիչ։ Դուք կարող եք փոխանցել կամ կազմակերպության ID‑ն (UUID) կամ նրա alias‑ը — տես Նույնացուցիչներ և Alias‑ներ։ Այն գտնվում է Կազմակերպության կարգավորումների վանդակում https://dashboard.procurize.ai հասցեում։
Խնդրում ենք նկատի ունենալ, որ կարգավորումների վանդակին հասանելիությունը պահանջում է թույլտվություն, և կազմակերպության կարգավորումների վանդակին հասանելիություն ունենալու համար պետք է օգտվողը ունենա առնվազն «Ադմինիստրատոր» դեր այդ կազմակերպությունում։

Պատճենել ID կոճակը

Նույնացուցիչներ և Alias‑ներ#

Շրջանակի պարամետրերը ընդունում են կամ entity ID (UUID) կամ մարդասան alias։ Alias‑ները հեշտացնում են հարցումների ընթերցանությունը և կայուն են տարբեր միջավայրերում։

ՊարամետրԸնդունում էՕրինակ Alias‑ներ
orgԿազմակերպության ID կամ aliasaspose, groupdocs
directoryԴիրեկտորիայի (նախագծի խմբի) ID կամ aliasaspose-imaging, groupdocs-annotation
projectՆախագծի ID կամ aliasaspose-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 token
  • 403 Forbidden: Մուտք արգելված (օրինակ՝ բացակայում է արտոնություն ապրանքի համար)
  • 500 Internal Server Error: Անսպասված սերվերի սխալ

Սխալի պատասխանում ներառված են մեքենա‑կարդացվող սխալի կոդ և մարդասան հաղորդագրություն։

Տես նաև#

Կապված հոդվածներ#

Ի՞նչ են անվտանգության հաշվետվությունները?

Անվտանգության հաշվետվությունների պահոց

Ինչպե՞ս կարգավորել անվտանգության հաշվետվությունները

վերև
Ընտրել լեզուն