Skip to content

Commit 5ed03ef

Browse files
authored
Merge pull request #72 from Segate-ekb/develop
Возможность проверять наличие упоминания задачи по паттерну РВ
2 parents 6dd8240 + 2e17304 commit 5ed03ef

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

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

Lines changed: 19 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,25 @@
159167

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

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

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

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

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

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

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

0 commit comments

Comments
 (0)