Skip to main content
설명서에 자주 업데이트를 게시하며 이 페이지의 번역이 계속 진행 중일 수 있습니다. 최신 정보는 영어 설명서를 참조하세요.

GitHub Enterprise Importer를 사용하여 마이그레이션 문제 해결

마이그레이션이 실패하거나 예기치 않은 결과가 발생하는 경우 일반적인 문제 해결 단계를 시도할 수 있습니다.

참고: GitHub Enterprise Importer은(는) 현재 공개 베타 버전이며 변경될 수 있습니다.

GitHub Enterprise Importer에 대한 문제 해결 단계 정보

마이그레이션에 실패하거나 예기치 않은 결과가 발생하는 경우 일반적으로 다양한 문제를 resolve 아래의 문제 해결을 위한 첫 번째 단계를 시도해 보세요. 이러한 첫 번째 단계가 문제를 resolve 않는 경우 마이그레이션 로그에 오류 메시지를 검사. 그런 다음 이 문서에서 오류 메시지를 찾아 해결 단계를 시도합니다.

오류 메시지의 문제 해결 단계를 시도한 후 문제를 resolve 수 없는 경우 GitHub 지원에 문의할 수 있습니다.

문제 해결을 위한 첫 번째 단계

자세히 조사하기 전에 일반적으로 다양한 문제를 resolve 이러한 문제 해결 단계를 시도해 보세요.

  1. 마이그레이션하는 데 사용하는 최신 버전의 GitHub CLI 확장을 사용하고 있는지 확인합니다. 그렇지 않은 경우 최신 버전으로 업그레이드합니다.
  2. 모든 액세스 요구 사항을 충족하는지 확인합니다. 자세한 내용은 "GitHub Enterprise Importer에 대한 액세스 관리"을 참조하세요.
  3. 마이그레이션을 다시 실행해 보세요. 일부 마이그레이션 문제는 일시적이며 두 번째 시도가 작동할 수 있습니다.
  4. 유사한 데이터가 있는 다른 리포지토리에서 마이그레이션을 실행해 보세요. 이렇게 하면 문제가 리포지토리에 고유한지 아니면 더 광범위한 데이터 셰이프 문제를 나타내는지 확인하는 데 도움이 됩니다.

이러한 단계에서 문제를 resolve 않는 경우 마이그레이션 로그에서 오류 메시지를 검토합니다. 검사 로그는 마이그레이션 실패 또는 성공 여부에 따라 달라집니다.

실패한 마이그레이션 문제 해결

마이그레이션이 실패하면 각 마이그레이션에 대해 GitHub CLI에서 생성된 자세한 로그 항목을 검토합니다. 로그 파일은 마이그레이션을 실행한 동일한 디렉터리에 저장됩니다.

로그에는 실행한 각 명령의 레코드와 GitHub CLI이 응답에서 수행한 모든 API 요청이 포함됩니다. 오류 및 오류 메시지는 일반적으로 로그의 끝 부분에 나타납니다.

마이그레이션을 실행할 수 없음

또는 Missing permissions와 같은 No access to createMigrationMutation 오류가 표시되면 개인 계정 마이그레이션을 실행하는 데 필요한 액세스 권한이 없습니다. 조직 소유자 또는 마이그레이션자 역할이 부여되었는지 확인합니다. 마이그레이션자 역할 부여에 대한 자세한 내용은 "GitHub Enterprise Importer를 사용하여 리포지토리 마이그레이션"을 참조하세요.

참고: GitHub 제품 간에 마이그레이션하는 경우 조직 소유자 원본 및 대상 조직 모두에 대한 마이그레이션자 역할이 부여되었는지 확인합니다.

리소스는 organization SAML 적용으로 보호됩니다.

이 오류는 GitHub CLI에 제공한 personal access token에 SAML Single Sign-On에 사용할 수 있는 권한을 부여해야 했음을 나타냅니다. 자세한 내용은 "SAML Single Sign-On에 사용할 개인용 액세스 토큰 권한 부여"을 참조하세요.

401 Unauthorized 응답

상태 코드가 포함된 401 오류는 일반적으로 GitHub CLI에 제공한 personal access token에 필요한 범위가 없음을 나타냅니다. 원본 및 대상 조직 모두에 대해 제공한 personal access token의 범위를 확인합니다. 필요한 범위에 대한 자세한 내용은 "GitHub Enterprise Importer에 대한 액세스 관리"을 참조하세요.

404 Not Found 응답

상태 코드를 포함하는 404 오류는 일반적으로 명령 중 하나의 오타를 나타냅니다. 입력한 정확한 명령에 대한 마이그레이션 로그를 검토하고 원본 리포지토리, organization 또는 프로젝트의 오타에 대한 검사.

Archive generation failed 응답

