SonarQube社区版分支插件V1.3.0更新
Posted mascot1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SonarQube社区版分支插件V1.3.0更新相关的知识,希望对你有一定的参考价值。
嘿,大家好。是否还记得在代码质量平台集成的时候,想要把报告信息附加到合并请求中呢?当时一顿操作可惜翻车了,因为插件已经不支持7以上版本了。了解到有一个更好的插件能够实现多分支展示和Pull request集成,一起看下吧!
插件安装
插件地址: https://github.com/mc1arke/sonarqube-community-branch-plugin/releases
多分支模式
谈到多分支,其实社区版本仅支持一个分支,也就让我们能够对master分支进行扫描。有了这个分支插件,可以实现对多分支的扫描。每个分支对应相关的质量报告。还是很方便的。以前没有这个插件的时候,每个分支创建了一个项目,非常难以管理哇。先来说下多分支这插件的用法。
非常简单扫描的时候添加-Dsonar.branch.name
指定当前的分支即可。如下基于GitLabCI的集成展示片段。
.codeanalysis-java:
stage: code_analysis
tags:
- build
script:
- echo $CI_MERGE_REQUEST_IID $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
- "$SCANNER_HOME/bin/sonar-scanner -Dsonar.projectKey=${CI_PROJECT_NAME}
-Dsonar.projectName=${CI_PROJECT_NAME}
-Dsonar.projectVersion=${CI_COMMIT_REF_NAME}
-Dsonar.ws.timeout=30
-Dsonar.projectDescription=${CI_PROJECT_TITLE}
-Dsonar.links.homepage=${CI_PROJECT_URL}
-Dsonar.sources=${SCAN_DIR}
-Dsonar.sourceEncoding=UTF-8
-Dsonar.java.binaries=target/classes
-Dsonar.java.test.binaries=target/test-classes
-Dsonar.java.surefire.report=target/surefire-reports
-Dsonar.branch.name=${CI_COMMIT_REF_NAME}"
artifacts:
paths:
- "$ARTIFACT_PATH"
Pull Request集成
每次代码合并的时候都需要进行codereview,我们如果能把合并原分支的代码质量信息添加到合并请求中展示,这会很方便。
我们需要在Sonar配置集成信息。我试过了在配置文件中定义这些配置是不管用的,可能因为版本问题吧。那我们需要登录UI系统设置 -> pull request -> provider=GitlabServer -> 找到gitlab集成填写token和serverurl。
sonar.pullrequest.provider=GitlabServer
com.github.mc1arke.sonarqube.plugin.branch.pullrequest.gitlab.token=b8Gs1quX5GSeHwyuMWyY
com.github.mc1arke.sonarqube.plugin.branch.pullrequest.gitlab.url=http://192.168.1.200:30088
?
如果你想用接口直接该配置,下面的命令可以享受一下。
curl -u “ $ SONAR_API_TOKEN ” -X POST “ http://sonarqube.example.com/api/settings/set?key=sonar.pullrequest.provider&value=GitlabServer ”
curl -u “ $ SONAR_API_TOKEN ” -X POST “ http: //sonarqube.example.com/api/settings/set?key=com.github.mc1arke.sonarqube.plugin.branch.pullrequest.gitlab.url&value=http://gitlab.example.com “
curl -u ” $ SONAR_API_TOKEN “ -X POST ” http://sonarqube.example.com/api/settings/set?key=com.github.mc1arke.sonarqube.plugin.branch.pullrequest.gitlab.token&value= $ GITLAB_TOKEN “-
接下来我们在GitLabCI中添加扫描参数。
?
"$SCANNER_HOME/bin/sonar-scanner -Dsonar.projectKey=${CI_PROJECT_NAME}
-Dsonar.projectName=${CI_PROJECT_NAME}
-Dsonar.projectVersion=${CI_COMMIT_REF_NAME}
-Dsonar.ws.timeout=30
-Dsonar.projectDescription=${CI_PROJECT_TITLE}
-Dsonar.links.homepage=${CI_PROJECT_URL}
-Dsonar.sources=${SCAN_DIR}
-Dsonar.sourceEncoding=UTF-8
-Dsonar.java.binaries=target/classes
-Dsonar.java.test.binaries=target/test-classes
-Dsonar.java.surefire.report=target/surefire-reports
-Dsonar.pullrequest.key=${CI_MERGE_REQUEST_IID} 必填
-Dsonar.pullrequest.branch=${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} 必填
-Dsonar.pullrequest.base=${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} 必填
-Dsonar.gitlab.ref_name=${CI_COMMIT_REF_NAME}
-Dsonar.gitlab.commit_sha=${CI_COMMIT_SHA}
-Dsonar.gitlab.project_id=${CI_PROJECT_PATH}
-Dsonar.pullrequest.gitlab.repositorySlug=$CI_PROJECT_ID "
?
#-Dsonar.branch.name=${CI_COMMIT_REF_NAME} -X " 必须去掉
?
?
配置只有MR时运行此作业。
only:
- merge_requests
最终效果
以上是关于SonarQube社区版分支插件V1.3.0更新的主要内容,如果未能解决你的问题,请参考以下文章
云原生动态周报 | Volcano社区正式发布v1.3.0版本