我想使用Ruby octokit gem将更改应用于GitHub存储库。这将是Ruby 2(不是Rails)。
我已经使用API进行身份验证并查看现有的已提交对象:树和blob。我不明白的是我如何更新,添加和删除部分存储库。
使用git
命令行工具,我将克隆repo,将更改的文件复制到顶部,然后在提交并推送更改之前在顶层执行git add -A .
。这样做是非常简单的。我编写了一些Ruby代码,通过对底层git工具的系统调用来实现这一点。
但是,我想了解API并直接执行更新,而无需克隆和推送。我已经阅读了一些背景here和here来证明它是可行的,但它们只能添加一个文件。
我编写了一些代码来遍历目录并为所有内容上传blob,希望这些blob计算相同的sha值时无关紧要。但我认为这是非常低效的,必须有更好的方法,也许在发布它们之前在本地比较sha值。或者,API可能包含我错过的git add -A
等效内容。
如果有人知道如何做到这一点,或者可以指出适当的例子来帮助我。我会在实施时自己发布答案。