SonarQube հաշվետվությունների API և Webhooks

Այս հոդվածը նկարագրում է, թե ինչպես ծրագրաբար հասնել SonarQube‑ի անվտանգության հաշվետվություններին, որոնք պահված են Procurize հարթակում։ Այն ընդգրկում է REST API‑ն՝ հաշվետվությունների ցանկը և ստացման համար, հաշվետվությունների արխիվների ներբեռնումը, ինչպես նաև webhook‑ների ծանուցումներին բաժանորդագրվելը, երբ նոր հաշվետվությունները ներմուծվում են։

Ակնարկ

SonarQube հաշվետվությունների ենթամոդուլը տալիս է կազմակերպություններին հնարավորությունը կենտրոնացված պահել և կառավարել უსაფრთხოების և կոդի որակի հաշվետվությունները, որոնք գեներացված են SonarQube‑ով։ Procurize հարթակը ուներացնում է այս տվյալները՝

  • REST API՝ պահպանված հաշվետվությունների մետադաշտերը ստանալու համար
  • Վերջնակետ ZIP արխիվների ներբեռնելու համար
  • Webhook‑ներ՝ իրական‑ժամանակի ծանուցումներ տրամադրելու համար, երբ նոր հաշվետվությունները հասանելի են դառնում

Այս հնարավորությունները թույլ են տալիս ինտեգրել CI/CD շղթաներ, GRC համակարգեր, ներքին վահանդակներ և երրորդ կողմի ռիսկի կառավարիչ գործիքներ։

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

Այս հոդվածում նկարագրված բոլոր API‑ հայցերը չպահանջում են նորից նույնականացման գործընթաց:

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

Բոլոր հայցերը պահանջում են կազմակերպության ID։ Այն կարելի է գտնել կազմակերպության կառավարման վահանակում՝ https://dashboard.procurize.ai։

⚠️ Խուսափելու համար, որ հասանելիությունը կառավարման վահանին պահանջում է համապատասխան թույլտվություն, և այս վահանին հասանելիությունը պետք է լինի առնվազն «Ադմինիստրատոր» դեր ունեցող օգտատիրոջը այդ կազմակերպության համար։

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

Բազային URL

Բոլոր REST API‑ների վերջանկետները սպասարկվում են հետևյալ հիմքային URL‑ով.

https://api.procurize.com

SonarQube հաշվետվությունների REST API

Ցուցակագրել հաշվետվությունները

Վերաստեղծում է էջագրված SonarQube‑ի անվտանգության հաշվետվությունների ցանկ, որոնք պահված են հարթակում։

Վերջնակետ

GET /security/report/list

Հարցման պարամետրեր

  • org (պարտադիր): Կազմակերպության ID։
  • 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 արխիվ, որը ներառում է SonarQube‑ի ամբողջական հաշվետվության արխիվները։ Արխիվը պարունակում է HTML և PDF հաշվետվություններ։

Վերջնակետ

GET /security/report/files
  • org (պարտադիր): Կազմակերպության ID։
  • reports (պարտադիր): հաշվետվությունների ID-ների զանգվածը։

Հայտնի օրինակ

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‑ֆայլ

Կայներին պետք է աւդագրեն պատասխանը և պահպանեն այն սկավառակում։

Սխալների կառավարում

API‑ն օգտագործում է ստանդարտ HTTP կարգի կոդերը.

  • 200 OK: Հայցը հաջողված է
  • 204 No Content: Հաշվետվությունը գոյություն չունի
  • 400 Bad Request: Պարամետրերը սխալ են կամ պահանջը խիստ սխալ է
  • 500 Internal Server Error: Անսպասելի սերվերի սխալ

Սխալների պատասխանում ներառված են մեքենային հասկանալի սխალის կոդը և մարդ-համարելի հաղորդագրություն։

Webhooks

Procurize‑ի webhook‑ները թույլ են տալիս արտաքին համակարգերին ստանալ ծանուցումներ, երբ նոր SonarQube հաշվետվություններ են ներմուծվում կամ թարմացվում։

Webhook‑ների կարգավորում

Webhook‑ները կարելի է ավելացնել կամ խմբագրել կազմակերպության կառավարման վահանակում, Անվտանգության հաշվետվությունների բաժնում՝ https://dashboard.procurize.ai։
⚠️ Դիցուք, որ հասանելիությունը այս վահանին պահանջում է համապատասխան թույլտվություն, և օգտագործողը պետք է ունենա առնվազն «Ադմինիստրատոր» դեր:

Webhooks խմբագրիչ

Webhook‑ների ստուգման համար կարելի է օգտագործել հայտնի առցանց ծառայություններ, օրինակ https://webhook-test.com։

Webhook-ի բովանդակություն

Webhook-ի իրադարձությունները ներկայացվում են HTTP POST դիմություններով՝ JSON բովանդակությամբ։

Բովանդակության օրինակ

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

Webhook-ի անվտանգություն

Ուրիշի իսկությունը երաշխավորելու համար webhook‑ների պահանջներում առկա է ստորագրության էջագլուխ, որը ստեղծված է համավերջական գաղտնիքով:

  • Ստորագրությունն հաշվարկվում է HMAC‑SHA256‑ով
  • Կայքերը պետք է ստուգեն ստորագրությունը, նախքան բովանդակությունը մշակելը

Սա պաշտպանում է առանց թույլտվության կամորեն ստեղծված webhook‑ների դիմումներից:

Առաքում և կրկնապատկումներ

  • Webhook‑ները պետք է պատասխանն ունենան 2xx կարգի, որպեսզի վերցնվեն որպես հաջողված
  • Անհաջողված առաքումները ավտոմատ կերպով վերաբեռնում են յուրաքանչյուր ժամին։
  • Իրադարձությունները կարող են առաքվել մեկից ավելի անգամ, ուստի ստացող կողմերը պետք է ապահովեն իրադարձությունների իդեմպոտենտ գործընթացը

Տիպիկ օգտագործման դեպքեր

  • Անվտանգության հեղինակումների ինքնաբերաբար ներմուծում ներքին անվտանգության վահանակերում
  • Համապատասխանության աշխատանքային միջոցառումների գործարկում, երբ որոդի դարպասները չպահպանված են
  • Արձանեկան հաշվետվությունների արխիվացում աուդիթների և մատակարարքային ռիսկի վերանայումների համար
  • Երրորդ կողմի համակարգերի սինքրոնիզացիա վերջին կոդի անվտանգության կարգավիճակի հետ
վերև
Ընտրել լեզուն