提取.zip文件/文件夹结构然后使用Github API提交到Github的最佳方法是什么?

问题描述 投票:0回答:1

我正在尝试使用Github将一些配置文件置于版本控制之下。获取这些特定配置文件的唯一方法是通过对托管服务器的GET请求。服务器以.zip文件响应。

。zip文件的结构类似于:

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

如您所见,它是文本文件和二进制文件的混合。还具有嵌套的文件夹结构。

我需要:

  • 使用Github REST API将此.zip文件提交到Github(没有问题)
  • 但是在提交之前,如何以编程方式提取文件夹和文件(在原处保留文件夹结构)
  • 将结果提交给Github

我已经检查了here中提到的问题/解决方案,但它们并不完全匹配/已经使用了几年。

有人有工作流程吗?我必须想象SOMEONE遇到了类似的要求。

github-api unzip
1个回答
0
投票

我最终使用Power Automate来解决这个问题。

基本上,

  • 获取.zip文件
  • 将其添加到OneDrive for Business
  • 将其提取(文件夹结构被“展平”,但是幸运的是,OneDrive通过重命名每个文件来“保持”它)
  • 示例:Folder1/File1.json中的.zip一旦提取就变成Folder1_File1.json
  • [通过api提交到Github时,我只是对文件名进行了replace;包括/作为路径的一部分。
  • 示例网址:https://api.github.com/repos/SeaDude/replace(items('FOR_EACH_app')?['properties']?['DisplayName'], ' ', '-')/contents/replace(items('FOR_EACH_source_file_2')?['Name'],'_','/')
    • 显然,您可以在API提交中指定一个空(或非空)路径。如果目录为空,Github将创建它!
© www.soinside.com 2019 - 2024. All rights reserved.