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

如何用GitHub v4 GraphQL查询组织内特定团队成员创建的开放PR

通过GitHub v4 GraphQL查询特定团队成员创建的所有开放PR

问题背景

当Pull Request(PR)被申请评审的团队任意成员批准后,即便仍处于开放状态,也会从GitHub控制面板中消失。常规的待评审PR查询语句无法覆盖这类已经过审批、但仍处于开放状态的本团队成员提交的PR。

常规查询的局限

查询单个用户待评审PR

常用的查询指定用户待评审PR的GraphQL语句如下:

{
  search(query: "type:pr state:open review-requested:StevenACoffman", type: ISSUE, first: 100) {
    issueCount
    pageInfo {
      endCursor
      startCursor
    }
    edges {
      node {
        ... on PullRequest {
          url
        }
      }
    }
  }
}

查询团队待评审PR

查询指定团队待评审PR的语法为:team-review-requested:ORG/TEAMNAME,其中ORG需替换为对应组织名,TEAMNAME替换为对应团队名。

上述两种查询均只能返回等待当前用户/团队评审的PR,无法展示已被其他团队成员批准的、由本团队成员创建的开放PR。

完整实现方案

第一步:获取目标团队的成员列表

首先执行以下GraphQL语句,按名称查询指定团队的所有成员账号信息:

{
  organization(login: "khan") {
    teams(first: 100, query: "districts") {
      totalCount
      edges {
        node {
          members {
            edges {
              node {
                name
                login
              }
            }
          }
          name
          description
        }
      }
    }
  }
}

使用时将organization的login参数替换为你的组织名,teams的query参数替换为目标团队的名称,执行后即可获取该团队所有成员的GitHub登录ID。

第二步:拼接条件查询所有本团队成员创建的开放PR

拿到团队成员登录ID列表后,在search接口的query参数中拼接所有成员的author:筛选条件,结合type:pr和state:open筛选,即可查询到所有本团队成员创建的开放PR,无论是否已经获得团队成员的批准。

参考示例如下(假设团队成员的登录ID为user1、user2、user3):

{
  search(query: "type:pr state:open author:user1 author:user2 author:user3", type: ISSUE, first: 100) {
    issueCount
    pageInfo {
      endCursor
      startCursor
    }
    edges {
      node {
        ... on PullRequest {
          url
          title
          author {
            login
          }
          createdAt
        }
      }
    }
  }
}

如果团队成员数量较多,可以分批次拼接查询条件,或者通过分页参数处理返回的结果集。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:33:03