Плагин для SonarQube 1C (BSL) не работает с EDT


#1

Мы пробуем использовать сонар с плагином для анализа исходников полученных в результате работы EDT, а не платформенной выгрузки (для платформенной выгрзки у нас все работает хорошо).
В результате запуска анализатора получаем ошибки вида:
11:11:58 WARN: Can’t find common module XML for BSL file /E:/jenkins/workspace/pipeline-adapter-edt-sonar/adapter/src/CommonModules/�������_��������RabbitMQ/Module.bsl
11:11:58 WARN: Can’t find common module XML for BSL file /E:/jenkins/workspace/pipeline-adapter-edt-sonar/adapter/src/CommonModules/�������_��������RabbitMQ/Module.bsl

XML файлов с описанием модуля там действительно нет (в EDT описание модулей содержится в .mdo файлах)

Подскажите пожалуйста:

  1. Правильно я понимаю, что плагин к сонару узко заточен для работы только с платформенной выгрузкой в файлы?
  2. Планируется ли плагин Сонара для работы с EDT, и как его получить?
  3. Может мы сами можем что-либо настроить/доработать, чтобы можно было анализировать исходники из EDT?

#2

По пунктам:

Не совсем так.
Если для работы правила не нужно хмл-описание модуля, тогда это описание не используется.
Например, для правил, проверяющих работу общего модуля на клиенте, выполняется проверка хмл-описания и наличие флага работы на клиенте.
В итоге много правил и в выгрузке ЕДТ будут работать.

Да, конечно, планируется, и работа начата.
Точных сроков выпуска пока сообщить не можем
Если не будет “коммерческих” :slight_smile: изменений, получить можно будет при обновлении плагина.

Как написано выше, исходники анализируются, и много правил все равно применяются.
но меньше, чем для платформенной выгрузки.


#3

А как можно понять, какие правила будут работать, а какие нет?
Т.е. нам нужно как то получить конкретный список правил


#4

Мы попытались обойти проблему с ЕДТ следующим образом:
В рамках дженкинс скрипта после получения исходниов EDT из репозитория:

  1. С помощью командной строки конвертируем исходики EDT в платформенные
    cmd(“ring edt workspace export --workspace-location ${env.WORKSPACE}/build/workspace --configuration-files ${env.WORKSPACE}/build/src --project ${env.WORKSPACE}/adapter”)

  2. Копируем полученные файлы с описанием объектов в каталог с исходниками ЕДТ (исли анализировать напрямую временный каталог, то анализ проходит отлично, но файлы не привязываются к репозиторию уже в сонаре)

cmd(“xcopy ${env.WORKSPACE}\build\src\*.xml ${env.WORKSPACE}\adapter\src\ /E”)

В результате xml файлы оказываются вроде на тех же местах, что и в платформенной выгрузке, но плагин все равно выдает ту же ошибку.

Подскажите пожалуйста как именно плагин ищет соответствующий XML файл?


#5

И столкнулись с еще одной проблемой. Если анализировать исходники из EDT с помощью плагина, то в сонаре все ошибки вешаются не на нужных пользователей, а на пользователя “anonymous@localhost”.

Т.е. что делали:

  1. Сконвертировали хранилище в репозиторий для EDT с помощью типовой 1Сной утилиты 1С:ГитКонвертер
  2. В репозитории (у нас Битбакет) видим все коммиты с коректными авторами
  3. Выполняем дженкинс скрипт (типовой) по анализу исходников и загрзке их в сонар
  4. При выполнении скрипта получаем ошибки о том, что xml файлы не найдены (как писал в исходном посте) но модули в сонар в итоге загружаются и какие то ошибки находятся
  5. Если в сонаре посмотреть на найденные ошибки то все они висят на пользователе “anonymous@localhost”, причем это по видимому не проблема с репозиторием, т.к. гуиды комитов для строк кода проставляются верно, проблема именно в авторах.
  6. Если взять это же хрантлище, загрузить его в GIT через gitsync и затем этим же дженкинсскриптом в сонар, то авторы проставляются нормально

Подскажите в чем может быть проблема и что с этим делать?

Т.е. сейчас получается, что для EDT плагином для сонара пользоваться не получается.


#6

Разобрались, это 1С:ГитКонвертер некорректно заполняет электронную почту при переносе закладок в комиты в репозитории


#7

Если все делать правильно надо issue Дмитрию Мармышеву в репозиторий подать, если будет время