mirror of
https://github.com/bia-technologies/sonar-helper.git
synced 2026-06-18 17:24:22 +02:00
#ONECICD-91
- Добавил поддержку HTML отчета - Добавил примеры сформированных отчетов - Добавил запись README
This commit is contained in:
@@ -40,3 +40,10 @@ SonarQube может создавать несколько замечаний п
|
||||
### Отчет по проектам
|
||||
|
||||
При необходимоси получить отчет по проектам (по интересующим метрикам) и использовать его в других приложениях (либо рассылать по почте) можно вручную собирать информацию по страницам SonarQube, но проще использовать `sonar-helper`, вызвав команду `report` и передав ей информации для авторизации, список проектов и интересующих метрик.
|
||||
|
||||
На данный момент поддерживаются следующие варианты формирования отчета:
|
||||
|
||||
- **JSON** - формируется отчет в формате json, метрики выгружаются дважды - для идентификатора метрики и для русского представления
|
||||
- **HTML** - формируется отчет в формате html, метрики выгнржаются только для русского представления
|
||||
|
||||
Примеры отчетов находятся в каталоге [examples](/examples)
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Отчет</title>
|
||||
<meta name="description" content="Отчет">
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<p><b>Сводная информация</b></p>
|
||||
<p>
|
||||
<b>Адрес сервера: </b>https://my.sonar.server:9000<br/>
|
||||
<b>Дата формирования: </b>06.05.2019 14:17:17<br/>
|
||||
<b>Количество отчетов: </b>2<br/>
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<table border="1">
|
||||
<caption><b>Проект: </b>bsp</caption>
|
||||
<tr>
|
||||
<th>Метрика</th>
|
||||
<th>Значение</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Технический долг</td>
|
||||
<td>16734</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ошибки</td>
|
||||
<td>0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Строки кода</td>
|
||||
<td>112092</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<table border="1">
|
||||
<caption><b>Проект: </b>mdm</caption>
|
||||
<tr>
|
||||
<th>Метрика</th>
|
||||
<th>Значение</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Технический долг</td>
|
||||
<td>30632</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ошибки</td>
|
||||
<td>110</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Строки кода</td>
|
||||
<td>147102</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"ДатаФормирования": "2019-05-06T14:17:17.5125591",
|
||||
"СерверSonarQube": "http:\/\/my.sonar.server:9000",
|
||||
"Количество": 2,
|
||||
"Отчеты": [{
|
||||
"КлючПроекта": "bsp",
|
||||
"Метрики": {
|
||||
"Технический_долг": "16734",
|
||||
"sqale_index": "16734",
|
||||
"Ошибки": "0",
|
||||
"bugs": "0",
|
||||
"Строки_кода": "112092",
|
||||
"ncloc": "112092"
|
||||
}
|
||||
},
|
||||
{
|
||||
"КлючПроекта": "mdm",
|
||||
"Метрики": {
|
||||
"Технический_долг": "30632",
|
||||
"sqale_index": "30632",
|
||||
"Строки_кода": "147102",
|
||||
"ncloc": "147102",
|
||||
"Ошибки": "110",
|
||||
"bugs": "110"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -53,6 +53,7 @@
|
||||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--report-path", "Путь для сохранения отчета");
|
||||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--report-format", "Формат сохраняемого отчета.
|
||||
| Возможные варианнты:
|
||||
| HTML - создает html - страницу
|
||||
| JSON - выгружает файл json
|
||||
|
|
||||
| По умолчанию используется формат JSON");
|
||||
@@ -216,7 +217,7 @@
|
||||
Функция ПолучитьПравильныйФорматОтчета(Знач ВыбранныйФорматОтчета, ОшибокНет)
|
||||
|
||||
ВРЕГВыбранныйФорматОтчета = ВРЕГ(ВыбранныйФорматОтчета);
|
||||
Если НЕ (ВРЕГВыбранныйФорматОтчета = "JSON") Тогда
|
||||
Если НЕ (ВРЕГВыбранныйФорматОтчета = "HTML" ИЛИ ВРЕГВыбранныйФорматОтчета = "JSON") Тогда
|
||||
|
||||
ОшибокНет = Ложь;
|
||||
Лог.Ошибка("Указан неизвестный формат отчета `%1`", ОбернутьЗначениеДляПечати(ВыбранныйФорматОтчета));
|
||||
@@ -280,6 +281,74 @@
|
||||
ЗаписьJSON.ОткрытьФайл(ПутьКОтчету);
|
||||
ЗаписатьJSON(ЗаписьJSON, КоллекцияОтчетов);
|
||||
ЗаписьJSON.Закрыть();
|
||||
ИначеЕсли ФорматОтчета = "HTML" Тогда
|
||||
ДоступныеМетрики = Сонар.ДоступныеМетрики();
|
||||
ТекстТаблиц = "";
|
||||
Для Каждого Отчет Из КоллекцияОтчетов.Отчеты Цикл
|
||||
ТекстСтрок = "";
|
||||
Для Каждого Метрика Из Отчет.Метрики Цикл
|
||||
Если ДоступныеМетрики.Свойство(Метрика.Ключ) Тогда
|
||||
Продолжить; // оставим только русско-язычные
|
||||
КонецЕсли;
|
||||
ТекстСтрок = ТекстСтрок + СтрШаблон(ШаблонСтрокаТаблицы(), СтрЗаменить(Метрика.Ключ, "_", " "), Метрика.Значение) + Символы.ПС;
|
||||
КонецЦикла;
|
||||
ТекстТаблиц = ТекстТаблиц + СтрШаблон(ШаблонТаблица(), Отчет.КлючПроекта, ТекстСтрок) + Символы.ПС;
|
||||
КонецЦикла;
|
||||
ТекстОтчета = СтрШаблон(ШаблонОтчета(),
|
||||
КоллекцияОтчетов.ДатаФормирования,
|
||||
КоллекцияОтчетов.СерверSonarQube,
|
||||
КоллекцияОтчетов.Количество,
|
||||
ТекстТаблиц);
|
||||
|
||||
ЗаписьJSON = Новый ЗаписьJSON();
|
||||
ЗаписьJSON.ОткрытьФайл(ПутьКОтчету);
|
||||
ЗаписьJSON.ЗаписатьБезОбработки(ТекстОтчета);
|
||||
ЗаписьJSON.Закрыть();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ШаблонОтчета()
|
||||
Возврат
|
||||
"<!DOCTYPE html>
|
||||
|<html>
|
||||
|<head>
|
||||
|<meta charset=""utf-8"">
|
||||
|<title>Отчет sonar-helper</title>
|
||||
|<meta name=""description"" content=""Отчет sonar-helper"">
|
||||
|</head>
|
||||
|<body>
|
||||
|<div>
|
||||
|<p><b>Сводная информация</b></p>
|
||||
|<p>
|
||||
|<b>Адрес сервера: </b>%2<br/>
|
||||
|<b>Дата формирования: </b>%1<br/>
|
||||
|<b>Количество отчетов: </b>%3<br/>
|
||||
|</p>
|
||||
|</div>
|
||||
|%4
|
||||
|</body>
|
||||
|</html>";
|
||||
КонецФункции
|
||||
|
||||
Функция ШаблонТаблица()
|
||||
Возврат
|
||||
"<div>
|
||||
|<table border=""1"">
|
||||
|<caption><b>Проект: </b>%1</caption>
|
||||
|<tr>
|
||||
|<th>Метрика</th>
|
||||
|<th>Значение</th>
|
||||
|</tr>
|
||||
|%2
|
||||
|</table>
|
||||
|</div>";
|
||||
КонецФункции
|
||||
|
||||
Функция ШаблонСтрокаТаблицы()
|
||||
Возврат
|
||||
"<tr>
|
||||
|<td>%1</td>
|
||||
|<td>%2</td>
|
||||
|</tr>";
|
||||
КонецФункции
|
||||
|
||||
Reference in New Issue
Block a user