我有一个rails应用程序,需要检查特定用户是否是Github项目的协作者,以及特定用户可以提交的GitHub项目列表。这是为了验证他们是否可以提交项目(例如,是管理员还是具有推送权限),并帮助他们选择他们可以承诺的项目。
我尝试使用rails gem" omniauth-github"使用Github API [1],但似乎需要成为回购所有者来验证用户的协作者状态。
GET /repos/:owner/:repo/collaborators/:username
您能否建议如何使用Github API和omniauth-github gem检查用户是否是项目的协作者?理想情况下,用户会授权应用获取该用户为所有者/协作者的回购列表,而无需用户授权应用进行更改(我不需要这样强大的权限)。
由于
答案 0 :(得分:1)
开发人员需要授权您的应用代表其访问Github。以下是有关设置身份验证的信息:https://developer.github.com/guides/getting-started/#authentication
您可以通过获取个人Oauth令牌进行测试。查看用户可以提交的公共存储库的查询是:
curl -H“授权:令牌OAUTH-TOKEN”https://api.github.com/user/repos?type=public
<强>更新强>
要通过github_api gem访问相同内容,请使用:
Github.new oauth_token: current_user.credentials.token
repo_data = github.repos.list(type: 'public')