当前位置: 首页 > news >正文

在 Gitlab 中使用 ChatGPT 进行 CodeReview

ChatGPT集成Gitlab,实现自动代码审计并进行评论,为软件开发团队提供高效、智能的代码审查解决方案。支持其他模型如通义千问等

  1. 自动触发与及时响应:利用Gitlab的Webhook功能,实现代码提交、合并请求和标签创建等事件的自动触发。一旦有新的代码提交,系统即时响应,立即启动审计过程,无需手动干预。
  2. 利用Gitlab API接口:通过与Gitlab的API接口集成,方便后续的功能拓展和扩展。这种集成方式使得与Gitlab的交互更加灵活,能够支持更多自定义的审计需求。
  3. 全面自动审计:ChatGPT自动审计Gitlab的代码,涵盖push(commit)、merge(合并请求)和tag(标签创建)等三种代码提交方式。无论是新的代码提交还是代码合并,系统都能自动检查并提供审计评论。

前言

GitHub上看到一个使用 ChatGPT 进行 Code Review 的项目 ChatGPT-CodeReview。它实现了一个代码审查机器人,当你在 GitHub 上创建一个新的 Pull request 时,机器人会自动进行代码审查,审查信息将显示在 PR timeline / file changes 中。由于该版本不支持gitlab,于是自己用js写了一版。

功能介绍

代码审查机器人:在 Gitlab 中使用 ChatGPT 或 其他模型(兼容openai的api) 进行 CodeReview。当你在 GitLab 上创建一个新的 Merge request 时,机器人会自动进行代码审查,审查信息将显示在 MR timeline / file changes 中。

实现原理

在这里插入图片描述

Usage

创建Project Access Tokens

在这里插入图片描述

Gitlab配置Webhook

Webhook URL示例:http://xxx:4000/code-review?access_token=<access_token>

在这里插入图片描述

测试示例图

在这里插入图片描述

Configuration

  1. BASE_URL AI模型host,默认https://api.openai.com,可替换通义或其他模型链接
  2. API_KEY [required] 模型api的key
  3. DEFAULT_MODEL 默认gpt3.5-turbo,可替换通义或其他模型
  4. GITLAB_URL 你的gitlab仓库的host
  5. TARGET_CR_FILE 正则匹配需要code review的文件,默认检查.js/.jsx/.ts/.tsx结尾的文件
仓库地址 ==>GitHub

相关文章:

在 Gitlab 中使用 ChatGPT 进行 CodeReview

ChatGPT集成Gitlab&#xff0c;实现自动代码审计并进行评论&#xff0c;为软件开发团队提供高效、智能的代码审查解决方案。支持其他模型如通义千问等 自动触发与及时响应&#xff1a;利用Gitlab的Webhook功能&#xff0c;实现代码提交、合并请求和标签创建等事件的自动触发。一…...

解决新版Android studio不能连接手机的问题

我要说的是一个特例&#xff0c;装了22年的版本AS可以正常连接手机&#xff0c;装了23年以后新版本&#xff0c;AS不能正常连接手机了&#xff0c;但是在CMD控制台可以正常的执行adb命令&#xff0c;并且CMD和AS都是指向D:\android_sdk\platform-tools\adb.exe 一、 为什么会出…...

arcgis for js点位渲染与实际坐标不一致且popupTemplate偏移

问题描述 arcgis for js 鼠标点击地图时的经纬度, 使用该经纬度加载一个Point点, 该Point点渲染位置与实际经纬度不一致(存在偏差)该Point点设置popupTemplate弹窗, 点击Point点无法弹出 (位置偏移导致) 原因 地图容器或更外层元素CSS的scale属性导致...

定点数和浮点数的详细介绍(一)定义、范围、位宽

1.定点数 1.1定点数描述 定点数包括定点小数(纯小数)、定点整数(纯整数)、整数和小数位数固定的实数。 1.2定点小数: 小数点默认在符号位后面,首位为符号位,其他为数值位(在用二进制代表小数时,例如0xFF,就表示0.5+0.25+0.125+0.0625+0.03125........) 例如,用…...

Redis: 集群环境搭建,集群状态检查,分析主从日志,查看集群信息

集群环境搭建 在 Redis 5版本以前是用 Ruby 来搭建集群&#xff0c;在后面的版本中仍保留了相关功能可以再源码src目录中&#xff0c;看到 redis-trib.rb 这个东西&#xff0c;只是现在用这种方式搭建的少了我们看新的版本是怎样搭建集群的&#xff0c;新版构建集群的方式简单…...

『网络游戏』动态界面制作创建角色UI【02】

将上一章的登录界面隐藏 创建空物体重命名为CreateWnd 自适应铺满父物体 创建image重命名为bg并铺满 将以下资源图片放进Art文件夹 设置为精灵模式 填充背景 创建介绍Image面板与角色按钮 制作将3D模型动态防止UI界面上 首先创建RawImage 创建RenderTextures文件夹 创建Render…...

CMake 教程跟做与翻译 2

