그룹 및 프로젝트 가져오기 및 마이그레이션

세부정보: Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

기존 프로젝트를 GitLab으로 가져오거나 GitLab 그룹 및 프로젝트를 다른 위치로 복사하는 방법은 다음과 같습니다:

  • 직접 전송을 사용하여 GitLab 그룹 및 프로젝트를 마이그레이션합니다.
  • 지원되는 가져오기 소스에서 가져오기.
  • 다른 가져오기 소스에서 가져오기.

GitLab에서 GitLab로 이전하기

GitLab 인스턴스 간 또는 동일한 GitLab 인스턴스 내에서 GitLab 그룹 및 프로젝트를 복사하는 가장 좋은 방법은 직접 전송을 사용하는 것입니다.

다른 옵션으로는 GitLab 그룹을 이동하는 것이 있습니다. 이를 위해 그룹 이전을 사용할 수 있습니다.

또한 지원되는 가져오기 소스인 GitLab 파일 익스포트를 사용하여 GitLab 프로젝트를 복사할 수 있습니다.

지원되는 가져오기 소스

  • 모든 가져오기 도구는 GitLab Self-Managed 설치에서 기본적으로 비활성화됩니다. 이 변경 사항은 GitLab 16.0에서 도입되었습니다.

기본적으로 사용할 수 있는 가져오기 소스는 사용 중인 GitLab에 따라 다릅니다:

  • GitLab.com: 모든 사용 가능한 가져오기 소스는 기본적으로 활성화됩니다.
  • GitLab Self-Managed: 어떠한 가져오기 소스도 기본적으로 활성화되지 않으며 활성화해야 합니다.

GitLab은 지원되는 가져오기 소스에서 프로젝트를 가져올 수 있습니다.

가져오기 소스 설명
Bitbucket Cloud Bitbucket.org을 OmniAuth 제공자로 사용하여 Bitbucket 리포지토리를 가져옵니다.
Bitbucket Server Bitbucket Server(Stash로도 알려짐)에서 리포지토리를 가져옵니다.
FogBugz FogBugz 프로젝트를 가져옵니다.
Gitea Gitea 프로젝트를 가져옵니다.
GitHub GitHub.com 또는 GitHub Enterprise에서 가져옵니다.
GitLab export GitLab 익스포트 파일을 사용하여 프로젝트를 하나씩 마이그레이션합니다.
매니페스트 파일 매니페스트 파일을 업로드합니다.
URL별 리포지토리 Git 리포지토리 URL을 제공하여 새 프로젝트를 만듭니다.

사용하지 않는 가져오기 소스 비활성화하기

신뢰하는 소스에서만 프로젝트를 가져오십시오. 신뢰할 수 없는 소스에서 프로젝트를 가져오면 공격자가 민감한 데이터를 훔칠 수 있습니다. 예를 들어, 악의적인 .gitlab-ci.yml 파일이 포함된 가져오기된 프로젝트는 공격자가 그룹 CI/CD 변수를 유출할 수 있도록 할 수 있습니다.

GitLab Self-Managed 관리자는 필요하지 않은 가져오기 소스를 비활성화함으로써 공격 대상을 줄일 수 있습니다:

  1. 왼쪽 사이드바에서 아래쪽에 관리자 영역을 선택합니다.
  2. 설정 > 일반을 선택합니다.
  3. 가시성 및 액세스 제어를 펼칩니다.
  4. 가져오기 소스로 스크롤합니다.
  5. 필요하지 않은 가져오기 도구에 대한 선택란을 지웁니다.

다른 가져오기 소스

다음에서 다른 가져오기 소스에서 가져오기 정보를 읽어볼 수 있습니다:

Subversion에서 리포지토리 가져오기

GitLab은 Subversion 리포지토리를 자동으로 Git로 마이그레이션할 수 없습니다. Subversion 리포지토리를 Git으로 변환하는 것은 어려울 수 있지만, git svn을 포함하여 여러 도구가 있습니다. git svn은 매우 작고 기본적인 리포지토리에 대해, reposurgeon은 크고 복잡한 리포지토리에 대해 사용됩니다.

프로젝트 가져오기 기록 보기

사용자가 만든 모든 프로젝트 가져오기를 확인할 수 있습니다. 이 목록은 다음을 포함합니다:

  • 외부 시스템에서 프로젝트가 가져와졌다면 소스 프로젝트의 경로 또는 GitLab 프로젝트가 마이그레이션된 경우 가져오기 방법입니다.
  • 대상 프로젝트의 경로.
  • 각 가져오기 시작일.
  • 각 가져오기 상태.
  • 발생한 오류에 대한 상세 정보.

프로젝트 가져오기 기록을 보려면:

  1. GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 위쪽에 새로 만들기 () 및 새 프로젝트/리포지토리를 선택합니다.
  3. 프로젝트 가져오기를 선택합니다.
  4. 오른쪽 상단에서 기록 링크를 선택합니다.
  5. 특정 가져오기에 대한 오류가 있는 경우 세부정보를 선택하여 확인합니다.

이 기록에는 내장된 또는 사용자 정의 템플릿으로부터 생성된 프로젝트도 포함됩니다. GitLab은 URL별 리포지토리로 가져오기 를 사용하여 템플릿에서 새 프로젝트를 만듭니다.

LFS 객체를 포함한 프로젝트 가져오기

LFS 객체를 포함한 프로젝트를 가져올 때, 프로젝트에 .lfsconfig 파일이 있고 URL 호스트(lfs.url)가 저장소 URL 호스트와 다른 경우 LFS 파일이 다운로드되지 않습니다. 자세한 내용은 .lfsconfig을 참조하세요.

전문 서비스 사용하여 마이그레이션

원하신다면 직접 하는 대신, GitLab 전문 서비스를 활용하여 그룹 및 프로젝트를 GitLab으로 마이그레이션할 수 있습니다. 자세한 내용은 Professional Services Full Catalog를 참조하세요.

문제 해결

가져온 저장소에 브랜치가 누락됨

가져온 저장소에 소스 저장소의 모든 브랜치가 포함되지 않는 경우:

  1. 환경 변수 IMPORT_DEBUG=true를 설정합니다.
  2. 다른 그룹, 서브그룹 또는 프로젝트 이름으로 다시 가져오기를 시도합니다.
  3. 여전히 일부 브랜치가 누락된 경우 importer.log을 검사합니다 (예: jq를 사용하여).