1
0
mirror of https://github.com/bia-technologies/sonar-helper.git synced 2024-11-19 00:21:44 +02:00
Набор утилит для работы с SonarQube
Go to file
2019-11-27 13:22:43 +03:00
examples Добавлена команда для переноса замечания на указанного пользователя по набору фильтров 2019-07-25 10:55:54 +03:00
src Новая версия 2019-11-27 13:22:17 +03:00
.gitattributes Корректировка файлов для релиза 2019-03-25 09:21:27 +03:00
.gitignore Мелкие исправления + самоустановщик 2019-03-20 10:45:30 +03:00
installlocalhost.bat Мелкие исправления + самоустановщик 2019-03-20 10:45:30 +03:00
LICENSE init 2019-01-18 14:19:25 +03:00
packagedef Корректировка файлов для релиза 2019-03-25 09:21:27 +03:00
README.md Правки для выпуска новой версии 2019-07-25 11:05:37 +03:00

Sonar Helper

Предоставляет набор утилит, помогающих при работе с SonarQube.

При работе используется REST API SonarQube.

Обращаю внимание, что для выполнения большинства операций необходимы расширенные права пользователя.

Возможности

На данный момент предоставляются следующие инструменты:

Закрытие замечаний, привнесенных родительским проектом

Часто возникают ситуации, когда в разных проектах используется общая кодовая база и есть потребность исключить замечания родительского проекта, т.к. исправление их в дочернем самостоятельно не планируется. Переносить руками все замечания достаточно проблематично.

Для закрытия замечаний необходимо вызвать команду issue-resolver и передать ей информацию для авторизации, данные родительского и дочерних проектов.

Логика закрытия замечаний

SonarQube может создавать несколько замечаний по одному правилу на одну строку, на один символ / подстроку, что приводит к формированию одноко хэша строки. Примером таких замечаний например являются правила наличия пробелов у знаков математических операций и отсутствие описаний параметров методов.

Для гарантии корректрого закрытия замечаний дочернего проекта ввене алгоритм, при котором закрытие в довернем проекте замечний возможно только при выполнении следующих условий:

  • количество одинаковых замечаний (с одинаковым хэшем и правилом) должно совпадать с родительским
  • количество одинаковых незакрытых замечаний в дочернем проекте должны быть большим или равным количеству закрываемых замечаний из родительского проекта

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

Примеры:

Пример 1: В родительском проекте есть 3 замечания на строке, исправлено одно. В дочернем тоже 3 замечания, исправленных нет. В результате - бцдет закрыто одно замечание в дочернем проекте.

Пример 2: В родительском проекте есть 3 замечания на строке, исправлено одно. В дочернем тоже 3 замечания, исправленных 2. В результате - в дочернем проекте не будет закрыто ни одного нового замечания.

Пример 3: В родительском проекте есть 3 замечания на строке, исправлено два. В дочернем тоже 3 замечания, исправленных 1. В результате - в дочернем проекте будет закрыто еще одно замечание, и общее количество закрых станет 2.

Пример 4: В родительском проекте есть 3 замечания на строке, исправлено два. В дочернем 4 замечания, исправленных 1. В результате - в дочернем проекте не будет закрыто ни одного нового замечния.

Отчет по проектам

При необходимоси получить отчет по проектам (по интересующим метрикам) и использовать его в других приложениях (либо рассылать по почте) можно вручную собирать информацию по страницам SonarQube, но проще использовать sonar-helper, вызвав команду report и передав ей информации для авторизации, список проектов и интересующих метрик.

На данный момент поддерживаются следующие варианты формирования отчета:

  • JSON - формируется отчет в формате json, метрики выгружаются дважды - для идентификатора метрики и для русского представления. Пример: examples\example-report.json
  • HTML - формируется отчет в формате html, метрики выгнржаются только для русского представления. Пример: examples\example-report.html

Сводный отчет по разработчикам

При необходимоси получить отчет по разработчикам (не конкретные замечания, а "температуру") и понять, кто в команде как работает можно вручную собирать информацию по страницам SonarQube, но проще использовать sonar-helper, вызвав команду usr-report и проанализировать полученный результат.

На данный момент поддерживается вариант формирования отчета в формате JSON. Пример отчета: examples\example-usr-report.json

Перенос замечаний

При необходимости перенести замечания с одного разработчика на другого (первый например покинул команду) используют возможности массового изменения замечаний. В случае когда замечаний много, много проектов это может отнять большое количество сил т.к. изменять можно порциаями по 500.
sonar-helper предоставляет возможность выполнить это быстро и просто, для чего необходимо вызвать команду transfer-issues.

Примеры

Примеры отчетов и конфигурационных файлов находятся в каталоге examples