InfoGrab Docs

Code Suggestions와 함께 사용하는 Repository X-Ray

요약

Repository X-Ray는 자동으로 다음을 보강합니다: 이를 위해 Repository X-Ray는 다음을 통해 코드 어시스턴트에 프로젝트의 코드베이스와 의존성에 대한 더 많은 인사이트를 제공합니다: 사용 중인 라이브러리 및 기타 의존성을 이해함으로써 Repository X-Ray는 코드 어시스턴트가 프로젝트에서 사용되는 코딩 패턴, 스타일 및 기술에 맞게 제안을 맞춤화할 수 있도록 돕습니다.

히스토리
  • GitLab 16.7에서 도입되었습니다.
  • GitLab 17.6 이상에서 GitLab Duo 애드온이 필요하도록 변경되었습니다.

Repository X-Ray는 자동으로 다음을 보강합니다:

이를 위해 Repository X-Ray는 다음을 통해 코드 어시스턴트에 프로젝트의 코드베이스와 의존성에 대한 더 많은 인사이트를 제공합니다:

  • 의존성 관리자 구성 파일(예: Gemfile.lock, package.json, go.mod) 검색.
  • 해당 파일 내용에서 라이브러리 목록 추출.
  • 추출된 목록을 코드 생성, 코드 리팩토링, 코드 수정, 테스트 작성 요청에서 GitLab Duo Code Suggestions에서 사용할 추가 컨텍스트로 제공.

사용 중인 라이브러리 및 기타 의존성을 이해함으로써 Repository X-Ray는 코드 어시스턴트가 프로젝트에서 사용되는 코딩 패턴, 스타일 및 기술에 맞게 제안을 맞춤화할 수 있도록 돕습니다. 이를 통해 더 원활하게 통합되고 주어진 스택의 모범 사례를 따르는 코드 제안이 생성됩니다.

Note

Repository X-Ray는 코드 완성 요청이 아닌 코드 생성 요청만 향상시킵니다.

Repository X-Ray 작동 방식#

히스토리
  • 최대 라이브러리 수가 GitLab 17.6에서 도입되었습니다.

프로젝트의 기본 브랜치에 새 커밋을 push하면 Repository X-Ray가 백그라운드 job을 트리거합니다. 이 job은 저장소에서 해당 구성 파일을 스캔하고 파싱합니다.

일반적으로 각 프로젝트에서 한 번에 하나의 스캔 job만 실행됩니다. 스캔이 이미 진행 중인 동안 두 번째 스캔이 트리거되면 두 번째 스캔은 첫 번째 스캔이 완료될 때까지 기다린 후 실행됩니다. 이로 인해 최신 구성 파일 데이터가 파싱되어 데이터베이스에 업데이트되기 전에 약간의 지연이 발생할 수 있습니다.

코드 생성 요청이 이루어지면 파싱된 데이터에서 최대 300개의 라이브러리가 추가 컨텍스트로 프롬프트에 포함됩니다.

Repository X-Ray 활성화#

히스토리
  • GitLab 17.4에서 ai_enable_internal_repository_xray_service라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 17.6에서 일반적으로 사용 가능해졌습니다. 기능 플래그 ai_enable_internal_repository_xray_service가 제거되었습니다.

프로젝트가 GitLab Duo Code Suggestions에 접근할 수 있는 경우 Repository X-Ray 서비스가 자동으로 활성화됩니다.

지원되는 언어 및 의존성 관리자#

Repository X-Ray는 저장소 루트에서 최대 두 디렉토리 수준을 검색합니다. 예를 들어 Gemfile.lock, api/Gemfile.lock, 또는 api/client/Gemfile.lock을 지원하지만 api/v1/client/Gemfile.lock은 지원하지 않습니다. 각 언어에 대해 첫 번째로 일치하는 의존성 관리자만 처리됩니다. 사용 가능한 경우 잠금 파일이 비잠금 파일보다 우선합니다.

언어 의존성 관리자 구성 파일 GitLab 버전
C/C++ Conan conanfile.py 17.5 이상
C/C++ Conan conanfile.txt 17.5 이상
C/C++ vcpkg vcpkg.json 17.5 이상
C# NuGet *.csproj 17.5 이상
Go Go Modules go.mod 17.4 이상
Java Gradle build.gradle 17.4 이상
Java Maven pom.xml 17.4 이상
JavaScript NPM package-lock.json, package.json 17.5 이상
Kotlin Gradle build.gradle.kts 17.5 이상
PHP Composer composer.lock, composer.json 17.5 이상
Python Conda environment.yml 17.5 이상
Python Pip *requirements*.txt 1 17.5 이상
Python Poetry poetry.lock, pyproject.toml 17.5 이상
Ruby RubyGems Gemfile.lock 17.4 이상

각주:

  1. Python Pip의 경우 *requirements*.txt glob 패턴과 일치하는 모든 구성 파일이 처리됩니다.

