GitHub API:无法可靠地将文件添加到存储库

Posted

技术标签:

【中文标题】GitHub API:无法可靠地将文件添加到存储库【英文标题】:GitHub API: Cannot reliably add files to repository 【发布时间】:2018-08-28 02:45:37 【问题描述】:

我在使用 Octokit Ruby 库的 GitHub API 中遇到了一个非常奇怪的错误。仅有时 API 请求将新文件添加到存储库会失败并显示以下消息:

Octokit::UnprocessableEntity: PUT https://api.github.com/repos/organization/repo/contents/config.xml: 422 - Invalid request.

"sha" wasn't supplied. // See: https://developer.github.com/v3/repos/contents/#update-a-file
from C:/Dev/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/octokit-4.8.0/lib/octokit/response/raise_error.rb:16:in `on_complete'

这是我尝试将整个文件夹的内容上传到 GitHub 的方式:

Dir.glob(folder + '/**/*') do |path|
  next if File.directory?(path)
  octokit_client.create_contents 'organization/repo', path.sub("#folder/", ''), '????', File.read(path), branch: 'master'
end

如果发生错误,它会在第一次尝试上传文件时发生错误。


编辑:

我发现只有上传的第一个文件是.xml文件时才会出现错误。

另外我经常得到...

Octokit::RepositoryUnavailable
PUT https://api.github.com/repos/organization/repo/contents/icon/_60x60_at1x.png: 403 - Repository access blocked

...对于其他文件,但也是相同的存储库。


我做错了什么?

【问题讨论】:

【参考方案1】:

确保文件夹中没有同名文件。 在这种情况下,您正在编辑文件而不是创建文件。

【讨论】:

以上是关于GitHub API:无法可靠地将文件添加到存储库的主要内容,如果未能解决你的问题,请参考以下文章

无法将文件夹 www 添加到 github 存储库

添加本地存储库 Github Desktop 整个用户文件

如何有效地将项目添加到 Chrome 存储 API 中的数组?

无法将提交推送到GitHub上新创建的存储库

文件未添加到 Github 上的存储库 - 存储库显示为空

通过 Github API 从 Github 存储库中获取所有文件名