-
Couldn't load subscription status.
- Fork 93
WIP: Поддержка работы с плагинами (PR для обсуждения) #100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
khorevaa
wants to merge
87
commits into
oscript-library:develop
from
khorevaa:feature/add-plugns-support
Closed
Changes from 5 commits
Commits
Show all changes
87 commits
Select commit
Hold shift + click to select a range
a6c3db3
Начало работы с поддержкой плагинов
khorevaa 73e7963
Пробная версия работы с плагинами
khorevaa 785a9b7
Merge branch 'develop' into feature/add-plugns-support
khorevaa 1030ad6
Альфа вариант работы с плагинами.
khorevaa a00ddba
Реализовал 3 плагина и простые тесты к ним.
khorevaa 11ae9e0
Изменения процедура ПрочитатьИзХранилищаИсториюКоммитовСАвторами для …
khorevaa 9389176
Переработал класс управления Плагинами, добавил новые подписки на доб…
khorevaa 4d691bc
Проработка плагинов. Добавлны новые плагины push, pull. Старые чутка …
khorevaa 6ac5c36
Рефакторинг процедуры
khorevaa 2a2ca76
Переместил СинхронизироватьХранилищеКонфигурацийСГит и удалил Разложи…
khorevaa 3f241b8
Удалил ВыполнитьGitPull - не используется
khorevaa 2ac2752
Убрал не правильный контекст плагина
khorevaa 35026d5
удалил ВыполнитьGitPush - не используется
khorevaa 0aa41b0
Заменил ОчиститьЦелевойКаталогВыгрузки на ОчиститьКаталогРабочейКопии
khorevaa 1bf9368
Удалили ОчиститьЦелевойКаталогВыгрузки - не используется
khorevaa 48bfc94
Удалил РазложитьМодули1СПоПапкамСогласноИерархииМетаданных
khorevaa 49212d2
удалил РазобратьФайлКонфигурации
khorevaa 6550119
удалил ВыгрузитьМодулиКонфигурации
khorevaa 341d256
Добавил область ОБРАБОТКА ВЕРСИИ КОНФИГУРАЦИИ
khorevaa 7f01404
Удалил очистки каталога сборки после вызова конфигуратора
khorevaa a81f11e
Добавил удаление временных файлов после команд конфигуратора
khorevaa 24283bc
Перенес функциональность в выгрузки штатными средствами в плагин
khorevaa 3b5c92a
2 новых точки для плагинов
khorevaa 7795913
Скорректировал область конфигуратора
khorevaa aa6b4bd
Команда КлонироватьРепозиторий переведена на ГитРепозиторий
khorevaa ab93e3a
Переведана процедура ИнициализироватьРепозитарий на ГитРепозиторий
khorevaa 772969c
Переведена процедура ПроверитьНаличиеРепозитарияГит на ГитРепозиторий
khorevaa 62fa5d1
Убрал лишний СтрШаблон
khorevaa 1b1e13a
Сделал области и навел порядок
khorevaa c1b0275
Исправил мелкие баги, и опечатки в наименованиях
khorevaa c587909
Сформировал области и добавил не хватающие обработчики
khorevaa a5ff72d
Добавил экспорт - где забыл
khorevaa 135fb65
Скорректировал багу с подключением плагинов. Добавил плагин process-f…
khorevaa 7ec5029
Корректировка тестов для плагина limit
khorevaa eb4ea9c
Добавлены тесты на плагины process-fatform-modules и increment. Испра…
khorevaa 7549038
Добавил шаг, с добавлением не полного файла AUTHORS
khorevaa bbcf702
Плагин vendorUpload + Тесты к нему.
khorevaa 43af0c6
Убран лишний мусор в тестах.. (из-за плагинов)
khorevaa e171934
Удалена процедура ВыполнитьЭкспортИсходников не используется
khorevaa c991e50
Исправлена опечатка
khorevaa 8fbe1b0
Убраны комментарии
khorevaa fd0a41e
Убраны все параметры процедур, что ушли в плагины
khorevaa 254f4e0
Совместный тест 2-х плагинов
khorevaa 1c03710
Данные тесты нужны переехали в bdd
khorevaa 1a7a7e2
Добавлены метки экспорта для тестирования. Скорректированы тесты
khorevaa ec1c5a5
Исправления по результатам тестов
khorevaa 6fb5983
Переименование названия функциональностей
khorevaa 06639c3
Скорректирован путь поиска плагинов. На более правильный
khorevaa 46a9529
Корректировка передачи относительных путей на linux. Получение в пере…
khorevaa fc5c71f
Чутка отладочного сообщения
khorevaa fe05fe0
Переписан плагин инкременатльной выгрузки.
khorevaa ac33ace
Убрал лишнюю отладку.
khorevaa 40f502b
Merge remote-tracking branch 'upstream/develop' into feature/add-plug…
khorevaa 690bc24
Убрал лишние проблемы и табы.
khorevaa dec7464
Починил знатную багу!!! Чтобы никто больше не наступал!!! -v ставитс…
khorevaa eecb0d9
Плагин disableSupport снятия конфигурации с поддержки перед выгрузкой…
khorevaa 7bf9c2d
Оптимизировал запись переименований.
khorevaa c3a762d
Записываем только те переименования, которые требуется. А не все. Уме…
khorevaa 755e4a7
Корректировка определения формата выгрузки...
khorevaa 350cdc5
Изменена раскладка логирования плагина
khorevaa 09675ed
Удалил функцию СобратьКоманднуюСтроку - нигде не используется
khorevaa 81264e0
Исправление ошибок плагина check-comments
khorevaa b9d7e8d
Исправление ошибки функции "ПереместитьФайл" заменена на 2 функции
khorevaa 14c1621
Немного прекрасного.
khorevaa c6de3e9
Убрал лишее в плагинах
khorevaa 7bf6fe7
Доработанана команда all под работу с плагинами
khorevaa ba82a47
Немного красоты в плагине и сброс настроек при пакетной работе.
khorevaa 87bf8a5
Установил зависимость от delegate версии 0.2.0
khorevaa b110196
Поправил пример конфига, для пакетной синхронизации.
khorevaa 95219bf
Добавил процедуру ПриПолученииПараметров
khorevaa fe84171
Изменил вывоз команды sync. Теперь вызывает аналогично команде, а не …
khorevaa 5750737
Добавлен вывоз процедуры ПриПолученииПараметров
khorevaa 96f1a99
Чтська плагинов. И убрал лишние неспользуемые вызовы
khorevaa 2584902
Merge remote-tracking branch 'upstream/develop' into feature/add-plug…
khorevaa eff6bd3
Привел в порядок плаагины,
khorevaa ed6607f
Исправление тестов для команды -all
khorevaa 1106c43
Рефакторинг плагина. Добавли получение версии из исходников.
khorevaa 99c7560
Убрал лишний пуш, если нет новых коммитов
khorevaa 04c8dea
Добавлена функциональность по получению таблицы истории версий с испо…
khorevaa f1b5ef7
Тест работы получения ТаблицыВерсий через 1С. Предприятие
khorevaa 5ed2328
Скорректировано наимнование логов по всем плагинам.
khorevaa 21fe1d9
Добавлена зависимость от библиотеке v8storage 0.6.4
khorevaa bb86832
Убрал сообщения о вывода команды
khorevaa 17eefaf
Повысил зависимость от v8runner
khorevaa c6f59e5
Убрал получение полного пути, т.к. хранилище может быть и по http
khorevaa 22dd737
Убрал комментарий
khorevaa fc05280
Пофиксил знатный баг.. Инкрементальной выгрузки
khorevaa File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| # language: ru | ||
|
|
||
| Функционал: Инициализация каталога исходников конфигурации | ||
| Как Пользователь | ||
| Я хочу выполнять автоматическую синхронизацию конфигурации из хранилища | ||
| Чтобы автоматизировать свою работы с хранилищем с git | ||
|
|
||
| Контекст: Тестовый контекст | ||
| Когда Я очищаю параметры команды "gitsync" в контексте | ||
| И Я создаю новый объект ГитРепозиторий | ||
| И Я устанавливаю путь выполнения команды "gitsync" к текущей библиотеке | ||
| И Я добавляю параметр "sync" для команды "gitsync" | ||
| И Я создаю временный каталог и сохраняю его в контекст | ||
| И я скопировал каталог тестового хранилища конфигурации во временный каталог | ||
| И Я сохраняю значение временного каталога в переменной "КаталогХранилища1С" | ||
| И Я создаю временный каталог и сохраняю его в контекст | ||
| И Я сохраняю значение временного каталога в переменной "ПутьКаталогаИсходников" | ||
| И Я создаю тестовой файл AUTHORS | ||
| И Я записываю "0" в файл VERSION | ||
| И Я создаю временный каталог и сохраняю его в контекст | ||
| И Я инициализирую bare репозиторий во временном каталоге | ||
| И Я сохраняю значение временного каталога в переменной "URLРепозитория" | ||
| И я инициализирую связь "ПутьКаталогаИсходников" с внешним репозиторием "URLРепозитория" | ||
| И я включаю отладку лога с именем "oscript.app.gitsync" | ||
| И я включаю отладку лога с именем "oscript.app.gitsync-plugins" | ||
| И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С" | ||
| И Я добавляю позиционный параметр для команды "gitsync" из переменной "URLРепозитория" | ||
| И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников" | ||
|
|
||
| Сценарий: Cинхронизация хранилища с git-репозиторием с использованием плагина auto-set-tag | ||
| Допустим Я создаю временный каталог и сохраняю его в контекст | ||
| И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория" | ||
| И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория" | ||
| И Я добавляю параметр "-limit 1" для команды "gitsync" | ||
| И Я добавляю параметр "-plugins auto-set-tags" для команды "gitsync" | ||
| Когда Я выполняю команду "gitsync" | ||
| Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Синхронизация завершена" | ||
| И Вывод команды "gitsync" не содержит "Внешнее исключение" | ||
| И Код возврата команды "gitsync" равен 0 | ||
|
|
||
| Сценарий: Cинхронизация хранилища с git-репозиторием с использованием плагина check-authors | ||
| Допустим Я создаю временный каталог и сохраняю его в контекст | ||
| И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория" | ||
| И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория" | ||
| И Я добавляю параметр "-limit 1" для команды "gitsync" | ||
| И Я добавляю параметр "-plugins check-authors" для команды "gitsync" | ||
| И Я создаю неполный тестовой файл AUTHORS | ||
| И Я инициализирую связь "ПутьКаталогаИсходников" с внешним репозиторием "URLРепозитория" | ||
| Когда Я выполняю команду "gitsync" | ||
| Тогда Вывод команды "gitsync" содержит "В таблице истории версий найдены авторы (количество 7), которые не сопоставлены в AUTHORS" | ||
| И Вывод команды "gitsync" не содержит "Внешнее исключение" | ||
| И Код возврата команды "gitsync" равен 1 | ||
|
|
||
| Сценарий: Cинхронизация хранилища с git-репозиторием с использованием плагина stop-if-empty-comment | ||
| Допустим Я создаю временный каталог и сохраняю его в контекст | ||
| И Я сохраняю значение временного каталога в переменной "ВременнаяДиректория" | ||
| И Я добавляю параметр "-tempdir" для команды "gitsync" из переменной "ВременнаяДиректория" | ||
| И Я добавляю параметр "-limit 5" для команды "gitsync" | ||
| И Я добавляю параметр "-plugins stop-if-empty-comment" для команды "gitsync" | ||
| Когда Я выполняю команду "gitsync" | ||
| Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Нашли следующую версию <4> от автора <Администратор>, а комментарий не задан!" | ||
| И Вывод команды "gitsync" не содержит "Внешнее исключение" | ||
| И Код возврата команды "gitsync" равен 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| #Использовать logos | ||
|
|
||
| Перем ВерсияПлагина; | ||
| Перем Лог; | ||
|
|
||
| Перем ПоследнняяВерсияКонфигурации; | ||
| Перем НоваяМетка; | ||
|
|
||
| Функция Информация() Экспорт | ||
|
|
||
| Возврат Новый Структура("Версия, Лог", ВерсияПлагина, Лог) | ||
|
|
||
| КонецФункции // Информация() Экспорт | ||
|
|
||
| Процедура ПередНачаломЦиклаОбработкиВерсий(ТаблицаИсторииХранилища, ТекущаяВерсия, СледующаяВерсия, МаксимальнаяВерсияДляРазбора, КонтекстПлагина) Экспорт | ||
|
|
||
| СтрокаТекущейВерсии = ТаблицаИсторииХранилища.Найти(СледующаяВерсия, "НомерВерсии"); | ||
| ОтправитьНовыеМетки = Ложь; | ||
| Если СтрокаТекущейВерсии <> Неопределено Тогда | ||
| ПоследнняяВерсияКонфигурации = СтрокаТекущейВерсии.Тэг; | ||
| КонецЕсли; | ||
|
|
||
| КонецПроцедуры | ||
|
|
||
| Процедура ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия, КонтекстПлагина) Экспорт | ||
|
|
||
| НоваяМетка = ""; | ||
| Если ПоследнняяВерсияКонфигурации <> СтрокаВерсии.Тэг Тогда | ||
| ОтправитьНовыеМетки = Истина; | ||
| Лог.Информация("Определена новая версия конфигурации: %1 будет установлен новый тэг", СтрокаВерсии.Тэг); | ||
| НоваяМетка = СтрокаВерсии.Тэг; | ||
| ПоследнняяВерсияКонфигурации = НоваяМетка; | ||
| КонецЕсли; | ||
|
|
||
| КонецПроцедуры | ||
|
|
||
| Процедура ПослеКоммита(ГитРепозиторий, КаталогРабочейКопии, КонтекстПлагина) Экспорт | ||
|
|
||
| Если ЗначениеЗаполнено(НоваяМетка) Тогда | ||
| ПараметрыКоманды = Новый Массив; | ||
| ПараметрыКоманды.Добавить("tag"); | ||
| ПараметрыКоманды.Добавить(Строка(НоваяМетка)); | ||
|
|
||
| ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды); | ||
|
|
||
| КонецЕсли; | ||
|
|
||
| КонецПроцедуры | ||
|
|
||
|
|
||
| Процедура Инициализация() | ||
|
|
||
| ВерсияПлагина = "1.0.0"; | ||
| Лог = Логирование.ПолучитьЛог("auto-set-tags"); | ||
| ПоследнняяВерсияКонфигурации = Неопределено; | ||
|
|
||
| КонецПроцедуры | ||
|
|
||
| Инициализация(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,72 @@ | ||
| #Использовать logos | ||
|
|
||
| Перем ВерсияПлагина; | ||
| Перем Лог; | ||
|
|
||
| Перем МассивНомеровВерсий; | ||
|
|
||
| Функция Информация() Экспорт | ||
|
|
||
| Возврат Новый Структура("Версия, Лог", ВерсияПлагина, Лог) | ||
|
|
||
| КонецФункции // Информация() Экспорт | ||
|
|
||
| Процедура ПослеПолученияТаблицыВерсий(ТаблицаИсторииХранилища, ПутьКХранилищу, КаталогРабочейКопии, КонтекстПлагина) Экспорт | ||
|
|
||
| ПутьКФайлуСопоставления = ОбъединитьПути(КаталогРабочейКопии, Обработчик.ИмяФайлаАвторов()); | ||
| ТаблицаСопоставления = Обработчик.ПрочитатьФайлАвторовГитВТаблицуПользователей(ПутьКФайлуСопоставления); | ||
| СоответствиеСообщенийОбОшибочныхАвторах = Новый Соответствие; | ||
|
|
||
| МассивНомеровВерсий = новый Массив; | ||
|
|
||
| Для Каждого Строка Из ТаблицаИсторииХранилища Цикл | ||
|
|
||
| СтрокаПользователя = ТаблицаСопоставления.Найти(строка.Автор, "Автор"); | ||
| Если СтрокаПользователя = Неопределено Тогда | ||
|
|
||
| МассивНомеровВерсий.Добавить(Строка.НомерВерсии); | ||
|
|
||
| КонецЕсли; | ||
|
|
||
| КонецЦикла; | ||
|
|
||
| КонецПроцедуры | ||
|
|
||
| Процедура ПередНачаломЦиклаОбработкиВерсий(ТаблицаИсторииХранилища, ТекущаяВерсия, СледующаяВерсия, МаксимальнаяВерсияДляРазбора, КонтекстПлагина) Экспорт | ||
|
|
||
| КоличествоВерсий = 0; | ||
|
|
||
| Для Каждого СтрокаВерсии из ТаблицаИсторииХранилища Цикл | ||
|
|
||
| Если СтрокаВерсии.НомерВерсии < ТекущаяВерсия Тогда | ||
| Продолжить; | ||
| КонецЕсли; | ||
|
|
||
| Если МассивНомеровВерсий.Найти(СтрокаВерсии.НомерВерсии) > 0 Тогда | ||
|
|
||
| Лог.Отладка("Проверяю строку: "+ СтрокаВерсии.НомерВерсии); | ||
| СтрокаОшибки = СтрШаблон("Нашли версию <%1>, а автор <%2> не сопоставлен пользователь git.", СтрокаВерсии.НомерВерсии, СтрокаВерсии.Автор); | ||
| Лог.КритичнаяОшибка(СтрокаОшибки); | ||
| КоличествоВерсий = КоличествоВерсий +1; | ||
| КонецЕсли; | ||
|
|
||
| КонецЦикла; | ||
|
|
||
| Если КоличествоВерсий > 0 Тогда | ||
|
|
||
| СтрокаОшибки = СтрШаблон("В таблице истории версий найдены авторы (количество %1), которые не сопоставлены в AUTHORS",КоличествоВерсий); | ||
|
|
||
| ВызватьИсключение СтрокаОшибки; | ||
|
|
||
| КонецЕсли; | ||
|
|
||
| КонецПроцедуры | ||
|
|
||
| Процедура Инициализация() | ||
|
|
||
| ВерсияПлагина = "1.0.0"; | ||
| Лог = Логирование.ПолучитьЛог("check-authors"); | ||
|
|
||
| КонецПроцедуры | ||
|
|
||
| Инициализация(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| #Использовать logos | ||
|
|
||
| Перем ВерсияПлагина; | ||
| Перем Лог; | ||
|
|
||
| Перем МассивНомеровВерсий; | ||
|
|
||
| Функция Информация() Экспорт | ||
|
|
||
| Возврат Новый Структура("Версия, Лог", ВерсияПлагина, Лог) | ||
|
|
||
| КонецФункции // Информация() Экспорт | ||
|
|
||
| Процедура ПередНачаломЦиклаОбработкиВерсий(ТаблицаИсторииХранилища, ТекущаяВерсия, СледующаяВерсия, МаксимальнаяВерсияДляРазбора, КонтекстПлагина) Экспорт | ||
|
|
||
|
|
||
| КонецПроцедуры | ||
|
|
||
| Процедура ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия, КонтекстПлагина) Экспорт | ||
|
|
||
| Если ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда | ||
| СтрокаОшибки = СтрШаблон("Нашли следующую версию <%1> от автора <%2>, а комментарий не задан!", СледующаяВерсия, СтрокаВерсии.Автор); | ||
| Лог.КритичнаяОшибка(СтрокаОшибки); | ||
| ВызватьИсключение СтрокаОшибки; | ||
| КонецЕсли; | ||
|
|
||
| КонецПроцедуры | ||
|
|
||
| Процедура Инициализация() | ||
|
|
||
| ВерсияПлагина = "1.0.0"; | ||
| Лог = Логирование.ПолучитьЛог("stop-if-empty-comment"); | ||
|
|
||
| КонецПроцедуры | ||
|
|
||
| Инициализация(); | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nixel2007 Зацени, как методы-обработчики выглядят красиво с делегатами, в отличие от Оповещений 1С :)