Repository X-Ray

Tier: 프리미엄, 얼티메이트 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 파이프라인이 실행될 때마다 업데이트됩니다. 파이프라인 구성 및 트리거에 대해 자세히 알아보려면 파이프라인 문서를 참조하세요.