如何通过GitHub GraphQL为仓库/组织协作者列表补充Apps/Bots信息?
GitHub GraphQL 查询仓库/组织 Apps/Bots 信息的支持情况
目前GitHub GraphQL API确实支持查询仓库或组织关联的Apps与Bots,相关字段分散在不同类型下,具体查询方式如下:
1. 查询仓库关联的GitHub Apps
通过repository下的apps字段,可获取已安装到该仓库的GitHub Apps,示例查询:
{ repository(name: "spring-bot", owner: "finos") { id collaborators { edges { permission node { id email } } } # 新增仓库安装的GitHub Apps查询 apps(first: 10) { edges { node { id name description owner { login } } } } } }
2. 查询组织关联的GitHub Apps
若要获取整个组织层面的Apps,可使用organization类型下的apps字段:
{ organization(login: "finos") { id apps(first: 10) { edges { node { id name description } } } } }
3. 识别协作者中的Bots
Bots(含GitHub官方Bot和第三方Bot账户)属于User类型,可通过isBot字段区分,在collaborators的node中添加该字段即可筛选:
{ repository(name: "spring-bot", owner: "finos") { id collaborators(first: 100) { edges { permission node { id email login isBot # 标记是否为Bot账户 } } } } }
注意事项
- 部分第三方Bot可能未被标记为
isBot,可通过账户名称或描述辅助判断 - 仓库级Apps的查询结果受你当前的仓库访问权限限制,权限不足可能无法返回完整列表
内容的提问来源于stack exchange,提问作者Rob Moffat
相关产品推荐
相关产品推荐

