使用Octokit列出所有组织形式Github

时间:2017-10-30 14:23:46

标签: ruby-on-rails github octokit

在我的rails应用程序中,我想列出用户的组织及其存储库。我正在使用omniauth-github使用Github进行身份验证,所以一旦我从Github获取令牌,我就会这样做:

client = Octokit::Client.new(:access_token => token)
client.orgs

在omniauth.rb

provider :github, ENV['GITHUB_CLIENT_ID'], ENV['GITHUB_CLIENT_SECRET']

它会抛出错误 GET https://api.github.com/user/orgs: 403 - You need at least read:org scope or user scope to list your organizations. // See: https://developer.github.com/v3/orgs/#list-your-organizations

所以我将它添加到初始化程序并重新启动服务器:

provider :github, ENV['GITHUB_CLIENT_ID'], ENV['GITHUB_CLIENT_SECRET'], scope: 'read:org'

但我得到同样的错误。

我也试过在Octokit客户端提供范围:

client.create_authorization({:idempotent => true, :client_id => 'xxxx', :client_secret => 'yyyy', :scopes => ["read:org"]})

但我收到的消息是,此处只允许进行基本身份验证。

我想问你,我在这里错过了什么?

2 个答案:

答案 0 :(得分:1)

您可能已经登录但未获得该范围的许可'读取:org'。您可能希望尝试重新登录,并查看是否需要为新添加的范围提供权限。很可能是Rails /令牌中的数据库与GitHub OAuth流之间存在不匹配。

答案 1 :(得分:0)

经过深入调查后,我发现提取组织需要基本身份验证(用户名和密码)或OAuth token,因此我创建了一个令牌,现在工作正常。