【发布时间】:2013-11-03 18:57:53
【问题描述】:
我正在尝试通过 GITHub API (http://developer.github.com/v3/repos/contents/) 将文件上传到 GitHub。不知何故,我无法上传文件。当我尝试上传现有文件时,它给了我消息 "{\"message\":\"refs/heads/master 预计在 ee1cd720841a4b5b06a8339c333c56b1748e66f9\",\"documentation_url\":\"http://developer.github.com/v3/repos/contents/\"}"。当我去 github 并尝试使用网站删除文件时,它给了我以下错误。我可以通过将头重置到以前的版本来解决问题并继续前进。但我试图了解导致这种行为的原因以及将来如何防止这种行为。 Google 和 Github Help 都无法回答我,所以从社区中寻找一些东西。感谢您调查它。
【问题讨论】:
-
您是否偶然使用存储库 API 快速连续写入存储库?例如,您是否通过在之前的调用完成之前进行新的 API 调用来创建多个文件?
-
感谢伊万的回复!你的假设是对的。作为部署过程的一部分,我正在尝试连续创建多个文件。在旁注中,虽然我正在进行同步上传,所以一旦我收到来自 GiHub API ok 200 OK 的响应,我就会发出另一个创建/更新下一个文件的请求。
-
我猜你在使用 API 时遇到了一个极端情况,因为这些顺序写入一个接一个地发生。您能否尝试在脚本中设置睡眠,以便在两次通话之间等待一两秒钟?那应该可以解决问题。我们正在努力解决这个问题,但我不能就何时解决这个问题做出任何承诺。如果这没有帮助,请告诉我。
-
谢谢伊万!!在你的第一条评论之后,我也做了同样的事情。我正在让线程休眠 500 毫秒并继续相同。它工作得很好。谢谢提示!!我只是想好奇,当我使用 API 发出 http 请求时,它实际上是在你端排队任务然后提交更改?这是我的猜测,但您可以确认。
-
我不确定,确切地说——涉及很多东西/层,我不熟悉所有细节(包括缓存,这总是会导致有趣的问题)。很高兴听到您设法解决了这个问题! :)
标签: git github github-api