버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

이 문서는 SonarQube에서 제공하는 AI 기능에 대한 소개 및 설정에 대한 문서입니다.


목차

...


SonarQube AI 기능 개요

정보

AI 기능은 상용 버전(Developer, Enterprise, Data Center Edition)에서 사용 가능합니다.

...

  • AI CodeFix: AI가 코드 스멜(Code Smells), 버그(Bugs), 보안 취약점(Vulnerabilities)에 대한 자동 수정안을 제안
  • Autodetect AI-generated Code: GitHub Copilot과 같은 AI 기반 코드 생성 도구를 사용하여 생성된 코드를 자동 감지
  • AI Code Assurance: AI 코드에 대한 품질 게이트(Quality Gate)를 적용하여 품질 검증

...


AI-기반 코드 수정 제안(AI CodeFix)

정보

AI CodeFix 기능은 모든 상용 버전에서 사용 가능하며  Early Access 기간 동안 무료로 체험 가능합니다.

...

  1. 프로젝트에서 이슈 검색 후 세부 정보 페이지로 이동합니다.
  2. Where is the issue? 혹은 AI CodeFix 탭에서 Generate AI Fix를 클릭합니다.
    • Where is the issue?탭
    • AI CodeFix 탭
  3. AI CodeFix가 생성되고 AI CodeFix탭에서 diff 뷰가 표시됩니다.
  4. IDE에 SonarQube 연결모드 가 설정된 경우 View fix in IDE를 선택하여 IDE에서 diff 뷰를 확인할 수 있습니다.

    - IDE에서 표시되는 diff 뷰 예시(Visual Studio Code)

...



AI 생성 코드 자동 감지(Autodetect AI-generated code)

GitHub Copilot을 사용하여 생성된 GitHub의 프로젝트의 코드를 자동 감지하는 기능입니다.

...

펼치기
titleSonarQube Server의 글로벌 설정에 GitHub 앱 추가 방법

1. SonarQube에서 dministration > DevOps Platform Integrations > GitHub로 이동합니다.

2. Create configuration을 클릭합니다.


3. 다음과 같이 구성 정보를 추가합니다.

필드설명
Configuration name

GitHub 구성을 식별할 수 있는 이름을 입력합니다


GitHub API URL

GitHub API의 URL을 입력합니다.
예: GitHub Enterprise – https://github.company.com/api/v3

GitHub App IDGitHub에서 생성한 GitHub App의 App ID를 입력합니다.
(GitHub의 Settings > Developer Settings > GitHub Apps에서 확인 가능)
Client IDGitHub App 페이지에서 확인할 수 있는 클라이언트 ID(Client ID) 를 입력합니다.
(GitHub의 Settings > Developer Settings > GitHub Apps에서 확인 가능)
Client SecretGitHub App 페이지에서 확인할 수 있는 클라이언트 시크릿(Client Secret) 을 입력합니다.
관리자가 암호화 가능 (Encrypting sensitive settings 참고)
Private KeyGitHub App의 프라이빗 키(Private Key) 를 PEM 형식으로 입력합니다.
GitHub App 페이지의 Private keys 섹션에서 .pem 파일을 생성한 후, 해당 파일의 내용을 복사하여 입력합니다.
관리자가 암호화 가능 (Encrypting sensitive settings 참고)
Webhook Secret

GitHub App에서 설정한 Webhook 시크릿 값을 입력합니다.

(GitHub에서 보안 이슈(Code Scanning Alerts)를 활성화하는 경우에만 필요)


4. Save Configuration을 클릭하여 추가한 구성 정보를 저장합니다.

...

자동 감지된 코드가 포함된 프로젝트는 프로젝트의 개요 및 프로젝트 정보 페이지에 *AI code detected 상태를 표시합니다.


AI 코드 품질 보증(AI Code Assurance)

AI로 생성된 코드의 보안성과 품질을 보장하기 위해 AI 코드에 대한 품질게이트를 설정하고 관리할 수 있는 기능을 제공합니다.

프로젝트에 AI 코드 레이블 지정

프로젝트 설정에서 'AI로 생성된 코드 포함(Contains AI-generated code)' 옵션을 활성화하여 해당 프로젝트가 AI 코드로 구성되어 있음을 표시할 수 있습니다.

...

펼치기
title 'AI로 생성된 코드 포함(Contains AI-generated code)' 활성화 설정
  1. SonarQube 프로젝트에서 Project Settings > AI-Generated Code로 이동합니다.
  2. Contains AI-Generated Code를 활성화합니다.
  3. Overview 페이지에서 $contains-ai-code 레이블을 확인할 수 있습니다.


AI 코드 보증을 위한 품질 게이트 적용

AI 코드가 포함된 프로젝트에는 AI 코드 보증을 위한 품질 게이트를 적용할 수 있습니다.

...

펼치기
  1. Quality Gates 에서 내장된 Sonar way for AI Code을 선택합니다.
  2. 오른쪽 메뉴 에서 Copy를 클릭한 후, 이름을 입력하여 새로운 AI코드를 위한 품질게이트를 생성합니다.
  3. 생성된 품질 게이트 Confditions 아래에 Unlock editing을 통해 조건을 추가하거나 변경합니다.
  4. 오른쪽 메뉴에서 Quality for AI Code Assurance를 클릭하여 AI 코드 검증 품질 게이트로 지정합니다.

내부 AI 코드 보증 배지

 AI 코드 보증을 위한 품질 게이트 설정 완료 후, 분석을 실행하면 프로젝트 Overview 및 프로젝트 정보 페이지에는 AI 코드 보증 상태를 나타내는 배지가 표시됩니다.

...

  • $in-shield-success AI Code Assurance passed (AI 코드 보증 통과) : 프로젝트가 AI 코드 보증을 위한 품질 게이트를 통과했음을 나타냅니다.
  • $in-shield-error AI Code Assurance failed (AI 코드 보증 실패) : 프로젝트가 AI 코드 보증을 위한 품질 게이트를 통과하지 못했음을 나타냅니다.
  • $인쉴드온AI Code Assurance is on (AI 코드 보증 활성화됨) : 프로젝트에 AI 코드 보증을 위한 품질 게이트가 적용되었지만, 아직 상태가 계산되지 않았음을 나타냅니다.
  • $in-shield-off/비활성화됨 AI Code Assurance is off (AI 코드 보증 비활성화됨) : 프로젝트에 AI 코드 보증이 적용되지 않았음을 나타냅니다.

외부 AI 코드 보증 배지

프로젝트가 AI 코드 보증 기준을 충족하면, 외부 웹사이트에 표시할 수 있는 AI 코드 보증 배지를 발행할 수 있습니다.

...