Проверка зависимостей с TeamCity и SonarQube для. Net Framework и. Net Core - PullRequest
0 голосов
/ 06 марта 2020

У меня проблема с отправкой вывода средства проверки зависимостей от агента сборки на сервер SonarQube. Я не уверен, что это команды, которые я использую с Dependency Checker или настройкой SonarQube на стороне сервера / клиента. Я получаю выходные данные сканирования в SonarQube для .cs,. js,. css et c .. но выходные данные сканирования зависимостей не видны в виджете проверки зависимостей. Однако, если я проверяю рабочую папку для конкретной сборки, из файла проверки зависимостей ow asp были созданы три файла, которые еще не были извлечены.

Что я сделал для подготовки перед сканированием:

  • Загруженный OW ASP зависимость-проверка-cli из https://jeremylong.github.io/DependencyCheck/dependency-check-cli/index.html
  • Извлеченный OW ASP зависимость-проверка-cli в каталог и добавили Путь в качестве значения среды на сервере агента сборки
  • Установлен плагин проверки зависимостей на SonarQube через отмеченное место
  • Установлен сонарсканнер на сервере агента сборки через сборку Учетная запись службы агента
  • Удалено значение $ {Workspace} / из полей отчета в подключаемом модуле проверки зависимостей в SonarQube
    • Теперь это значение - просто dependency-check-report.html / json / xml (в ожидании на поле).

Команда, которую я использовал для установки do tnet -sonarscanner через. Net Core:

dotnet tool install --global dotnet-sonarscanner

Зависимость OW ASP Команда y-check-cli (запускается из root checkoutDir на агенте сборки):

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

Чтобы работающая функция Retire Js работала, мне пришлось отладить журнал и загрузить непосредственно файл json, который не может быть получен напрямую. Я думаю, что мне нужно добавить переопределения для прокси-сервера для https, используя java параметры (/ d:)

Команда запуска сканера Sonar:

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

Если I f. Например, добавьте параметр /d:sonar.dependencyCheck.xmlReportPath=%system.teamcity.checkoutDir%/dependency-check-report.xml, он разрешается в checkoutdir с добавленным / src / позади отчета о проверке зависимостей . xml

Команда завершения работы сканера сонара:

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

Если я добавлю

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

в html, xml или json в свойствах плагина в 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.

, если я удаляю рабочий каталог, так это выглядит в sonarqube:

dependency-check-report.html

Вывод выглядит так:

[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

Так что это должно было сработать. Проверка зависимостей HTML завершена и загружена, но когда я смотрю на зависимости, сообщаемые в SonarQube, представление пустое. Чего мне не хватает ..?

Выход есть, хотя:

enter image description here

1 Ответ

0 голосов
/ 13 марта 2020

В настоящее время официальный плагин для SonarQube (версия 2.0.2) содержит ошибку, которая не показывает результат html.

Если вы хотите, чтобы он работал, вам необходимо получить последний снимок из этой ветви https://github.com/dependency-check/dependency-check-sonar-plugin/tree/rewrite_javascript

...