文章目录
gitlab webhook
ChatGPT+ 极狐 GitLab
ai-code-review 环境
-
基本条件:机器能够访问 api.openai.com,且与极狐 GitLab 机器网络可互相访问。
-
*Linux / MacOS / Unix:
Docker 安装:若未安装 Docker,可使用命令 curl -fsSL https://get.docker.com | bash -s docker 进行安装。
运行程序:使用命令 docker run -itd -p 8888:8888 --restart=always --name ai-code-review -e gitlab_private_token=“<你的GitLab Token>” -e language=“Chinese” -e openai_api_key=“<你的OpenAI Token>” -e acr_license=“test” satomic/ai-code-review:20230321 启动程序,需将其中的 Token/License 参数替换为实际参数。
极狐 GitLab Webhook 配置
-
在极狐 GitLab 中,对需要进行 AI code review 的 group 或 project 进行配置,建议使用 group 级别的 webhook,这样 group 内所有项目的 MR 都会被 AI 审查,无需为每个 project 重复配置。
-
配置完成后,每次合并请求产生及变化时,都会在 webhook 发送记录中看到相应记录。
ChatGPT 评审效果
Review 效果示例可访问 Public 演示仓库 AI 自动 MR 评审演示。(见连接展示)
定义自己的评审机器人
-
前文中的自动化评审机器人封装在 docker 镜像中,其角色声明为资深编程专家,以精炼、严厉的语气给出审查建议。
-
如果想让机器人“注入感情”,可以自定义角色声明,例如定义一个傲娇少女来评审。
-
创建 ai_code_review.py 文件,编写代码实现自动化评审功能,核心函数包括:
(1)ai_code_review:调用 openai.ChatCompletion.create() 方法基于预设 prompt 角色发起对话,得到评审结果。
(2)comment:调用 .merge_request.notes.create() 方法将评审内容追加到 MR 中。 -
单次评审的使用方式为传递对应参数实例化 AICodeReview 对象并调用相应方法。
参考