GitLab Duo 기능 가용성 및 구성
이 문서는 GitLab Duo 기능이 어떻게 제어되는지, 누가 접근할 수 있는지, GitLab 배포에서 어떻게 구성되는지를 설명합니다. 다양한 설정이 사용자가 GitLab Duo 기능과 상호작용할 수 있는 시점과 방법을 제어합니다.
이 문서는 GitLab Duo 기능이 어떻게 제어되는지, 누가 접근할 수 있는지, GitLab 배포에서 어떻게 구성되는지를 설명합니다.
GitLab Duo 기능 가용성 제어#
다양한 설정이 사용자가 GitLab Duo 기능과 상호작용할 수 있는 시점과 방법을 제어합니다. 최종 사용자 문서에서는 사용자 관점에서 이를 설명합니다. 이 문서는 개발자 관점에서 구현 로직을 설명하며 기술적인 세부 사항을 포함합니다.
네임스페이스 청구 및 거버넌스#
GitLab.com에서 governing_namespace 메서드는 사용자의 요청 컨텍스트에서 GitLab Duo 사용량 기반 청구 및 거버넌스에 대한 권위 있는 네임스페이스를 결정합니다.
거버닝 네임스페이스는 셀프 매니지드 또는 Dedicated 인스턴스에는 적용되지 않습니다.
governing_namespace 메서드는 다음 결정 프로세스를 따릅니다:
scope(네임스페이스 컨텍스트)가 제공되고 사용자가 해당 네임스페이스의 최상위 그룹 또는 최상위 그룹 내 하위 그룹이나 프로젝트의 멤버인 경우, 최상위 그룹을 사용합니다. 그렇지 않으면 사용자가 선택한 기본 GitLab Duo 네임스페이스를 사용합니다.- 사용자가 기본 네임스페이스를 선택하지 않은 경우 추론을 시도합니다.
적합한 네임스페이스를 결정할 수 없으면
nil을 반환합니다.
# 범위 없음: 사용자의 기본 GitLab Duo 네임스페이스를 사용
governing_ns = current_user.governing_namespace
# => 사용자의 기본 네임스페이스 또는 추론된 네임스페이스를 반환
# 범위 있음: 사용자가 멤버인 경우 범위의 최상위 그룹을 선호
governing_ns = current_user.governing_namespace(project)
# => 사용자가 멤버인 경우 프로젝트의 최상위 그룹을 반환. 그렇지 않으면 기본 네임스페이스를 반환
# 청구 컨텍스트에서의 명확성을 위한 별칭
billable_ns = current_user.billable_duo_namespace(resource)
UI 옵션 및 데이터베이스 상태#
UI에서 "GitLab Duo Enterprise 가용성" 설정은 3가지 옵션을 보여줍니다:
- 기본적으로 켜짐 - 기능이 활성화되고 하위 엔티티가 이 설정을 상속합니다
- 기본적으로 꺼짐 - 기능이 비활성화되지만 하위 엔티티가 재정의할 수 있습니다
- 항상 꺼짐 - 기능이 비활성화되고 하위 엔티티가 재정의할 수 없습니다
이 UI 옵션들은 다음 데이터베이스 상태에 직접 매핑됩니다:
| UI 옵션 | duo_features_enabled |
lock_duo_features_enabled |
|---|---|---|
| 기본적으로 켜짐 | true |
false |
| 기본적으로 꺼짐 | false |
false |
| 항상 꺼짐 | false |
true |
캐스케이딩 설정 구현#
duo_features_enabled 설정은 캐스케이딩 설정으로, GitLab Duo 기능이 계층 구조를 통해 전파되는 방식에 영향을 미칩니다.
이 캐스케이딩 동작은 다음을 의미합니다:
- 설정은 인스턴스, 그룹, 하위 그룹 또는 프로젝트 등 모든 수준에서 구성할 수 있습니다
- GitLab.com의 경우 인스턴스 전체 설정이 항상
true입니다 - 하위 엔티티는 상위의 설정을 재정의할 수 있습니다. 예를 들어:
duo_features_enabled: false인 인스턴스는duo_features_enabled: true인 그룹을 가질 수 있습니다duo_features_enabled: true인 그룹은duo_features_enabled: false인 하위 그룹을 가질 수 있습니다
- 상위 수준에서 설정이
true인 경우 모든 하위 엔티티가true로 재설정됩니다 - 상위 수준에서 설정이
false인 경우 모든 하위 엔티티가false로 재설정됩니다 - 상위 엔티티는
lock_duo_features_enabled: true를 사용하여 설정을 "잠글" 수 있습니다(UI에서 "항상 꺼짐"으로 표시)- 잠긴 경우 하위 엔티티는 상위 설정을 재정의할 수 없습니다
- 이는 해당 지점 아래의 전체 계층 구조에 대해 GitLab Duo 기능을 효과적으로 비활성화합니다
컨텍스트별 기능 접근성#
사용자가 GitLab Duo 기능에 접근할 수 있는 위치#
유료 GitLab Duo 라이선스(GitLab Duo Pro 또는 GitLab Duo Enterprise)를 가진 사용자는 다음에 대한 웹 UI 및 IDE 모두에서 Chat 및 Code Suggestions에 접근할 수 있습니다:
-
GitLab Duo 기능을 비활성화할 수 없는 리소스:
- 개인 GitLab 네임스페이스 및 프로젝트
- 무료 티어 GitLab 그룹 및 프로젝트
- 유료 GitLab Duo 라이선스가 없는 Premium 및 Ultimate 그룹 및 프로젝트
-
GitLab Duo 기능이 활성화된 리소스:
- GitLab Self-Managed 및 GitLab Dedicated에서: 유료 GitLab Duo 라이선스가 있는 인스턴스의 그룹 또는 프로젝트
- GitLab.com에서: 유료 GitLab Duo 라이선스가 있는 그룹의 그룹 또는 프로젝트
추가 IDE 접근 시나리오#
IDE 환경에서 특히 GitLab Duo 라이선스를 가진 사용자는 다음에 대해 항상 Chat 및 Code Suggestions를 사용할 수 있습니다:
- Git 구성이 없는 저장소
- 알 수 없는 오리진(예: 사용자가 인증되지 않은 GitHub 또는 다른 GitLab 인스턴스)을 가리키는 Git 구성이 있는 저장소
플랫폼별 동작#
GitLab.com 라이선스 할당#
GitLab.com에서 GitLab Duo 라이선스는 시트를 할당한 그룹이 아닌 해당 라이선스가 할당된 개별 사용자와 연결됩니다. GitLab.com의 사용자 계정은 특정 그룹에 "소유"되지 않고 전체 GitLab 인스턴스에 속하는 독립적인 엔티티입니다.
기능 가용성에 미치는 영향#
그룹에서 GitLab Duo 기능 비활성화(duo_features_enabled: false):
- GitLab Duo 라이선스를 가진 그룹 멤버의 GitLab Duo 접근을 취소하지 않습니다
- 라이선스 사용자가 해당 그룹에 속한 리소스와 함께 GitLab Duo 기능을 사용하는 것만 방지합니다
예시 시나리오#
사용자에게 GitLab Duo 라이선스가 있지만 GitLab Duo 기능이 "항상 꺼짐"으로 설정된 그룹에 속한 경우에도 다음을 수행할 수 있습니다:
- 무료 프로젝트의 이슈에 대한 질문으로 GitLab Duo Chat 사용
- 개인 프로젝트에서 Code Suggestions 사용
- GitLab Duo Chat에 일반적인 코딩 질문 또는 GitLab에 관한 질문
- GitLab Duo 기능이 활성화된 다른 그룹의 리소스와 함께 GitLab Duo 기능 사용
이 흐름 다이어그램은 GitLab.com에서 GitLab Duo 기능 가용성이 어떻게 작동하는지 보여줍니다:
소스 코드 보기
flowchart TD
A[Start] --> B{Member of Premium/Ultimate group?}
B -->|No| C[Cannot use GitLab Duo]
B -->|Yes| D{Has GitLab Duo Pro/Enterprise license?}
D -->|No| E[Cannot use GitLab Duo]
D -->|Yes| F{Using GitLab Duo with specific
group/project resource?}
F -->|No| G[Can use GitLab Duo]
F -->|Yes| H{Group/Project has
GitLab Duo features enabled?}
H -->|No| I[Cannot use GitLab Duo with
this resource]
H -->|Yes| J[Can use GitLab Duo with
this resource]GitLab Duo Core, GitLab Duo Pro, GitLab Duo Enterprise가 포함된 GitLab.com#
GitLab은 세 가지 AI 기능 티어를 제공합니다:
- GitLab Duo Core - 기본 AI 기능
- GitLab Duo Pro - 더 고급 기능을 갖춘 향상된 AI 기능
- GitLab Duo Enterprise - 추가 제어 및 기능을 갖춘 포괄적인 AI 기능
GitLab Duo Core 구성#
GitLab Duo Core의 도입으로 최상위 Premium 및 Ultimate 그룹에 새로운 설정이 사용 가능합니다.
이 설정을 통해 그룹 소유자는 GitLab Duo Core 가용성을 제어할 수 있습니다:
- GitLab Duo Core가 활성화("켜짐")된 경우: 그룹의 모든 멤버가 자동으로 GitLab Duo Core 시트를 받습니다
- GitLab Duo Core가 비활성화("꺼짐")된 경우: 그룹의 멤버가 GitLab Duo Core 시트를 갖지 않습니다
라이선스 티어별 기능 가용성#
| 기능 | GitLab Duo Core | GitLab Duo Pro | GitLab Duo Enterprise |
|---|---|---|---|
| Chat | Agentic Chat만 가능. IDE로 제한 | 전체 기능 | 전체 기능 |
| Code Suggestions | IDE 및 Web IDE에서 사용 가능 | IDE 및 Web IDE에서 사용 가능 | IDE 및 Web IDE에서 사용 가능 |
| 추가 AI 기능 | 사용 불가 | 일부 사용 가능 | 모두 사용 가능 |
이 흐름 다이어그램은 GitLab Duo Core 설정을 고려한 GitLab.com에서의 GitLab Duo 기능 가용성이 어떻게 작동하는지 보여줍니다:
소스 코드 보기
flowchart TD
A[Start] --> B{Member of Premium/Ultimate group?}
B -->|No| C[Cannot use GitLab Duo]
B -->|Yes| D{Has GitLab Duo Pro/Enterprise license?}
D -->|Yes| E[Can use GitLab Duo]
D -->|No| F{Any Premium/Ultimate group has
GitLab Duo Core enabled?}
F -->|No| G[Cannot use GitLab Duo]
F -->|Yes| H{Using Chat or
Code Suggestions in IDE?}
H -->|No| I[Cannot use GitLab Duo]
H -->|Yes| J{Using GitLab Duo with specific
group/project resource?}
J -->|No| K[Can use GitLab Duo]
J -->|Yes| L{Group/Project has
GitLab Duo features enabled?}
L -->|Yes| M[Can use GitLab Duo with
this resource]
L -->|No| N[Cannot use GitLab Duo with
this resource]구성 위치#
GitLab.com 설정 페이지#
다음 설정 페이지는 GitLab.com에서 GitLab Duo를 구성하는 데 사용할 수 있습니다:
관리자 수준#
/admin/gitlab_duo- GitLab Duo Agent Platform 온보딩
최상위 그룹 설정#
/groups/$GROUP_FULL_PATH/-/settings/gitlab_duo- 유료 GitLab Duo 시트 할당(가용한 경우)
- GitLab Duo 구성 접근
/groups/$GROUP_PATH/-/settings/gitlab_duo/configuration- GitLab Duo 가용성 구성("기본적으로 켜짐", "기본적으로 꺼짐" 또는 "항상 꺼짐")
- 실험적 및 베타 GitLab Duo 기능 활성화
- 기초 에이전트 가용성 구성("기본적으로 켜짐", "기본적으로 꺼짐").
하위 그룹 설정#
/groups/$GROUP_FULL_PATH/-/edit- 하위 그룹 및 모든 하위 항목에 대한 GitLab Duo 가용성 구성
프로젝트 설정#
/$PROJECT_FULL_PATH/edit- "가시성, 프로젝트 기능, 권한" 섹션 하위
- 특정 프로젝트에 대한 GitLab Duo 가용성 구성
GitLab Self-Managed 및 Dedicated 인스턴스#
Premium 및 Ultimate GitLab Self-Managed 및 Dedicated 인스턴스의 경우, 기능 가용성 로직은 한 가지 주요 차이점을 제외하고 GitLab.com과 유사한 패턴을 따릅니다:
인스턴스 관리자는 인스턴스 수준에서 GitLab Duo 기능을 "항상 꺼짐"으로 설정할 수 있습니다. 이렇게 구성되면 개별 라이선스 할당에 관계없이 전체 인스턴스의 모든 사용자에 대해 모든 GitLab Duo 기능이 비활성화됩니다.
소스 코드 보기
flowchart TD
A[Start] --> B{Instance has GitLab Duo features
set to 'Always off'?}
B -->|Yes| C[Cannot use GitLab Duo]
B -->|No| D{Has GitLab Duo Pro/Enterprise license?}
D -->|No| E[Cannot use GitLab Duo]
D -->|Yes| F{Using GitLab Duo with specific
group/project resource?}
F -->|No| G[Can use GitLab Duo]
F -->|Yes| H{Group/Project has
GitLab Duo features enabled?}
H -->|No| I[Cannot use GitLab Duo with
this resource]
H -->|Yes| J[Can use GitLab Duo with
this resource]GitLab Duo Core, GitLab Duo Pro, GitLab Duo Enterprise가 포함된 GitLab Self-Managed 및 Dedicated#
인스턴스 전체 GitLab Duo Core 구성#
GitLab Self-Managed 및 Dedicated 인스턴스의 경우 GitLab Duo Core는 인스턴스 수준 설정으로 제어됩니다. 이 설정은 모든 Premium 및 Ultimate 인스턴스에서 사용 가능합니다.
인스턴스 관리자는 다음을 할 수 있습니다:
- GitLab Duo Core 활성화("켜짐") - 인스턴스의 모든 사용자가 자동으로 GitLab Duo Core 시트를 받습니다
- GitLab Duo Core 비활성화("꺼짐") - 인스턴스의 사용자가 GitLab Duo Core 시트를 갖지 않습니다
Self-Managed 및 Dedicated 인스턴스에서의 라이선스 티어 차이#
GitLab Duo Core, GitLab Duo Pro, GitLab Duo Enterprise 간의 동일한 기능 차별화가 셀프 매니지드 및 Dedicated 인스턴스에도 적용됩니다:
- GitLab Duo Core: IDE 사용 사례 및 일반 코딩 지원으로 제한된 기본 AI 기능
- GitLab Duo Pro: 더 넓은 기능 접근을 갖춘 향상된 AI 기능
- GitLab Duo Enterprise: 추가 엔터프라이즈 제어를 갖춘 포괄적인 AI 기능
셀프 매니지드 인스턴스는 자체 호스팅 AI 모델과의 통합 및 기능 동작 제어를 위한 추가 구성 옵션을 갖습니다.
이 흐름 다이어그램은 GitLab Duo Core 설정을 고려한 GitLab.com이 아닌 인스턴스에서의 GitLab Duo 기능 가용성이 어떻게 작동하는지 보여줍니다:
소스 코드 보기
flowchart TD
A[Start] --> B{Instance has GitLab Duo features
set to 'Always off'?}
B -->|Yes| C[Cannot use GitLab Duo]
B -->|No| D{Has GitLab Duo Pro/Enterprise license?}
D -->|Yes| E[Can use GitLab Duo]
D -->|No| F{Instance has GitLab Duo Core enabled?}
F -->|No| G[Cannot use GitLab Duo]
F -->|Yes| H{Using Chat or
Code Suggestions in IDE?}
H -->|No| I[Cannot use GitLab Duo]
H -->|Yes| J{Using GitLab Duo with specific
group/project resource?}
J -->|No| K[Can use GitLab Duo]
J -->|Yes| L{Group/Project has
GitLab Duo features enabled?}
L -->|Yes| M[Can use GitLab Duo with
this resource]
L -->|No| N[Cannot use GitLab Duo with
this resource]GitLab Self-Managed 및 Dedicated 설정 페이지#
다음 설정 페이지는 셀프 매니지드 및 Dedicated 인스턴스에서 GitLab Duo를 구성하는 데 사용할 수 있습니다:
인스턴스 관리자 설정#
/admin/gitlab_duo- 사용자에게 유료 GitLab Duo 시트 할당
- GitLab Duo 구성 접근
/admin/gitlab_duo/configuration- 인스턴스 전체 GitLab Duo 가용성 구성
- 실험적 및 베타 GitLab Duo 기능 활성화
- GitLab Duo Chat 대화 만료 기간 구성
- Code Suggestions 직접 연결 활성화
- 셀프 호스팅 배포를 위한 베타 AI 모델 활성화
- AI 로깅 설정 구성
- 셀프 호스팅 배포를 위한 AI Gateway URL 설정
/admin/gitlab_duo/model_selection- 인스턴스 수준 모델 선택 구성
- 자체 호스팅 AI 모델 통합 구성
- 다양한 GitLab Duo 기능에 특정 자체 호스팅 모델 선택
그룹 및 하위 그룹 설정#
/groups/$GROUP_FULL_PATH/-/edit- 그룹 및 모든 하위 엔티티에 대한 GitLab Duo 가용성 구성
프로젝트 설정#
/$PROJECT_FULL_PATH/edit- "가시성, 프로젝트 기능, 권한" 섹션 하위
- 특정 프로젝트에 대한 GitLab Duo 가용성 구성
