이 문서는 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 해당 부분 변경
참조
공식문서