ci: Agent提交前自动格式化 + AI审查与auto-approve联动 #746
Reference in New Issue
Block a user
Delete Branch "ci/agent-format-ai-review-link"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更内容
P0-2: Agent提交前自动格式化
scripts/format.sh一键格式化脚本P0-3: AI审查与auto-approve联动
pr_auto_scan.py新增get_ai_review_result()函数ai-review/需修改标签--skip-ai-review参数可强制跳过预期收益
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #746 已关闭或合并,对应的预览环境已被清理。
代码审查结果 - PR #746
⚠️ 问题(2个需要修改)
scripts/ci/pr_auto_scan.py 第300行:字段名拼写错误,导致获取分支名为空
pr.get("base", {}).get("ref", "")修改为get("re", ""),这是一个明显的拼写错误。GitHub API 中分支名字段为ref,修改后将导致base_ref始终为空字符串。如果后续逻辑依赖此变量(虽然当前diff中未直接显示使用,但保留了该变量赋值),将导致逻辑错误。"re"改回"ref"。scripts/format.sh 第11-15行:Shell脚本变量引用未加引号,无法正确处理包含空格的路径
TARGETS="${@:-...}"将参数合并为一个字符串,后续python3 -m isort $TARGETS在展开时未加双引号。如果传入的路径包含空格(例如./scripts/format.sh "my folder"),路径会被空格截断,导致格式化失败或错误处理文件。targets=("${@:-alembic apps packages tests scripts}"),调用时使用"${targets[@]}"。💡 建议(2个可选)
scripts/ci/pr_auto_scan.py 第339-341行:忽略标签添加失败可能导致问题被遗漏
add_pr_label函数的返回值被忽略,如果添加标签失败(如权限不足或标签不存在),PR 将不会被标记,人工可能无法意识到该 PR 被 AI 阻止了。scripts/ci/pr_auto_scan.py 第116-125行:AI审查解析逻辑缺乏容错性
critical_count默认为 0,会导致有问题的 PR 被误判为“无严重问题”并通过自动审批。--strict-ai参数控制此行为。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能无明显问题
🤖 由 AI 代码审查机器人自动生成 | 2026-07-23 01:25:23 | 模型: