调用GitHub API时能否自动指定仓库默认分支为拉取请求的base参数
问题解答
核心结论
GitHub REST API 的/repos/{owner}/{repo}/pulls接口目前没有提供可直接指代仓库默认分支的特殊参数值,你无法完全跳过查询仓库默认分支的步骤直接拉取对应PR。
优化实现方案
虽然不能省略获取默认分支的逻辑,但可以通过两种方式降低额外请求的影响:
- 沿用REST API方案:查询仓库元信息的
/repos/{owner}/{repo}接口仅占用1个API请求配额,响应速度快,实际使用几乎不会带来可感知的性能损耗,调整代码先获取默认分支再查询PR即可,参考修改后的代码:
# 先查询仓库默认分支 repo_info = gh.get( "/repos/{organisation}/{repo}", url_vars={ "organisation": requester, "repo": repo } ) default_branch = repo_info["default_branch"] # 用默认分支作为base查询PR pr_generator = gh.getiter( "/repos/{organisation}/{repo}/pulls?state={state}&sort={sort}&base={base}&direction={direction}", url_vars={ "sort": "updated", "base": default_branch, "state": "all", "organisation": requester, "repo": repo, "direction": "desc", }, )
- 改用GraphQL API:可以将「查询仓库默认分支」和「拉取对应PR列表」的逻辑合并为单次请求,不需要发送两次HTTP调用,进一步降低请求开销。
内容的提问来源于stack exchange,提问作者Atticus
相关产品推荐
相关产品推荐