目录 STEP 1(Extra A)&#xff1a;指定C的版本 STEP1(Extra B): 为我们的项目添加版本信息与配置的头文件 Reference STEP 1(Extra A)&#xff1a;指定C的版本 有的时候&#xff0c;我们会是对一个比较年老的项目进行构建。这个时候&#xff0c;我们可能就需要限制一下使用的…...

Linux 之 安装软件、GCC编译器、Linux 操作系统基础

安装软件、GCC编译器、Linux 操作系统基础 学习任务&#xff1a; 安装 Vmware虚拟机、掌握Ubuntu 系统的使用认识 Ubuntu 操作系统的终端和 Shell掌握软件安装、文件系统、掌握磁盘管理与解压缩掌握 VIM 编辑器、Makefile 基本语法熟悉 Linux 常见指令操作 安装好开发软件&…...

[CTF夺旗赛] CTFshow Web13-14 详细过程保姆级教程~

前言 ​ CTFShow通常是指网络安全领域中的“Capture The Flag”(夺旗赛)展示工具或平台。这是一种用于分享、学习和展示信息安全竞赛中获取的信息、漏洞利用技巧以及解题思路的在线社区或软件。参与者会在比赛中收集“flag”&#xff0c;通常是隐藏在网络环境中的数据或密码形…...

【Matlab】Matlab 导入数据.csv或者.xlsx文件,然后使用这些数据来绘制图表

Matlab 导入数据.csv或者.xlsx文件&#xff0c;然后使用这些数据来绘制图表 初始数据 filename C:\Users\jia\Desktop\yadian\data\1Hz 2024_09_12 17_10_06.csv; 代码&#xff1a; clc;clear close all; % 读取Excel文件 filename C:\Users\jia\Desktop\yadian\data\1Hz …...

Awaken Likho恶意组织利用高级网络工具对俄罗斯政府发起“猛攻”

近日&#xff0c;俄罗斯政府机构和工业实体遭遇了一场名为“ Awaken Likho ”的网络活动攻击活动。 卡巴斯基表示&#xff0c;攻击者现在更倾向于使用合法MeshCentral平台的代理&#xff0c;而不是他们之前用来获得系统远程访问权限的UltraVNC模块。这家俄罗斯网络安全公司详细…...

【洛谷】P10938 Vani和Cl2捉迷藏 的题解

【洛谷】P10938 Vani和Cl2捉迷藏 的题解 洛谷传送门 题解 噢噢噢噢哦哦哦&#xff0c;神奇网络流&#xff0c;有点像 Floyd 在图上选取若干条互不相交的路径&#xff0c;并让这些路径不重不漏覆盖到每一个点。符合上述要求且总数最小的方案就叫做原图的最小路径点覆盖&…...

三角形面积 python

题目&#xff1a; 计算三角形面积 代码&#xff1a; a int(input("请输入三角形的第一个边长&#xff1a;")) b int(input("请输入三角形的第二个边长&#xff1a;")) c int(input("请输入三角形的第三个边长&#xff1a;")) s (abc) / 2 #…...

【C++第十七章】二叉搜索树

【C第十七章】二叉搜索树 二叉搜索树的介绍&#x1f9d0; 二叉搜索树又称二叉排序树&#xff0c;它可能是空树&#xff0c;也可能是具有以下性质的二叉树&#xff1a; 若它的左子树不为空&#xff0c;则左子树上的所有节点的值小于根节点的值若它的右子树不为空&#xff0c;则…...

Springboot 文件上传

文件上传&#xff0c;是指将本地图片、视频、音频等文件上传到服务器&#xff0c;供其他用户浏览或下载的过程。 文件上传前端需要完成的准备&#xff1a; 需要提交一个form表单&#xff0c;表单必须包含以下三点&#xff08;上传文件页面三要素&#xff09; …...

简单认识redis-5 jdbc 与 jedis 使用的区别

概念与功能定位 JDBC (Java Database Connectivity) JDBC 是 Java 语言用于连接数据库&#xff08;如 MySQL、Oracle 等关系型数据库&#xff09;的标准 API。它提供了一套统一的接口&#xff0c;让 Java 程序能够与各种数据库进行交互&#xff0c;执行 SQL 语句&#xff08;如…...

Unity3d动画插件DoTween使用指南

1、DoTween是什么&#xff1f; DoTween是一款对象动画类插件&#xff0c;它是一款针对Unity 3D编辑器的、快速高效的、安全的、面向对象的补间动画引擎&#xff0c;并且对C#语言开发做出了很多的优化。另外&#xff0c;它使得开发者无需通过Unity内置的Animator或Coroutines即可…...

学习函数知识

学习函数是编程中的重要基础&#xff0c;以下是关于函数的详细知识点&#xff1a; 1. 函数的定义 函数是一组执行特定任务的代码块&#xff0c;可以重复使用。在 JavaScript 中&#xff0c;可以通过以下方式定义函数&#xff1a; 函数声明&#xff1a; function functionNam…...

