我正在尝试获取所有用户的列表,其中包含对组织中的repo的推送访问权限。乍一看https://developer.github.com/v3/repos/collaborators/#list似乎可以解决问题。只需查看这些用户的权限=推送。但这似乎并没有让所有用户回归。
我实际上是使用github.com/google/go-github/来访问github API,所以问题可能不在github中,而是在go-github中。但我真的不知道......
在我的组织中,我们有2个团队。说team1和team2。有些人在团队1和团队2中。有些人只在一个或另一个。两个团队都有相同的(2)存储库。团队1对回购有读/拔权限,团队2有写/推。
当我调用ListCollaborators()时,我只在team1中获得这些用户。不是team2中的用户。 (所以当我将那个列表切换到只有那些有权限的人时=推送我最终得到了team1和2的交集,而实际上我想要team2)
我还考虑过是否可以让组织中的所有用户(/ v3 / orgs / members /#members-list),但我找不到一个能让我检查用户是否有用的API对给定仓库的写入/推送权限。 (我也可以列出所有团队,而不是检查那些是否有写/推送访问回购,但我也不知道如何做到这一点)
[编辑]
也许有更好的方法,但我确实发现我可以获得组织中的所有团队,然后使用https://developer.github.com/v3/orgs/teams/#get-team-repo来确定团队是否拥有对回购的书面许可。然后,我可以获得这些团队中所有用户的列表。它的丑陋,但它的工作。
[编辑]
所以让所有球队和所有球队回购都不够。你可以拥有"外部贡献者"允许推送不是组织成员或团队成员的回购。所以这还没有完全回答。