목표 : github CI에 AI SAST 도구인 CodeRabbit을 통합하여 취약점을 관리하도록 함. SonarCloud와는 다르게 Pull Request만 리뷰 가능함. (2주 무료)

CodeRabbit 설정

1. https://www.coderabbit.ai/

2. Get a free trial

3. Login with GitHub

4. Add Repositories

5. repo Settting에서 Review Language 변경

GitHub 설정

6. repo 루트에 .coderabbit.yaml 생성

language: "ko-KR"
early_access: false
reviews:
  profile: "chill"
  request_changes_workflow: false
  high_level_summary: true
  poem: true
  review_status: true
  collapse_walkthrough: false
  auto_review:
    enabled: true
    drafts: false
chat:
  auto_reply: true

7. 코드 수정 후 Pull Request

8. 리뷰 참조 : https://github.com/codetronik/aabbcc/pull/3

'devSecOps' 카테고리의 다른 글

[GitHub] SonarCloud 통합  (0) 2025.04.07
[GitHub] 기본 CI 구축  (0) 2025.04.07

목표 : github CI에 SAST 도구인 SonarCloud을 통합하여 취약점을 관리하도록 함

SonarCloud 설정

1. https://sonarcloud.io/

2. GitHub / Birbucket / GitLab 등을 선택할 수 있다. GitHub 선택

3. Import an organization 선택 

4. 적용을 원하는 repo 선택 후 Install & Authorize

5. 키와 Organization 키 설정 후, 요금 플랜 선택 후 Create Organization 선택

6. 분석을 원하는 repo 선택 후 Set Up 선택

7. 새 코드 범위 설정 후 Create project 선택

Previous Version : 커밋 후 변경된 모든 코드를 새코드로 간주

Number of days : 지난 x일 동안 변경된 모든 코드는 새코드로 간주

8. Information에서 Project Key와 Organization Key 확인

이 키는 GitHub가 SonarCloud에 접근할 때 사용 됨

9. Administration -> Analysis Method -> Automatic Analysis 해제

9. My Account -> Security -> 토큰 이름 지정 후 Generate Token 선택

이 토큰은 GitHub가 SonarCloud에 접근할 때 사용 됨

GitHub 설정 (예제가 궁금하다면 https://github.com/codetronik/KeyStoreExample 참조)

1. Settings -> Secrets and variables -> Actions -> New repository secret  선택

Name엔 SONAR_TOKEN, Secret엔 9번에서 생성한 토큰 입력

2. build.gradle.kts 수정

plugins {
	alias(libs.plugins.android.application) apply false
	alias(libs.plugins.kotlin.android) apply false
	id("org.sonarqube") version "4.4.1.3373" // 추가!!
}

3. yml 수정

name: Android Build with SonarCloud

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    name: Build Debug APK & Analyze with SonarCloud
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Set up JDK 17
      uses: actions/setup-java@v4
      with:
        distribution: 'temurin'
        java-version: '17'
        cache: gradle

    - name: Set up Android SDK
      uses: android-actions/setup-android@v3

    - name: Grant execute permission for Gradle
      run: chmod +x ./gradlew

    - name: Run SonarCloud analysis
      env:
        SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
      run: |
        ./gradlew sonar \
          -Dsonar.projectKey=8번에서 확인한 키 \
          -Dsonar.organization=8번에서 확인한 키 \
          -Dsonar.host.url=https://sonarcloud.io \
          -Dsonar.login=${SONAR_TOKEN}
          
    - name: Build Debug APK
      run: ./gradlew assembleDebug

    - name: Upload Debug APK
      uses: actions/upload-artifact@v4
      with:
        name: debug-apk
        path: app/build/outputs/apk/debug/app-debug.apk

4. 빌드 완료 후, 분석 결과를 SonarCloud  에서 확인 가능

시큐리티 failed 발생

내용을 확인하면, 자격 증명(pin / 패턴 등) 없이 키스토어에 접근이 가능하다고 함.

'devSecOps' 카테고리의 다른 글

[GitHub] CodeRabbit 통합  (0) 2025.04.07
[GitHub] 기본 CI 구축  (0) 2025.04.07

목표 : 기존 github repo에 CI 구축

1. repo에서 Actions 선택

2. CI설정이 안되어 있다면, Suggested for this repository가 보일 것이다. Simple workflow -> Configure 선택

3. 기존 내용은 지우고, 아래와 같이 입력

name: Android Build (Debug APK)

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    name: Build Debug APK
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Set up JDK 17
      uses: actions/setup-java@v4
      with:
        distribution: 'temurin'
        java-version: '17'
        cache: gradle

    - name: Set up Android SDK
      uses: android-actions/setup-android@v3

    - name: Grant execute permission for Gradle
      run: chmod +x ./gradlew

    - name: Build Debug APK
      run: ./gradlew assembleDebug

    - name: Upload Debug APK
      uses: actions/upload-artifact@v4
      with:
        name: debug-apk
        path: app/build/outputs/apk/debug/app-debug.apk

4. 빌드가 진행되는 것을 확인할 수 있다.

'devSecOps' 카테고리의 다른 글

[GitHub] CodeRabbit 통합  (0) 2025.04.07
[GitHub] SonarCloud 통합  (0) 2025.04.07

+ Recent posts