Плагин PVS-Studio для SonarQube работает уже долгое время, однако в последнем обновлении плагин превратился в два плагина. В этой заметке расскажем о том, почему это произошло, что изменилось, и как с этим жить.
SonarQube — это открытая платформа для обеспечения непрерывного контроля качества кода, которая поддерживает множество языков программирования, а также позволяет получать отчёты по самым разным метрикам: покрытие кода тестами, потенциальные ошибки, дублирование кода, соответствие стандартам и др.
Собственно, для интеграции результатов анализа PVS-Studio в SonarQube есть наш плагин. Он позволяет добавлять сообщения анализатора в базу сообщений сервера SonarQube и осуществлять удобное управление этими предупреждениями в Web-интерфейсе.
Примечание: подробнее об интеграции PVS-Studio в SonarQube можно прочитать в документации.
Некоторое время назад наш пользователь столкнулся с проблемой, о которой незамедлительно сообщил нам: предупреждения PVS-Studio с тегом уровня High и Low отсутствовали в отчёте SonarQube, что создавало серьёзную неразбериху при его просмотре.
У нас, увы, нет штатного детектива, поэтому мы сами принялись изучать, почему такое могло произойти. И в итоге нашли проблему! Оказалось, что пользователь использовал свежую версию SonarQube, которая таила в себе неожиданные изменения.
Ранее в SonarQube правила имели две отдельные характеристики: Type (Code Smell, Bug, Vulnerability, Security Hotspot) и Severity (Info, Minor, Major, Critical, Blocker).
Но, начиная с версии 10.2, вместо одного Severity, состоящего из пяти уровней, появились Software Quality (Maintainability, Reliability, Security) и новый Severity (Low, Medium, High), который в коде API называется Impact. При фильтрации предупреждений старые характеристики игнорировались как Deprecated, поэтому SonarQube для диагностик PVS-Studio выставлял Reliability Medium в качестве уровня по умолчанию, пряча всех найденных жучков под один флажок.
Засучив рукава мы принялись за реализацию поддержки новой версии API в нашем плагине, и в результате решения этой задачи произошло нечто поистине магическое. Теперь плагинов PVS-Studio для SonarQube целых два! Каждый из них предназначен для разных версий SonarQube и соответствующих им версий API. Один плагин для версий, начиная с 7.6 и заканчивая 10.1, а другой — для 10.2 и выше.
Помимо этого, в плагине для версий SonarQube выше 10.2 при включении отображения предупреждений как уязвимостей появилось распределение для обоих UI фильтров OWASP Top 10 (2017 и 2021 год).
С выходом версии 7.32 статического анализатора PVS-Studio скачать плагин для нужной вам версии SonarQube уже можно на нашем сайте.
Примечание: А если в силу каких-то причин вам не подходит SonarQube, то PVS-Studio также интегрируется в DevSecOps платформу DefectDojo, о чём можно прочитать в этой статье.
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Valerii Filatov. Get me two! PVS-Studio plugin update for SonarQube.