Code Suggestions와 함께 사용하는 Repository X-Ray

Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

Repository X-Ray는 자동으로 다음을 보강합니다: 이를 위해 Repository X-Ray는 다음을 통해 코드 어시스턴트에 프로젝트의 코드베이스와 의존성에 대한 더 많은 인사이트를 제공합니다: 사용 중인 라이브러리 및 기타 의존성을 이해함으로써 Repository X-Ray는 코드 어시스턴트가 프로젝트에서 사용되는 코딩 패턴, 스타일 및 기술에 맞게 제안을 맞춤화할 수 있도록 돕습니다.

히스토리
  • GitLab 16.7에서 도입되었습니다.
  • GitLab 17.6 이상에서 GitLab Duo 애드온이 필요하도록 변경되었습니다.

Repository X-Ray는 자동으로 다음을 보강합니다:

이를 위해 Repository X-Ray는 다음을 통해 코드 어시스턴트에 프로젝트의 코드베이스와 의존성에 대한 더 많은 인사이트를 제공합니다:

  • 의존성 관리자 구성 파일(예: Gemfile.lock, package.json, go.mod) 검색.
  • 해당 파일 내용에서 라이브러리 목록 추출.
  • 추출된 목록을 코드 생성, 코드 리팩토링, 코드 수정, 테스트 작성 요청에서 GitLab Duo Code Suggestions에서 사용할 추가 컨텍스트로 제공.

사용 중인 라이브러리 및 기타 의존성을 이해함으로써 Repository X-Ray는 코드 어시스턴트가 프로젝트에서 사용되는 코딩 패턴, 스타일 및 기술에 맞게 제안을 맞춤화할 수 있도록 돕습니다. 이를 통해 더 원활하게 통합되고 주어진 스택의 모범 사례를 따르는 코드 제안이 생성됩니다.

Note

Repository X-Ray는 코드 완성 요청이 아닌 코드 생성 요청만 향상시킵니다.

Repository X-Ray 작동 방식#

히스토리
  • 최대 라이브러리 수가 GitLab 17.6에서 도입되었습니다.

프로젝트의 기본 브랜치에 새 커밋을 push하면 Repository X-Ray가 백그라운드 job을 트리거합니다. 이 job은 저장소에서 해당 구성 파일을 스캔하고 파싱합니다.

일반적으로 각 프로젝트에서 한 번에 하나의 스캔 job만 실행됩니다. 스캔이 이미 진행 중인 동안 두 번째 스캔이 트리거되면 두 번째 스캔은 첫 번째 스캔이 완료될 때까지 기다린 후 실행됩니다. 이로 인해 최신 구성 파일 데이터가 파싱되어 데이터베이스에 업데이트되기 전에 약간의 지연이 발생할 수 있습니다.

코드 생성 요청이 이루어지면 파싱된 데이터에서 최대 300개의 라이브러리가 추가 컨텍스트로 프롬프트에 포함됩니다.

Repository X-Ray 활성화#

히스토리
  • GitLab 17.4에서 ai_enable_internal_repository_xray_service라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 17.6에서 일반적으로 사용 가능해졌습니다. 기능 플래그 ai_enable_internal_repository_xray_service가 제거되었습니다.

프로젝트가 GitLab Duo Code Suggestions에 접근할 수 있는 경우 Repository X-Ray 서비스가 자동으로 활성화됩니다.

지원되는 언어 및 의존성 관리자#

Repository X-Ray는 저장소 루트에서 최대 두 디렉토리 수준을 검색합니다. 예를 들어 Gemfile.lock, api/Gemfile.lock, 또는 api/client/Gemfile.lock을 지원하지만 api/v1/client/Gemfile.lock은 지원하지 않습니다. 각 언어에 대해 첫 번째로 일치하는 의존성 관리자만 처리됩니다. 사용 가능한 경우 잠금 파일이 비잠금 파일보다 우선합니다.

언어 의존성 관리자 구성 파일 GitLab 버전
C/C++ Conan conanfile.py 17.5 이상
C/C++ Conan conanfile.txt 17.5 이상
C/C++ vcpkg vcpkg.json 17.5 이상
C# NuGet *.csproj 17.5 이상
Go Go Modules go.mod 17.4 이상
Java Gradle build.gradle 17.4 이상
Java Maven pom.xml 17.4 이상
JavaScript NPM package-lock.json, package.json 17.5 이상
Kotlin Gradle build.gradle.kts 17.5 이상
PHP Composer composer.lock, composer.json 17.5 이상
Python Conda environment.yml 17.5 이상
Python Pip *requirements*.txt 1 17.5 이상
Python Poetry poetry.lock, pyproject.toml 17.5 이상
Ruby RubyGems Gemfile.lock 17.4 이상

각주:

  1. Python Pip의 경우 *requirements*.txt glob 패턴과 일치하는 모든 구성 파일이 처리됩니다.