前提条件:1.Sonar Qube 版本sonarqube-8.9.8.54436 下载地址:https://binaries.sonarsource.com/CommercialDistribution/sonarqube-enterprise/sonarqube-enterprise-8.9.8.54436.zip
2.SonarQube 的安装需要 JAVA 的环境和数据库,我这块安装的是 JDK11和 SQL server 2019
内容:
1.安装JDK11
1.1下载地址:Java Downloads | Oracle
1.2下载完成解压到对应的文件夹,接着配置Java的环境变量,打开电脑的环境变量设置配置Java的环境变量
1.3新建一个名字为JAVA_HOME的变量,变量的值为:你解压的JDK11文件夹bin的这一层目录
1.4在环境变量找到path点击进入新增一个值为:%JAVA_HOME%\bin,并保存当前新增的环境变量
1.5 打开cmd 命令行窗口输入 ,结果输出java的版本号为11说明环境变量配置成功。
java -version
2.安装Sql Server 2019
2.1下载Sql server 2019:SQL Server 2019 | Microsoft Evaluation Center
2.2 安装Sql Server
3.sql server 安装完成,我们在安装sql server Management Studio
Download SQL Server Management Studio (SSMS) - SQL Server Management Studio (SSMS) | Microsoft Learn
4.打开SSMS,能进入数据库说明Sql server 和 ssms 安装成功。
5.配置SonarQube 进入数据库的用户,创建一个数据库用于SonarQube
需要配置数据库的排序规则为:SQL_Latin1_General_CP1_CS_AS
6.下载Sonar Qube:https://binaries.sonarsource.com/CommercialDistribution/sonarqube-enterprise/sonarqube-enterprise-8.9.8.54436.zip,并解压
7.按照:[原创] SonarQube 破解-软件逆向-看雪-安全社区|安全招聘|kanxue.com我们需要下载提供的Agent 1.2
8.安装完Agent 我们还需要配置SonarQube的配置文件在解压的SonarQube下的conf文件夹下。以txt文本打开更改配置文件
9.在配置文件新增配置
C:\Users\yy\Downloads指的是你下载的Agent的目录
SonarQube 指的是你在sqlserver新建的数据库的名字
sonaruser 指的是新创建的用户的用户名和密码
sonar.web.javaOpts=-javaagent:/C:\Users\yy\Downloads/SonarQubeAgent-1.2-SNAPSHOT.jar -Xmx1G -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.ce.javaOpts=-javaagent:/C:\Users\yy\Downloads/SonarQubeAgent-1.2-SNAPSHOT.jar -Xmx2G -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=SonarQube;encrypt=false;trustServerCertificate=true
sonar.jdbc.username=sonaruser
sonar.jdbc.password=sonaruser
10.接着启动Sonarqube,进入Sonarqube解压的文件夹,找到bin文件夹下的windows,进入并双击运行StartSonar
cmd窗口一直运行且在浏览器进入 localhost:9000 如上图所示表示SonarQube 安装成功
如果cmd窗口闪退可能是有问题,我们可以进入SonarQube的解压文件夹的log文件夹看报错信息。
11.进入localhost:9000的SonarQube 页面初始用户名密码都为admin,
登陆后会重置密码
12.登录后进入Lincense的界面
13.将以下的CODE 以base64加密(),就是lincense
Company=Unknown
Digest=NotRequired
Edition=Enterprise
EditionLabel=Enterprise
Expiration=2099-01-01
MaxLoc=9223372036854775806
Plugins=abap,cpp,plsql,security,sonarapex,swift,tsql,vbnet,cobol,pli,rpg,vb
Features=*
ServerId=*
Support=false
Type=ny0c
14.base64编码的网址:Base64 编码/解码 | 菜鸟工具 (runoob.com)
点击save后如下结果表示破解成功
二、集成Azure Devops Pipline 扫描代码请参考:Azure Devops集成 SonarQube检测代码质量_azure devops 代码扫描-CSDN博客
三、集成PR的流程
- 配置SonarQube检测失败时的条件
1.进入Sonarqube的Quality Gates 的界面,创建新的Quality Gates
- 创建New Code 的Quality Gate 失败的条件
2.创建New Code 的Quality Gate 失败的条件
3.为配置的Quality Gate 绑定项目
4.将SonarQube的Pipelines 集成PR
1.进入Devops界面,点击Repos 进入Branches,找到对应的分支右键编辑Branch Polices
2.配置Branch的Build Validation 和 Status Checks的策略
3.Build Validation 的配置选择调用SonarQube的Pipelines,选择Policy requirement为:Required,并点击Save按钮
4.Status Checks 的配置选择调用SonarQube的Pipelines的quality gate,选择Policy requirement为:Required,并点击Save按钮
5.两个策略配置完成
5.创建一个PR
1.选择Pull Requests 点击New pull request
2.配置的Branch 策略在main分支,创建PR,从testing分支推代码到main分支
- 创建完PR可以看到PR的流程正在运行分支配置的两个策略。
- PR执行SonarQube 扫描失败的结果
- PR界面的结果,可以看到是因为SonarQube的Quality Gate 的返回结果为False.
- 本次PR SonarQube页面的检测结果
3.Issues界面可以看到具体的扫描到问题的原因
- PR执行SonarQube 扫描成功的结果
1. Devops PR成功的结果
2.SonarQube 扫描成功的结果