GitLab Duo 코드 리뷰 (비에이전트)
GitLab v19.1GitLab Duo with self-hosted models에서 사용 가능 피처 플래그 ai_review_merge_request 및 duo_code_review_chat이 17.10에서 GitLab.com, GitLab Self-Managed, GitLab Dedicated에서 기본적으로 활성화됨.
GitLab Duo 코드 리뷰 (비에이전트)#
- Tier: Premium, Ultimate
- Add-on: GitLab Duo Enterprise
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Model information
히스토리
- GitLab 17.5에서 두 개의 피처 플래그
ai_review_merge_request및duo_code_review_chat(기본적으로 비활성화)를 통해 실험으로 도입됨.
-
피처 플래그
ai_review_merge_request및duo_code_review_chat이 17.10에서 GitLab.com, GitLab Self-Managed, GitLab Dedicated에서 기본적으로 활성화됨. -
GitLab 17.10에서 베타로 변경됨.
-
GitLab 18.0에서 Premium을 포함하도록 변경됨.
-
GitLab 18.1에서 피처 플래그
ai_review_merge_request가 제거됨. -
GitLab 18.1에서 피처 플래그
duo_code_review_chat이 제거됨. -
GitLab 18.1에서 일반적으로 사용 가능해짐.
-
GitLab 18.3에서 GitLab Duo with self-hosted models에서 베타로 사용 가능하도록 변경됨.
-
GitLab 18.4에서 GitLab Duo with self-hosted models에서 일반적으로 사용 가능하도록 변경됨.
Add-on에 따라 GitLab은 두 가지 코드 리뷰 기능 중 하나를 실행합니다:
-
Code Review Flow: GitLab Duo Agent Platform의 일부인 에이전트 버전.
-
GitLab Duo Code Review: GitLab Duo Enterprise add-on 사용자만 이용 가능한 비에이전트 버전.
이 페이지는 비에이전트 버전을 설명합니다. 두 기능의 비교를 참조하세요.
GitLab Duo Code Review는 프로젝트에서 코드 리뷰를 간소화하는 데 도움을 줍니다.
GitLab Duo Code Review 사용#
머지 리퀘스트가 리뷰 준비가 되었을 때 GitLab Duo Code Review를 사용하여 초기 리뷰를 수행합니다:
-
상단 바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 코드 > Merge requests를 선택하고 머지 리퀘스트를 찾습니다.
-
댓글 입력창에 빠른 실행 명령어
/assign_reviewer @GitLabDuo를 입력하거나 GitLab Duo를 리뷰어로 지정합니다.
이슈 517386에서 이 기능에 대한 피드백을 제공하세요.
컨텍스트 인식#
GitLab Duo Code Review를 사용할 때 다음 데이터가 대규모 언어 모델로 전송됩니다:
-
머지 리퀘스트 제목
-
머지 리퀘스트 설명
-
변경 사항이 적용되기 전 파일 내용 (컨텍스트용)
-
머지 리퀘스트 diff
-
파일 이름
-
사용자 정의 지침
제외할 콘텐츠를 지정하려면 코드 리뷰에서 컨텍스트 제외를 참조하세요.
대용량 머지 리퀘스트에서의 동작#
GitLab Duo Code Review는 머지 리퀘스트 diff와 변경된 파일의 원본 내용을 모델에 전송합니다. 결합된 프롬프트는 선택한 모델의 컨텍스트 윈도우 제한을 받습니다.
대용량 머지 리퀘스트의 경우 GitLab Duo Code Review는 리뷰 성공 가능성을 높이기 위해 폴백을 사용합니다:
-
초기 요청에는 머지 리퀘스트 diff와 원본 파일 내용이 포함됩니다.
-
해당 요청이 실패하면 GitLab Duo Code Review는 원본 파일 내용 없이 자동으로 재시도합니다.
-
재시도도 실패하면 GitLab Duo Code Review는 일반 오류 메시지를 반환합니다.
파일 내용 없이 재시도하면 프롬프트 크기가 줄어들지만, 변경 사항을 리뷰할 때 모델이 가진 컨텍스트도 줄어듭니다. 원본 파일 내용이 포함된 리뷰보다 댓글이 덜 구체적일 수 있습니다.
GitLab Duo Code Review의 AI Gateway 요청 타임아웃은 120초입니다. 이 시간 내에 완료되지 않는 리뷰도 일반 오류로 표시됩니다.
대용량 머지 리퀘스트에서 실패 위험을 줄이려면:
-
대용량 머지 리퀘스트를 더 작은 머지 리퀘스트로 분할하세요.
-
리뷰와 관련 없는 파일에 대해 컨텍스트를 제외하세요.
-
Maintainer 또는 Owner에게 Code Review에 대해 다른 모델을 선택하도록 요청하세요.
리뷰에서 GitLab Duo와 상호작용#
댓글에서 @GitLabDuo를 멘션하여 머지 리퀘스트에서 GitLab Duo와 상호작용할 수 있습니다.
리뷰 댓글에 대한 후속 질문을 하거나 머지 리퀘스트의 모든 토론 스레드에서 질문할 수 있습니다.
GitLab Duo와의 상호작용은 머지 리퀘스트를 개선하는 과정에서 제안과 피드백을 향상시키는 데 도움이 됩니다.
GitLab Duo에 제공된 피드백은 다른 머지 리퀘스트의 이후 리뷰에 영향을 미치지 않습니다. 이 기능을 추가하기 위한 기능 요청이 있습니다. 이슈 560116을 참조하세요.
사용자 정의 코드 리뷰 지침#
프로젝트에서 일관되고 구체적인 코드 리뷰 기준을 보장하기 위해 사용자 정의 MR 리뷰 지침을 만들 수 있습니다.
자세한 내용은 GitLab Duo의 리뷰 지침 사용자 정의를 참조하세요.
프로젝트에 대한 GitLab Duo 자동 리뷰#
히스토리
- GitLab 18.0에서 UI 설정으로 변경됨.
GitLab Duo 자동 리뷰는 프로젝트의 모든 머지 리퀘스트가 초기 리뷰를 받도록 보장합니다. 머지 리퀘스트가 생성된 후 GitLab Duo가 리뷰하지 않는 경우는 다음과 같습니다:
-
초안(draft)으로 표시된 경우. GitLab Duo가 리뷰하려면 준비 완료로 표시하세요.
-
변경 사항이 없는 경우. GitLab Duo가 리뷰하려면 변경 사항을 추가하세요.
전제 조건:
- 프로젝트에서 최소 Maintainer 권한이 있어야 합니다.
@GitLabDuo가 머지 리퀘스트를 자동으로 리뷰하도록 활성화하려면:
-
상단 바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 설정 > Merge requests를 선택합니다.
-
GitLab Duo Code Review 섹션에서 GitLab Duo의 자동 리뷰 활성화를 선택합니다.
-
변경 사항 저장을 선택합니다.
그룹 및 애플리케이션에 대한 GitLab Duo 자동 리뷰#
- GitLab 18.7에서 피처 플래그
cascading_auto_duo_code_review_settings가 제거됨.
그룹 또는 애플리케이션 설정을 사용하여 여러 프로젝트에 대한 자동 리뷰를 활성화합니다.
전제 조건:
-
그룹에 대한 자동 리뷰를 활성화하려면 그룹에 대한 Owner 권한이 있어야 합니다.
-
모든 프로젝트에 대한 자동 리뷰를 활성화하려면 관리자여야 합니다.
그룹에 대한 자동 리뷰를 활성화하려면:
-
상단 바에서 검색 또는 이동을 선택하여 그룹을 찾습니다.
-
왼쪽 사이드바에서 설정 > 일반을 선택합니다.
-
Merge requests 섹션을 펼칩니다.
-
GitLab Duo Code Review 섹션에서 GitLab Duo의 자동 리뷰 활성화를 선택합니다.
-
변경 사항 저장을 선택합니다.
모든 프로젝트에 대한 자동 리뷰를 활성화하려면:
-
오른쪽 상단 모서리에서 관리자를 선택합니다.
-
왼쪽 사이드바에서 설정 > 일반을 선택합니다.
-
GitLab Duo Code Review 섹션에서 GitLab Duo의 자동 리뷰 활성화를 선택합니다.
-
변경 사항 저장을 선택합니다.
설정은 애플리케이션에서 그룹, 프로젝트 순으로 계단식으로 적용됩니다. 더 구체적인 설정이 더 광범위한 설정을 재정의합니다.
문제 해결#
대용량 머지 리퀘스트에서 리뷰 실패#
GitLab Duo Code Review는 변경된 대용량 파일이 많은 머지 리퀘스트에 리뷰를 게시하지 못할 수 있습니다. 일반적인 원인은 다음과 같습니다:
-
diff와 원본 파일 내용의 결합 크기가 모델의 컨텍스트 윈도우를 초과함.
-
AI Gateway 요청이 120초를 초과함.
재시도 및 타임아웃 동작에 대한 자세한 내용은 대용량 머지 리퀘스트에서의 동작을 참조하세요.
실패를 해결하려면:
-
머지 리퀘스트를 더 작은 머지 리퀘스트로 분할하세요.
-
리뷰와 관련 없는 파일에 대해 컨텍스트를 제외하세요.
자세한 내용은 이슈 596794를 참조하세요.