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

GitHub.com에서 마이그레이션 데이터 내보내기

API를 사용하여 마이그레이션할 리포지토리를 선택한 다음, GitHub Enterprise Server 인스턴스로 가져올 수 있는 마이그레이션 보관 파일을 생성하여 GitHub.com의 조직에서 마이그레이션 데이터를 내보낼 수 있습니다.

GitHub에서 원본 조직 준비

  1. 원본 조직의 리포지토리에 대한 소유자 권한이 있는지 확인합니다.

  2. GitHub.com에서의 repoadmin:org 범위로 액세스 토큰 생성

  3. 가동 중지 시간을 최소화하려면 소스 인스턴스에서 내보낼 리포지토리 목록을 만듭니다. 각 리포지토리의 URL을 별도의 줄에 나열하는 텍스트 파일을 사용하여 한 번에 여러 리포지토리를 내보내기에 추가할 수 있습니다.

조직의 리포지토리 내보내기

참고: 마이그레이션 후에는 포크 관계가 유지되지 않습니다.

GitHub.com에서 리포지토리 데이터를 내보내려면 마이그레이션 API를 사용합니다.

마이그레이션 API는 현재 미리 보기 기간이므로 나중에 엔드포인트 및 매개 변수가 변경될 수 있습니다.

마이그레이션 보관 파일 생성

참고: 리포지토리를 잠그면 리포지토리에 대한 모든 쓰기 권한이 차단됩니다. 새 팀 또는 협력자를 잠긴 리포지토리와 연결할 수 없습니다.

평가판 실행을 수행하는 경우 리포지토리를 잠글 필요가 없습니다. 사용 중인 리포지토리에서 데이터를 마이그레이션하는 경우 GitHub에서는 리포지토리를 잠글 것을 적극 권장합니다. 자세한 내용은 “마이그레이션 정보”를 참조하세요.

  1. 조직 구성원에게 마이그레이션을 수행할 예정임을 알립니다. 내보내는 리포지토리 수에 따라 몇 분 정도 걸릴 수 있습니다. 가져오기를 포함한 전체 마이그레이션에 몇 시간이 소요될 수 있으므로 전체 프로세스가 소요되는 시간을 결정하기 위해 평가판을 실행하는 것이 좋습니다. 자세한 내용은 “마이그레이션 정보”를 참조하세요.

  2. POST 요청을 마이그레이션 엔드포인트로 전송하여 마이그레이션을 시작하세요. 필요한 사항:

    • 인증용 액세스 토큰
    • 마이그레이션할 리포지토리 목록:
      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X POST \
      -H "Accept: application/vnd.github+json" \
      -d'{"lock_repositories":true,"repositories":["ORG_NAME/REPO_NAME", "ORG_NAME/REPO_NAME"]}' \
      https://api.github.com/orgs/ORG_NAME/migrations
    • 리포지토리를 마이그레이션하기 전에 잠그려면 lock_repositoriestrue로 설정되었는지 확인합니다. 적극 권장 사항입니다.
    • 엔드포인트에 exclude_attachments: true를 전달하여 첨부 파일을 제외할 수 있습니다. 첨부 파일은 용량이 클 수 있으며 최종 마이그레이션 보관 파일을 불필요하게 블로트할 수 있습니다. 최종 보관 크기는 20GB 미만이어야 합니다.

    이 요청은 마이그레이션을 나타내는 고유의 id를 반환합니다. 마이그레이션 API에 대한 후속 호출에 필요합니다.

  3. 마이그레이션 상태 엔드포인트GET 요청을 보내 마이그레이션 상태를 가져옵니다. 필요한 사항:

    • 인증용 액세스 토큰
    • 마이그레이션의 고유 id :
      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID

    마이그레이션은 다음 상태 중 하나일 수 있습니다.

    • pending - 마이그레이션이 아직 시작되지 않았음을 의미합니다.
    • exporting - 마이그레이션이 진행 중임을 의미합니다.
    • exported - 마이그레이션이 성공적으로 완료되었음을 의미합니다.
    • failed - 마이그레이션이 실패했음을 의미합니다.
  4. 마이그레이션을 내보낸 후 마이그레이션 다운로드 엔드포인트GET 요청을 전송하여 마이그레이션 보관 파일을 다운로드합니다. 필요한 사항:

    • 인증용 액세스 토큰
    • 마이그레이션의 고유 id :
      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      -L -o migration_archive.tar.gz \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
  5. 마이그레이션 보관 파일은 7일 후에 자동으로 삭제됩니다. 더 빨리 삭제하려는 경우 마이그레이션 보관 삭제 엔드포인트DELETE 요청을 보낼 수 있습니다. 필요한 사항:

    • 인증용 액세스 토큰
    • 마이그레이션의 고유 id :
      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X DELETE \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
  6. GitHub Enterprise Server 인스턴스로 가져오기 위해 보관된 마이그레이션 데이터를 준비하려면 “엔터프라이즈로 데이터 마이그레이션 준비”를 참조하세요.