Saya mengalami masalah saat mengirim keluaran Pemeriksa Ketergantungan dari agen pembangunan ke server SonarQube. Saya tidak yakin apakah itu perintah yang saya gunakan dengan Pemeriksa Ketergantungan atau pengaturan SonarQube di sisi server/klien. Saya mendapatkan hasil pemindaian yang dilaporkan ke SonarQube untuk .cs, .js, .css dll .. tetapi keluaran dari pemindaian ketergantungan tidak terlihat di widget pemeriksa ketergantungan. Namun, jika saya memeriksa folder kerja untuk build tertentu, ada tiga file yang telah dibuat dari pemeriksa ketergantungan owasp yang belum diambil.

Hal-hal yang harus saya persiapkan sebelum melakukan scan:

  • Mengunduh dependensi-check-cli OWASP dari https://jeremylong.github. io/DependencyCheck/dependency-check-cli/index.html
  • Mengekstrak dependensi-check-cli OWASP ke direktori dan menambahkan Path sebagai nilai lingkungan di server agen pembangunan
  • Menginstal plugin Pemeriksa Ketergantungan di SonarQube melalui tempat yang ditandai
  • Menginstal sonarscanner di server build agent melalui akun layanan build agent
  • Menghapus nilai ${Workspace}/ dari bidang laporan di plugin pemeriksaan ketergantungan di SonarQube
    • Nilainya sekarang hanya dependency-check-report.html/json/xml (tertunda di bidang).

Perintah yang saya gunakan untuk menginstal dotnet-sonarscanner melalui .Net Core:

dotnet tool install --global dotnet-sonarscanner

Perintah dependensi-check-cli OWASP (berjalan dari root checkoutDir pada agen build):

dependency-check.bat --project "%system.teamcity.projectName%" --scan . -f ALL --log D:\DependencyLogs\verbose.log

Agar fungsionalitas RetireJs berfungsi, saya harus men-debug log dan mengunduh langsung file json yang tidak dapat diambil secara langsung. Saya pikir saya perlu menambahkan penggantian untuk proxy untuk https juga dengan menggunakan parameter Java (/ d :)

Pemindai Sonar memulai perintah:

dotnet sonarscanner begin /k:%ProjectKey% /n:"%ProjectName%" /d:sonar.login=%SonarQube.UserToken% /d:sonar.host.url=%SonarQube.Host.Url%"

Jika saya f.ex menambahkan parameter /d:sonar.dependencyCheck.xmlReportPath=%system.teamcity.checkoutDir%/dependency-check-report.xml, itu diselesaikan ke checkoutdir dengan tambahan /src/ di belakang dependensi-check -laporan.xml

Perintah akhir Pemindai Sonar:

dotnet sonarscanner /d:sonar.login=%SonarQube.UserToken% end

Jika saya menambahkan

%system.teamcity.build.workingDir%/dependency-check-report.html

Ke bidang html, xml atau json di properti plugin di sonarqube:

[23:19:08]  [Step 1/1] INFO: Dependency-Check JSON report does not exists. Please check property sonar.dependencyCheck.jsonReportPath:D:\TeamCityBuildAgent\work\a7450333ae6fcf0c\%system.teamcity.build.workingDir%\dependency-check-report.json
[23:19:08]  [Step 1/1] INFO: JSON-Analysis skipped/aborted due to missing report file
[23:19:08]  [Step 1/1] INFO: Using XML-Reportparser
[23:19:08]  [Step 1/1] INFO: Dependency-Check XML report does not exists. Please check property sonar.dependencyCheck.xmlReportPath:D:\TeamCityBuildAgent\work\a7450333ae6fcf0c\%system.teamcity.build.workingDir%\dependency-check-report.xml
[23:19:08]  [Step 1/1] INFO: XML-Analysis skipped/aborted due to missing report file
[23:19:08]  [Step 1/1] INFO: Dependency-Check HTML report does not exists. Please check property sonar.dependencyCheck.htmlReportPath:D:\TeamCityBuildAgent\work\a7450333ae6fcf0c\%system.teamcity.build.workingDir%\dependency-check-report.html
[23:19:08]  [Step 1/1] INFO: HTML-Dependency-Check report does not exist.

Jika saya menghapus workingdir, jadi terlihat seperti ini di sonarqube:

dependency-check-report.html

Outputnya terlihat seperti ini:

[23:26:38]  [Step 1/1] INFO: Sensor Dependency-Check [dependencycheck]
[23:26:38]  [Step 1/1] INFO: Process Dependency-Check report
[23:26:38]  [Step 1/1] INFO: Using JSON-Reportparser
[23:26:39]  [Step 1/1] WARN: JSON-Analysis aborted
[23:26:39]  [Step 1/1] INFO: Using XML-Reportparser
[23:26:39]  [Step 1/1] INFO: We doesn't found any Project configuration file e.g. pom.xml, gradle.build, build.gradle.kts, package-lock.json and can not link dependencies
[23:26:39]  [Step 1/1] INFO: Linking 662 dependencies to project
[23:26:39]  [Step 1/1] INFO: Upload Dependency-Check HTML-Report
[23:26:39]  [Step 1/1] INFO: Process Dependency-Check report (done) | time=959ms
[23:26:39]  [Step 1/1] INFO: Sensor Dependency-Check [dependencycheck] (done) | time=960ms

Jadi itu seharusnya berhasil. HTML Dependency-Check selesai dan diunggah, tetapi ketika saya melihat dependensi yang dilaporkan di SonarQube, tampilannya kosong. Apa yang saya lewatkan..?

Outputnya ada di sana:

enter image description here

0
Verzada 6 Maret 2020, 23:54

1 menjawab

Jawaban Terbaik

Saat ini plugin resmi untuk SonarQube (versi 2.0.2), memiliki bug yang tidak menampilkan hasil html.

Jika Anda ingin berfungsi, saat ini Anda perlu mendapatkan snapshot terbaru dari cabang ini https://github.com/dependency-check/dependency- check-sonar-plugin/tree/rewrite_javascript

0
Harald S. Hanssen 13 Maret 2020, 14:14