1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-21 21:17:24 +02:00

Добавил попытку в создание файла CF, если не удалось отправить на яндекс диск или гитхаб временная папка удаляется в любом случае.

This commit is contained in:
Anton Ivanov 2020-08-27 11:12:36 +03:00
parent f95b83b2a2
commit 074d7af876
2 changed files with 45 additions and 38 deletions

2
.gitignore vendored
View File

@ -14,3 +14,5 @@ src/cf/ConfigDumpInfo.xml
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid* hs_err_pid*
src/scripts/CF dev/params.json src/scripts/CF dev/params.json
src/scripts/CF dev/*.txt
src/scripts/CF dev/v8r_TempDB/*.*

View File

@ -47,58 +47,63 @@
ПутьКФайлуКонфигурации = ОбъединитьПути(Конфигуратор.ПутьКВременнойБазе(), ИмяФайлаКонфигурации); ПутьКФайлуКонфигурации = ОбъединитьПути(Конфигуратор.ПутьКВременнойБазе(), ИмяФайлаКонфигурации);
Конфигуратор.ВыгрузитьКонфигурациюВФайл(ПутьКФайлуКонфигурации); Конфигуратор.ВыгрузитьКонфигурациюВФайл(ПутьКФайлуКонфигурации);
// Публикация файла на Яндекс.Диске. Попытка
ТокенАвторизации = МенеджерПараметров.Параметр("Яндекс.Токен"); // Публикация файла на Яндекс.Диске.
КаталогНаЯндексДиске = МенеджерПараметров.Параметр("Яндекс.Каталог");
ЯндексДиск = Новый ЯндексДиск; ТокенАвторизации = МенеджерПараметров.Параметр("Яндекс.Токен");
ЯндексДиск.УстановитьТокенАвторизации(ТокенАвторизации); КаталогНаЯндексДиске = МенеджерПараметров.Параметр("Яндекс.Каталог");
ПутьНаЯндексДиске = ИмяФайлаКонфигурации; ЯндексДиск = Новый ЯндексДиск;
Если Не ПустаяСтрока(КаталогНаЯндексДиске) Тогда ЯндексДиск.УстановитьТокенАвторизации(ТокенАвторизации);
ПутьНаЯндексДиске = КаталогНаЯндексДиске + "/" + ПутьНаЯндексДиске;
КонецЕсли;
Лог.Отладка("Путь на Я.Диске: " + ПутьНаЯндексДиске);
Лог.Информация("Загрузка файла на Я.Диск"); ПутьНаЯндексДиске = ИмяФайлаКонфигурации;
ЯндексДиск.ЗагрузитьНаДиск(ПутьКФайлуКонфигурации, ПутьНаЯндексДиске, Истина); Если Не ПустаяСтрока(КаталогНаЯндексДиске) Тогда
ПутьНаЯндексДиске = КаталогНаЯндексДиске + "/" + ПутьНаЯндексДиске;
КонецЕсли;
Лог.Отладка("Путь на Я.Диске: " + ПутьНаЯндексДиске);
Лог.Информация("Публикация файла на Я.Диске"); Лог.Информация("Загрузка файла на Я.Диск");
СсылкаНаЯндексДиске = ЯндексДиск.Опубликовать(ПутьНаЯндексДиске); ЯндексДиск.ЗагрузитьНаДиск(ПутьКФайлуКонфигурации, ПутьНаЯндексДиске, Истина);
// Отправка комментария на GitHub. Лог.Информация("Публикация файла на Я.Диске");
СсылкаНаЯндексДиске = ЯндексДиск.Опубликовать(ПутьНаЯндексДиске);
ТокенАвторизации = МенеджерПараметров.Параметр("GitHub.Токен"); // Отправка комментария на GitHub.
ПолноеИмяРепозитория = МенеджерПараметров.Параметр("GitHub.Репозиторий");
НомерЗадачи = МенеджерПараметров.Параметр("GitHub.НомерЗадачи");
UrlЗапроса = "https://api.github.com/repos/%1/issues/%2/comments"; ТокенАвторизации = МенеджерПараметров.Параметр("GitHub.Токен");
UrlЗапроса = СтрШаблон(UrlЗапроса, ПолноеИмяРепозитория, НомерЗадачи); ПолноеИмяРепозитория = МенеджерПараметров.Параметр("GitHub.Репозиторий");
Лог.Отладка("URL запроса: " + UrlЗапроса); НомерЗадачи = МенеджерПараметров.Параметр("GitHub.НомерЗадачи");
ЗаголовкиЗапроса = Новый Соответствие; UrlЗапроса = "https://api.github.com/repos/%1/issues/%2/comments";
ЗаголовкиЗапроса.Вставить("Accept", "application/vnd.github.v3+json"); UrlЗапроса = СтрШаблон(UrlЗапроса, ПолноеИмяРепозитория, НомерЗадачи);
ЗаголовкиЗапроса.Вставить("User-Agent", "oscript-tasks"); Лог.Отладка("URL запроса: " + UrlЗапроса);
ЗаголовкиЗапроса.Вставить("Authorization", СтрШаблон("token %1", ТокенАвторизации));
ПараметрыЗапроса = Новый Структура(); ЗаголовкиЗапроса = Новый Соответствие;
ПараметрыЗапроса.Вставить("Заголовки", ЗаголовкиЗапроса); ЗаголовкиЗапроса.Вставить("Accept", "application/vnd.github.v3+json");
ЗаголовкиЗапроса.Вставить("User-Agent", "oscript-tasks");
ЗаголовкиЗапроса.Вставить("Authorization", СтрШаблон("token %1", ТокенАвторизации));
ТекстКомментария = СтрШаблон("[%1](%2)", ИмяФайлаКонфигурации, СсылкаНаЯндексДиске); ПараметрыЗапроса = Новый Структура();
Лог.Отладка("Текст комментария: " + ТекстКомментария); ПараметрыЗапроса.Вставить("Заголовки", ЗаголовкиЗапроса);
Тело = Новый Структура; ТекстКомментария = СтрШаблон("[%1](%2)", ИмяФайлаКонфигурации, СсылкаНаЯндексДиске);
Тело.Вставить("body", ТекстКомментария); Лог.Отладка("Текст комментария: " + ТекстКомментария);
Лог.Информация("Пост комментария на GitHub"); Тело = Новый Структура;
Ответ = КоннекторHTTP.Post(UrlЗапроса, , Тело, ПараметрыЗапроса); Тело.Вставить("body", ТекстКомментария);
Лог.Отладка("Код ответа: " + Ответ.КодСостояния); Лог.Информация("Пост комментария на GitHub");
Если Ответ.КодСостояния <> 201 Тогда Ответ = КоннекторHTTP.Post(UrlЗапроса, , Тело, ПараметрыЗапроса);
Лог.Ошибка(Ответ.Текст());
ЗавершитьРаботу(1); Лог.Отладка("Код ответа: " + Ответ.КодСостояния);
КонецЕсли; Если Ответ.КодСостояния <> 201 Тогда
Лог.Ошибка(Ответ.Текст());
ЗавершитьРаботу(1);
КонецЕсли;
Исключение
Сообщить("Ошибка! не удалось отправить файл на яндекс диск или в GitHub");
КонецПопытки;
// Удаление временных файлов // Удаление временных файлов