در حال حاضر به نظر میرسد بهترین روش برای تجمیع sonarqube و gitlab، استفاده از پلاگین GitLab است. این پلاگین به راحتی از قسمت marketplace در sonarqube قابل نصب است. پس از نصب، یک قسمت جدید به نام GitLab به sonarqube شما اضافه میشود و از آن طریق میتوانید تنظیمات دلخواهتان را انجام دهید.
با استفاده از این پلاگین، نتایج آنالیز، در gitlab و در ذیل هر کامیت یا merge request قابل مشاهده خواهد بود. هر issue جدیدی که به وجود آمده باشد، به صورت کامنت در داخل کد مشخص خواهد شد (در صورتی در تنظیمات، این عمل را غیرفعال نکرده باشید).
پس از نصب پلاگین، برای مشاهدهی نتایج آنالیز در gitlab کافیست مراحل زیر را طی کنید:
-
در sonarqube و در قسمت Administration-->Configuration-->GitLab، مقدار GitLab url باید برابر با آدرس سرور GitLab خودتان قرار داده شود.
-
لازم است یک کاربر به پلاگین معرفی شود تا از طریق و از طرف آن کاربر بتواند در GitLab نتایج تحلیلها را به صورت کامنت درج کند. سپس در gitlab از قسمت Setting پروفایل کاربر، باید یک Access Token ایجاد کرده و مقدار آن را در sonarqube و در متغیر Gitlab User Token کپی کرد.
-
در صورتی که از gitlab-ci استفاده میکنید، job زیر را به فایل gitlab-ci.yml. اضافه کنید:
sonarqube_job:
stage: test
script:
- mvn $MAVEN_CLI_OPTS verify sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.analysis.mode=preview -Dsonar.gitlab.project_id=$CI_PROJECT_ID -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-
اگر مقدار Dsonar.analysis.mode- برابر با preview باشد، نتایج آنالیز در gitlab قابل مشاهده خواهد بود. در صورتی که میخواهید نتایج آنالیز را sonarqube هم بتوانید مشاهده کنید، یک job دیگر مشابه با sonarqube_job و با حذف Dsonar.analysis.mode-، به فایل gitlab-ci.yml. اضافه کنید.