在GitHub中查看我的组织的用户列表时,我能够看到用户所属的团队数量。
点击此计数会显示用户所在的团队,让我进入以下页面:
https://github.com/orgs/my-org/teams?query=%40username
但是,我正在尝试通过GitHub API实现相同的功能,但我一直无法找到一个端点,列出了用户当前所属的团队(组织内)。
一种解决方法是遍历组织中的所有团队并获取其成员列表,但这可以快速通过我的速率限制,因此能够在一个请求中执行此操作将非常有用。
答案 0 :(得分:3)
您可以GraphQL API v4使用userLogins
在organization内过滤用户{/ 3}}来执行此操作:
{
organization(login: "my-org") {
teams(first: 100, userLogins: ["johndoe"]) {
totalCount
edges {
node {
name
description
}
}
}
}
}
例如:
{
"data": {
"organization": {
"teams": {
"totalCount": 2,
"edges": [
{
"node": {
"name": "Employees",
"description": "org employees"
}
},
{
"node": {
"name": "Developers",
"description": "active developers"
}
}
]
}
}
}
}
答案 1 :(得分:0)
不幸的是,GitHub还没有提供这样做的方法。
目前,正如您所建议的那样,您必须遍历组织中的每个团队以获取每个团队中的所有成员,然后您需要遍历所有用户,并检查用户是否是这些团队的成员
如果您使用API令牌,则可以提高速率限制,但如果您拥有庞大的组织,解决方案仍然很糟糕。