案例-表白墙简单实现

文章目录 效果展示初始画面提交内容后画面&#xff08;按键按下&#xff09; 代码区 效果展示 初始画面 提交内容后画面&#xff08;按键按下&#xff09; 代码区 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…...

和鲸科技创始人范向伟:拐点即将来临,AI产业当前的三个瓶颈

在科技迅猛发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;无疑已经成为引领新一轮产业革命的核心动力之一。全球企业纷纷拥抱AI技术&#xff0c;试图借助其变革力量在竞争中突围&#xff0c;然而业界对AI产业化的拐点何时来临却众说纷纭。毕竟AI技术从实验室到商业…...

基于S7-200 PLC与组态王技术的温室大棚控制方案:包含梯形图原理图、IO分配及组态画面详解

基于S7-200 PLC和组态王温室大棚控制 我们主要的后发送的产品有&#xff0c;带解释的梯形图接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面菜农张叔上周还给我打电话吐槽&#xff1a;“小王啊&#xff0c;上周那场降温加突然转晴&#xff0c;我三点爬起来盖半层棉被…...

GLM-OCR完整教程:部署、使用、API、案例,一篇搞定所有

GLM-OCR完整教程&#xff1a;部署、使用、API、案例&#xff0c;一篇搞定所有 1. GLM-OCR简介与核心优势 GLM-OCR是一款基于先进多模态架构的OCR识别工具&#xff0c;专为解决复杂文档理解问题而设计。与市面上大多数OCR工具不同&#xff0c;它不仅能识别文字&#xff0c;还能…...

告别预烘焙!在UE材质编辑器中实时生成FlowMap和法线贴图(附节点图)

实时材质魔法&#xff1a;UE引擎中FlowMap与法线贴图的动态生成技术 在游戏开发与动态视觉创作领域&#xff0c;材质表现的真实感与动态效果一直是技术美术师们追求的核心目标。传统工作流中&#xff0c;FlowMap&#xff08;流场图&#xff09;和法线贴图的生成往往依赖于外部软…...

聚点智行:WorkBuddy 辅助开发 AI 地图智能应用实战

一、从痛点到创意&#xff1a;一个真实场景的启发 作为一名经常组织朋友聚会的"社交达人"&#xff0c;我遇到了一个看似简单却让人头疼的问题&#xff1a;每次约饭&#xff0c;大家都在问"在哪见&#xff1f;" 张三住在回龙观&#xff0c;李四在东直门&…...

MStar-Bin-Tool-Master中文版|晨星芯片BIN固件解包/封包工具(适配机顶盒与智能电视)

温馨提示&#xff1a;文末有联系方式工具简介 MStar-Bin-Tool-Master中文增强版是一款专为晨星&#xff08;MStar&#xff09;系列主控芯片设计的固件解析与重构工具&#xff0c;全面支持主流机顶盒与智能液晶电视所用BIN格式刷机包&#xff0c;提供直观易用的图形化操作界面&a…...

亚洲美女-造相Z-Turbo算力适配实践:24G显存下支持batch_size=2高清图并行生成

亚洲美女-造相Z-Turbo算力适配实践&#xff1a;24G显存下支持batch_size2高清图并行生成 1. 快速了解亚洲美女-造相Z-Turbo 亚洲美女-造相Z-Turbo是一个专门针对亚洲女性形象生成优化的文生图模型&#xff0c;基于Z-Image-Turbo的LoRA版本进行深度定制。这个模型最大的特点是…...

STM32CubeMX实战指南:DMA驱动USART高效数据传输

1. DMA与USART协作的核心价值 第一次接触STM32的DMA功能时&#xff0c;我正被一个传感器数据采集项目折磨得焦头烂额。当时用传统的中断方式处理串口数据&#xff0c;CPU占用率直接飙到70%&#xff0c;整个系统卡得像老式拨号上网。直到尝试了DMAUSART组合&#xff0c;才真正体…...

SMR实战:如何将GWAS数据快速转换为BESD格式(附常见错误排查)

SMR实战&#xff1a;GWAS数据高效转换为BESD格式的完整指南与深度排错手册 在生物信息学研究中&#xff0c;基于汇总数据的孟德尔随机化&#xff08;Summary-data-based Mendelian Randomization, SMR&#xff09;已成为探索基因表达数量性状位点&#xff08;eQTL&#xff09;与…...

Cursor AI Pro终极解锁指南:告别试用限制的专业解决方案

Cursor AI Pro终极解锁指南&#xff1a;告别试用限制的专业解决方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…...

ROS实战:UZH-FPV数据集下PL-EVIO与主流VIO算法的性能对比

1. UZH-FPV数据集与无人机视觉里程计的挑战 UZH-FPV数据集是苏黎世联邦理工学院发布的专门针对高速无人机场景的多模态数据集。这个数据集最大的特点在于它完整记录了无人机在高速机动飞行&#xff08;最高速度超过10m/s&#xff09;时的多传感器数据&#xff0c;包括双目事件相…...