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 სერვისიდან.

ავთენტიფიკაცია და ავტორიზაცია#

ამ სტატიის მიხედვით ანგარიშის ჩამოთვლის და გადმოწერის ბოლო წერტილები არ საჭიროებენ ავთენტიფიკაციას.

POST /security/reports/fetch ბოლო წერტილი ითხოვს API‑ტოკენით ავთენტიფიკაციას — იხილეთ API‑ტოკენები.

ორგანიზაციის ID#

მრავალ მოთხოვნაზე საჭიროა ორგანიზაციის იდენტიფიკატორი. შეგიძლიათ გადმოწეროთ ორგანიზაციის ID (UUID) ან მისი ალია — იხილეთ იდენტიფიკატორები და ალიები.
ის შეგიძლიათ იპოვოთ ორგანიზაციის პარამეტრების პანელში 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 პარამეტრისთვის მასობრივი გადმოწერის ბოლო წერტილებში. გადმოწერეთ დირექტორიის ან პროექტის 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 ან ალია (მაგალითად, 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 იგნორირებულია.

მოთხოვნის მაგალითი

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"

პასუხის მაგალითი

{
  "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 ან ალია (მაგალითად, 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 ან ალია) ან org (ორგანიზაციის ID ან ალია)‑ით. ამ რეჟიმში version არ გადმოწერეთ.
  • პროექტის ვერსიით — გადმოწერეთ project (პროექტის ID ან ალია, მაგალითად aspose-imaging-net ან groupdocs-annotation-java) და version (პროექტის ვერსია). ამ რეჟიმში org პარამეტრი არ გამოიყენება.

როცა ორივე project და org მითითებულია, org იგნორირებულია.

ანგარიშის მიღება HTML‑ში#

რენდერს ერთ ანგარიშს HTML გვერდის სახით, ან აბრუნებს მას ჩამოტვირთვადი HTML ფაილként.

ბოლო წერტილი

GET /security/report/html

მოთხოვნის პარამეტრები

  • rt (აუცილებელია): ანგარიშის ტიპი.
  • rv (აუცილებელია): ანგარიშის ვერსია.
  • ანგარიშის არჩევანის პარამეტრები: იხილეთ ანგარიშის არჩევანი.
  • download (არავალდებულო): დაყენეთ true, რათა HTML ფაილი გადმოწერილი იყოს (Content-Disposition: attachment). თუ არ არის მითითებული ან false, ანგარიში დაბრუნდება ინტერნეტში.

მოთხოვნის მაგალითი

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

პასუხი

  • 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. ალიები მხარდაჭერილი არაა; გადმოწერეთ პროექტის UUID.
  • rt (არავალდებულო): ფილტრი ანგარიშის ტიპის მიხედვით. მხარდაჭერილი მნიშვნელობები OWASP Top 10 და CWE Top 25.
  • rv (არავალდებულო): ფილტრი ანგარიშის ვერსიის (წელი) მიხედვით.
  • version (არავალდებულო): ფილტრი პროექტის ვერსიის მიხედვით.

თუ ფილტრები მითითებული არაა, ყველა ანგარიშის პროექტის შიგნით შედის. ფილტრები შეიძლება კომბინირდეს და მოქმედებენ დამოუკიდებლად.

მოთხოვნის მაგალითი

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. ალიები მხარდაჭერილი არაა; გადმოწერეთ დირექტორიის UUID.
  • rt (არავალდებულო): ფილტრი ანგარიშის ტიპის მიხედვით. მხარდაჭერილი მნიშვნელობები OWASP Top 10 და CWE Top 25.
  • rv (არავალდებულო): ფილტრი ანგარიშის ვერსიის (წელი) მიხედვით.
  • version (არავალდებულო): ფილტრი პროექტის ვერსიის მიხედვით.

თუ ფილტრები მითითებული არაა, ყველა ანგარიშის ყველა პროექტის დირექტორიის შიგნით შედის. ფილტრები შეიძლება კომბინირდეს და მოქმედებენ დამოუკიდებლად.

მოთხოვნის მაგალითი

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-ზე. სერვისი იღებს უახლეს საკითხის მონაცემებს SonarQube‑დან, გარდაქმნის ისინი JSON‑ის სახით უახლესი OWASP Top 10 და CWE Top 25 ანგარიშის ვერსიებისთვის, და აბრუნებს მათ პასუხში.

ბოლო წერტილი

POST /security/reports/fetch

ავთენტიფიკაცია

ეს ბოლო წერტილი ითხოვს API‑ტოკენს, რომელიც გადმოცემულია X-API-Key ჰედერში. ტოკენების გენერაციისა და გამოყენების დეტალებისთვის იხილეთ API‑ტოკენები.

მოთხოვნის პარამეტრები

SonarQube წყარო არჩეულია ერთ-ერთი ორი გზით:

  • პროექტის მიხედვით — გადმოწერეთ project (პროექტის ID ან ალია — იხილეთ იდენტიფიკატორები და ალიები). არ გადმოწერეთ url ან key.
  • SonarQube სერვისის მიხედვით — გადმოწერეთ url (SonarQube სერვისის URL) და key (SonarQube პროექტის გასაღები) ერთად. არ გადმოწერეთ project.

მოთხოვნის მაგალითი

ანგარიშის მიღება პროექტის ალით:

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,
    ...
  }
}

პასუხი სასარგებლოა რელიზის ბილდინგის პაიპლაინებში, რათა გადაწყვიტოთ, შეწყვეტილება თუ არა ბილდინგი, თუ აღმოჩენილია დაუცველი საჯარო უსაფრთხოების ანგარიშის ფორმატებში.

შენიშვნები

  • ანგარიშის ატვირთვა საჭიროებს პერსონალურ ნებართვას იმ პროდუქტისათვის, რომელსაც ანგარიშები ეკუთვნის. თუ არ გაქვთ ეს ნებართვა, მაინც გაუგზავნეთ მოთხოვნა: პლატფორმა აბრუნებს 403 Forbidden‑ს და ავტომატურად აცნობებს პლატფორმის ადმინისტრატორებს, რომლებიც განიხილავენ მოთხოვნას და გაცნობენ თქვენ გადაწყვეტილებას.
  • ყველა SonarQube სერვისი შეიძლება არ იყოს რეგისტრირებული Procurize პლატფორმაზე. ახალი სერვისის რეგისტრაციისთვის, დაუკავშირდით თქვენი პლატფორმის ადმინისტრატორს; სერვისის ადმინისტრატორის ტოკენი აუცილებელია.

შეცდომების დამუშავება#

API იყენებს სტანდარტულ HTTP სტატუს კოდებს.

  • 200 OK: მოთხოვნა წარმატებით შესრულდა
  • 204 No Content: ანგარიში არ არსებობს
  • 400 Bad Request: არასწორი პარამეტრები ან არასწორ ფორმატში მოთხოვნა
  • 401 Unauthorized: აკლია ან არასწორია API‑ტოკენი
  • 403 Forbidden: დაშვება აკრძალულია (მაგალითად, პროდუქტის ნებართვების ნაკლებობა)
  • 500 Internal Server Error: მოულოდნელი სერვერის შეცდომა

შეცდომის პასუხები შეიცავენ მანქანით-წაკითხვადი შეცდომის კოდს და ადამიანისთვის-წაკითხვადი შეტყობინებას.

იხილეთ ასევე:#

დაკავშირებული სტატია#

რა არის უსაფრთხოების ანგარიშები?

უსაფრთხოების ანგარიშების რეპოზიტორია

როგორ დავაკონფიგურიროთ უსაფრთხოების ანგარიშები

ზემოთ
აირჩიეთ ენა