【发布时间】:2013-08-17 01:15:57
【问题描述】:
尝试使用 API 访问我是其成员的 Github 组织的私有存储库中的文件。到目前为止尝试了几种不同的方法:
1.如果我使用username/password method --
curl -u "sashafklein:mypassword" https://api.github.com/repos/:org/:repo/git/trees/:file_sha
它工作正常,但我正在尝试从协作 Rails 应用程序访问存储库,所以我不想公开我的 github 登录凭据。我想创建一个具有访问权限并使用这些凭据的虚拟 GH 帐户是可能的,但这绝对不理想..
2. 所以我查看了 API 文档中的 OAuth2 Secret/Key 方法。但它不起作用。如果我使用我的凭据卷曲 org repo url 作为 url 中的参数:
curl -i "https://api.github.com/orgs/:org/repos?private&client_id=<ID>&client_secret=<SECRET>"
仅显示公共存储库。这可能是我如何传递参数的问题(传递“?private = true”理论上应该返回一个空列表,但该列表是相同的并且所有公共回购),但我正在关注文档。
3. 所以我很沮丧并查看了these docs 以获取 OAuth 令牌,但我对如何更改它以便没有用户界面感到困惑——即,这样我的应用就可以自动访问我所属的 Github 组织,而用户无需做任何特别的事情。
任何想法我在尝试 2 中做错了什么,或者如何让尝试 3 自动工作?我很困惑。
编辑我认为我的 client_id/secret 是错误的,因为即使我使用 Octokit,它也无法访问受保护的存储库。我理解错了吗?像我一样,我在 Github 上为我的 Rails 应用程序创建了一个“应用程序”,我正在尝试使用这些凭据通过 API 访问组织的私有存储库(我是其中的贡献者)。
【问题讨论】:
-
酷宝石!但我似乎仍然在使用它进行身份验证时遇到问题。如果我将凭据作为新客户的 client_id 和 client_secret 传递,我仍然无法访问组织的私有存储库。这是我的 client_id 和 client_secret 凭据的问题吗?
标签: ruby-on-rails ruby-on-rails-3 rest github github-api