当前位置:首页 > 每日看点 > 正文内容

有什么使用资源多又开源的评审代码工具?

卡卷网1年前 (2024-12-06)每日看点244

代码地址:GitHub - sunmh207/AI-Codereview-Gitlab: 基于大模型的 GitLab 自动代码审查工具,支持钉钉推送和日报生成。


项目简介

本项目是一个基于大模型的自动化代码审查工具,帮助开发团队在代码合并或提交时,快速进行智能化的 Code Review,提升代码质量和开发效率。

目前,支持OpenAI和智谱AI两家大模型供应商,若需要对接其它模型,请自行修改代码。

功能

  • 代码审查: 使用大模型对提交的代码进行分析和审查。
  • 自动发送审查结果: 审查完成后,系统会自动将结果推送到指定的钉钉群,以及更新Merge Request 或 Commit 的 Note。
  • 生成员工日报: 系统根据团队成员的提交记录,自动生成日报,汇总个人工作情况和代码贡献。

效果图:


有什么使用资源多又开源的评审代码工具?  第1张


有什么使用资源多又开源的评审代码工具?  第2张


有什么使用资源多又开源的评审代码工具?  第3张


原理

当用户在 GitLab 上提交代码(包括 Merge Request 或 Push 操作)时,GitLab 会触发 webhook 事件。该 webhook 调用本系统的接口,系统调用第三方大模型对提交的代码进行智能化审查,并将审查结果记录在对应的 Merge Request 或 Commit 的 note 中。

部署

本地Python环境部署

1. 获取源码

从 GitHub 仓库克隆项目到服务器:

git clone https://github.com/sunmh207/AI-Codereview-Gitlab.git cd AI-Codereview-Gitlab

2. 安装依赖

使用 Python 环境(建议使用虚拟环境 venv)安装项目依赖(Python 版本:3.10+):

pip install -r requirements.txt

3. 配置环境变量

在项目根目录创建 .env 文件,并配置以下环境变量:

#服务端口 SERVER_PORT=5001 #Gitlab配置 GITLAB_ACCESS_TOKEN=xxx #大模型供应商配置,支持 zhipuai 和 openai LLM_PROVIDER=zhipuai #ZhipuAI settings ZHIPUAI_API_KEY=xxxx ZHIPUAI_API_MODEL=GLM-4-Flash #OpenAI settings OPENAI_API_KEY=xxxx OPENAI_API_MODEL=gpt-4o-mini #支持review的文件类型(未配置的文件扩展名会被忽略) SUPPORTED_EXTENSIONS=.java,.py,.php,.yml #提交给大模型的最长字符数,超出的部分会截断 REVIEW_MAX_LENGTH=20000 #钉钉配置 #0不发送钉钉消息,1发送钉钉消息 DINGTALK_ENABLED=0 DINGTALK_ACCESS_TOKEN=your_dingtalk_access_token DINGTALK_SECRET=your_dingtalk_secret #日志配置 LOG_FILE=log/app.log LOG_MAX_BYTES=10485760 LOG_BACKUP_COUNT=3 LOG_LEVEL=DEBUG #工作日报配置 #日报源数据存放位置 REPORT_DATA_DIR=log #日报生成定时器, 默认周一至周五每天18:00生成 REPORT_CRONTAB_EXPRESSION=0 18 * * 1-5

4. 启动服务

本项目默认使用 Flask 框架,您可以直接启动:

python api.py

Docker 部署

1. 创建目录和配置文件

mkdir log

2. 创建.env文件

同上面步骤 "3. 配置环境变量"

3. 创建docker-compose.yml文件

services: flask-app: image: registry.cn-hangzhou.aliyuncs.com ports: - "5001:5001" environment: - FLASK_ENV=production volumes: - ./.env:/app/.env - ./log:/app/log restart: unless-stopped

4. 启动docker容器

docker compose up -d 或 docker-compose up -d

配置 GitLab Webhook

a) 创建Access Token

在 GitLab 个人设置中,创建一个 Access Token,用于调用 GitLab API:

b) 配置 Webhook

在 GitLab 项目设置中,配置 Webhook:

  • URL:your-server-ip:5001/web
  • Trigger Events:勾选 Push Events 和 Merge Request Events
  • Secret Token:上面配置的 Access Token

备注:如Webhook没有配置Secret Token, 系统会取.env中的GITLAB_ACCESS_TOKEN作为Secret Token

配置钉钉推送

  • 在钉钉群中添加一个自定义机器人,获取 Webhook URL 和 Access Token和Secret。
  • 更新 .env 中的 DINGTALK_ACCESS_TOKEN 和 DINGTALK_SECRET 配置。
  • 系统会在代码审查完成后,自动将结果推送到钉钉群。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/3250.html

分享给朋友:

相关文章

请问什么软件支持看电视直播?

请问什么软件支持看电视直播?

2024年9月6日最新更新:本文列举的所有看电视直播、或流媒体影视资源点播的软件,我这两天又重新梳理成最新版本,最大程度保证可用性。获取方式见文末图片,或见评论。后续我也将持续更新,文章是旧的软件也会是新的,保证你拿到的都是最新可用版本。作...

为什么微服务一定要有网关?

为什么微服务一定要有网关?

网关一句话总结,网关的作用是上浮公共逻辑,下沉差异逻辑。公共逻辑就是所有接口都需要做的事,比如权限校验,限流算法等,这样业务就只需要关心业务逻辑即可。下面是一个对比图: 当然除了一些公共逻辑外,路由也是网关的核心功能,它可以进行流量转发。...

网易云音乐里有哪些打动你的评论?

1.“如果我被强奸了,有人说我会失去贞操。”“我怎么失去贞操了呢?” “我的贞操不在我的阴道里。”“失去贞操的是强奸犯,而不是被强奸的人。”2.但要记得那年海边的烟火,我们不拘一格 ,嘲笑过生活。………网易云热评《这样就很好》3.“ 我们在...

你是如何在不依靠工资收入的情况下赚到一万元的?

你是如何在不依靠工资收入的情况下赚到一万元的?

分享几个路子稳,门槛低,变现快,适合年轻人的靠谱的副业。绝对不是送外卖、滴滴、搬砖等等的苦力活,这几个副业都是能是性价比极高,还能让你快速成长的工作。想通过副业实现暴富、立马月入过万的同学,建议速速划走。今天撇哥就给大家分享100+个靠谱赚...

用红米手机会很丢人吗?

前些日子遇到了一位快递小哥,京东的,签收小哥年纪不算大,目测二十多岁他的手机上全是一道道极严重的划痕,有点卡,他开热点了,热点名就是手机型号,红米9a,我父母的同款现在他那边操作了一会,然后又是我这边操作了一会小哥看着我手机刷刷的,颇有些好...

夸克浏览器受欢迎的原因是什么?

夸克浏览器受欢迎的原因是什么?

这是可以说的嘛~哈哈,它比较吸引我的几点是:安全无广、页面简洁、功能丰富、反应速度快......首页页面支持自定义,喜欢什么样子都可以自己调整,没有花里胡哨的各种资讯推送,热搜日报整理归纳好,想看再点开查看,看着舒适度直接拉满!实用日常工具...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。