zl程序教程

您现在的位置是:首页 >  其他

当前栏目

SonarQube代码扫描与代码基线关联

2023-04-18 14:45:47 时间

 代码扫描

先安装好SonarQube服务器, 然后安装Sonar-scanner进行扫描。

scanner下载链接:https://docs.sonarqube.org/7.9/analysis/scan/sonarscanner/

  1. sonar-scanner  
  2. -Dsonar.projectKey=microservicecicd-demo-service  
  3. -Dsonar.projectName=microservicecicd-demo-service  
  4. -Dsonar.projectVersion=1.1.1  
  5. -Dsonar.ws.timeout=30  
  6. -Dsonar.projectDescription="xxxxxxx"  
  7. -Dsonar.links.homepage=http://www.baidu.com  
  8. -Dsonar.sources=src  
  9. -Dsonar.sourceEncoding=UTF-8  
  10. -Dsonar.java.binaries=target/classes  
  11. -Dsonar.java.test.binaries=target/test-classes  
  12. -Dsonar.java.surefire.report=target/surefire-reports  
  13. -Dsonar.host.url="http://sonar.idevops.site"  
  14. -Dsonar.login=7c7b5f890dcb3c0ddf6d187fe47a8482f3430c74  

效果


扫描结果关联Git Commit

提前装好插件

下载:https://github.com/gabrie-allaigre/sonar-gitlab-plugin/tree/4.1.0-SNAPSHOT .

然后将下载后的jar包放到SonarQube插件目录中, 赋予可执行权限。然后重启SonarQube。

插件的说明文档查看该插件的Readme文档。-Dsonar.gitlab.failure_notification_mode值为commit-status表示更改提交状态, 值为nothing不做任何动作。

在上面扫描参数的基础上添加以下参数:

  1. -Dsonar.gitlab.commit_sha=d0f7c74a058df8e935f1e247a68ac23d7d864295  
  2. -Dsonar.gitlab.ref_name=master  
  3. -Dsonar.gitlab.project_id=39  
  4. -Dsonar.dynamicAnalysis=reuseReports  
  5. -Dsonar.gitlab.failure_notification_mode=commit-status  
  6. -Dsonar.gitlab.url=http://gitlab.idevops.site  
  7. -Dsonar.gitlab.user_token=ABtkz-f_zkyRXAMeBZSc  
  8. -Dsonar.gitlab.api_version=v4 
  • commit_sha : gitlab项目提交ID
  • ref_name:gitlab项目分支
  • project_id:gitlab项目的ID
  • dynamicAnalysis:固定值reuseReports

效果


修改gitcommit的状态有什么作用?其实这个插件是直接修改COMMITID对应的pipeline状态。更新为失败或者成功。这样就可以基于流水线的状态来控制MR请求的合并操作。gitlab MR具有一个选项控制,即当流水线成功后才可以合并代码。此就是更改提交ID状态的最大作用。