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

如何使用Python调用GitHub API获取指定仓库特定日期的拉取请求列表

获取指定日期范围GitHub仓库PR列表的Python实现

你已知的提交查询接口为/repos/{owner}/{repo}/commits,拉取请求对应查询接口为/repos/{owner}/{repo}/pulls,同样支持since和until参数按创建时间过滤,使用逻辑和提交查询一致。

前置依赖

需要先安装Python HTTP请求库requests:
pip install requests

完整实现代码

import requests

def get_pull_requests(owner: str, repo: str, start_time: str, end_time: str, state: str = "all"):
    api_url = f"https://api.github.com/repos/{owner}/{repo}/pulls"
    query_params = {
        "state": state,
        "sort": "created",
        "since": start_time,
        "until": end_time,
        "per_page": 100
    }
    # 若需提升请求限额,可添加GitHub个人访问token到请求头
    # headers = {"Authorization": "token 你的个人访问token"}
    # response = requests.get(api_url, params=query_params, headers=headers)
    response = requests.get(api_url, params=query_params)
    # 接口请求失败时抛出异常
    response.raise_for_status()
    return response.json()

# 调用示例
if __name__ == "__main__":
    # 替换为你要查询的仓库信息和时间范围
    pr_data = get_pull_requests(
        owner="octocat",
        repo="hello-world",
        start_time="2016-11-01T00:00:00Z",
        end_time="2016-11-01T23:59:59Z"
    )
    # 打印查询到的PR基础信息
    for pr in pr_data:
        print(f"PR#{pr['number']} | {pr['title']} | 创建时间:{pr['created_at']} | 作者:{pr['user']['login']}")

注意事项

  • state参数可按需调整:open仅返回未关闭的PR,closed仅返回已关闭/合并的PR,all返回所有状态的PR
  • 未认证的GitHub API请求限额为每小时60次,请求量较大时建议创建个人访问token添加到请求头,限额可提升至每小时5000次
  • 若查询范围内PR数量超过100条,需要循环修改page参数拉取全量分页数据
  • 时间参数需严格遵循ISO8601格式,末尾加Z表示为UTC时区

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:06:02