GitHub Enterprise Server에서 마이그레이션할 때 응답을 받으면 Archive generation failed... 리포지토리가 너무 클 수 있습니다. 리포지토리 크기 제한에 대한 자세한 내용은 "GitHub Enterprise Importer에 대한 마이그레이션 지원"을 참조하세요.

먼저 명령과 함께 플래그를 사용하여 마이그레이션에서 릴리스를 --skip-releases 제외해 봅니다 migrate-repo .

작동하지 않는 경우 GitHub Enterprise Server 3.8.0 이상으로 업그레이드하는 것이 좋습니다. 업그레이드할 수 없는 경우 다른 옵션은 를 사용하여 ghe-migrator리포지토리 보관 파일을 수동으로 생성하는 것입니다.

  1. 리포지토리에 대한 마이그레이션 보관 파일을 생성합니다. 한 번에 하나의 리포지토리만 내보내야 합니다. 지침은 "엔터프라이즈에서 마이그레이션 데이터 내보내기"의 GitHub Enterprise Server 설명서.
  2. 선택한 Blob Storage 공급자에 마이그레이션 보관 파일을 업로드합니다.
  3. AWS S3 사전 서명된 URL 또는 Azure Blob Storage SAS URL과 같이 GitHub.com에 액세스할 수 있는 마이그레이션 보관 파일의 수명이 짧은 URL을 생성합니다.
  4. --metadata-archive-url 플래그가 migrate-repo --git-archive-url 모두 이전 단계의 보관 URL로 설정된 명령을 호출합니다.

cipher name is not supported개 오류

Bitbucket 서버에서 마이그레이션하고 마이그레이션을 실행할 때와 같은 cipher name aes256-ctr for openssh key file is not supported 오류가 발생하는 경우 SSH 프라이빗 키는 지원되지 않는 암호를 사용합니다. 지원되는 암호에 대한 자세한 내용은 "GitHub Enterprise Importer에 대한 액세스 관리"을 참조하세요.

호환되는 새 SSH 키페어를 생성하려면 다음 명령을 실행합니다.

Shell
ssh-keygen -t ed25519 -Z aes256-cbc -C "your_email@example.com"

새 SSH 키 쌍을 생성한 후 키를 사용하려면 먼저 공개 키를 Bitbucket Server instance authorized_keys에 추가해야 합니다.

Subsystem 'sftp' could not be executed개 오류

Bitbucket 서버에서 마이그레이션 중이고 와 같은 Subsystem 'sftp' could not be executed오류가 발생하는 경우 서버에서 SFTP를 사용하도록 설정되지 않았거나 사용자 계정에 SFTP 액세스 권한이 없습니다.

서버 관리자에게 문의하여 사용자 계정에 대한 SFTP 액세스를 사용하도록 요청해야 합니다.

Source export archive... does not exist개 오류

Bitbucket Server에서 마이그레이션 중이고 와 같은 Source export archive (/var/atlassian/application-data/bitbucket/shared/migration/export/Bitbucket_export_1.tar) does not exist오류가 표시되는 경우 GitHub CLI는 Bitbucket Server instance 잘못된 위치에서 마이그레이션 보관 파일을 찾고 있습니다.

이 문제를 resolve 위해 에 대한 gh bbs2gh migrate-repo 인수를 Bitbucket 서버 또는 데이터 센터의 공유 홈 디렉터리로 설정합니다--bbs-shared-home. 기본 공유 홈 디렉터리가 /var/atlassian/application-data/bitbucket/shared이지만 구성이 다를 수 있습니다.

Bitbucket Server에서 공유 홈 디렉터리를 식별할 수 있습니다.

  1. Bitbucket 서버 또는 데이터 센터 instance 관리 영역으로 이동합니다.
  2. 사이드바의 "시스템"에서 "스토리지"를 클릭합니다.
  3. "공유 디렉터리"에서 서버의 공유 홈 디렉터리 위치를 확인합니다.

여러 메모가 있는 클러스터 모드에서 Bitbucket 데이터 센터를 실행하는 경우 공유 디렉터리가 클러스터 노드 간에 공유되고 각 노드의 동일한 위치에 탑재되어야 합니다.

Repository rule violations found개 오류

와 같은 GH013: Repository rule violations found for refs/heads/main오류가 발생하면 Repository rule violations found 원본 리포지토리의 데이터가 대상 organization 구성된 규칙 집합(퍼블릭 베타)과 충돌합니다. 자세한 내용은 "About rulesets"을 참조하세요.

마이그레이션하는 동안 규칙 집합을 일시적으로 사용하지 않도록 설정하거나 바이패스 모드 또는 바이패스 목록을 사용하여 구성된 규칙에서 마이그레이션을 제외할 수 있습니다. 자세한 내용은 "organization 리포지토리에 대한 규칙 집합 관리"을 참조하세요.

Your push would publish a private email address개 오류

