Page History
RabbitAI의 코드리뷰 기능과 SonarQube의 정적분석기능을 함께 이용해 CI ~ CD 단계의 일부에 활용하는 변종 Flow를 알아보겠습니다.
코드 컨벤션,룰셋등 조정없이 순정인 상태로만 이용을 하였습니다.
소개되는 FLOW
- Rabbit AI는 트라이얼버전으로 SonarQube는 커뮤니티설치버전을 이용하였습니다.
머지 요청하기전 Local 검증
- AI및 SonarQube에게 잔소리 듣는것을 최소화 하려면~ 로컬 검증수준을 타이트하게
머지요청
- RabbitAI를 Github에 먼저 연동된상태에서 다음과 같은 SonarQube를 GithubAction에 연동하는 코드를 리뷰 받는시나리오
- AI가 리뷰를 완료하기까지 약 1~3분정도 소요 ( 무료 트라이얼 버전 )로 반나절이 걸릴수 있는 여정을 단축해줍니다.
- Sonar Qube의 Github Action을 Rabbit AI가 다이어그램으로 그려주면서 까지 AI리뷰를 나이스하게 해줍니다.
- 리뷰할때 코드만으로 설명을 하기어려울때~ 보통 다이어그램을 열심히 그려, 리뷰를 할때 첨부하기도 하는데~ 그러한 번거러움없이 AI리뷰자가 분석하면서 그려줍니다. 이 부분이 정적분석툴(Sonar)가 하지 못하는 가장 나이스한 부분인듯
SonarQube분석을 빌드 Action타이밍에 작동시키는 기본 스크립트
| Code Block | ||
|---|---|---|
| ||
name: Build
on:
push:
branches:
- main
jobs:
build:
name: Build and analyze
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'zulu' # Alternative distribution options are available.
- name: Cache SonarQube packages
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache Gradle packages
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Build and analyze
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
run: cd ./KotlinBootReactiveLabs && chmod +x ./gradlew && ./gradlew build sonar --info -x test |
머지요청 ~ 리뷰 ~ 빌드분석 까지 여정을 대시보드를 통해 확인및 측정을 할수 있습니다.
“측정하지 못하면 관리할 수 없고, 관리할 수 없으면 개선할 수 없다”CoderRabbit AI PR 대시보드
- AI와 리뷰놀이의 결과~ 흥미가 떨어지면 풀리퀘스트가아닌 Master로 바로 머지를 할꺼같기도 합니다. 리뷰능력이 어디까지인가? 실험을 하기까지 이용예정입니다.
SonarQube의 정적 분석툴 대시보드
- AI PR이후~ 정적코드 잔소리꾼인 Sonar의 분석능력 리포트도 함께 볼수 있습니다.
셀프로 연구중인 코드에서 오버 엔지니어인것처럼 보일수 있지만 한명의 AI 협력자를 두어 외롭지않은 개발을 할수 있는것 자체로도 유용할것같으며
아는만큼 적용한다고 팀프로젝트에도 도입하면 유용할것으로 보여집니다.
이상 코프링 Reactive Labs(Akka)을 연구하는도중 AI협력자를 셋업한 변종 실험이였습니다. 코프링 Reactive Labs에서




