You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GraphQL查询Pull Request审批用户团队名称为空,如何解决或改用REST?

获取PR审批用户所属团队名称的解决方案

关于onBehalfOf返回空的原因

onBehalfOf字段仅适用于用户代表团队发起审批的场景,普通个人审批不会返回任何数据,所以你当前的查询结果是空数组属于正常情况。

GraphQL API正确查询方式

要获取审批用户的所属团队,需从author节点入手,查询用户在目标组织下的团队列表。修改后的查询语句如下:

query {
  repository(name: "test", owner: "example") {
    pullRequest(number: 2) {
      reviews(first: 100, states: APPROVED) {
        nodes {
          author {
            ... on User {
              avatarUrl
              login
              resourcePath
              url
              # 查询用户在组织example下的所有可见团队
              organization(login: "example") {
                teams(first: 100) {
                  nodes {
                    name
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

这里通过... on User做类型分片(因为author可能是User或Bot等类型),直接查询用户在目标组织下的团队列表。

REST API是否更简便?

REST API的实现分为两步:

  • 调用 GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews 获取所有已批准的审批记录,提取每个审批者的login。
  • 对每个login调用 GET /users/{username}/teams,获取该用户所属的所有团队(仅返回当前授权可见的团队)。

两种方式的对比:

  • GraphQL支持单次查询获取所有数据,减少网络请求次数;
  • REST API的接口逻辑更直白,无需处理GraphQL的类型分片,但需要发起多轮请求。

如果审批用户数量较少,REST API的开发成本更低;如果需要批量获取数据,GraphQL的效率更高。

内容的提问来源于stack exchange,提问作者harry1102

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:06:16