Skip to content

feat: AI 代码审查工作流(DeepSeek,类 Copilot,自付额度) - #768

Open
PtJade-Ceramic wants to merge 1 commit into
maboloshi:gh-pagesfrom
PtJade-Ceramic:ai-review-upstream
Open

feat: AI 代码审查工作流(DeepSeek,类 Copilot,自付额度)#768
PtJade-Ceramic wants to merge 1 commit into
maboloshi:gh-pagesfrom
PtJade-Ceramic:ai-review-upstream

Conversation

@PtJade-Ceramic

Copy link
Copy Markdown
Contributor

简介

新增一个"类 Copilot"的 AI 代码审查工作流:任何用户可以自动或按需请求 DeepSeek 对 PR 进行中文代码审查,审查以机器人身份发布,每次审查消耗请求者自己的 DeepSeek 额度,本仓库不保存任何密钥明文

变更内容

  • .github/workflows/ai-review.yml
    • pull_request 打开/更新时自动审查
    • PR 评论 /review 按需审查
    • workflow_dispatch 手动指定仓库+PR
    • schedule 轮询「看护清单」中的上游 PR,响应本仓库属主的 /review
    • 去重:同一 head SHA 只审一次
  • script/ai_review.py:拉取 PR diff → 读取 .github/copilot-instructions.md(强制中文)→ 调用 DeepSeek → 输出结构化审查(概览/问题分级/优点/重写建议)
  • docs/ai-review.md:使用与安全模型说明

设计要点与安全模型

  • 自付额度:密钥 LLM_API_KEY 只存在于用户自己的 fork secret;每次审查只花触发者自己的 DeepSeek 额度。上游仓库不存任何密钥。
  • bot 身份:默认以 github-actions[bot] 发布;配置 GitHub App 后以机器人(如 gh-chinese-ai-reviewer[bot])发布,不占用用户账号。
  • 任何人看不到明文:密钥明文只在用户侧进程。
  • 不使用 pull_request_target;模型输出仅作为文本渲染,不执行。
  • 各用户在自己的 fork 启用(复制工作流+脚本,配置 secrets);本仓库的工作流在没有配置时自动跳过(不产生副作用)。

已知限制

  • 上游 /review轮询(约 15 分钟),非即时。
  • fork PR 的 pull_request 事件读不到 secrets → fork 内自动审需把工作流放到 fork 默认分支。
  • 若希望机器人直接在本仓库发布,需由维护者从 App 公共页安装该 GitHub App(可随时撤销)。

验证

已在 fork PtJade-Ceramic/github-chinese 端到端验证:自动审、/reviewworkflow_dispatch、去重、github-actions[bot]gh-chinese-ai-reviewer[bot] 发布均通过。

- .github/workflows/ai-review.yml:pull_request 自动审 + /review + workflow_dispatch + schedule 轮询
- script/ai_review.py:拉取 PR diff → 调用 DeepSeek → 生成中文结构化审查
- docs/ai-review.md:使用/安全说明

设计要点:
- 各用户在自己的 fork 自建实例,配置自己的 LLM_API_KEY(每次审查自付额度,上游仓库不存任何密钥)
- 可配置 GitHub App,以机器人身份(如 gh-chinese-ai-reviewer[bot])发布审查,不占用用户账号
- 安全模型:明文只在用户侧;不使用 pull_request_target;模型输出仅当文本不执行
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant