vuphongle/oss-pr-reviewer
一个用OpenAI扫描GitHub拉取请求并生成Markdown风险报告的命令行工具
oss-pr-reviewer会从GitHub抓取拉取请求(PR)的元数据和改动文件的差异内容,交给OpenAI做结构化分析,再验证并合并结果,生成一份标出潜在漏洞、安全风险、回归问题和缺失测试的Markdown报告。它明确表示自己是辅助工具而非审批系统,最终决定权仍在维护者手中。项目用TypeScript编写,也提供可选接入的GitHub Action。
它做什么
- 用Octokit抓取PR元数据和差异,跳过二进制文件、没有补丁的文件或过大的文件,并在报告中注明跳过原因。
- 把大段差异按固定规则拆成批次(总共6万字符、单文件3万字符、每批最多8个文件)再发给OpenAI,用Zod校验返回的JSON格式,再做去重和确定性的严重程度过滤。
- 支持从PR的base分支(而不是PR本身的分支)读取可选的.oss-pr-reviewer.yml配置文件,设置最低严重级别、自定义审查规则和忽略路径,防止PR偷偷修改审查自己的标准。
- 提供一个可选启用的GitHub Action,在pull_request事件触发时,始终把报告追加到Actions的作业摘要里,开启post-comment选项后还能创建或更新同一条PR评论而不会重复发布。
- 出现高危或严重级别的问题并不会导致流程失败,只有配置错误、API错误、文件系统或校验失败才会返回非零退出码。
为什么重要
它把维护者手动逐个检查改动文件的重复性前期工作自动化了,同时把仓库内容当作不可信输入来处理,这对评估是否要把AI审查工具接入真实工作流的人来说是重要的参考。
本仓库术语
- Octokit · 官方封装的GitHub API调用库,方便程序访问GitHub数据
- Zod · TypeScript中用于校验数据格式是否符合预期的库
- 提示词注入 · 把恶意指令藏在喂给AI的数据里,试图覆盖AI原本指令的一种攻击方式
- 严重程度过滤 · 把发现的问题分成低、中、高、严重等级别,只保留达到设定门槛以上的问题
- base分支 · 拉取请求最终要合并进入的目标分支,代表改动之前的代码基准
仓库简介(英文)
AI-powered CLI for reviewing GitHub pull requests, detecting potential bugs, security risks, regressions, and missing tests, with structured Markdown reports for open-source maintainers.
在 GitHub 打开热门仓库
- vorssaint/vorssaint-utils一个免费菜单栏应用,顶替十几款付费Mac工具
- Alishahryar1/free-claude-code一个本地代理,把编程AI助手接到49家免费或低价模型服务商,不再只能用一家付费服务
- freestylefly/awesome-gpt-image-2把532个GPT-Image2案例拆解成可复用模板的提示词工程库
- block/buzz一个让人类和AI智能体在同一空间里聊天、写代码、做审查的开源协作平台
- NousResearch/hermes-agentNous Research推出的Hermes是一款越用越聪明的AI智能体
- virgiliojr94/book-to-skill把技术类书籍PDF变成AI编程助手随时可查阅的技能包
- VoltAgent/awesome-agent-skills把上千份让AI编程助手秒变专家的操作手册集中放在一个地方
- anthropics/claude-plugins-community一个把大家做的Claude插件集中起来供安装的仓库