Repolode
winnin

winnin/farol

在 AI 代码审查之后运行的 CLI 与 GitHub Action,为 PR 评估合并风险,并列出受影响的文件与接口。

Star
174
Fork
5
未关闭 Issue
6
最近提交
3天前

这是什么?

farol 是一款免费开源的 CLI 与 GitHub Action,面向审批 Pull Request 的人。在 AI 审查代理对 diff 做出评论之后,它通过静态分析展示改动代码会影响哪些页面、API 接口、RPC 方法、任务和脚本,并给出合并结论(快速通过、快速审查或仔细审查)以及 0 到 100 的风险分。

报告综合了影响范围、diff 覆盖率、安全问题、接口兼容性破坏和依赖变化,按风险从高到低列出文件,并附带行内 diff、未覆盖的代码行和手动测试清单。它借助 TypeScript 编译器、go/types 和 Python 的 ast 读取代码,不执行被分析的代码,也不将代码发送到网络。可在本地或 CI 中运行,在 PR 中发表评论,且不会阻止合并。

支持的技术栈包括 React Router、Next.js 和 TanStack Router 前端,TypeScript 的 GraphQL 与 REST 后端,Go 服务,以及 FastAPI、Flask、Django 等 Python 服务。可选的 Datadog 集成可补充流量与错误数据。

核心功能

  • 01按风险对改动文件排序,并展示每个文件影响的页面和接口。
  • 02给出合并结论与 0 到 100 的风险分,并说明评分依据。
  • 03识别 GraphQL、FastAPI、Go 和 gRPC 接口的破坏性变更。
  • 04在行内 diff 中标出未覆盖的代码行,并导入 CI 中的覆盖率、lint 与审计报告。
  • 05生成单文件 HTML 报告和 Markdown 审查记录。

适用场景

  • 在批准大型 PR 前判断需要投入多少审查时间。
  • 合并前发现破坏性接口变更及其下游调用方。
  • 在 GitHub PR 中与现有 AI 审查工具并行加入风险分诊步骤。
  • 查看共享组件改动会影响哪些前端页面。

快速上手

  1. 1

    在项目根目录创建 farol.config.json,描述你的技术栈

  2. 2

    列出 farol 找到的页面、接口、任务和脚本

    npx @winninjs/farol routes
  3. 3

    将分支与目标分支进行分析

    npx @winninjs/farol analyze --base origin/main --head HEAD --out farol.json
  4. 4

    生成 HTML 报告并打开

    npx @winninjs/farol html --in farol.json --out farol.html && open farol.html

使用前须知

  • 需要 Node.js 22+ 和 git;分析 Go 项目还需要 go,分析 Python 项目还需要 python3 3.11+。
  • 仅支持 TypeScript、Go 和 Python 代码库。

收录于专题

标签

常见问题

farol 是什么?
在 AI 代码审查之后运行的 CLI 与 GitHub Action,为 PR 评估合并风险,并列出受影响的文件与接口。 farol 是一款免费开源的 CLI 与 GitHub Action,面向审批 Pull Request 的人。在 AI 审查代理对 diff 做出评论之后,它通过静态分析展示改动代码会影响哪些页面、API 接口、RPC 方法、任务和脚本,并给出合并结论(快速通过、快速审查或仔细审查)以及 0 到 100 的风险分。
farol 可以免费使用吗?用的什么许可证?
farol 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
farol 还在维护吗?
活跃维护中。farol 最近一次提交是在 2026年11月4日。
farol 适合用来做什么?
在批准大型 PR 前判断需要投入多少审查时间。 合并前发现破坏性接口变更及其下游调用方。 在 GitHub PR 中与现有 AI 审查工具并行加入风险分诊步骤。 查看共享组件改动会影响哪些前端页面。
farol 怎么安装和运行?
在项目根目录创建 farol.config.json,描述你的技术栈 列出 farol 找到的页面、接口、任务和脚本: npx @winninjs/farol routes 将分支与目标分支进行分析: npx @winninjs/farol analyze --base origin/main --head HEAD --out farol.json 生成 HTML 报告并打开: npx @winninjs/farol html --in farol.json --out farol.html && open farol.html
在哪里获取 farol?
源代码和安装说明在 GitHub 上:https://github.com/winnin/farol

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目