在属于一个组织(而不是个人)一个回购协议,合作者是“团队”的成员,团队可以有三种不同的权限:通过API确定协作者的权限(对组织回购)?
- 仅拉出
- 推&拉
- 推,拉,&行政
我可以看到在回购这样的合作者的名单:
GET /repos/:owner/:repo/collaborators
...但它不告诉我协作者拥有什么类型的权限。
在这个特例中,我是合作者之一;我不拥有该存储库。
有没有办法以编程方式确定我有合作者权限的类型?
在属于一个组织(而不是个人)一个回购协议,合作者是“团队”的成员,团队可以有三种不同的权限:通过API确定协作者的权限(对组织回购)?
我可以看到在回购这样的合作者的名单:
GET /repos/:owner/:repo/collaborators
...但它不告诉我协作者拥有什么类型的权限。
在这个特例中,我是合作者之一;我不拥有该存储库。
有没有办法以编程方式确定我有合作者权限的类型?
2017年6月更新:您现在有nested teams。
然而,orgs/teams
API提到:
的REST API V3还不完全支持嵌套的球队。
例如,List team members和List team repositories的端点不返回从嵌套团队结构继承的结果。
原来的答复2016
的一个查询,其中应包括您的同意,“List User Teams”
GET /user/teams
列表中提到的所有的球队在所有的组织,以认证用户所属的。此方法在通过OAuth进行身份验证时需要用户或回购。
答案是这样的:
Status: 200 OK
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4999
[
{
"url": "https://api.github.com/teams/1",
"name": "Owners",
"id": 1,
"permission": "admin", <============
"members_count": 3,
"repos_count": 10,
"organization": {
"login": "github",
"id": 1,
"url": "https://api.github.com/orgs/github",
"avatar_url": "https://github.com/images/error/octocat_happy.gif"
}
}
]
你需要的是结果,为了筛选出match the team with the right repo,你应当得到相关于回购这样的权限级别。
请注意,'/ user/teams'假设用户正在查找此信息与正在检查权限的用户相同。 –
如果没有,请参阅http://stackoverflow.com/a/27885572/12916。 –
如果你想检查是否有到GitHub库推送权限,你可以使用repo
endpoint:
GET /repos/:owner/:repo
如果您的请求中包含的授权信息(无论是包括您的帐户凭据或使用OAuth访问令牌),该permissions
场会给你你正在寻找的信息:
{ 'admin': False, 'push': False, 'pull': True }
更专注于某个特定回购的个人,而不是我的回答(为所有团队阅读管理权限)。有趣。 +1 – VonC
事实上,它_does_返回权限[至少在某些条件下](https://developer.github.com/v3/repos/collaborators/#list-collaborators)。 –