如何通过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
相关产品推荐
相关产品推荐

