프로젝트 전송

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

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

프로젝트를 다른 네임스페이스로 전송할 때,
프로젝트를 다른 그룹으로 이동합니다.
프로젝트의 모든 구성 요소(예: 이슈, 병합 요청, 파이프라인, 대시보드)는
전송된 프로젝트와 함께 이동합니다.
프로젝트의 경로도 변경됩니다,
필요한 경우 프로젝트 구성 요소에 대한 URL을 업데이트하는 것을 잊지 마세요.

대상 네임스페이스에 일치하는 그룹 레이블이 없으면
이슈와 병합 요청을 위해 새로운 프로젝트 수준 레이블이 생성됩니다.

caution
전송 과정에서 오류가 발생하면
프로젝트 구성 요소 또는 최종 사용자의 종속성 데이터 손실이 발생할 수 있습니다.

Prerequisites:

  • 전송하려는 그룹에 대해
    최소한 Maintainer 역할을 가지고 있어야 합니다.
  • 전송할 프로젝트의 소유자여야 합니다.
  • 그룹에서 새 프로젝트 생성을 허용해야 합니다.
  • 프로젝트에는 컨테이너 이미지가 포함되어 있지 않아야 합니다.
  • 프로젝트에는 보안 정책이 없어야 합니다.
    보안 정책이 프로젝트에 지정되어 있는 경우 전송 중 자동으로 해제됩니다.
  • 루트 네임스페이스가 변경되면, 프로젝트에서 이름 규칙을 따르는 npm 패키지를 제거해야 합니다.
    프로젝트를 전송한 후 다음 중 하나를 수행할 수 있습니다:

    • 새로운 루트 네임스페이스 경로로 패키지 범위를 업데이트하고,
      프로젝트에 다시 게시합니다.
    • 루트 네임스페이스 경로를 업데이트하지 않고 패키지를 프로젝트에 다시 게시하면,
      패키지가 더 이상 이름 규칙을 따르지 않게 됩니다.
      루트 네임스페이스 경로를 업데이트하지 않고 패키지를 다시 게시하면,
      인스턴스 엔드포인트에서
      사용 가능하지 않게 됩니다.

프로젝트를 전송하려면:

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

프로젝트의 새 페이지로 리디렉션되며 GitLab이 리디렉션을 적용합니다.
저장소 리디렉션에 대한 자세한 내용은
저장소 경로가 변경될 때 발생하는 일을 참조하세요.

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

GitLab.com 프로젝트를 다른 구독 계층으로 전송하기

GitLab.com 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)

관련 주제