Skip to content

Commit df5d81d

Browse files
authored
Добавление параметра --task-pattern
Добавил параметр позволяющий проверять вхождение задач не только по префиксу, но и по регулярному выражению.
1 parent c213b75 commit df5d81d

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

src/Классы/checkComments.os

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
Перем КомандыПлагина;
66
Перем ВызватьОшибку;
77
Перем ПрефиксЗадачи;
8+
Перем ПаттернЗадачи;
89
Перем МинимальноеКоличествоЗадач;
910
Перем МаксимальноеКоличествоЗадач;
1011
Перем ВыводитьПредставление;
@@ -85,6 +86,10 @@
8586
КлассРеализации.Опция("task-prefix", "", "[*check-comments] Префикс задачи.")
8687
.ВОкружении("GITSYNC_TASK_PREFIX")
8788
.Обязательный(Ложь);
89+
90+
КлассРеализации.Опция("task-pattern", "", "[*check-comments] Паттерн задачи.")
91+
.ВОкружении("GITSYNC_TASK_PATTERN")
92+
.Обязательный(Ложь);
8893

8994
КлассРеализации.Опция("min-task-count", 0, СтрШаблон("[*check-comments] Минимальное количество упоминаний задач"))
9095
.ТЧисло()
@@ -114,6 +119,9 @@
114119

115120
ПрефиксЗадачи = ПараметрыКоманды.Параметр("task-prefix", "");
116121
Лог.Отладка("Получаю параметр <task-prefix> значение <%1>", ПрефиксЗадачи);
122+
123+
ПаттернЗадачи = ПараметрыКоманды.Параметр("task-pattern", "");
124+
Лог.Отладка("Получаю параметр <task-pattern> значение <%1>", ПаттернЗадачи);
117125

118126
МинимальноеКоличествоЗадач = ПараметрыКоманды.Параметр("min-task-count", 0);
119127
Лог.Отладка("Получаю параметр <min-task-count> значение <%1>", МинимальноеКоличествоЗадач);
@@ -159,18 +167,26 @@
159167

160168
Процедура ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия)
161169

162-
Если ПустаяСтрока(ПрефиксЗадачи) Или ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда
170+
Если (ПустаяСтрока(ПрефиксЗадачи) и ПустаяСтрока(ПаттернЗадачи)) Или ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда
163171
Возврат;
164172
КонецЕсли;
165173

166-
РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d"));
174+
Если НЕ ПустаяСтрока(ПаттернЗадачи) Тогда
175+
//Добавим возможность ограничивать номер задачи не только префиксом, но и регулярным выражением. Дабы дать возможность использовать плагин в случае сложных составных номеров инцидентов
176+
РВ = ПаттернЗадачи;
177+
ИспользуемыйШаблон = "соответствующих паттерну """+ПаттернЗадачи+"""";
178+
Иначе
179+
РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d"));
180+
ИспользуемыйШаблон = ПрефиксЗадачи;
181+
КонецЕсли
182+
167183
Совпадения = РВ.НайтиСовпадения(СтрокаВерсии.Комментарий);
168184
КоличествоВхождений = Совпадения.количество();
169185

170186
Если КоличествоВхождений < МинимальноеКоличествоЗадач Тогда
171187
СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) меньше требуемого (%5)",
172188
СледующаяВерсия,
173-
Автор(СтрокаВерсии), ПрефиксЗадачи, КоличествоВхождений, МинимальноеКоличествоЗадач);
189+
Автор(СтрокаВерсии), ИспользуемыйШаблон, КоличествоВхождений, МинимальноеКоличествоЗадач);
174190

175191
Лог.КритичнаяОшибка(СтрокаОшибки);
176192

@@ -185,7 +201,7 @@
185201
Если КоличествоВхождений > МаксимальноеКоличествоЗадач Тогда
186202
СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) больше требуемого (%5)",
187203
СледующаяВерсия,
188-
Автор(СтрокаВерсии), ПрефиксЗадачи, КоличествоВхождений, МаксимальноеКоличествоЗадач);
204+
Автор(СтрокаВерсии), ИспользуемыйШаблон, КоличествоВхождений, МаксимальноеКоличествоЗадач);
189205

190206
Лог.КритичнаяОшибка(СтрокаОшибки);
191207

0 commit comments

Comments
 (0)