GitLab Duo 코드 리뷰 (비에이전트)
GitLab v19.4Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
Add-on 및 그룹 설정에 따라 GitLab은 두 가지 코드 리뷰 기능 중 하나를 실행합니다. 이 페이지는 비에이전트 버전을 설명합니다. GitLab Duo Code Review는 프로젝트의 코드 리뷰를 간소화하는 데 도움이 됩니다.
Model information
- 기본 LLM
- Non-Agentic Code Review 설정을 사용하여 다른 모델을 선택합니다.
- GitLab Duo with self-hosted models에서 사용할 수 있습니다
히스토리
- GitLab 17.5에서
ai_review_merge_request및duo_code_review_chat라는 두 개의 피처 플래그 뒤에서 실험 기능으로 도입됨. 두 플래그 모두 기본적으로 비활성화. - 17.10에서 피처 플래그
ai_review_merge_request및duo_code_review_chat가 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로 초기 리뷰를 수행합니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Code > 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초입니다. 이 시간 안에 완료되지 않는 리뷰도 일반 오류로 표시됩니다.
대용량 머지 리퀘스트에서 리뷰 실패 위험을 줄이는 방법은 다음과 같습니다.
- 대용량 머지 리퀘스트를 더 작은 머지 리퀘스트로 분할합니다.
- 리뷰와 관련 없는 파일은 컨텍스트에서 제외합니다.
- 그룹 Owner 또는 인스턴스 관리자에게 Non-Agentic Code Review 설정으로 다른 모델을 선택하도록 요청합니다. GitLab.com 또는 GitLab Self-Managed 및 GitLab Dedicated를 참고합니다.
리뷰에서 GitLab Duo와 상호작용#
댓글에서 @GitLabDuo를 멘션하여 머지 리퀘스트에서 GitLab Duo와 상호작용할 수 있습니다.
리뷰 댓글에 후속 질문을 하거나 머지 리퀘스트의 모든 토론 스레드에서
질문할 수 있습니다.
GitLab Duo와의 상호작용은 머지 리퀘스트를 개선하는 과정에서 제안과 피드백의 품질을 높이는 데 도움이 됩니다.
GitLab Duo에 제공한 피드백은 다른 머지 리퀘스트의 이후 리뷰에 영향을 주지 않습니다. 이 기능을 추가하기 위한 기능 요청은 이슈 560116을 참고합니다.
사용자 정의 코드 리뷰 지침#
프로젝트에서 일관되고 구체적인 코드 리뷰 기준을 유지하기 위해 사용자 정의 MR 리뷰 지침을 만들 수 있습니다.
자세한 내용은 GitLab Duo의 리뷰 지침 사용자 정의를 참고합니다.
자동 리뷰#
히스토리
GitLab Duo의 자동 리뷰는 프로젝트, 그룹 또는 인스턴스의 모든 머지 리퀘스트가 초기 리뷰를 받도록 보장합니다.
사용자가 머지 리퀘스트를 생성하면 GitLab Duo가 자동으로 리뷰하지만, 다음의 경우는 예외입니다.
- 초안으로 표시된 경우. GitLab Duo가 머지 리퀘스트를 리뷰하도록 하려면 준비 완료로 표시합니다.
- 변경 사항이 없는 경우. GitLab Duo가 머지 리퀘스트를 리뷰하도록 하려면 변경 사항을 추가합니다.
- 설정한 제외 규칙 중 하나 이상과 일치하는 경우. GitLab Duo가 머지 리퀘스트를 리뷰하도록 하려면 리뷰를 수동으로 요청합니다.
사전 요구 사항:
- 프로젝트에 대한 Maintainer 또는 Owner 권한.
프로젝트에서 자동 리뷰를 켜려면 다음 단계를 수행합니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- GitLab Duo Code Review 섹션에서 Enable automatic reviews by GitLab Duo를 선택합니다.
- Save changes를 선택합니다.
사전 요구 사항:
- 그룹에 대한 Owner 권한.
그룹에서 자동 리뷰를 켜려면 다음 단계를 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Merge requests 섹션을 확장합니다.
- GitLab Duo Code Review 섹션에서 Enable automatic reviews by GitLab Duo를 선택합니다.
- Save changes를 선택합니다.
설정은 그룹에서 프로젝트로 계단식으로 적용됩니다. 더 구체적인 설정이 더 광범위한 설정을 재정의합니다.
사전 요구 사항:
- 관리자 액세스 권한
인스턴스에서 자동 리뷰를 켜려면 다음 단계를 수행합니다.
- 오른쪽 상단 모서리에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- GitLab Duo Code Review 섹션에서 Enable automatic reviews by GitLab Duo를 선택합니다.
- Save changes를 선택합니다.
설정은 인스턴스에서 그룹, 프로젝트 순으로 계단식으로 적용됩니다. 더 구체적인 설정이 더 광범위한 설정을 재정의합니다.
자동 리뷰를 활성화한 후에는 특정 머지 리퀘스트를 제외하는 규칙을 지정할 수 있습니다.
프로젝트의 머지 리퀘스트 제외#
히스토리
프로젝트에서 자동 리뷰가 켜져 있으면
GitLab Duo는 적격한 모든 머지 리퀘스트를 리뷰합니다.
특정 머지 리퀘스트를 제외하려면
.gitlab/duo/mr-review-automated-rules.yaml 파일에 제외 규칙을 정의합니다.
제외 규칙은 자동 리뷰만 방지합니다. 제외된 머지 리퀘스트라도 리뷰를 수동으로 요청할 수 있습니다.
제외 규칙을 정의하려면 다음 단계를 수행합니다.
-
리포지터리 루트에
.gitlab/duo디렉터리가 아직 없으면 생성합니다. -
.gitlab/duo디렉터리에mr-review-automated-rules.yaml이라는 파일을 생성합니다. -
다음 형식으로 제외 규칙을 추가합니다.
exclude: target_branches: - <pattern> source_branches: - <pattern> authors: - <pattern>각 키는 선택 사항입니다. GitLab Duo는 머지 리퀘스트가 어느 범주에서든 패턴 하나와 일치하면 자동 리뷰를 건너뜁니다.
target_branches: 머지 리퀘스트의 대상 브랜치 이름과 일치합니다.source_branches: 머지 리퀘스트의 소스 브랜치 이름과 일치합니다.authors: 머지 리퀘스트 작성자의 사용자 이름과 일치합니다.
패턴은 와일드카드(glob) 일치를 지원합니다. 예를 들어
dependabot/*는dependabot/으로 시작하는 모든 소스 브랜치와 일치합니다.예를 들어 릴리스 브랜치를 대상으로 하거나 봇 계정이 생성한 머지 리퀘스트의 자동 리뷰를 건너뛰려면 다음과 같이 작성합니다.
exclude: target_branches: - "release/*" authors: - "*-bot" -
파일을 리포지터리의 기본 브랜치에 커밋합니다.
GitLab Duo는 리포지터리의 기본 브랜치에서 제외 규칙을 읽습니다. GitLab Duo는 다른 브랜치에는 규칙을 적용하지 않습니다.
그룹의 머지 리퀘스트 제외#
그룹과 그 하위 그룹의 모든 프로젝트에 적용할 제외 규칙을 정의하려면 템플릿으로 사용할
프로젝트를 지정합니다.
템플릿 프로젝트에는 .gitlab/duo/mr-review-automated-rules.yaml 파일이 있어야 합니다.
GitLab Duo는 그룹 템플릿 프로젝트의 제외 규칙과 개별 프로젝트에 정의된 규칙을 결합합니다. 동일한 범주가 두 수준 모두에 정의된 경우 프로젝트의 규칙이 우선합니다. 그룹과 그 하위 그룹이 각각 템플릿 프로젝트를 설정한 경우 GitLab Duo는 모든 수준의 규칙을 결합합니다.
그룹의 사용자 정의 리뷰 지침을 저장할 프로젝트를 이미 구성했다면 mr-review-automated-rules.yaml도
동일한 프로젝트에 저장합니다.
그룹의 코드 리뷰를 사용자 정의할 프로젝트는 하나만 지정할 수 있으므로, GitLab이 해당 프로젝트에서
제외 규칙도 자동으로 확인합니다. 아래 단계를 다시 수행할 필요는 없습니다.
사전 요구 사항:
- 그룹에 대한 Owner 권한.
- 그룹의 한 프로젝트에 설정하려는 제외 규칙이 포함되어 있어야 합니다.
그룹의 제외 규칙을 구성하려면 다음 단계를 수행합니다.
최상위 그룹의 경우:
- 상단 바에서 Search or go to를 선택하고 최상위 그룹을 찾습니다.
- 왼쪽 사이드바에서 Settings > GitLab Duo를 선택합니다.
- Change configuration을 선택합니다.
- GitLab Duo features > Customize code review에서
.gitlab/duo/mr-review-automated-rules.yaml파일이 있는 프로젝트를 선택합니다. - Save changes를 선택합니다.
그룹 또는 하위 그룹의 경우:
- 상단 바에서 Search or go to를 선택하고 그룹 또는 하위 그룹을 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- GitLab Duo features를 확장합니다.
- Customize code review에서
.gitlab/duo/mr-review-automated-rules.yaml파일이 있는 프로젝트를 선택합니다. - Save changes를 선택합니다.
- 상단 바에서 Search or go to를 선택하고 그룹 또는 하위 그룹을 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- GitLab Duo features를 확장합니다.
- Customize code review에서
.gitlab/duo/mr-review-automated-rules.yaml파일이 있는 프로젝트를 선택합니다. - Save changes를 선택합니다.
문제 해결#
대용량 머지 리퀘스트에서 리뷰 실패#
GitLab Duo Code Review는 변경된 대용량 파일이 많은 머지 리퀘스트에 리뷰를 게시하지 못할 수 있습니다. 일반적인 원인은 다음과 같습니다.
- diff와 원본 파일 내용의 결합 크기가 모델의 컨텍스트 윈도우를 초과합니다.
- AI Gateway 요청이 120초를 초과합니다.
재시도 및 타임아웃 동작에 대한 자세한 내용은 대용량 머지 리퀘스트에서의 동작을 참고합니다.
실패를 우회하는 방법은 다음과 같습니다.
- 머지 리퀘스트를 더 작은 머지 리퀘스트로 분할합니다.
- 리뷰와 관련 없는 파일은 컨텍스트에서 제외합니다.
- 그룹 Owner 또는 인스턴스 관리자에게 Non-Agentic Code Review 설정으로 다른 모델을 선택하도록 요청합니다. GitLab.com 또는 GitLab Self-Managed 및 GitLab Dedicated를 참고합니다.
자세한 내용은 이슈 596794를 참고합니다.