gitlab合并分支_SonarQube社区版分支插件V1.3.0更新

729cc601874aaadc800b08984358ec0a.png

嘿,大家好。是否还记得在代码质量平台集成的时候,想要把报告信息附加到合并请求中呢?当时一顿操作可惜翻车了,因为插件已经不支持7以上版本了。了解到有一个更好的插件能够实现多分支展示和Pull request集成,一起看下吧!

插件安装

下载release插件,现在最新版本是1.3.0, 下载后将jar包放到extensions/plugins和lib/common目录中。注意如果使用的其他用户操作需要授权插件给sonarqube权限。此时重启即可。

多分支模式

谈到多分支,其实社区版本仅支持一个分支,也就让我们能够对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=GitlabServercom.github.mc1arke.sonarqube.plugin.branch.pullrequest.gitlab.token=b8Gs1quX5GSeHwyuMWyYcom.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

最终效果

3cc0ed043ff92918f40a05fe15ea96d2.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值