2013-12-22 41 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

相關問題