프로젝트 이전
프로젝트를 다른 네임스페이스로 이전
프로젝트를 다른 네임스페이스로 이전하면 프로젝트가 다른 그룹으로 이동됩니다. 프로젝트의 컴포넌트(이슈, Merge Request, 파이프라인 및 대시보드와 같은)는 모두 이전된 프로젝트와 함께 이동합니다. 프로젝트의 경로도 변경됩니다, 따라서 필요한 경우 프로젝트 컴포넌트의 URL을 업데이트해야 합니다.
전제 조건:
- 이전하려는 그룹의 Maintainer 역할을 적어도 가지고 있어야 합니다.
- 이전하려는 프로젝트의 소유자여야 합니다.
- 그룹은 새 프로젝트를 만들 수 있어야 합니다.
- 프로젝트에 컨테이너 이미지가 포함되어 있으면 안 됩니다.
- 프로젝트에 보안 정책이 없어야 합니다. 프로젝트에 보안 정책이 할당되어 있으면 전송 중 자동으로 해제됩니다.
-
루트 네임스페이스가 변경되면 프로젝트에서 naming rule을 따르는 npm 패키지를 제거해야 합니다. 프로젝트를 전송한 후 다음 중 하나를 할 수 있습니다.
- 새 루트 네임스페이스 경로로 패키지 범위를 업데이트하고 프로젝트에 다시 게시합니다.
- 루트 네임스페이스 경로를 업데이트하지 않고 패키지를 프로젝트에 다시 게시하여 naming rule을 더 이상 따르지 않게 합니다. 루트 네임스페이스 경로를 업데이트하지 않고 패키지를 다시 게시하면 instance level endpoint에서 사용할 수 없습니다.
프로젝트를 전송하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 일반을 선택합니다.
- 고급을 확장합니다.
- 프로젝트 전송에서 프로젝트를 전송할 네임스페이스를 선택합니다.
- 프로젝트 전송을 선택합니다.
- 프로젝트 이름을 입력하고 확인을 선택합니다.
프로젝트로 리디렉션되고 GitLab에서 리디렉션을 적용합니다. 리포지터리 리디렉션에 대한 자세한 내용은 리포지터리 경로 변경 시 발생하는 일을 참조하세요.
GitLab SaaS 프로젝트를 다른 구독 티어로 전환
GitLab SaaS Premium 또는 Ultimate로 라이선스된 네임스페이스에서 프로젝트를 GitLab Free로 전환할 때:
- 프로젝트 액세스 토큰이 취소됩니다.
- 파이프라인 구독 및 테스트 케이스이 삭제됩니다.
문제 해결
프로젝트 설정 작업 중 다음 문제를 만날 수도 있거나 특정 작업을 완료하기 위해 대안적인 방법이 필요할 수 있습니다.
콘솔을 통한 프로젝트 이전
UI 또는 API를 통한 프로젝트 전송이 작동하지 않는 경우 Rails 콘솔 세션에서 전송을 시도할 수 있습니다.
p = Project.find_by_full_path('<project_path>')
# 프로젝트의 소유자 설정
current_user = p.creator
# 원하는 네임스페이스
namespace = Namespace.find_by_full_path("<new_namespace>")
Projects::TransferService.new(p, current_user).execute(namespace)