Repository X-Ray

Tier: Premium 또는 Ultimate with GitLab Duo Pro Offering: GitLab.com, Self-Managed

Repository X-Ray은 GitLab Duo Code Suggestions를 향상시켜 코드 권장 사항의 정확도와 관련성을 높이기 위해 추가적인 컨텍스트를 제공합니다.

Repository X-Ray는 프로젝트의 코드베이스와 의존성에 대한 더 많은 통찰력을 제공하여 더 나은 코드 제안을 생성하기 위해 코드 어시스턴트에게 도움을 줍니다. 이를 위해 Gemfile.lock, package.json, go.mod와 같은 주요 프로젝트 구성 파일을 분석하여 추가적인 컨텍스트를 구축합니다.

Repository X-Ray는 사용 중인 프레임워크, 라이브러리 및 기타 의존성을 이해하여 코드 어시스턴트가 프로젝트에서 사용된 코딩 패턴, 스타일 및 기술과 일치하는 제안을 제공하는 데 도움을 줍니다. 이로 인해 해당 스택에 대한 더 매끄럽게 통합되며 해당 스택의 모범 관행를 따르는 코드 권장 사항이 결정됩니다.

지원되는 언어 및 패키지 관리자

언어 패키지 관리자 구성 파일
Go Go Modules go.mod
JavaScript NPM, Yarn package.json
Ruby RubyGems Gemfile.lock
Python Poetry pyproject.toml
Python Pip requirements.txt
Python Conda environment.yml
PHP Composer composer.json
Java Maven pom.xml
Java Gradle build.gradle
Kotlin Gradle build.gradle.kts
C# NuGet *.csproj
C/C++ Conan conanfile.txt
C/C++ Conan conanfile.py
C/C++ vcpkg vcpkg.json

Repository X-Ray 활성화

전제 조건:

  • 프로젝트에서 GitLab Duo Code Suggestions에 액세스해야 합니다.
  • 프로젝트에 대한 GitLab Runner를 설정하고 활성화해야 합니다. 왜냐하면 Repository X-Ray는 GitLab Runner를 사용하여 분석 파이프라인을 실행합니다.

Repository X-Ray를 활성화하려면 프로젝트의 .gitlab-ci.yml에 다음 정의 작업을 추가하세요.

xray:
  stage: build
  image: registry.gitlab.com/gitlab-org/code-creation/repository-x-ray:latest
  allow_failure: true
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
  variables:
    OUTPUT_DIR: reports
  script:
    - x-ray-scan -p "$CI_PROJECT_DIR" -o "$OUTPUT_DIR"
  artifacts:
    reports:
      repository_xray: "$OUTPUT_DIR/*/*.json"
  • $OUTPUT_DIR 환경 변수는 다음을 정의합니다:
    • 보고서를 위한 출력 디렉터리
    • 아티팩트가 업로드된 경로
  • 추가된 규칙은 작업을 기본 브랜치에만 제한합니다. 이처럼 작업을 제한함으로써 개발 변경 사항이 제품 코드 제안에 영향을 미치지 않도록 합니다.

최초의 x-ray 작업이 완료되고 리포지터리 분석 보고서를 업로드한 후 추가 조치가 필요하지 않습니다. Repository X-Ray는 그 이후부터 모든 코드 생성 요청을 자동으로 향상합니다.

프로젝트의 X-Ray 데이터는 xray 작업을 포함하는 CI/CD 파이프라인이 실행될 때마다 업데이트됩니다. 파이프라인 구성 및 트리거에 대해 자세히 알아보려면 파이프라인 문서를 참조하세요.