Skip to content

Commit effcfc6

Browse files
author
root
committed
sync-remote: добавить автоматическое создание Merge Request
1 parent 1aa93e7 commit effcfc6

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99

1010
Перем URLРепозитория;
1111
Перем ИмяВетки;
12+
Перем ИмяВеткиСлияния;
1213
Перем ПолучитьИзменения;
1314
Перем ОтправитьИзменения;
15+
Перем ОтправитьЗапросНаСлияние;
1416

1517
Перем КоличествоКоммитовДоPush;
1618
Перем СчетчикКоммитов;
@@ -85,8 +87,10 @@
8587

8688
URLРепозитория = "";
8789
ИмяВетки = "";
90+
ИмяВеткиСлияния = "";
8891
ПолучитьИзменения = Ложь;
8992
ОтправитьИзменения = Ложь;
93+
ОтправитьЗапросНаСлияние = Ложь;
9094
ОтправлятьТеги = Ложь;
9195
PushOptions = "";
9296

@@ -110,9 +114,15 @@
110114
КлассРеализации.Опция("G pull", Ложь, "[*sync-remote] Флаг получения изменений из удаленный репозитория перед синхронизацией")
111115
.Флаг()
112116
.ВОкружении("GITSYNC_REMOTE_PULL");
117+
КлассРеализации.Опция("MR merge-request", Ложь, "[*sync-remote] Флаг запроса на слияние на удаленный репозиторий при пуше")
118+
.Флаг()
119+
.ВОкружении("GITSYNC_REMOTE_MERGE_REQUEST");
113120
КлассРеализации.Опция("b branch", "master", "[*sync-remote] Имя ветки")
114121
.ТСтрока()
115122
.ВОкружении("GITSYNC_REMOTE_BRANCH");
123+
КлассРеализации.Опция("mb merge-branch", "develop", "[*sync-remote] Имя ветки слияния")
124+
.ТСтрока()
125+
.ВОкружении("GITSYNC_REMOTE_MERGE_REQUEST_BRANCH");
116126
КлассРеализации.Опция("T push-tags", Ложь, "[*sync-remote] Флаг отправки тегов по версиям")
117127
.Флаг()
118128
.ВОкружении("GITSYNC_REMOTE_PUSH_TAGS");
@@ -133,17 +143,21 @@
133143

134144
URLРепозитория = ПараметрыКоманды.Параметр("URL", "");
135145
ИмяВетки = ПараметрыКоманды.Параметр("branch", "");
146+
ИмяВеткиСлияния = ПараметрыКоманды.Параметр("merge-branch", "");
136147

137148
ПолучитьИзменения = ПараметрыКоманды.Параметр("pull", Ложь);
138149
ОтправитьИзменения = ПараметрыКоманды.Параметр("push", Ложь);
150+
ОтправитьЗапросНаСлияние = ПараметрыКоманды.Параметр("merge-request", Ложь);
139151
ОтправлятьТеги = ПараметрыКоманды.Параметр("push-tags", Ложь);
140152
PushOptions = СтрРазделить(ПараметрыКоманды.Параметр("push-options", ""), ";");
141153

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

144156
Лог.Отладка("Установлено получение изменений <%1> ", ПолучитьИзменения);
145157
Лог.Отладка("Установлено имя ветки <%1> ", ИмяВетки);
158+
Лог.Отладка("Установлено имя ветки слияния <%1> ", ИмяВеткиСлияния);
146159
Лог.Отладка("Установлена отправка изменений <%1> ", ОтправитьИзменения);
160+
Лог.Отладка("Установлен запрос на слияние <%1> ", ОтправитьЗапросНаСлияние);
147161
Лог.Отладка("Установлено количество коммитов <%1>, после которых осуществляется отправка", КоличествоКоммитовДоPush);
148162
Лог.Отладка("Установлен флаг отправки меток в значение <%1> выгрузки версий", ОтправлятьТеги);
149163
Лог.Отладка("Установлены дополнительные параметры команды push: <%1>", СтрСоединить(PushOptions, ", "));
@@ -206,7 +220,12 @@
206220
ПараметрыКомандыPush.Добавить("push -u");
207221
ПараметрыКомандыPush.Добавить(СтрЗаменить(URLРепозитория, "%", "%%"));
208222
ПараметрыКомандыPush.Добавить("-v");
209-
223+
Если ОтправитьЗапросНаСлияние Тогда
224+
ПараметрыКомандыPush.Добавить("HEAD:refs/heads/" + ИмяВеткиСлияния);
225+
Иначе
226+
ПараметрыКомандыPush.Добавить(ИмяВетки);
227+
КонецЕсли;
228+
210229
Для Каждого Опция Из PushOptions Цикл
211230
Если Не ПустаяСтрока(Опция) Тогда
212231
ПараметрыКомандыPush.Добавить("-o " + Опция);
@@ -257,8 +276,10 @@
257276

258277
URLРепозитория = "";
259278
ИмяВетки = "";
279+
ИмяВеткиСлияния = "";
260280
ПолучитьИзменения = Ложь;
261281
ОтправитьИзменения = Ложь;
282+
ОтправитьЗапросНаСлияние = Ложь;
262283
ОтправлятьТеги = Ложь;
263284

264285
КоличествоКоммитовДоPush = 0;

0 commit comments

Comments
 (0)