임포트 및 익스포트 설정
Offering: GitLab Self-Managed, GitLab Dedicated
임포트 및 익스포트 관련 기능의 설정입니다. 다른 시스템에서 프로젝트를 임포트하기 전에 해당 시스템의 임포트 소스를 활성화해야 합니다. 신뢰할 수 있는 소스에서만 프로젝트를 임포트하세요. GitLab Self-Managed 관리자는 필요하지 않은 임포트 소스를 비활성화하여 공격 표면을 줄일 수 있습니다:
임포트 및 익스포트 관련 기능의 설정입니다.
허용된 임포트 소스 구성#
다른 시스템에서 프로젝트를 임포트하기 전에 해당 시스템의 임포트 소스를 활성화해야 합니다.
- GitLab에 관리자 접근 레벨 사용자로 로그인하세요.
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings 섹션을 펼치세요.
- 허용할 Import sources를 각각 선택하세요.
- Save changes를 선택하세요.
사용하지 않는 임포트 소스 비활성화#
신뢰할 수 있는 소스에서만 프로젝트를 임포트하세요. 신뢰할 수 없는 소스에서 프로젝트를 임포트하면 공격자가 민감한 데이터를 훔칠 수 있습니다. 예를 들어 악성 .gitlab-ci.yml 파일이 있는 임포트된 프로젝트는 공격자가 그룹 CI/CD 변수를 빼낼 수 있게 합니다.
GitLab Self-Managed 관리자는 필요하지 않은 임포트 소스를 비활성화하여 공격 표면을 줄일 수 있습니다:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings를 펼치세요.
- Import sources로 스크롤하세요.
- 필요하지 않은 임포터의 체크박스를 해제하세요.
프로젝트 익스포트 활성화#
프로젝트와 해당 데이터의 익스포트를 활성화하려면:
- GitLab에 관리자 접근 레벨 사용자로 로그인하세요.
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings 섹션을 펼치세요.
- Project export로 스크롤하세요.
- Enabled 체크박스를 선택하세요.
- Save changes를 선택하세요.
직접 전송으로 그룹 및 프로젝트 마이그레이션 활성화#
GitLab 16.1 이하에서는 예약된 스캔 실행 정책과 함께 직접 전송을 사용하지 않아야 합니다. 직접 전송을 사용하는 경우 먼저 GitLab 16.2로 업그레이드하고 정책을 적용하는 프로젝트에서 보안 정책 봇이 활성화되어 있는지 확인하세요.
직접 전송으로 그룹 및 프로젝트 마이그레이션은 기본적으로 비활성화되어 있습니다. 직접 전송으로 그룹 및 프로젝트 마이그레이션을 활성화하려면:
- GitLab에 관리자 접근 레벨 사용자로 로그인하세요.
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings 섹션을 펼치세요.
- Allow migrating GitLab groups and projects by direct transfer로 스크롤하세요.
- Enabled 체크박스를 선택하세요.
- Save changes를 선택하세요.
동일한 설정은 API에서 bulk_import_enabled 속성으로 사용 가능합니다.
자동 관리자 익스포트 활성화#
히스토리
인스턴스 관리자가 프로젝트 또는 그룹 파일 익스포트를 트리거하거나 익스포트 파일을 다운로드할 때 감사 이벤트가 생성되지 않도록 자동 관리자 익스포트를 활성화하세요. 비관리자의 익스포트는 여전히 감사 이벤트를 생성합니다.
자동 관리자 프로젝트 및 그룹 파일 익스포트를 활성화하려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택한 다음 Import and export settings를 펼치세요.
- Silent exports by admins로 스크롤하세요.
- Enabled 체크박스를 선택하세요.
관리자에게 기여 매핑 허용#
히스토리
- GitLab 17.5에서
importer_user_mapping이라는 플래그와 함께 도입. 기본적으로 비활성화. - GitLab 17.7에서 GitLab.com 및 GitLab Self-Managed에서 활성화.
- GitLab 18.3에서 일반 공개. 기능 플래그
importer_user_mapping제거.
임포트된 사용자 기여를 관리자에게 매핑하는 것을 허용하려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택한 다음 Import and export settings를 펼치세요.
- Allow contribution mapping to administrators로 스크롤하세요.
- Enabled 체크박스를 선택하세요.
관리자가 플레이스홀더 사용자를 재할당할 때 확인 건너뛰기#
히스토리
사전 요구 사항:
- GitLab 인스턴스에서 사용자 가장이 비활성화되지 않았는지 확인하세요.
관리자가 플레이스홀더 사용자를 재할당할 때 확인을 건너뛰려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings를 펼치세요.
- Skip confirmation when administrators reassign placeholder users에서 Enabled 체크박스를 선택하세요.
이 설정이 활성화되면 관리자는 다음 상태 중 하나를 가진 비봇 사용자에게 기여 및 멤버십을 재할당할 수 있습니다:
activebannedblockedblocked_pending_approvaldeactivatedldap_blocked
최대 익스포트 크기#
히스토리
- GitLab 15.0에서 도입.
GitLab에서 익스포트의 최대 파일 크기를 수정하려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택한 다음 Import and export settings를 펼치세요.
- Maximum export size (MiB) 값을 변경하여 늘리거나 줄이세요.
최대 임포트 크기#
GitLab에서 임포트의 최대 파일 크기를 수정하려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings를 펼치세요.
- Maximum import size (MiB) 값을 변경하여 늘리거나 줄이세요.
이 설정은 GitLab 익스포트 파일에서 임포트된 리포지터리에만 적용됩니다.
웹 서버에 구성된 값보다 큰 크기를 선택하면 오류가 발생할 수 있습니다. 자세한 내용은 트러블슈팅 섹션을 참조하세요.
GitLab.com 리포지터리 크기 제한은 계정 및 제한 설정을 참조하세요.
임포트의 최대 원격 파일 크기#
히스토리
- GitLab 16.3에서 도입.
기본적으로 외부 오브젝트 스토리지(예: AWS)에서 임포트하는 최대 원격 파일 크기는 10 GiB입니다.
이 설정을 수정하려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings를 펼치세요.
- **Maximum import remote file size (MiB)**에 값을 입력하세요. 파일 크기 제한 없음으로 설정하려면
0으로 설정하세요.
직접 전송으로 임포트하기 위한 최대 다운로드 파일 크기#
히스토리
- GitLab 16.3에서 도입.
기본적으로 직접 전송으로 임포트하기 위한 최대 다운로드 파일 크기는 5 GiB입니다.
이 설정을 수정하려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings를 펼치세요.
- **Maximum download file size (MiB)**에 값을 입력하세요. 파일 크기 제한 없음으로 설정하려면
0으로 설정하세요.
임포트된 아카이브의 최대 압축 해제 파일 크기#
히스토리
파일 익스포트 또는 직접 전송을 사용하여 프로젝트를 임포트할 때 임포트된 아카이브의 최대 압축 해제 파일 크기를 지정할 수 있습니다. 기본값은 25 GiB입니다.
압축된 파일을 임포트할 때 압축 해제된 크기는 최대 압축 해제 파일 크기 제한을 초과할 수 없습니다. 압축 해제된 크기가 구성된 제한을 초과하면 다음 오류가 반환됩니다:
Decompressed archive size validation failed.
이 설정을 수정하려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings를 펼치세요.
- **Maximum decompressed file size for archives from imports (MiB)**에 다른 값을 설정하세요.
아카이브 파일 압축 해제 시간 초과#
히스토리
- GitLab 16.4에서 도입.
프로젝트를 임포트할 때 임포트된 아카이브 압축 해제의 최대 시간 초과를 지정할 수 있습니다. 기본값은 210초입니다.
GitLab에서 임포트의 최대 압축 해제 파일 크기를 수정하려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings를 펼치세요.
- **Timeout for decompressing archived files (seconds)**에 다른 값을 설정하세요.
동시 임포트 작업의 최대 수#
히스토리
- GitLab 16.11에서 도입.
다음에 대해 동시에 실행되는 임포트 작업의 최대 수를 지정할 수 있습니다:
서버 과부하를 방지하기 위해 머지 리퀘스트에는 하드코딩된 제한이 있으므로 머지 리퀘스트를 임포트할 때는 작업 제한이 적용되지 않습니다.
기본 작업 제한은:
- GitHub 임포터의 경우 1000.
- Bitbucket Cloud 및 Bitbucket Server 임포터의 경우 100. Bitbucket 임포터는 좋은 기본 제한을 아직 결정하지 못했기 때문에 낮은 기본 제한을 가집니다. 인스턴스 관리자는 더 높은 제한으로 실험해 보아야 합니다.
이 설정을 수정하려면:
- 오른쪽 상단 모서리에서 Admin을 선택하세요.
- 왼쪽 사이드바에서 Settings > General을 선택하세요.
- Import and export settings를 펼치세요.
- 원하는 임포터의 Maximum number of simultaneous import jobs에 다른 값을 설정하세요.
동시 배치 익스포트 작업의 최대 수#
히스토리
- GitLab 17.6에서 도입.
직접 전송 익스포트는 상당한 양의 리소스를 소비할 수 있습니다. 데이터베이스 또는 Sidekiq 프로세스가 소진되는 것을 방지하기 위해 관리자는 concurrent_relation_batch_export_limit 설정을 구성할 수 있습니다.
기본값은 8 작업으로, 이는 초당 최대 40 RPS 또는 2,000 사용자를 위한 참조 아키텍처에 해당합니다. PG::QueryCanceled: ERROR: canceling statement due to statement timeout 오류가 발생하거나 Sidekiq 메모리 제한으로 인해 작업이 중단되는 경우 이 숫자를 줄일 수 있습니다. 충분한 리소스가 있는 경우 이 숫자를 늘려 더 많은 동시 익스포트 작업을 처리할 수 있습니다.
이 설정을 수정하려면 concurrent_relation_batch_export_limit와 함께 /api/v4/application/settings에 API 요청을 보내세요. 자세한 내용은 application settings API를 참조하세요.
익스포트 배치 크기#
히스토리
- GitLab 18.2에서 도입.
메모리 사용량 및 데이터베이스 부하를 추가로 관리하려면 relation_export_batch_size 설정을 사용하여 익스포트 작업 중 각 배치에서 처리되는 레코드 수를 제어하세요.
기본값은 배치당 50개 레코드입니다. 이 설정을 수정하려면 relation_export_batch_size와 함께 /api/v4/application/settings에 API 요청을 보내세요. 자세한 내용은 application settings API를 참조하세요.
트러블슈팅#
오류: Help page documentation base url is blocked: execution expired#
임포트 소스 구성과 같은 application settings를 활성화하는 동안 Help page documentation base url is blocked: execution expired 오류가 발생할 수 있습니다. 이 오류를 해결하려면:
docs.gitlab.com또는 리디렉션 도움말 문서 페이지 URL을 허용 목록에 추가하세요.- Save Changes를 선택하세요.
