Я пытаюсь поместить некоторые файлы конфигурации под контроль версий с помощью Github. ЕДИНСТВЕННЫЙ способ получить эти конкретные файлы конфигурации — это запрос GET к серверу хостинга. Сервер отвечает ZIP-файлом.

Структура файла .zip выглядит примерно так:

|-Folder1
--|-File1.json
--|-File2.json
--|-Pic1.jpg
|-Folder2
--|-File3.json
--|Folder3
----|Pic2.jpg
|-File4.json
|-File5.json

Как видите, это смесь текстовых и бинарных файлов. Также имеет вложенную структуру папок.

Мне нужно:

  • Отправьте этот ZIP-файл на Github с помощью Github REST API (нет проблем)
  • Но ПЕРЕД фиксацией, как я могу программно извлечь папки и файлы (ОСТАВЛЯЯ СТРУКТУРУ ПАПКИ НА МЕСТЕ)
  • Отправить результаты на Github

Я проверил вопрос/решения, упомянутые здесь, но они не совсем совпадают/имеют несколько лет.

У кого-нибудь есть рабочий процесс для этого? Я должен представить, что КТО-ТО сталкивался с подобными требованиями.

0
SeaDude 13 Дек 2019 в 23:28

1 ответ

В итоге я использовал Power Automate, чтобы справиться с этим.

В принципе,

  • ПОЛУЧИТЬ файл .zip
  • Добавьте его в OneDrive для бизнеса
  • Распакуйте его туда (структура папок «сглажена», но, к счастью, OneDrive «сохраняет» ее, переименовывая каждый файл)
  • Пример: Folder1/File1.json в .zip становится Folder1_File1.json после извлечения
  • При фиксации на Github через API я просто сделал replace для имени файла; ВКЛЮЧАЯ / как часть пути.
  • Пример URL: https://api.github.com/repos/SeaDude/replace(items('FOR_EACH_app')?['properties']?['DisplayName'], ' ', '-')/contents/replace(items('FOR_EACH_source_file_2')?['Name'],'_','/') <ул>
  • Очевидно, что вы можете указать пустой (или непустой) путь как часть фиксации API. Если каталог пуст, Github создаст его!
0
SeaDude 13 Янв 2020 в 09:17