K-文化的一切——从回归到 K-美妆,发送到您的邮箱订阅邮件

METAL MEDIA

vuphongle/oss-pr-reviewer

45TypeScriptMIT

一个用OpenAI扫描GitHub拉取请求并生成Markdown风险报告的命令行工具

oss-pr-reviewer会从GitHub抓取拉取请求(PR)的元数据和改动文件的差异内容,交给OpenAI做结构化分析,再验证并合并结果,生成一份标出潜在漏洞、安全风险、回归问题和缺失测试的Markdown报告。它明确表示自己是辅助工具而非审批系统,最终决定权仍在维护者手中。项目用TypeScript编写,也提供可选接入的GitHub Action。

它做什么

  1. 用Octokit抓取PR元数据和差异,跳过二进制文件、没有补丁的文件或过大的文件,并在报告中注明跳过原因。
  2. 把大段差异按固定规则拆成批次(总共6万字符、单文件3万字符、每批最多8个文件)再发给OpenAI,用Zod校验返回的JSON格式,再做去重和确定性的严重程度过滤。
  3. 支持从PR的base分支(而不是PR本身的分支)读取可选的.oss-pr-reviewer.yml配置文件,设置最低严重级别、自定义审查规则和忽略路径,防止PR偷偷修改审查自己的标准。
  4. 提供一个可选启用的GitHub Action,在pull_request事件触发时,始终把报告追加到Actions的作业摘要里,开启post-comment选项后还能创建或更新同一条PR评论而不会重复发布。
  5. 出现高危或严重级别的问题并不会导致流程失败,只有配置错误、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 打开

热门仓库

全部仓库 →

METAL MEDIA 最新报道