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

如何判断GitHub分支是否有Pull Request?PyGitHub调用异常求助

解决建议
  • 确认本地commit已推送到远程GitHub仓库
    GitPython获取的是本地仓库的最新commit SHA,如果这个commit还没通过git push同步到远程,GitHub上没有该commit的记录,自然查不到关联的PR。先执行推送操作后再重新尝试查询。

  • 指定PR状态参数
    PyGithub的commit.get_pulls()方法默认只查询open状态的PR,如果你的PR已经合并或关闭,需要显式指定state="all"来包含所有状态的PR:

    pulls = commit.get_pulls(state="all")
    
  • 检查PR的合并方式
    如果PR是通过** squash合并或变基合并**到主分支的,GitHub会生成新的合并commit SHA,你本地的原commit SHA不会出现在主分支的提交历史中,因此无法通过原SHA查到关联的PR。这种情况可以:

    • 使用GitHub上显示的合并后SHA进行查询;
    • 直接通过仓库的PR列表,根据分支或提交信息定位目标PR。
  • 确认仓库实例的正确性
    确保你是通过目标仓库对象调用get_commit(),而非全局GitHub对象。正确的调用方式示例:

    from github import Github
    
    # 初始化并获取目标仓库
    g = Github("your_access_token")
    target_repo = g.get_repo("your_username/your_repo_name")
    
    # 获取指定SHA的commit并查询关联PR
    latest_sha = local_repo.commit().hexsha
    commit = target_repo.get_commit(latest_sha)
    pulls = commit.get_pulls(state="all")
    
  • 排查API层面问题
    可以直接调用GitHub REST API验证是否能返回PR:

    GET /repos/{owner}/{repo}/commits/{sha}/pulls?state=all
    

    如果API返回空,说明问题出在commit与PR的关联关系上(比如未推送到远程、合并方式导致SHA不匹配);如果API能返回PR,检查PyGithub版本是否过旧,尝试更新到最新版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:20:22