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