에 오류가 GH007: Your push would publish a private email address발생하면 Git source migration failed 마이그레이션하려는 Git 원본에 GitHub에 푸시되지 않도록 차단한 이메일 주소로 작성된 커밋이 포함됩니다. 자세한 내용은 "개인 메일 주소를 노출하는 명령줄 푸시 차단"을 참조하세요.

이 오류를 resolve 위해 Git 기록을 다시 작성하여 전자 메일 주소를 제거하거나 "내 전자 메일을 노출하는 명령줄 푸시 차단" 설정을 사용하지 않도록 설정할 수 있습니다.

성공적인 마이그레이션 문제 해결

마이그레이션이 성공하지만 예기치 않은 결과가 발생하는 경우 마이그레이션 로그에서 오류 메시지를 검토합니다. 자세한 내용은 "GitHub Enterprise Importer에 대한 마이그레이션 로그 액세스"을 참조하세요.

참고: "마이그레이션 로그" 문제에 아래쪽에 "마이그레이션 완료됨"이 포함된 경우 리포지토리가 마이그레이션되었습니다. 오류 메시지는 끌어오기 요청에 대한 주석과 같이 리포지토리 내의 특정 항목이 올바르게 마이그레이션되지 않았을 수 있음을 나타냅니다.

리포지토리 메타데이터가 너무 커서 마이그레이션할 수 없습니다.

"마이그레이션 로그" 문제 또는 GitHub CLI에 "마이그레이션하기에 너무 큰 리포지토리 메타데이터"가 표시되면 리포지토리가 최대 보관 크기인 10GB를 초과합니다. 이는 대용량 릴리스 자산으로 인해 발생하는 경우가 많습니다. 명령에 대한 플래그를 사용하여 마이그레이션에서 릴리스를 --skip-releases 제외해 봅니다 migrate-repo .

주석이 diff

Azure DevOps에서 마이그레이션하는 경우 끌어오기 요청에서 변경되지 않은 줄의 끌어오기 요청 주석은 GitHub로 마이그레이션할 수 없습니다. 이러한 이유로 마이그레이션할 수 없는 모든 주석에 대해 이 경고가 표시됩니다.

참고: 끌어오기 요청에서 변경되지 않은 줄에 대한 주석만 이 제한의 영향을 받습니다. 끌어오기 요청에서 변경된 줄에 대한 주석이 마이그레이션됩니다.

영향을 받는 주석은 마이그레이션된 리포지토리에 없지만 이러한 경고는 추가 작업이 필요하지 않습니다.

끌어오기 요청 검토 스레드가 끌어오기 요청에서 마이그레이션되지 않음

이 경고는 "diff 주석이 아닌 주석"의 일반적인 형태입니다. 이 경고가 표시되면 위에서 설명한 것과 다른 이유로 끌어오기 요청의 파일에 대한 주석을 마이그레이션할 수 없습니다. 대부분의 경우 주석은 끌어오기 요청 기록의 한 지점에서 변경된 줄에 있었지만 끌어오기 요청이 더 이상 적용되지 않도록 변경되었습니다.

  • 주석은 끌어오기 요청 기록의 뒷부분에서 삭제된 파일에 있습니다.
  • 주석은 끌어오기 요청 기록의 한 지점에서 변경된 코드에 있었지만 나중에 작성자가 변경 사항을 제거하기로 결정했습니다.
  • 끌어오기 요청이 스쿼시 단일 커밋으로 병합되었으므로 GitHub에서 끌어오기 요청 기록을 제대로 구성하여 주석을 제대로 배치할 수 없습니다.

이 문제는 닫힌 끌어오기 요청에 가장 자주 영향을 줍니다.

영향을 받는 주석은 마이그레이션된 리포지토리에 없지만 이러한 경고는 추가 작업이 필요하지 않습니다.

organization 마이그레이션 후 팀 참조가 손상됨

와 같은 @octo-org/octo-team팀에 대한 참조는 조직 마이그레이션의 일부로 업데이트 되지 않습니다 . 이로 인해 파일이 예상대로 작동하지 않는 등 CODEOWNERS 대상 조직에서 문제가 발생할 수 있습니다.

마이그레이션 후에 이러한 참조를 업데이트하거나 원본 organization 이름을 변경하여 팀 이름을 유지하여 대상 organization 원래 이름을 사용할 수 있습니다.

예를 들어 원본 organization @octo-org이고 CODEOWNERS 파일에 팀에 @octo-org/octo-team대한 참조가 포함된 경우 마이그레이션 전에 원본 organization @octo-org-temp 이름을 로 변경하여 새 organization 이름으로 사용할 @octo-org 수 있습니다. 그런 다음 마이그레이션된 팀을 라고 하고 @octo-org/octo-team``CODEOWNERS 마이그레이션된 리포지토리의 파일이 예상대로 작동합니다.

GitHub 지원에 문의

위의 문제 해결 단계를 시도한 후에도 여전히 문제를 resolve 수 없는 경우 GitHub 지원 포털를 통해 GitHub 지원에 문의할 수 있습니다.