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

GitHub GraphQL API无法获取隐私设置用户的Pull Request问题

问题解答

确认限制存在

确实存在这个限制:当用户开启了GitHub的活动隐私设置(如「保持我的私有贡献私密」),他们的私有仓库PR无法通过GraphQL API的search接口被查询到,哪怕是拥有仓库访问权限的公司GitHub App也会受此限制。

为什么UI能查到但API不行

GitHub UI的仓库内搜索是基于当前登录用户的组织权限视角——作为组织内成员,你有权限查看该仓库的所有PR,包括开启隐私设置用户的PR,UI会忽略用户的活动隐私设置(仅针对组织内的仓库访问场景)。

但GraphQL API的search接口属于全局搜索范畴,会严格遵循用户的隐私设置:一旦用户开启私有贡献隐私选项,他们的私有仓库活动(包括PR)不会出现在search接口的返回结果中,这个规则适用于所有第三方应用(包括公司授权的GitHub App)。

解决方案:直接查询仓库PR而非使用全局搜索

要绕过这个限制,不要用search接口,而是直接针对目标仓库查询该用户的PR。示例查询如下:

GraphQL查询语句

query UserPRsInRepo($repoOwner: String!, $repoName: String!, $userLogin: String!, $startDate: DateTime!, $endDate: DateTime!) {
  repository(owner: $repoOwner, name: $repoName) {
    pullRequests(
      author: {login: $userLogin}
      states: MERGED
      merged: {since: $startDate, until: $endDate}
      last: 100
    ) {
      totalCount
      nodes {
        title
        mergedAt
      }
    }
  }
}

对应的参数

{
  "repoOwner": "你的组织名",
  "repoName": "目标仓库名",
  "userLogin": "<user_login>",
  "startDate": "2022-09-25T00:00:00Z",
  "endDate": "2022-10-30T23:59:59Z"
}

这种方式直接访问仓库的PR列表,只要你的GitHub App拥有该仓库的读取权限,就能获取到该用户的PR,不受其活动隐私设置的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:05:44