如何查找添加或删除代码行数最多的GitHub PR?
按代码增删行数排序GitHub PR的实用方法
方法一:GitHub CLI + 脚本批量处理
- 先安装GitHub命令行工具(
gh),完成登录(执行gh auth login跟着提示操作即可) - 导出目标仓库所有PR的关键数据到JSON文件:
这个命令会拉取所有状态的PR(包括已合并、关闭的),并提取编号、标题、新增/删除行数gh pr list --repo 你的用户名/仓库名 --state all --json number,title,additions,deletions --prune > pr_stats.json - 用jq工具快速排序(未安装jq的话先通过包管理器安装):
- 按新增行数降序:
jq 'sort_by(-.additions)' pr_stats.json - 按删除行数降序:
jq 'sort_by(-.deletions)' pr_stats.json
输出结果会直接按行数从多到少排列所有PR
- 按新增行数降序:
方法二:GitHub API + 自定义脚本统计
如果需要更灵活的输出格式,直接调用GitHub API写个简单脚本:
import requests # 替换成你的仓库信息和个人访问令牌 REPO = "你的用户名/仓库名" TOKEN = "你的GitHub个人访问令牌" API_URL = f"https://api.github.com/repos/{REPO}/pulls?state=all&per_page=100" headers = {"Authorization": f"token {TOKEN}"} response = requests.get(API_URL, headers=headers) pr_list = response.json() # 按新增行数降序排序,想按删除行数就把additions换成deletions sorted_prs = sorted(pr_list, key=lambda pr: pr["additions"], reverse=True) # 打印排序后的结果 for pr in sorted_prs: print(f"PR #{pr['number']} | {pr['title']}") print(f"新增行数: {pr['additions']} | 删除行数: {pr['deletions']}\n")
提示:如果仓库PR超过100个,需要处理API的分页逻辑(查看响应头里的Link字段)
方法三:仓库贡献洞察(间接参考)
如果只是想了解整体代码改动量的分布,可直接进入仓库的Insights > Contributors页面,这里能看到每个开发者的累计增删行数,但没法直接对应到单个PR,适合做全局贡献参考。
内容的提问来源于stack exchange,提问作者Elye
相关产品推荐
相关产品推荐

