Repository X-Ray
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Repository X-Ray는 다음을 자동으로 보강합니다: 이를 위해 Repository X-Ray는 다음을 통해 코드 어시스턴트에게 프로젝트의 코드베이스 및 종속성에 대한 더 많은 인사이트를 제공합니다: 사용 중인 라이브러리 및 기타 종속성을 이해함으로써 Repository X-Ray는 코드 어시스턴트가 프로젝트에서 사용되는 코딩 패턴, 스타일 및 기술에 맞게 제안을 맞춤화하는 데 도움을 줍니다.
히스토리
- GitLab 16.7에서 도입.
Repository X-Ray는 다음을 자동으로 보강합니다:
- GitLab Duo 코드 제안의 코드 생성 요청: 코드 권장 사항의 정확도와 관련성을 개선하기 위해 프로젝트의 종속성에 대한 추가 컨텍스트를 제공합니다.
- 코드 리팩터링, 코드 수정 및 테스트 작성 요청.
이를 위해 Repository X-Ray는 다음을 통해 코드 어시스턴트에게 프로젝트의 코드베이스 및 종속성에 대한 더 많은 인사이트를 제공합니다:
- 종속성 관리자 구성 파일(예:
Gemfile.lock,package.json,go.mod) 검색. - 내용에서 라이브러리 목록 추출.
- 코드 생성, 코드 리팩터링, 코드 수정, 테스트 작성 요청에서 GitLab Duo 코드 제안이 사용할 추가 컨텍스트로 추출된 목록 제공.
사용 중인 라이브러리 및 기타 종속성을 이해함으로써 Repository X-Ray는 코드 어시스턴트가 프로젝트에서 사용되는 코딩 패턴, 스타일 및 기술에 맞게 제안을 맞춤화하는 데 도움을 줍니다. 이로 인해 더 원활하게 통합되고 특정 스택에 대한 모범 사례를 따르는 코드 제안이 생성됩니다.
Repository X-Ray는 코드 생성 요청만 향상시키며 코드 완성 요청은 향상시키지 않습니다.
Repository X-Ray 작동 방식#
히스토리
- GitLab 17.6에서 최대 라이브러리 수 도입.
프로젝트의 기본 브랜치에 새 커밋을 푸시하면 Repository X-Ray가 백그라운드 작업을 트리거합니다. 이 작업은 저장소의 해당 구성 파일을 스캔하고 파싱합니다.
일반적으로 각 프로젝트에서 한 번에 하나의 스캐닝 작업만 실행됩니다. 스캔이 이미 진행 중인 동안 두 번째 스캔이 트리거되면 두 번째 스캔은 첫 번째 스캔이 완료될 때까지 기다립니다. 이로 인해 최신 구성 파일 데이터가 파싱되어 데이터베이스에 업데이트되기 전에 약간의 지연이 발생할 수 있습니다.
코드 생성 요청이 수행되면 파싱된 데이터에서 최대 300개의 라이브러리가 추가 컨텍스트로 프롬프트에 포함됩니다.
Repository X-Ray 활성화#
히스토리
프로젝트에 GitLab Duo 코드 제안에 대한 액세스 권한이 있는 경우 Repository X-Ray 서비스가 자동으로 활성화됩니다.
지원되는 언어 및 종속성 관리자#
Repository X-Ray는 저장소 루트에서 최대 2개의 디렉토리 수준을 검색합니다. 예를 들어 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 이상 |
각주:
- Python Pip의 경우
*requirements*.txtglob 패턴과 일치하는 모든 구성 파일이 처리됩니다.
