mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-06-20 09:19:27 +02:00
133 lines
5.8 KiB
Plaintext
133 lines
5.8 KiB
Plaintext
#Использовать "./internal"
|
|
#Использовать "./internal/Classes/internal"
|
|
#Использовать "../../src/ru/OInt/tools/http"
|
|
#Использовать "../../src/ru/OInt/tools/main"
|
|
#Использовать "../../src/ru/OInt/api/yadisk"
|
|
|
|
Перем ДанныеПроекта;
|
|
|
|
Процедура ПриСозданииОбъекта(Знач ДанныеПроекта_ = Неопределено)
|
|
|
|
Если ДанныеПроекта_ = Неопределено Тогда
|
|
ДанныеПроекта = Новый ProjectData;
|
|
Иначе
|
|
ДанныеПроекта = ДанныеПроекта_;
|
|
КонецЕсли;
|
|
|
|
CommonTools.СообщитьПроцесс("Release publishing");
|
|
|
|
ОпубликоватьGithub();
|
|
ОпубликоватьSourcecraft();
|
|
|
|
Обработчик = Новый ChangelogGenerator(ДанныеПроекта);
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ОпубликоватьGithub()
|
|
|
|
ПолеТокена = ДанныеПроекта.ПолучитьЗначениеНастройки("github.tokenField");
|
|
Токен = ДанныеПроекта.ПолучитьЗначениеСекретныхДанных(ПолеТокена);
|
|
Версия = ДанныеПроекта.ПолучитьЗначениеНастройки("primary.version");
|
|
|
|
СписокРелизов = OPI_ЗапросыHTTP
|
|
.НовыйЗапрос()
|
|
.Инициализировать("https://api.github.com/repos/bayselonarrend/OpenIntegrations/releases")
|
|
.ДобавитьBearerАвторизацию(Токен)
|
|
.ОбработатьЗапрос("GET")
|
|
.ВернутьОтветКакJSONКоллекцию();
|
|
|
|
IDРелиза = Неопределено;
|
|
|
|
Попытка
|
|
|
|
Для Каждого Релиз Из СписокРелизов Цикл
|
|
|
|
Если Релиз["tag_name"] = Версия Тогда
|
|
IDРелиза = Релиз["id"];
|
|
Прервать;
|
|
КонецЕсли;
|
|
|
|
КонецЦикла;
|
|
|
|
Исключение
|
|
ВызватьИсключение OPI_Инструменты.JSONСтрокой(СписокРелизов);
|
|
КонецПопытки;
|
|
|
|
Если IDРелиза = Неопределено Тогда
|
|
ВызватьИсключение "GitHub: Draft not found!";
|
|
Иначе
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDРелиза);
|
|
КонецЕсли;
|
|
|
|
СтруктураЗапроса = Новый Структура;
|
|
СтруктураЗапроса.Вставить("draft", Ложь);
|
|
|
|
ПубликацияРелиза = OPI_ЗапросыHTTP
|
|
.НовыйЗапрос()
|
|
.Инициализировать(СтрШаблон("https://api.github.com/repos/bayselonarrend/OpenIntegrations/releases/%1", IDРелиза))
|
|
.ДобавитьBearerАвторизацию(Токен)
|
|
.УстановитьJsonТело(СтруктураЗапроса)
|
|
.ОбработатьЗапрос("PATCH")
|
|
.ВернутьОтветКакСтроку();
|
|
|
|
CommonTools.СообщитьПроцесс(ПубликацияРелиза);
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ОпубликоватьSourcecraft()
|
|
|
|
ПолеТокена = ДанныеПроекта.ПолучитьЗначениеНастройки("sourcecraft.tokenField");
|
|
Токен = ДанныеПроекта.ПолучитьЗначениеСекретныхДанных(ПолеТокена);
|
|
Версия = ДанныеПроекта.ПолучитьЗначениеНастройки("primary.version");
|
|
|
|
СписокРелизов = OPI_ЗапросыHTTP
|
|
.НовыйЗапрос()
|
|
.Инициализировать("https://api.sourcecraft.tech/repos/bayselonarrend/openintegrations/releases")
|
|
.ДобавитьBearerАвторизацию(Токен)
|
|
.ОбработатьЗапрос("GET")
|
|
.ВернутьОтветКакJSONКоллекцию();
|
|
|
|
IDРелиза = Неопределено;
|
|
|
|
Попытка
|
|
|
|
Для Каждого Релиз Из СписокРелизов["releases"] Цикл
|
|
|
|
Если Релиз["tag"] = Версия Тогда
|
|
IDРелиза = Релиз["id"];
|
|
Прервать;
|
|
КонецЕсли;
|
|
|
|
КонецЦикла;
|
|
|
|
Исключение
|
|
ВызватьИсключение OPI_Инструменты.JSONСтрокой(СписокРелизов);
|
|
КонецПопытки;
|
|
|
|
Если IDРелиза = Неопределено Тогда
|
|
ВызватьИсключение "SourceCraft: Draft not found!";
|
|
Иначе
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDРелиза);
|
|
КонецЕсли;
|
|
|
|
СозданиеДрафта = OPI_ЗапросыHTTP
|
|
.НовыйЗапрос()
|
|
.Инициализировать(СтрШаблон("https://api.sourcecraft.tech/releases/id:%1/publish", IDРелиза))
|
|
.ДобавитьBearerАвторизацию(Токен)
|
|
.ОбработатьЗапрос("POST")
|
|
.ВернутьОтветКакСтроку();
|
|
|
|
CommonTools.СообщитьПроцесс(СозданиеДрафта);
|
|
|
|
CommonTools.СообщитьПроцесс("Yandex Disk: Prerelease directory rename");
|
|
|
|
ПолеТокенаYD = ДанныеПроекта.ПолучитьЗначениеНастройки("sourcecraft.diskTokenField");
|
|
ТокенYD = ДанныеПроекта.ПолучитьЗначениеСекретныхДанных(ПолеТокенаYD);
|
|
|
|
ПереименованиеКаталога = OPI_YandexDisk.ПереместитьОбъект(ТокенYD
|
|
, "/OpenIntegrations/prerelease"
|
|
, СтрШаблон("/OpenIntegrations/%1", Версия));
|
|
|
|
CommonTools.СообщитьПроцесс(OPI_Инструменты.JSONСтрокой(ПереименованиеКаталога));
|
|
|
|
КонецПроцедуры |