代码自动审查实践:基于sonar+jenkins+gitlab

代码自动审查实践:基于sonar+jenkins+gitlab

前言

目标

要实现的效果是,开发人员在gitlab提交Merge Request后,自动触发jenkins的sonar分析任务,若分析到了问题代码,则自动在问题代码下面发表一条comment,并且钉钉提醒。

效果图如下:

  • gitlab上自动写入评论

    image-20201015105508083

  • 触发钉钉提醒

    image-20201015105722292

  • sonar dashboard视图

    image-20201015105837627

  • sonar issues视图

    image-20201015105933380

运行机制图

image-20201015111905895

搭建步骤

生成gitlab user token

生成并保存user token

image-20201015115404040

安装SonarQube

具体安装方式不再赘述,可以自行参考官方安装文档https://docs.sonarqube.org/latest/setup/install-server/,个人推荐使用docker方式安装,更加方便。

安装gitlab-sonar插件

请参考https://github.com/gabrie-allaigre/sonar-gitlab-plugin

配置sonar

  1. 新建一个sonar项目

    image-20201015114619159

  2. 生成sonar token,并记录这个token

    image-20201015114729430

  3. 填入gitlab user token

    image-20201015115454497

配置jenkins

  1. 配置源码git地址

    image-20201015115708541

  2. 构建触发器

    image-20201015115750178

  3. 执行shell

    image-20201015115934256

  4. 插入环境变量

    image-20201015120023796

  5. 执行SonarQube Scanner

    image-20201015120412363

添加gitlab webhook

image-20201015120624288