Skip to content

Commit

Permalink
Merge branch 'release/v.1.9.6'
Browse files Browse the repository at this point in the history
  • Loading branch information
1c committed Sep 29, 2023
2 parents 8a62710 + 2e50ec5 commit 49e12f3
Show file tree
Hide file tree
Showing 7 changed files with 133 additions and 46 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tm

- **ИмяПользователя** - Имя пользователя сайта релизов 1С
- **ПарольПользователя** - Пароль пользователя сайта релизов 1С
- **ВремяОжиданияОтвета** - Время ожидания ответа от внешнего ресурса (HTTP) в секундах
- **ФильтрПриложений** - Фильтр имен приложений
- **ФильтрВерсий** - Фильтр номеров версий
- **ФильтрВерсийНачинаяСДаты** - Фильтр по начальной дате версии (включая)
Expand All @@ -242,6 +243,7 @@ yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tm

- **ИмяПользователя** - Имя пользователя сайта релизов 1С
- **ПарольПользователя** - Пароль пользователя сайта релизов 1С
- **ВремяОжиданияОтвета** - Время ожидания ответа от внешнего ресурса (HTTP) в секундах
- **ФильтрПриложений** - Фильтр имен приложений
- **ФильтрВерсий** - Фильтр номеров версий
- **ФильтрВерсийНачинаяСДаты** - Фильтр по начальной дате версии (включая)
Expand Down Expand Up @@ -380,6 +382,7 @@ yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tm
"Параметры":{
"ИмяПользователя" : "user",
"ПарольПользователя" : "password",
"ВремяОжиданияОтвета" : 30,
// Регулярки для фильтра приложений/конфигураций по имени
"ФильтрПриложений" : ["Библиотека стандартных подсистем.*3\\.1"],
// Регулярки для фильтра версий по номеру
Expand Down
3 changes: 2 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("yard")
.Версия("1.9.5")
.Версия("1.9.6")
.ВерсияСреды("1.6")
.ЗависитОт("logos")
.ЗависитОт("asserts")
Expand All @@ -12,6 +12,7 @@
.ЗависитОт("1commands")
.РазработкаЗависитОт("1testrunner")
.РазработкаЗависитОт("1bdd")
.ВключитьФайл("packagedef")
.ВключитьФайл("src")
.ВключитьФайл("examples")
.ВключитьФайл("lib.config")
Expand Down
56 changes: 34 additions & 22 deletions src/Классы/ЗагрузчикРелизов1С.os
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

Перем ИмяПользователя; // Строка - имя пользователя сайта релизов 1С
Перем ПарольПользователя; // Строка - пароль пользователя сайта релизов 1С
Перем ВремяОжиданияОтвета; // Число - время ожидания ответа от внешнего ресурса (HTTP) в секундах

Перем ИмяПриложения; // Строка - имя приложения для записи в файл описания

Expand Down Expand Up @@ -96,37 +97,44 @@
// *Описание - Строка - описание параметра
//
Функция ОписаниеПараметров() Экспорт

Параметры = Новый Структура();

ДобавитьОписаниеПараметра(Параметры,
"ИмяПользователя",
"Строка",
Истина,
"",
"Имя пользователя сайта релизов 1С");

ДобавитьОписаниеПараметра(Параметры,
"ПарольПользователя",
"Строка",
Истина,
"",
"Пароль пользователя сайта релизов 1С");


ДобавитьОписаниеПараметра(Параметры,
"ВремяОжиданияОтвета",
"Число",
Ложь,
20,
"Время ожидания ответа от внешнего ресурса");

ДобавитьОписаниеПараметра(Параметры,
"ИмяПриложения",
"Строка",
Ложь,
"",
"Имя приложения для записи в файл описания");

ДобавитьОписаниеПараметра(Параметры,
"ФильтрПриложений",
"Массив",
Ложь,
"",
"Фильтр имен приложений");

ДобавитьОписаниеПараметра(Параметры,
"ФильтрВерсий",
"Массив",
Expand Down Expand Up @@ -241,7 +249,7 @@
|Ложь - будут оаспакованы только отсутствующие
|в каталоге для распаковки дистрибутивы
|(проверяются файлы description.json)");

ДобавитьОписаниеПараметра(Параметры,
"УдалитьПослеРаспаковкиEFD",
"Булево",
Expand All @@ -258,7 +266,7 @@
|в противном случае будут получены только релизные версии");

Возврат Параметры;

КонецФункции // ОписаниеПараметров()

// Функция - Возвращает обработку - менеджер
Expand Down Expand Up @@ -327,6 +335,7 @@

УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяПользователя" , ПараметрыОбработки);
УстановитьПараметрОбработкиДанныхИзСтруктуры("ПарольПользователя" , ПараметрыОбработки);
УстановитьПараметрОбработкиДанныхИзСтруктуры("ВремяОжиданияОтвета" , ПараметрыОбработки);
УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяПриложения" , ПараметрыОбработки, "");
УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрВерсийНачинаяСДаты" , ПараметрыОбработки);
УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрВерсийДоДаты" , ПараметрыОбработки);
Expand Down Expand Up @@ -460,6 +469,7 @@

Если Обозреватель = Неопределено Тогда
Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя);
Обозреватель.УстановитьВремяОжиданияОтвета(ВремяОжиданияОтвета);
КонецЕсли;

ОбработаноВерсий = 0;
Expand All @@ -473,16 +483,24 @@
ЗаполнитьВерсии = Ложь;
Иначе
НайденныеВерсии = Обозреватель.ПолучитьВерсииПриложения(ТекЭлемент.Путь,
ФильтрВерсий,
ФильтрВерсийНачинаяСДаты,
ФильтрВерсийДоДаты);
ФильтрВерсий,
ФильтрВерсийНачинаяСДаты,
ФильтрВерсийДоДаты);

Если ПолучатьБетаВерсии Тогда
Для Каждого ТекБетаВерсия Из ТекЭлемент.БетаВерсии Цикл
НайденныеВерсии.Добавить(ТекБетаВерсия);
КонецЦикла;
КонецЕсли;


Для Каждого ТекВерсия Из НайденныеВерсии Цикл
ТекВерсия.Вставить("Имя" , ТекЭлемент.Имя);
ТекВерсия.Вставить("Идентификатор" , ТекЭлемент.Идентификатор);
ТекВерсия.Вставить("ПолныйДистрибутив",
Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Полный дистрибутив$"));
ТекВерсия.Вставить("ДистрибутивОбновления",
Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Дистрибутив обновления$"));
КонецЦикла;
КонецЕсли;

ВерсииПриложения = Новый Массив();
Expand All @@ -499,15 +517,6 @@

Для Каждого ТекВерсия Из ВерсииПриложения Цикл

Если ЗаполнитьВерсии Тогда
ТекВерсия.Вставить("Имя" , ТекЭлемент.Имя);
ТекВерсия.Вставить("Идентификатор" , ТекЭлемент.Идентификатор);
ТекВерсия.Вставить("ПолныйДистрибутив",
Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Полный дистрибутив$"));
ТекВерсия.Вставить("ДистрибутивОбновления",
Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Дистрибутив обновления$"));
КонецЕсли;

Лог.Информация("[%1]: Загрузка версии %2 из %3",
ТипЗнч(ЭтотОбъект),
ОбработаноВерсий + 1,
Expand Down Expand Up @@ -679,7 +688,8 @@

УстановитьПараметрОбработкиДанных("ИмяПользователя" , Команда.ЗначениеОпции("user"));
УстановитьПараметрОбработкиДанных("ПарольПользователя" , Команда.ЗначениеОпции("password"));

УстановитьПараметрОбработкиДанных("ВремяОжиданияОтвета" , Команда.ЗначениеОпции("timeout"));

ВремФильтрПриложений = Команда.ЗначениеОпции("app-filter");
Служебный.УбратьКавычки(ВремФильтрПриложений);
УстановитьПараметрОбработкиДанных("ФильтрПриложений" , ВремФильтрПриложений);
Expand Down Expand Up @@ -711,6 +721,7 @@
УстановитьПараметрОбработкиДанных("РаспаковыватьСуществующие" , Команда.ЗначениеОпции("extract-existing"));

Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя);
Обозреватель.УстановитьВремяОжиданияОтвета(ВремяОжиданияОтвета);

Данные = Обозреватель.ПолучитьСписокПриложений(ФильтрПриложений,
ФильтрВерсий,
Expand Down Expand Up @@ -858,6 +869,7 @@

Если Обозреватель = Неопределено Тогда
Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя);
Обозреватель.УстановитьВремяОжиданияОтвета(ВремяОжиданияОтвета);
КонецЕсли;

Если ЗначениеЗаполнено(ФильтрДистрибутива) Тогда
Expand Down
44 changes: 36 additions & 8 deletions src/Классы/ОбозревательСайта1С.os
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,44 @@

#Область ПеременныеМодуля

Перем Лог; // Объект - объект записи лога приложения
Перем Лог; // Объект - объект записи лога приложения

Перем ИмяПользователя; // Строка - имя пользователя сервиса загрузки релизов
Перем ПарольПользователя; // Строка - пароль пользователя сервиса загрузки релизов
Перем ИдСеанса; // Строка - иддентификатор сеанса сервиса загрузки релизов
Перем ИмяПользователя; // Строка - имя пользователя сервиса загрузки релизов
Перем ПарольПользователя; // Строка - пароль пользователя сервиса загрузки релизов
Перем ИдСеанса; // Строка - идентификатор сеанса сервиса загрузки релизов
Перем ВремяОжиданияОтвета; // Число - время ожидания ответа от внешнего ресурса (HTTP) в секундах

#КонецОбласти // ПеременныеМодуля

#Область ПрограммныйИнтерфейс

// Функция - возвращает время ожидания ответа от внешнего ресурса (HTTP) в секундах
// Если не установлено, то 20 сек
//
// Возвращаемое значение:
// Число - время ожидания ответа от внешнего ресурса в секундах
//
Функция ВремяОжиданияОтвета() Экспорт

Если ЗначениеЗаполнено(ВремяОжиданияОтвета) Тогда
Возврат ВремяОжиданияОтвета;
КонецЕсли;

Возврат 20;

КонецФункции // ВремяОжиданияОтвета()

// Процедура - устанавливает время ожидания ответа от внешнего ресурса (HTTP) в секундах
//
// Параметры:
// НовоеЗначение - Число - время ожидания ответа от внешнего ресурса в секундах
//
Процедура УстановитьВремяОжиданияОтвета(Знач НовоеЗначение) Экспорт

ВремяОжиданияОтвета = НовоеЗначение;

КонецПроцедуры // УстановитьВремяОжиданияОтвета()

// Функция - получает список версий приложения с сайта 1С
//
// Параметры:
Expand Down Expand Up @@ -360,7 +388,7 @@

ИдСеансаЗагрузки = Авторизация(Сервер, ИмяПользователя, ПарольПользователя, СтруктураАдреса.ПутьНаСервере);

Соединение = Новый HTTPСоединение(Сервер, , , , , 20);
Соединение = Новый HTTPСоединение(Сервер, , , , , ВремяОжиданияОтвета());
Соединение.РазрешитьАвтоматическоеПеренаправление = Истина;

Запрос = ЗапросКСайту(АдресИсточника);
Expand Down Expand Up @@ -393,10 +421,10 @@
КодПереадресации = 302;
КодОшибкиАвторизации = 401;

СоединениеРегистрации = Новый HTTPСоединение(ПараметрыПриложения.СервисАвторизации(), , , , , 20);
СоединениеРегистрации = Новый HTTPСоединение(ПараметрыПриложения.СервисАвторизации(), , , , , ВремяОжиданияОтвета());
СоединениеРегистрации.РазрешитьАвтоматическоеПеренаправление = Ложь;

СоединениеЦелевое = Новый HTTPСоединение(Сервер, , , , , 20);
СоединениеЦелевое = Новый HTTPСоединение(Сервер, , , , , ВремяОжиданияОтвета());
СоединениеЦелевое.РазрешитьАвтоматическоеПеренаправление = Ложь;

// Запрос 1
Expand Down Expand Up @@ -512,7 +540,7 @@
//
Функция ПолучитьСтраницуСайта(Знач Сервер, Знач АдресРесурса, Знач АвтоматическоеПеренаправление = Ложь)

Соединение = Новый HTTPСоединение(Сервер, , , , , 20);
Соединение = Новый HTTPСоединение(Сервер, , , , , ВремяОжиданияОтвета());
Соединение.РазрешитьАвтоматическоеПеренаправление = АвтоматическоеПеренаправление;

Запрос = ЗапросКСайту(АдресРесурса);
Expand Down
8 changes: 6 additions & 2 deletions src/Классы/Релизы1С.os
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
// Команда - КомандаПриложения - объект описание команды
//
Процедура ОписаниеКоманды(Команда) Экспорт

Команда.ДобавитьКоманду("list l", "список дистрибутивов на сайте 1С", Новый СписокРелизов1С());
Команда.ДобавитьКоманду("get g" , "загрузка дистрибутивов с сайта 1С", Новый ЗагрузчикРелизов1С());

Команда.Опция("u user", "", "имя пользователя")
.ТСтрока()
.ВОкружении("YARD_RELEASES_USER");
Expand All @@ -25,6 +25,10 @@
.ТСтрока()
.ВОкружении("YARD_RELEASES_PWD");

Команда.Опция("t timeout", 20, "время ожидания ответа от внешнего ресурса (HTTP) в секундах")
.ТЧисло()
.ВОкружении("YARD_RELEASES_TIMEOUT");

КонецПроцедуры // ОписаниеКоманды()

// Процедура - запускает выполнение команды устанавливает описание команды
Expand Down
Loading

0 comments on commit 49e12f3

Please sign in to comment.