SonarQube代碼掃描與代碼基線(xiàn)關(guān)聯(lián)
代碼掃描
先安裝好SonarQube服務(wù)器, 然后安裝Sonar-scanner進(jìn)行掃描。
scanner下載鏈接:https://docs.sonarqube.org/7.9/analysis/scan/sonarscanner/
- sonar-scanner \
- -Dsonar.projectKey=microservicecicd-demo-service \
- -Dsonar.projectName=microservicecicd-demo-service \
- -Dsonar.projectVersion=1.1.1 \
- -Dsonar.ws.timeout=30 \
- -Dsonar.projectDescription="xxxxxxx" \
- -Dsonar.links.homepage=http://www.baidu.com \
- -Dsonar.sources=src \
- -Dsonar.sourceEncoding=UTF-8 \
- -Dsonar.java.binaries=target/classes \
- -Dsonar.java.test.binaries=target/test-classes \
- -Dsonar.java.surefire.report=target/surefire-reports \
- -Dsonar.host.url="http://sonar.idevops.site" \
- -Dsonar.login=7c7b5f890dcb3c0ddf6d187fe47a8482f3430c74 \
效果

掃描結(jié)果關(guān)聯(lián)Git Commit
提前裝好插件
下載:https://github.com/gabrie-allaigre/sonar-gitlab-plugin/tree/4.1.0-SNAPSHOT .
然后將下載后的jar包放到SonarQube插件目錄中, 賦予可執(zhí)行權(quán)限。然后重啟SonarQube。
插件的說(shuō)明文檔查看該插件的Readme文檔。-Dsonar.gitlab.failure_notification_mode值為commit-status表示更改提交狀態(tài), 值為nothing不做任何動(dòng)作。
在上面掃描參數(shù)的基礎(chǔ)上添加以下參數(shù):
- -Dsonar.gitlab.commit_sha=d0f7c74a058df8e935f1e247a68ac23d7d864295 \
- -Dsonar.gitlab.ref_name=master \
- -Dsonar.gitlab.project_id=39 \
- -Dsonar.dynamicAnalysis=reuseReports \
- -Dsonar.gitlab.failure_notification_mode=commit-status \
- -Dsonar.gitlab.url=http://gitlab.idevops.site \
- -Dsonar.gitlab.user_token=ABtkz-f_zkyRXAMeBZSc \
- -Dsonar.gitlab.api_version=v4
- commit_sha : gitlab項(xiàng)目提交ID
- ref_name:gitlab項(xiàng)目分支
- project_id:gitlab項(xiàng)目的ID
- dynamicAnalysis:固定值reuseReports
效果

修改gitcommit的狀態(tài)有什么作用?其實(shí)這個(gè)插件是直接修改COMMITID對(duì)應(yīng)的pipeline狀態(tài)。更新為失敗或者成功。這樣就可以基于流水線(xiàn)的狀態(tài)來(lái)控制MR請(qǐng)求的合并操作。gitlab MR具有一個(gè)選項(xiàng)控制,即當(dāng)流水線(xiàn)成功后才可以合并代碼。此就是更改提交ID狀態(tài)的最大作用。
