1
0
mirror of https://github.com/1C-Company/GitConverter.git synced 2025-04-11 11:31:49 +02:00

Merge pull request #78 from 1C-Company/feature/19-ssh-auth

Возможность устанавливать любые адреса, в т.ч. ssh. Логин и пароль обязательный только для http/s

closes #19
This commit is contained in:
Dmitriy Marmyshev 2019-02-19 15:26:41 +03:00 committed by GitHub
commit a73383a090
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 50 additions and 20 deletions

View File

@ -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>
@ -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>

View File

@ -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>
@ -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>

View File

@ -126,6 +126,14 @@
КонецПроцедуры
&НаКлиенте
Процедура АдресРепозиторияGitПриИзменении(Элемент)
УстановитьДоступность(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
@ -544,6 +552,12 @@
Форма.Элементы.ФормаКонвертироватьВФорматEDT.Видимость = НЕ Форма.Объект.КонвертироватьВФорматEDT;
Форма.Элементы.ДобавлятьМеткиСВерсиейКонфигурации.Видимость = Форма.Объект.КонвертироватьВФорматEDT;
ЭтоHTTPАдрес = СтрНачинаетсяС(Форма.Объект.АдресРепозиторияGit, "http://")
ИЛИ СтрНачинаетсяС(Форма.Объект.АдресРепозиторияGit, "https://");
Форма.Элементы.ПользовательСервераGit.АвтоОтметкаНезаполненного = ЭтоHTTPАдрес;
Форма.Элементы.ПарольСервераGit.АвтоОтметкаНезаполненного = ЭтоHTTPАдрес;
КонецПроцедуры
&НаСервере

View File

@ -140,7 +140,7 @@
МассивНеПроверяемыхРеквизитов = Новый Массив;
Если НЕ ЗначениеЗаполнено(АдресРепозиторияGit) Тогда
Если НЕ ЗначениеЗаполнено(АдресРепозиторияGit) ИЛИ НЕ ЭтоHTTPАдрес(АдресРепозиторияGit) Тогда
МассивНеПроверяемыхРеквизитов.Добавить("ПользовательСервераGit");
МассивНеПроверяемыхРеквизитов.Добавить("ПарольСервераGit");
@ -168,4 +168,14 @@
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ЭтоHTTPАдрес(Адрес)
Возврат СтрНачинаетсяС(Адрес, "http://") ИЛИ СтрНачинаетсяС(Адрес, "https://");
КонецФункции
#КонецОбласти
#КонецЕсли

View File

@ -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"/>

View File

@ -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Сервер Тогда