프로젝트 이전

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

프로젝트를 다른 네임스페이스로 이전

프로젝트를 다른 네임스페이스로 이전하면 프로젝트가 다른 그룹으로 이동됩니다. 프로젝트의 컴포넌트(이슈, Merge Request, 파이프라인 및 대시보드와 같은)는 모두 이전된 프로젝트와 함께 이동합니다. 프로젝트의 경로도 변경됩니다, 따라서 필요한 경우 프로젝트 컴포넌트의 URL을 업데이트해야 합니다.

caution
이전 프로세스 중에 발생한 오류는 프로젝트 컴포넌트나 최종 사용자의 종속 항목의 데이터 손실로 이어질 수 있습니다.

전제 조건:

  • 이전하려는 그룹의 Maintainer 역할을 적어도 가지고 있어야 합니다.
  • 이전하려는 프로젝트의 소유자여야 합니다.
  • 그룹은 새 프로젝트를 만들 수 있어야 합니다.
  • 프로젝트에 컨테이너 이미지가 포함되어 있으면 안 됩니다.
  • 프로젝트에 보안 정책이 없어야 합니다. 프로젝트에 보안 정책이 할당되어 있으면 전송 중 자동으로 해제됩니다.
  • 루트 네임스페이스가 변경되면 프로젝트에서 naming rule을 따르는 npm 패키지를 제거해야 합니다. 프로젝트를 전송한 후 다음 중 하나를 할 수 있습니다.

    • 새 루트 네임스페이스 경로로 패키지 범위를 업데이트하고 프로젝트에 다시 게시합니다.
    • 루트 네임스페이스 경로를 업데이트하지 않고 패키지를 프로젝트에 다시 게시하여 naming rule을 더 이상 따르지 않게 합니다. 루트 네임스페이스 경로를 업데이트하지 않고 패키지를 다시 게시하면 instance level endpoint에서 사용할 수 없습니다.

프로젝트를 전송하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 일반을 선택합니다.
  3. 고급을 확장합니다.
  4. 프로젝트 전송에서 프로젝트를 전송할 네임스페이스를 선택합니다.
  5. 프로젝트 전송을 선택합니다.
  6. 프로젝트 이름을 입력하고 확인을 선택합니다.

프로젝트로 리디렉션되고 GitLab에서 리디렉션을 적용합니다. 리포지터리 리디렉션에 대한 자세한 내용은 리포지터리 경로 변경 시 발생하는 일을 참조하세요.

note
관리자인 경우 관리 인터페이스를 사용하여 어떤 프로젝트든 어떤 네임스페이스로 이동할 수 있습니다.

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)

관련 주제