Skip to content

Feature/add push options #86

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

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions src/Классы/syncRemote.os
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
Перем КоличествоКоммитовДоPush;
Перем СчетчикКоммитов;
Перем ОтправлятьТеги;
Перем PushOptions;

Перем ГитРепозиторий;

Expand All @@ -27,7 +28,7 @@
// Строка - текущая версия плагина
//
Функция Версия() Экспорт
Возврат "1.6.0";
Возврат "1.7.0";
КонецФункции

// Возвращает приоритет выполнения плагина
Expand Down Expand Up @@ -88,6 +89,7 @@
ПолучитьИзменения = Ложь;
ОтправитьИзменения = Ложь;
ОтправлятьТеги = Ложь;
PushOptions = "";

КоличествоКоммитовДоPush = 0;
СчетчикКоммитов = 0;
Expand Down Expand Up @@ -116,7 +118,10 @@
КлассРеализации.Опция("n push-n-commits", 0, "[*sync-remote] <число> количество коммитов до промежуточной отправки на удаленный сервер")
.ТЧисло()
.ВОкружении("GITSYNC_REMOTE_PUSH_N_COMMITS");

КлассРеализации.Опция("O push-options", "", "[*sync-remote] Дополнительные параметры для команды push, разделенные ;")
.ТСтрока()
.ВОкружении("GITSYNC_PUSH_OPTIONS");

КлассРеализации.Аргумент("URL", "", "[*sync-remote] Адрес удаленного репозитория GIT.")
.ВОкружении("GITSYNC_REPO_URL")
.Обязательный(Ложь);
Expand All @@ -131,13 +136,15 @@
ПолучитьИзменения = ПараметрыКоманды.Параметр("pull", Ложь);
ОтправитьИзменения = ПараметрыКоманды.Параметр("push", Ложь);
ОтправлятьТеги = ПараметрыКоманды.Параметр("push-tags", Ложь);
PushOptions = СтрРазделить(ПараметрыКоманды.Параметр("push-options", ""), ";");

КоличествоКоммитовДоPush = ПараметрыКоманды.Параметр("push-n-commits", 0);

Лог.Отладка("Установлена отправка изменений <%1> ", ОтправитьИзменения);
Лог.Отладка("Установлено получение изменений <%1> ", ПолучитьИзменения);
Лог.Отладка("Установлено количество коммитов <%1>, после которых осуществляется отправка", КоличествоКоммитовДоPush);
Лог.Отладка("Установлен флаг отправки меток в значение <%1> выгрузки версий", ОтправлятьТеги);
Лог.Отладка("Установлены дополнительные параметры команды push: <%1>", СтрСоединить(PushOptions, ", "));

КонецПроцедуры

Expand Down Expand Up @@ -198,6 +205,12 @@
ПараметрыКомандыPush.Добавить(СтрЗаменить(URLРепозитория, "%", "%%"));
ПараметрыКомандыPush.Добавить("-v");

Для Каждого Опция Из PushOptions Цикл
Если Не ПустаяСтрока(Опция) Тогда
ПараметрыКомандыPush.Добавить("-o " + Опция);
КонецЕсли;
КонецЦикла;

ГитРепозиторий.ВыполнитьКоманду(ПараметрыКомандыPush);

Если ОтправлятьТеги Тогда
Expand All @@ -207,6 +220,12 @@
ПараметрыКомандыPush.Добавить(СтрЗаменить(URLРепозитория, "%", "%%"));
ПараметрыКомандыPush.Добавить("--tags");

Для Каждого Опция Из PushOptions Цикл
Если Не ПустаяСтрока(Опция) Тогда
ПараметрыКомандыPush.Добавить("-o " + Опция);
КонецЕсли;
КонецЦикла;

ГитРепозиторий.ВыполнитьКоманду(ПараметрыКомандыPush);

КонецЕсли;
Expand Down