需配置Kimi CLI与GitHub Actions集成:一、在CI中安装CLI并配置API密钥;二、编写Shell脚本调用Kimi分析变更代码;三、通过Checks API将高危结果阻断PR;四、可选替换为Kimi-Dev模型提升精度;五、启用Print模式适配非交互场景。
如果您希望在
git
hub代码提交流程中自动引入
kimi
进行代码分析与审查,但当前未实现该联动,则可能是由于缺乏ci/cd环境中的kimi cli集成或权限配置缺失。以下是实现此目标的具体操作步骤:
一、配置Kimi CLI并绑定GitHub Actions运行器
需确保CI/CD环境具备可执行Kimi CLI的Python运行时及网络访问能力,并完成API密钥授权,使自动化流程能调用Kimi模型进行静态分析。
1、在GitHub仓库根目录创建
文件。
2、在该文件中声明使用ubuntu-latest运行器,并安装Python 3.10及以上版本。
3、通过
命令安装CLI工具,或使用
方式拉取最新源码并执行
。
4、将Kimi API密钥以
形式设为仓库Secret,并在工作流中通过
注入环境变量。
二、编写Kimi驱动的代码审查脚本
需构造一个可被GitHub Actions调用的Shell脚本,该脚本能定位变更文件、提取代码片段,并交由Kimi CLI执行结构化分析请求。
1、在项目根目录新建
,赋予可执行权限:
。
2、脚本内使用
获取本次PR修改的文件列表。
3、对每个
或
后缀文件,调用
。
4、将Kimi返回结果写入
,并在脚本末尾检查是否含
"高危"
或
"建议修复"
等关键词。
三、在Actions中触发Kimi审查并阻断高风险提交
需将审查结果转化为GitHub Checks API可识别的状态,使问题直接显示在PR界面,并支持设置失败阈值以阻止合并。
1、在workflow YAML中添加
步骤,用于调用GitHub REST API。
2、读取
内容,统计标记为
"critical"
的条目数量。
Kimi Claw
Kimi帮你一键部署的OpenClaw
下载
3、若数量大于0,调用
创建失败状态的Check Run,结论设为
"failure"
,输出包含具体行号与Kimi建议。
4、在
触发器中添加
,确保每次推送均重新运行审查。
四、使用Kimi-Dev模型替代通用API提升修复准确性
需替换默认调用的轻量级Kimi模型为专为编程任务优化的Kimi-Dev-72B,以获得更精准的漏洞识别与补丁生成能力。
1、在CI环境中通过Hugging Face Hub下载
模型权重,或使用vLLM部署本地推理服务。
2、修改
中调用命令,将
替换为指向本地服务的curl请求:
。
3、在workflow中增加
确保vLLM服务就绪后再执行审查。
4、将Kimi-Dev输出中带
"```patch"
代码块的部分提取为建议补丁,并通过
提交为PR评论。
五、通过Print模式适配非交互式审查场景
需启用Kimi CLI的Print模式,避免因等待用户输入导致CI流程挂起,并确保输出仅含结构化结果便于解析。
1、在所有kimi命令后统一追加
参数组合。
2、禁用Agent模式下的会话保持机制,防止多轮上下文干扰单次审查的原子性。
3、设置超时参数
,避免某次响应延迟拖垮整个流水线。
4、将标准错误重定向至日志文件:
,并在失败时通过
上传供人工排查。
.github/workflows/kimi-code-review.ymlpip install kimi-cligit clonemake installKIMI_API_KEYenvscripts/kimi-review.shchmod +x scripts/kimi-review.shgit diff --name-only ${{ github.event.before }} ${{ github.event.after }}.py.jskimi --quiet -p "请分析以下代码是否存在空指针风险、硬编码密钥或不安全的eval调用:$(cat "$file")"review-output.jsonuses: actions/github-script@v7review-output.jsongithub.rest.checks.createpull_requesttypes: [opened, synchronize]MoonshotAI/Kimi-Dev-72Bkimi-review.shkimi --quietcurl -X POST http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model":"kimi-dev","messages":[{"role":"user","content":"分析代码..."}]}'wait-for-it.sh localhost:8000 --timeout=120github.rest.pulls.createReview--print --final-message-only --output-format text--timeout 902> kimi-review-error.logactions/upload-artifact