gpt4 book ai didi

ruby - 通过 REST API 或 Ocktokit (Ruby) 从 GitHub 获取文件的最聪明的方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:06 25 4
gpt4 key购买 nike

这里是新的 Git 用户,在 GitHub 中存储 XML 文档(每个文档代表一份报告的元数据):

#Repo: My-Reports

Report1
Report2
Report3

我需要能够将单个文件(如 Report2)从存储库 pull (不是 Git 意义上的)到任意客户端。能够使用特定标签 提取 Report2 是一种奖励。

我不想将存储库克隆到客户端并执行真正的 git pull,因为我没有在此机器上执行 SCM,也不想安装二进制文件。我只需要文件,期间。

我看到 GitHub REST API 有一个 Get Archive 方法,它将下载整个 repo 的 tarball/zipball:

 GET /repos/:owner/:repo/:archive_format/:ref

http://developer.github.com/v3/repos/contents/#get-archive-link

我想我可以走这条路,但它会迫使我自己管理“文档检索过程”(编写解压缩存档和提取我需要的任务的代码)如果可以的话,我想避免这种情况....但据我所知,无论如何要求,文档都会被压缩,我只需要忍受它...就像我说的,Git 和 GitHub newb。

有没有更聪明/更好的方法来解决这个问题?我将使用 Ruby,因此我也可以使用 Ocktokit gem。

非常感谢

最佳答案

查看 octokit gem,我建议您使用 contents 方法如下(示例使用我自己的 repo,并演示 pull 特定标签 - 但任何 git 引用可以使用):

require 'octokit'
require 'base64'

api_response = Octokit.contents 'neilslater/games_dice',
:ref => 'v0.0.1', :path => 'README.md'
text_contents = Base64.decode64( api_response.content )
File.open( 'README.md', 'wb' ) { |file| file.puts text_contents }

这仅限于最大 1MB 的文件。注意我在这里跳过了字符编码可能出现的问题——如果你想处理 text_contents 内存,你需要知道正确的编码才能使用,并应用它。刚写入文件时,最简单的就是在打开文件时添加'b'标志。

关于ruby - 通过 REST API 或 Ocktokit (Ruby) 从 GitHub 获取文件的最聪明的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17808702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com