페이지 트리

이 문서는 SonarQube Pull-request Decoration (Gitlab Integration) 가이드를 공유하기 위해 작성되었다.


도구명Sonarqube Enterprise, Gitlab ee
버전

Sonarqube: 8.9.8

Gitlab: 15.0.0

비고




ALM Integrations

Gitlab Access Token

Gitlab 로그인 후 상단의 Profile → Edit Profile → Access Token 선택

  • Token Name , 만료 일자, api 선택 후 저장


  • 저장 후 Access Token값 복사

Sonarqube 설정하기

  • Administration → Configuration → ALM Integrations → GitLab → Create configuration 선택 (Developer 버전일 경우: DevOps Platform Integrations)


  • 해당하는 값들 입력 후 저장
    Configuration Name: 
    Gitlab API URL:      http://gitlab주소/api/v4
    Personal Access Token: Gitlab Access Token 값


  • 완료 화면



Project 에 반영하기

Sonarqube Project Setting

  • Gitlab: 반영하고자 하는 Project 선택 후 Project ID 값 복사


  • Sonarqube:Project 선택 → Project Settings → Pull Request Decoration: Gitlab 선택 후 해당 하는 값들 입력 후 저장

Gitlab-ci.yml 파일

Merge Request 전 gitlab-ci.yml 파일에 해당 스테이지에 구문 추가

# Merge_request만 요구할 경우
  only:
    - merge_requests  
# 여러개
  only:
    - merge_requests
    - master
    - branch_name


Sonarqube 8.3 이상에서는 gitlab-ci.yml 파일에 only이나 Rule구문을 넣으면 Pull Request로 간주

Sonarqube 8.3 이전버전에는 

  • sonar.pullrequest.base
  • sonar.pullrequest.key
  • sonar.pullrequest.branch

해당 부분 추가 필요(참조-Sonarqube Docs-Pull Request Analysis)

Sonarqube에서 Merge Request 확인

  • Project 선택 Project Settings→ Branches & Pull Requests → Pull Requests 

Gitlab에서 Sonarqube Merge Request 결과 확인

  • Sonarqube Project에서 해당 Pull Request 선택 후 'See the PR' 선택


  • Gitlab 페이지가 열리면서 Comment에서 Sonarqube 결과값을 확인 할 수 있다



Sonarqube-Master Issue

  • Master에서 가지고 있던 기존 Issue를 Branch에서 Issue Status 변경 후 Merge Request 시 해당 Issue Status 반영되지 않음
  • Branch에서 신규로 생성된 Issue를 Issue Status 변경 후 Merge Request 시 해당 Issue Status 반영됨


Gitlab Default Branch Name 변경 방법

Meun → Admin → Settings → Repository → Default branch → Expand 기존: main 해당 부분 변경

참조

공식문서


  • 레이블 없음