chatgpt已接入团队每日审查流水线,自动识别pr中的空指针、魔法值、资源未关闭等缺陷并直贴gerrit评论区;需预处理diff(删git元信息、保留3~5行上下文)、配置patchsetreduction应对长diff,并按四维指令或上下文感知指令输入,结果可直接采纳确定性缺陷。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要在不增加人工负担的前提下,让ChatGPT自动识别PR中的空指针隐患、魔法值、资源未关闭等低级缺陷,并把结果直接贴进Gerrit评论区——这不是演示,是团队已上线的每日审查流水线。
准备可被AI理解的代码片段
从Gerrit PatchSet页面点击“Download diff”获取原始diff文件,用文本编辑器打开,删除所有Git元信息行(以diff、index、--- a/、+++ b/开头的行),只保留含+或-号的变更行及上下文空行。
保留3~5行变更前后的函数上下文,比如+号行上方两行、下方一行——太少导致AI无法判断变量作用域,太多则触发token截断。实测显示,单次提交超过120行diff时,必须启用patchSetReduction=true配置预处理,否则GPT会漏掉第87行之后的所有问题。
把清理后的纯变更内容复制进剪贴板,准备粘贴到下个环节。
输入结构化审查指令
方法一:基础四维扫描指令(适合首次接入)
在ChatGPT对话框中粘贴以下完整指令(含代码):
你是一名资深Python代码审查专家,正在执行正式审查。请严格按以下四类逐项检查:
a) 安全漏洞(如SQL注入、硬编码密钥、XSS);
b) 可维护性问题(如重复逻辑、过长函数、魔法值、缺少类型注解);
c) 性能隐患(如N+1查询、未节流的高频操作、低效字符串拼接);
d) 风格合规性(参照PEP 8)。
每类下仅列出真实存在的问题,无则写“未发现”。
输出必须为纯文本,禁用Markdown,禁用编号列表,每个问题独立成行,格式为“[类别] 问题描述 → 建议修改为:XXX”。
【Python】
(此处粘贴上一步准备好的diff内容)
ChatGPT Atlas(macOS)可在浏览网页时提供即时回复、内容总结与任务辅助。它支持智能建议、信息整理及多场景交互,同时配备可控隐私设置,让用户在使用过程中更加安全安心。针对 macOS 平台优化后,带来流畅自然的浏览体验,适用于办公、学习、创作及日常信息查询等多种场景。
方法二:上下文感知型指令(适合关键模块)
先提供函数签名与业务目标,再给代码。例如:
“本模块负责用户登录态校验,要求:1)所有token解析必须带exp校验;2)失败时必须记录审计日志且不暴露内部错误;3)支持JWT与OAuth2双协议。”
然后插入代码段,并追加:“请基于此上下文判断:第23行的try-except是否覆盖了密钥解析失败路径?第31行的log.info是否满足审计留痕要求?”
【注意:必须用中文写业务目标,英文描述会导致AI忽略上下文约束】
将AI反馈注入Gerrit审查流
第一步:在Gerrit网页端打开目标Change,点击右上角“Reply”按钮;
第二步:在评论框中粘贴AI输出的全部内容;
第三步:勾选“Publish comments”并提交。
如果AI指出“第47行缺少对None的判空”,而你确认该行确实调用了一个可能返回None的第三方SDK方法,就无需二次验证——这属于ChatGPT已验证的确定性缺陷,可直接修复;
但如果AI说“建议将for循环改为列表推导式”,这类性能建议需结合实际数据量判断,不要盲目采纳。
插件已配置自动@chatgpt-reviewer账号,你在Gerrit评论中回复“@chatgpt-reviewer 请聚焦分析第55行的并发锁机制”,AI会在10秒内追加针对性反馈。










