GitLab에서 마이그레이션 정보
리포지토리를 GitLab에서 (GitHub Enterprise Importer또는GitHub Enterprise Cloud)로 마이그레이션하는 데 GitHub.com 사용할 GHE.com 수 있습니다.
마이그레이션은 마이그레이션 API를 GL2GH extension of the GitHub CLI중심으로 플랫폼 간 명령줄 래퍼인 마이그레이션을 GitHub 수행합니다. 각 리포지토리에 대해 다음을 수행 GL2GH extension합니다.
- **
** GitLab 프로젝트를
.tar.gzGit 리포지토리와 프로젝트 메타데이터(예: 문제, 병합 요청, 레이블, 중요 시점 및 릴리스)가 포함된 보관 파일로 내보냅니다. - ** ** 명령을 실행하는 컴퓨터에서 로컬로 보관을 단계별로 지정합니다.
- 보관 파일을 읽을 수 있는 GitHub Blob Storage에 업로드합니다(AWS S3 또는 Azure Blob Storage 소유한 스토리지 계정 중 하나GitHub-owned blob storage).
- 보관 파일을 대상 조직으로 가져와 GitLab 엔터티를 해당 엔터티로 GitHub 변환합니다.
엔터프라이즈 계정을 만들기 전에 엔터프라이즈에서 GitHub사용할 Enterprise Managed Users지 여부를 결정합니다. 이는 멤버가 인증하는 방법과 ID 및 액세스를 관리하는 방법에 영향을 줍니다. GitHub Enterprise Cloud에 대한 엔터프라이즈 유형 선택을(를) 참조하세요.
지원되는 GitLab 버전
GitLab.com 및 자체 관리형 GitLab 인스턴스 모두에서 마이그레이션할 수 있습니다.
GitHub Enterprise Importer 는 현재 유지 관리되는(비수명) 버전의 GitLab을 지원합니다. 유지 관리되는 버전 목록은 GitLab 설명서 의 지원 문을 참조하세요. 이전 버전은 테스트되거나 평가되지 않았습니다.
마이그레이션되는 데이터
데이터가 GitLab 내보내기 보관에 GitHub Enterprise Importer 있는 경우 GitLab GitHub Enterprise Cloud에서 다음 데이터를 마이그레이션합니다.
- Git 원본(커밋 기록 포함) 및 리포지토리 wiki
- 커밋 주석
- 기본 분기와 같이 깔끔하게 매핑되는 Project 구성
- 문제 상태 및 중요 시점 이벤트를 비롯한 문제 및 문제 주석
- 스레드 토론은 원래 스레드의 컨텍스트를 사용하여 플랫 주석으로 마이그레이션됩니다.
- 다음을 포함하여 끌어오기 요청으로 변환되는 병합 요청
- 주석(diff 데이터가 있을 때만 검토 주석으로 마이그레이션되고, 그렇지 않으면 플랫 이슈 주석으로 마이그레이션되며, 내보내기에서 최신 diff만 있음)
- 검토자 및 승인자
- 요청 상태 이벤트 병합
- 마일스톤
- 타임라인 이벤트
- 이모지 반응
- 업로드(첨부 파일)
- 릴리스 및 릴리스 자산
- Project 멤버(마네킹으로 마이그레이션됨)
마이그레이션되지 않는 데이터
다음 데이터는 마이그레이션되지 않습니다.
- Git LFS objects: 포인터 파일은 Git 기록과 함께 이동하지만 이진 개체는 후속 작업으로 마이그레이션 대상으로 별도로 푸시되어야 합니다. 자세한 내용은 리포지토리 복제을(를) 참조하세요.
- 병합 열차, 파이프라인 게이트, 필수 승인, 토픽, 아바타 및 미러링을 포함한 리포지토리 정책
- 그룹 설정 및 그룹 멤버 자격
- 코드 조각, 문제 보드, 시간 추적 데이터 및 디자인 관리 데이터
- CI/CD 파이프라인 및 파이프라인 일정(
.gitlab-ci.yml자동 GitHub Actions 동등한 항목 없음) - 취약성 보고서
- 웹후크, CI/CD 변수, 작업 추적 및 아티팩트, 자식 파이프라인 기록 및 파이프라인 트리거와 같이 GitLab이 내보내기에서 전혀 포함하지 않는 데이터
마이그레이션된 데이터에 대한 제한 사항
마이그레이션할 수 있는 항목 GitHub Enterprise Importer 에는 제한이 있습니다. 일부는 제한 사항 GitHub으로 인해 발생하지만 다른 일부는 자체의 GitHub Enterprise Importer 제한 사항입니다.
의 제한 사항 GitHub
- 단일 Git 커밋에 대한 2GiB 크기 제한: Git 리포지토리의 단일 커밋은 2GiB보다 클 수 없습니다. 커밋이 2GiB보다 큰 경우 커밋을 각각 2GiB 이하인 더 작은 커밋으로 분할해야 합니다.
- 단일 푸시에 대한 2GiB 크기 제한: 단일 푸시는 2GiB보다 클 수 없습니다. 큰 푸시는 오류와 함께 실패합니다
pack exceeds maximum allowed size. - Git 참조에 대한 255 바이트 제한: 일반적으로 "ref"라고 하는 단일 Git 참조는 255바이트보다 큰 이름을 가질 수 없습니다. 일반적으로 참조 길이는 255자를 초과할 수 없지만 이모지와 같은 ASCII가 아닌 문자는 둘 이상의 바이트를 사용할 수 있습니다. Git 참고자료가 너무 크면 명확한 오류 메시지가 반환됩니다.
- 100MiB 파일 크기 제한: 마이그레이션을 완료한 후에는 Git 리포지토리의 단일 파일이 100MiB를 초과할 수 없습니다. 리포지토리 마이그레이션 중에 이 제한은 400MiB로 증가합니다. 대용량 파일을 저장하는 데 사용하는 Git LFS 것이 좋습니다.
의 제한 사항 GitHub Enterprise Importer
- Git 리포지토리의 40GB 크기 제한(공개 미리 보기): 이 제한은 소스 코드에만 적용됩니다. 리포지토리 보관이 한도를 초과하는지 확인하려면 git-sizer 도구를 사용하고 출력의 총 미확인 개체 크기를 검토합니다. git-sizer 도구는 또한 마이그레이션에 영향을 미칠 수 있는 큰 파일 보고서, 미확인 개체 크기, 커밋 크기 및 트리 수와 관련된 잠재적인 문제를 식별하는 데 도움이 됩니다.
- 400MiB 파일 크기 제한: 리포지토리를 마이그레이션할 때 Git 리포지 GitHub Enterprise Importer토리의 단일 파일은 400MiB를 초과할 수 없습니다. 대용량 파일을 저장하는 데 사용하는 Git LFS 것이 좋습니다.
- **Git LFS 마이그레이션되지 않은 개체:**Importer 사용하는 Git LFS리포지토리를 마이그레이션할 수 있지만 LFS 개체 자체는 마이그레이션되지 않습니다. 마이그레이션이 완료된 후 후속작업으로 마이그레이션 대상에 푸시할 수 있습니다.
- 지연된 코드 검색 기능: 리포지토리가 마이그레이션된 후 검색 인덱스를 다시 인덱싱하는 데 몇 시간이 걸릴 수 있으며, 코드 검색은 다시 인덱싱이 완료될 때까지 예기치 않은 결과를 반환할 수 있습니다.
- 조직에 대해 구성된 규칙 집합으로 인해 마이그레이션 실패: 예를 들어 커밋 작성자의 이메일 주소가
@monalisa.cat(으)로 끝나야 하는 규칙을 구성하고 마이그레이션하려는 리포지토리에 이 규칙을 준수하지 않는 커밋이 포함되어 있으면 마이그레이션이 실패합니다. - 마네킹 콘텐츠가 검색되지 않을 수 있습니다. 마네킹은 가져온 콘텐츠(예: 이슈, 끌어오기 요청, 메모 등)가 연결된 자리 표시자 사용자입니다. 할당된 이슈와 같이 마네킹과 연결된 콘텐츠를 검색하는 경우 이슈를 찾지 못할 수 있습니다. 마네킹이 회수되면 새 소유자를 통해 콘텐츠를 찾아야 합니다.
GitLab의 제한 사항
- GitLab 내보내기 보관에 대한 40GB 제한: GitLab의 프로젝트 내보내기 API는 GitLab.com 40GB보다 큰 보관 파일을 생성하지 않습니다. 원본 크기 제한과 GitHub 달리 프로젝트 메타데이터와 Git 원본을 비롯한 전체 내보내기 보관에 적용됩니다. 이 제한은 GitLab에 의해 설정되며 자체 관리형 인스턴스에 따라 다를 수 있습니다.