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 23307a4..64ef4ea 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" @@ -4,6 +4,9 @@ Перем Лог; Перем КомандыПлагина; Перем ВызватьОшибку; +Перем ПрефиксЗадачи; +Перем МинимальноеКоличествоЗадач; +Перем МаксимальноеКоличествоЗадач; #Область Интерфейс_плагина @@ -67,7 +70,7 @@ Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт - Лог.Отладка("Ищю команду <%1> в списке поддерживаемых", ИмяКоманды); + Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды); Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда Возврат; КонецЕсли; @@ -77,6 +80,18 @@ КлассРеализации.Опция("C error-comment", Ложь, "[*check-comments] флаг вызова ошибки при отсутствии текста комментария") .Флаговый(); + КлассРеализации.Опция("task-prefix", "", "[*check-comments] Префикс задачи.") + .ВОкружении("GITSYNC_TASK_PREFIX") + .Обязательный(Ложь); + + КлассРеализации.Опция("min-task-count", 0, СтрШаблон("[*check-comments] Минимальное количество упоминаний задач")) + .ТЧисло() + .Обязательный(Ложь); + + КлассРеализации.Опция("max-task-count", 0, СтрШаблон("[*check-comments] Максимальное количество упоминаний задач")) + .ТЧисло() + .Обязательный(Ложь); + КонецПроцедуры Процедура ПриПолученииПараметров(ПараметрыКоманды) Экспорт @@ -84,29 +99,87 @@ ВызватьОшибку = ПараметрыКоманды.Параметр("error-comment", Ложь); ВызватьОшибку = Булево(ВызватьОшибку); - Лог.Отладка("Получаю параметр значение <%1>", ВызватьОшибку); - + + ПрефиксЗадачи = ПараметрыКоманды.Параметр("task-prefix", ""); + Лог.Отладка("Получаю параметр значение <%1>", ПрефиксЗадачи); + + МинимальноеКоличествоЗадач = ПараметрыКоманды.Параметр("min-task-count", 0); + Лог.Отладка("Получаю параметр значение <%1>", МинимальноеКоличествоЗадач); + + МаксимальноеКоличествоЗадач = ПараметрыКоманды.Параметр("max-task-count", 0); + Лог.Отладка("Получаю параметр значение <%1>", МаксимальноеКоличествоЗадач); + КонецПроцедуры Процедура ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия) Экспорт - Если ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда - СтрокаОшибки = СтрШаблон("Нашли следующую версию <%1> от автора <%2>, а комментарий не задан!", - СледующаяВерсия, - СтрокаВерсии.Автор); - Лог.КритичнаяОшибка(СтрокаОшибки); + ПроверитьЗаполненностьКомментария(СтрокаВерсии, СледующаяВерсия); + + ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия); + +КонецПроцедуры + +Процедура ПроверитьЗаполненностьКомментария(СтрокаВерсии, СледующаяВерсия) + Если Не ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда + Возврат; + КонецЕсли; + + СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: комментарий не задан", + СледующаяВерсия, + СтрокаВерсии.Автор); + Лог.КритичнаяОшибка(СтрокаОшибки); + + Если ВызватьОшибку Тогда + + ВызватьИсключение СтрокаОшибки; + + КонецЕсли; + +КонецПроцедуры + +Процедура ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия) + + Если ПустаяСтрока(ПрефиксЗадачи) Или ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда + Возврат; + КонецЕсли; + + РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d")); + Совпадения = РВ.НайтиСовпадения(СтрокаВерсии.Комментарий); + КоличествоВхождений = Совпадения.количество(); + + Если КоличествоВхождений < МинимальноеКоличествоЗадач Тогда + СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) меньше требуемого (%5)", + СледующаяВерсия, + СтрокаВерсии.Автор, ПрефиксЗадачи, КоличествоВхождений, МинимальноеКоличествоЗадач); + + Лог.КритичнаяОшибка(СтрокаОшибки); + Если ВызватьОшибку Тогда ВызватьИсключение СтрокаОшибки; КонецЕсли; - + КонецЕсли; + + Если КоличествоВхождений > МаксимальноеКоличествоЗадач Тогда + СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) больше требуемого (%5)", + СледующаяВерсия, + СтрокаВерсии.Автор, ПрефиксЗадачи, КоличествоВхождений, МаксимальноеКоличествоЗадач); + + Лог.КритичнаяОшибка(СтрокаОшибки); + + Если ВызватьОшибку Тогда -КонецПроцедуры + ВызватьИсключение СтрокаОшибки; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры #КонецОбласти Процедура Инициализация() diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/increment.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/increment.os" index 0f98c68..d939944 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/increment.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/increment.os" @@ -107,7 +107,7 @@ КаталогРабочейКопии, ?(ТекущийФайлВерсийМетаданных.Существует(), "существует", "отсутствует")); - Лог.Отладка("Проверяю возможность обновление выгрузки для файла <%1>", ПутьКФайлуВерсийМетаданных); + Лог.Отладка("Проверяю возможность обновления выгрузки для файла <%1>", ПутьКФайлуВерсийМетаданных); ВыгрузкаИзмененийВозможна = ТекущийФайлВерсийМетаданных.Существует() И ПроверитьВозможностьОбновленияФайловВыгрузки(Конфигуратор, КаталогВыгрузки, ПутьКФайлуВерсийМетаданных); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/limit.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/limit.os" index 6e044ba..6728397 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/limit.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/limit.os" @@ -78,7 +78,7 @@ Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт - Лог.Отладка("Ищю команду <%1> в списке поддерживаемых", ИмяКоманды); + Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды); Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда Возврат; КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/smartTags.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/smartTags.os" index b5b5683..8df9a53 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/smartTags.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/smartTags.os" @@ -34,7 +34,7 @@ // Строка - описание функциональности плагина // Функция Описание() Экспорт - Возврат "Плагин добавляет функциональность автоматической расстановки метов в git"; + Возврат "Плагин добавляет функциональность автоматической расстановки меток в git"; КонецФункции // Возвращает подробную справку к плагину @@ -76,7 +76,7 @@ Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт - Лог.Отладка("Ищю команду <%1> в списке поддерживаемых", ИмяКоманды); + Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды); Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда Возврат; КонецЕсли; @@ -178,7 +178,7 @@ ФайлКонфигурации = Новый Файл(ОбъединитьПути(КаталогИсходныхФайлов, "Configuration.xml")); Если Не ФайлКонфигурации.Существует() Тогда - ВызватьИсключение СтрШаблон("Файл <%1> не найдет у указанном каталоге.", ФайлКонфигурации.ПолноеИмя); + ВызватьИсключение СтрШаблон("Файл <%1> не найден у указанном каталоге.", ФайлКонфигурации.ПолноеИмя); КонецЕсли; ПараметрыКонфигурации = Новый Структура; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/syncRemote.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/syncRemote.os" index e4a37cb..905f057 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/syncRemote.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/syncRemote.os" @@ -96,7 +96,7 @@ Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт - Лог.Отладка("Ищю команду <%1> в списке поддерживаемых", ИмяКоманды); + Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды); Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда Возврат; КонецЕсли; @@ -135,8 +135,8 @@ КоличествоКоммитовДоPush = ПараметрыКоманды.Параметр("push-n-commits", 0); Лог.Отладка("Установлена отправка изменений <%1> ", ОтправитьИзменения); - Лог.Отладка("Установлена получение изменений <%1> ", ОтправитьИзменения); - Лог.Отладка("Установлено количество коммитов <%1> после, которых осущевствляется отправка", КоличествоКоммитовДоPush); + Лог.Отладка("Установлено получение изменений <%1> ", ОтправитьИзменения); + Лог.Отладка("Установлено количество коммитов <%1> после, которых осуществляется отправка", КоличествоКоммитовДоPush); Лог.Отладка("Установлен флаг оправки меток в значение <%1> выгрузки версий", ОтправлятьТеги); КонецПроцедуры diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/tool1CD.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/tool1CD.os" index 09f61b7..8ac26a0 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/tool1CD.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/tool1CD.os" @@ -7,7 +7,7 @@ Перем Лог; Перем Обработчик; Перем КоличествоЦикловОжиданияЛицензии; -Перем КэшПроверкиПутиКХранилищю; +Перем КэшПроверкиПутиКХранилищу; Перем ЭтоХранилищеРасширения; #Область Интерфейс_плагина @@ -91,7 +91,7 @@ Процедура ПриЗагрузкеВерсииХранилищаВКонфигурацию(Конфигуратор, КаталогРабочейКопии, ПутьКХранилищу, НомерВерсии, СтандартнаяОбработка) Экспорт - Если НЕ ПроверитьПутьКХранилищю(ПутьКХранилищу) Тогда + Если НЕ ПроверитьПутьКХранилищу(ПутьКХранилищу) Тогда Возврат; КонецЕсли; @@ -151,7 +151,7 @@ Процедура ПриПолученииТаблицыВерсий(ТаблицаВерсий, ПутьКХранилищу, НачальнаяВерсия, СтандартнаяОбработка) Экспорт - Если НЕ ПроверитьПутьКХранилищю(ПутьКХранилищу) Тогда + Если НЕ ПроверитьПутьКХранилищу(ПутьКХранилищу) Тогда Возврат; КонецЕсли; @@ -198,7 +198,7 @@ // Процедура ПриПолученииТаблицыПользователей(ТаблицаПользователей, ПутьКХранилищу, СтандартнаяОбработка) Экспорт - Если НЕ ПроверитьПутьКХранилищю(ПутьКХранилищу) Тогда + Если НЕ ПроверитьПутьКХранилищу(ПутьКХранилищу) Тогда Возврат; КонецЕсли; @@ -274,15 +274,15 @@ КонецФункции -Функция ПроверитьПутьКХранилищю(Знач ПутьКХранилищу) +Функция ПроверитьПутьКХранилищу(Знач ПутьКХранилищу) - Результат = КэшПроверкиПутиКХранилищю[ПутьКХранилищу]; + Результат = КэшПроверкиПутиКХранилищу[ПутьКХранилищу]; Если Результат = Неопределено Тогда Если СтрНачинаетсяС(ВРег(ПутьКХранилищу), "TCP:") ИЛИ СтрНачинаетсяС(ВРег(ПутьКХранилищу), "HTTP") Тогда - КэшПроверкиПутиКХранилищю.Вставить(ПутьКХранилищу, Ложь); + КэшПроверкиПутиКХранилищу.Вставить(ПутьКХранилищу, Ложь); Возврат Ложь; КонецЕсли; @@ -304,7 +304,7 @@ КонецЕсли; - КэшПроверкиПутиКХранилищю.Вставить(ПутьКХранилищу, Результат); + КэшПроверкиПутиКХранилищу.Вставить(ПутьКХранилищу, Результат); Если Результат Тогда Лог.Информация("Использую tool1CD для работы с хранилищем"); @@ -361,7 +361,7 @@ КомандыПлагина.Добавить("clone"); КомандыПлагина.Добавить("init"); - КэшПроверкиПутиКХранилищю = Новый Соответствие; + КэшПроверкиПутиКХранилищу = Новый Соответствие; ЭтоХранилищеРасширения = Ложь; КонецПроцедуры diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/unpackForm.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/unpackForm.os" index 35f87ed..7be91f0 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/unpackForm.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/unpackForm.os" @@ -81,7 +81,7 @@ Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт - Лог.Отладка("Ищю команду <%1> в списке поддерживаемых", ИмяКоманды); + Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды); Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда Возврат; КонецЕсли;