From df5d81d80d1f969c8564fc26a5189692e410e555 Mon Sep 17 00:00:00 2001 From: Segate-ekb <80944823+Segate-ekb@users.noreply.github.com> Date: Wed, 19 Jan 2022 10:33:27 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D1=80=D0=B0=20--task-pattern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавил параметр позволяющий проверять вхождение задач не только по префиксу, но и по регулярному выражению. --- .../checkComments.os" | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/checkComments.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/checkComments.os" index a1e7ba7..8f89348 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/checkComments.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/checkComments.os" @@ -5,6 +5,7 @@ Перем КомандыПлагина; Перем ВызватьОшибку; Перем ПрефиксЗадачи; +Перем ПаттернЗадачи; Перем МинимальноеКоличествоЗадач; Перем МаксимальноеКоличествоЗадач; Перем ВыводитьПредставление; @@ -85,6 +86,10 @@ КлассРеализации.Опция("task-prefix", "", "[*check-comments] Префикс задачи.") .ВОкружении("GITSYNC_TASK_PREFIX") .Обязательный(Ложь); + + КлассРеализации.Опция("task-pattern", "", "[*check-comments] Паттерн задачи.") + .ВОкружении("GITSYNC_TASK_PATTERN") + .Обязательный(Ложь); КлассРеализации.Опция("min-task-count", 0, СтрШаблон("[*check-comments] Минимальное количество упоминаний задач")) .ТЧисло() @@ -114,6 +119,9 @@ ПрефиксЗадачи = ПараметрыКоманды.Параметр("task-prefix", ""); Лог.Отладка("Получаю параметр значение <%1>", ПрефиксЗадачи); + + ПаттернЗадачи = ПараметрыКоманды.Параметр("task-pattern", ""); + Лог.Отладка("Получаю параметр значение <%1>", ПаттернЗадачи); МинимальноеКоличествоЗадач = ПараметрыКоманды.Параметр("min-task-count", 0); Лог.Отладка("Получаю параметр значение <%1>", МинимальноеКоличествоЗадач); @@ -159,18 +167,26 @@ Процедура ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия) - Если ПустаяСтрока(ПрефиксЗадачи) Или ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда + Если (ПустаяСтрока(ПрефиксЗадачи) и ПустаяСтрока(ПаттернЗадачи)) Или ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда Возврат; КонецЕсли; - РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d")); + Если НЕ ПустаяСтрока(ПаттернЗадачи) Тогда + //Добавим возможность ограничивать номер задачи не только префиксом, но и регулярным выражением. Дабы дать возможность использовать плагин в случае сложных составных номеров инцидентов + РВ = ПаттернЗадачи; + ИспользуемыйШаблон = "соответствующих паттерну """+ПаттернЗадачи+""""; + Иначе + РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d")); + ИспользуемыйШаблон = ПрефиксЗадачи; + КонецЕсли + Совпадения = РВ.НайтиСовпадения(СтрокаВерсии.Комментарий); КоличествоВхождений = Совпадения.количество(); Если КоличествоВхождений < МинимальноеКоличествоЗадач Тогда СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) меньше требуемого (%5)", СледующаяВерсия, - Автор(СтрокаВерсии), ПрефиксЗадачи, КоличествоВхождений, МинимальноеКоличествоЗадач); + Автор(СтрокаВерсии), ИспользуемыйШаблон, КоличествоВхождений, МинимальноеКоличествоЗадач); Лог.КритичнаяОшибка(СтрокаОшибки); @@ -185,7 +201,7 @@ Если КоличествоВхождений > МаксимальноеКоличествоЗадач Тогда СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) больше требуемого (%5)", СледующаяВерсия, - Автор(СтрокаВерсии), ПрефиксЗадачи, КоличествоВхождений, МаксимальноеКоличествоЗадач); + Автор(СтрокаВерсии), ИспользуемыйШаблон, КоличествоВхождений, МаксимальноеКоличествоЗадач); Лог.КритичнаяОшибка(СтрокаОшибки); From 2e1730402a94637a2688f9f0cfa439b42a1fa307 Mon Sep 17 00:00:00 2001 From: Segate-ekb <80944823+Segate-ekb@users.noreply.github.com> Date: Wed, 19 Jan 2022 12:23:16 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=BF=D0=B5=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../checkComments.os" | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/checkComments.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/checkComments.os" index 8f89348..fe5acb8 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/checkComments.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/checkComments.os" @@ -172,13 +172,12 @@ КонецЕсли; Если НЕ ПустаяСтрока(ПаттернЗадачи) Тогда - //Добавим возможность ограничивать номер задачи не только префиксом, но и регулярным выражением. Дабы дать возможность использовать плагин в случае сложных составных номеров инцидентов - РВ = ПаттернЗадачи; - ИспользуемыйШаблон = "соответствующих паттерну """+ПаттернЗадачи+""""; + РВ = Новый РегулярноеВыражение(ПаттернЗадачи); + ИспользуемыйШаблон = "соответствующих паттерну """ + ПаттернЗадачи + """"; Иначе РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d")); ИспользуемыйШаблон = ПрефиксЗадачи; - КонецЕсли + КонецЕсли; Совпадения = РВ.НайтиСовпадения(СтрокаВерсии.Комментарий); КоличествоВхождений = Совпадения.количество();