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

如何通过GitHub GraphQL API对比分支获取潜在PR的提交列表?

GitHub GraphQL 查询:对比两个分支获取提交记录

要获取指定仓库中两个分支的差异提交(对应GitHub compare页面的内容),直接使用GitHub GraphQL API中Repository类型的compare字段即可,这是专门用于分支对比的官方方案。

以下是完整的查询语句:

{
  repository(owner: "account-test", name: "repo-test") {
    compare(baseRefName: "main", headRefName: "development") {
      commits(first: 100) {
        edges {
          node {
            commit {
              oid # 提交哈希
              messageHeadline # 提交标题
              messageBody # 提交正文
              committedDate # 提交时间
              author {
                name # 作者名称
                email # 作者邮箱
              }
            }
          }
        }
        pageInfo {
          hasNextPage # 是否还有更多提交
          endCursor # 分页游标,用于获取下一页内容
        }
      }
    }
  }
}

使用说明:

  • 将owner和name替换为你的仓库所属账号和仓库名称
  • baseRefName设为对比的基准分支(比如main),headRefName设为你要对比的目标分支(比如development)
  • first: 100表示一次获取最多100条提交,如果提交数量超过100,可以利用pageInfo中的endCursor进行分页查询,格式为commits(first:100, after: "游标值")
  • 返回的字段包含创建Pull Request时需要的核心提交信息,可根据需求增减字段(比如添加committer、changedFiles等)

你之前的查询仅能获取分支列表和分支的最近提交记录,没有处理分支间的差异对比逻辑,而compare字段会自动计算两个分支的提交差异,直接返回所有可合并到基准分支的提交内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:36:01