2013-12-22 36 views
9

在属于一个组织(而不是个人)一个回购协议,合作者是“团队”的成员,团队可以有三种不同的权限:通过API确定协作者的权限(对组织回购)?

  • 仅拉出
  • 推&拉
  • 推,拉,&行政

我可以看到在回购这样的合作者的名单:

GET /repos/:owner/:repo/collaborators 

...但它不告诉我协作者拥有什么类型的权限。

在这个特例中,我是合作者之一;我不拥有该存储库。

有没有办法以编程方式确定我有合作者权限的类型?

+0

事实上,它_does_返回权限[至少在某些条件下](https://developer.github.com/v3/repos/collaborators/#list-collaborators)。 –

回答

1

2017年6月更新:您现在有nested teams
然而,orgs/teams API提到:

的REST API V3还不完全支持嵌套的球队。
例如,List team membersList 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,你应当得到相关于回购这样的权限级别。

+0

请注意,'/ user/teams'假设用户正在查找此信息与正在检查权限的用户相同。 –

+0

如果没有,请参阅http://stackoverflow.com/a/27885572/12916。 –

10

如果你想检查是否有到GitHub库推送权限,你可以使用repo endpoint

GET /repos/:owner/:repo

如果您的请求中包含的授权信息(无论是包括您的帐户凭据或使用OAuth访问令牌),该permissions场会给你你正在寻找的信息:

{ 'admin': False, 'push': False, 'pull': True }

+0

更专注于某个特定回购的个人,而不是我的回答(为所有团队阅读管理权限)。有趣。 +1 – VonC

相关问题