Skip to content

Commit

Permalink
Возможность устанавливать любые адреса, в т.ч. ssh. Логин и пароль об…
Browse files Browse the repository at this point in the history
…язательный только для http/s

closes #19
  • Loading branch information
marmyshev committed Feb 19, 2019
1 parent da71089 commit 40ab5ba
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@
</items>
<items xsi:type="form:FormField">
<name>ВерсииПлатформыХранилища</name>
<id>184</id>
<title>
<key>ru</key>
<value>Версия хранилища</value>
</title>
<id>184</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
Expand Down Expand Up @@ -1768,7 +1768,7 @@
<textEdit>true</textEdit>
<inputHint>
<key>ru</key>
<value>http или https адрес репозитория на сервере Git</value>
<value>http, https или ssh адрес репозитория на сервере Git</value>
</inputHint>
</extInfo>
</items>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1681,6 +1681,11 @@
<segments>Объект.АдресРепозиторияGit</segments>
</paths>
</dataPath>
<toolTipRepresentation>Button</toolTipRepresentation>
<handlers>
<event>OnChange</event>
<name>АдресРепозиторияGitПриИзменении</name>
</handlers>
<extendedTooltip>
<name>АдресРепозиторияGitРасширеннаяПодсказка1</name>
<id>67</id>
Expand Down Expand Up @@ -1720,7 +1725,7 @@
<textEdit>true</textEdit>
<inputHint>
<key>ru</key>
<value>http или https адрес репозитория на сервере Git</value>
<value>http, https или ssh адрес репозитория на сервере Git</value>
</inputHint>
</extInfo>
</items>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,14 @@

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

&НаКлиенте
Процедура АдресРепозиторияGitПриИзменении(Элемент)

УстановитьДоступность(ЭтаФорма);

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


#КонецОбласти

#Область ОбработчикиКомандФормы
Expand Down Expand Up @@ -544,6 +552,12 @@
Форма.Элементы.ФормаКонвертироватьВФорматEDT.Видимость = НЕ Форма.Объект.КонвертироватьВФорматEDT;
Форма.Элементы.ДобавлятьМеткиСВерсиейКонфигурации.Видимость = Форма.Объект.КонвертироватьВФорматEDT;

ЭтоHTTPАдрес = СтрНачинаетсяС(Форма.Объект.АдресРепозиторияGit, "http://")
ИЛИ СтрНачинаетсяС(Форма.Объект.АдресРепозиторияGit, "https://");

Форма.Элементы.ПользовательСервераGit.АвтоОтметкаНезаполненного = ЭтоHTTPАдрес;
Форма.Элементы.ПарольСервераGit.АвтоОтметкаНезаполненного = ЭтоHTTPАдрес;

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

&НаСервере
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@

МассивНеПроверяемыхРеквизитов = Новый Массив;

Если НЕ ЗначениеЗаполнено(АдресРепозиторияGit) Тогда
Если НЕ ЗначениеЗаполнено(АдресРепозиторияGit) ИЛИ НЕ ЭтоHTTPАдрес(АдресРепозиторияGit) Тогда

МассивНеПроверяемыхРеквизитов.Добавить("ПользовательСервераGit");
МассивНеПроверяемыхРеквизитов.Добавить("ПарольСервераGit");
Expand Down Expand Up @@ -168,4 +168,14 @@

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Функция ЭтоHTTPАдрес(Адрес)

Возврат СтрНачинаетсяС(Адрес, "http://") ИЛИ СтрНачинаетсяС(Адрес, "https://");

КонецФункции

#КонецОбласти

#КонецЕсли
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@
</type>
<toolTip>
<key>ru</key>
<value>Адрес репозитория Git на сервере</value>
<value>Адрес репозитория Git на сервере. Возможно указание http, https или ssh адреса. Для варианта SSH авторизации необходимо настроить авторизацию на Git-сервер для пользователя ОС от имени которого запущен сервер 1С.</value>
</toolTip>
<mask></mask>
<minValue xsi:type="core:UndefinedValue"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2129,26 +2129,27 @@

ФайлКоманды.ДобавитьСтроку(ТекстКомандыУстановкиКаталога);

Если ЭтоWindowsСервер Тогда
ТекстКоманды = "git remote remove origin" + ВыводЛога + " || set ERRORLEVEL=0";
Иначе
ТекстКоманды = "git remote remove origin" + ВыводЛога + " || true";
КонецЕсли;
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);

// Инициализация репозитория
АдресРепозиторияGit = РеквизитыХранилища.АдресРепозиторияGit;
ПозицияРазделителя = СтрНайти(АдресРепозиторияGit, "://");
Если ПозицияРазделителя > 0 Тогда

Если ЭтоWindowsСервер Тогда
ТекстКоманды = "git remote remove origin" + ВыводЛога + " || set ERRORLEVEL=0";
Иначе
ТекстКоманды = "git remote remove origin" + ВыводЛога + " || true";
КонецЕсли;
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
Если ЗначениеЗаполнено(АдресРепозиторияGit) Тогда
ТекстКоманды = "git remote add origin %АдресРепозиторияGit%" + ВыводЛога;
АдресРепозиторияGit = Лев(АдресРепозиторияGit, ПозицияРазделителя + 2)
+ РеквизитыХранилища.ПользовательСервераGit + ":"
+ РеквизитыХранилища.ПарольСервераGit + "@"
+ Прав(АдресРепозиторияGit, СтрДлина(АдресРепозиторияGit)
- ПозицияРазделителя - 2);
ПозицияРазделителя = СтрНайти(АдресРепозиторияGit, "://");
Если ПозицияРазделителя > 0 и ЗначениеЗаполнено(РеквизитыХранилища.ПользовательСервераGit) Тогда
АдресРепозиторияGit = Лев(АдресРепозиторияGit, ПозицияРазделителя + 2)
+ РеквизитыХранилища.ПользовательСервераGit + ":"
+ РеквизитыХранилища.ПарольСервераGit + "@"
+ Прав(АдресРепозиторияGit, СтрДлина(АдресРепозиторияGit)
- ПозицияРазделителя - 2);
КонецЕсли;
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%АдресРепозиторияGit%", АдресРепозиторияGit);
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);

КонецЕсли;

Если ЭтоWindowsСервер Тогда
Expand Down

0 comments on commit 40ab5ba

Please sign in to comment.