Поиск правил с 0 экземплярами в гидролокаторе? - программирование

Поиск правил с 0 экземплярами в гидролокаторе?

TL; DR: В основном то, что я ищу, это способ получить список всех правил сонара, у которых есть 0 проблем. Затем я мог бы переместить все эти блокираторы и защитить себя от того, кто добавит эту проблему в будущем.

Моя компания использует сонарный и статический анализ, помогающий реорганизовать и разработать значительную устаревшую кодовую базу (~ 750K LOC). Мы добились больших успехов, снизив серьезность большинства правил, а затем выбрав меньший набор правил для продвижения до блокирующего или критического, поскольку мы находим реальные проблемы в коде. Это позволило устранить ряд проблем, которые мы пытаемся решить, в то время, когда мы можем справиться с ситуацией, поэтому мы можем почувствовать, что мы добиваемся прогресса и не утонем в шуме устаревших проблем.

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

Большая проблема с этой методологией заключается в том, что нам нужно иметь пример каждого из этих классов ошибок, по крайней мере один раз в кодовой базе, чтобы мы могли узнать, что это важно, и должно быть сделано блокировщиком. Любые проблемы, с которыми мы еще не сталкивались, по-прежнему будут на уровне по умолчанию, я бы сейчас переместил их все в BLOCKER, поэтому мы замечаем день, когда они будут добавлены.

Изменить: В настоящее время мы используем 3.7.3, но мы собираемся обновить до 5.X.

4b9b3361

Ответ 1

Есть два способа сделать это:

1- Трудный способ - запросить базу данных SonarQube. Вы должны понимать таблицы и писать SQL-запрос на основе того, какая БД используется для вашего SonarQube. Вы можете найти здесь ссылку здесь - ИЛИ здесь

2- Я никогда не пробовал ваш метод, но он должен работать. Вы можете использовать API-интерфейс Sonar Web Service. У вас также есть клиент Java Web Service. Справка: link1, link2, link3