InfoGrab Docs

Bitbucket Cloud에서 마이그레이션

요약

Bitbucket Cloud에서 GitLab으로 프로젝트를 가져옵니다. Bitbucket Cloud 가져오기 도구는 Bitbucket Cloud에서 항목의 일부를 가져옵니다. Bitbucket Cloud 항목을 가져올 때:

히스토리
  • GitLab 16.0에서 Developer 역할 대신 Maintainer 역할 요구 사항이 도입되었으며 GitLab 15.11.1 및 GitLab 15.10.5에 백포트됨.
  • GitLab 16.6에서 bitbucket_parallel_importer라는 플래그와 함께 Bitbucket Cloud 병렬 가져오기가 도입. 기본적으로 비활성화됨.
  • GitLab 16.6에서 GitLab.com에서 활성화.
  • GitLab 16.7에서 일반 공개. 기능 플래그 bitbucket_parallel_importer 제거.
  • GitLab 17.2에서 일부 가져온 항목에 가져옴 배지가 도입.

Bitbucket Cloud에서 GitLab으로 프로젝트를 가져옵니다.

Bitbucket Cloud 가져오기 도구는 Bitbucket Cloud에서 항목의 일부를 가져옵니다.

Bitbucket Cloud 항목 가져옴
저장소 설명
Git 저장소 데이터
이슈 (댓글 포함)
풀 리퀘스트 (댓글 포함)
마일스톤
위키
레이블
마일스톤
LFS 오브젝트
풀 리퀘스트 승인
승인 규칙

가져오기 도구 워크플로#

Bitbucket Cloud 항목을 가져올 때:

  • 풀 리퀘스트 및 이슈에 대한 참조가 유지됩니다.
  • 저장소 공개 액세스가 유지됩니다. Bitbucket Cloud에서 저장소가 비공개이면 GitLab에서 비공개로 생성됩니다.
  • 가져온 이슈, MR 및 댓글에는 GitLab에 가져옴 배지가 표시됩니다.

이슈, 풀 리퀘스트 및 댓글을 가져올 때 Bitbucket Cloud 가져오기 도구는:

  • 작성자/담당자의 Bitbucket 닉네임을 사용하여 GitLab에서 동일한 Bitbucket ID를 찾으려고 합니다.
  • 일치하지 않거나 사용자가 GitLab 데이터베이스에서 찾을 수 없는 경우 프로젝트 생성자(일반적으로 가져오기 프로세스를 시작한 현재 사용자)를 작성자로 설정하고 원래 Bitbucket 작성자에 대한 참조를 이슈에 유지합니다.

풀 리퀘스트의 경우 가져오기 도구는:

  • 소스 SHA를 사용하고, 저장소에 존재하지 않는 경우 소스 커밋을 머지 커밋 SHA로 설정하려고 합니다.
  • MR 담당자를 작성자로 설정하고 GitLab의 Bitbucket ID와 일치하는 사용자 이름으로 검토자를 설정합니다.
  • GitLab에서 MR을 opened, closed, merged 중 하나로 설정합니다.

이슈의 경우 가져오기 도구는:

  • Bitbucket의 이슈 유형에 해당하는 레이블을 추가합니다. bug, enhancement, proposal, task 중 하나.
  • Bitbucket의 이슈가 resolved, invalid, duplicate, wontfix, closed 중 하나이면 GitLab에서 이슈를 닫습니다.

Bitbucket Cloud 가져오기 도구는 존재하지 않는 경우 새 네임스페이스(그룹)를 만듭니다. 네임스페이스가 이미 사용 중인 경우 저장소는 가져오기 프로세스를 시작한 사용자의 네임스페이스 아래에 가져옵니다.

전제 조건#

  • Bitbucket Cloud 통합을 활성화하거나 GitLab 관리자에게 활성화를 요청해야 합니다. GitLab.com에서 기본적으로 활성화됩니다.
  • Bitbucket Cloud 가져오기 소스를 활성화하거나 GitLab 관리자에게 활성화를 요청해야 합니다. GitLab.com에서 기본적으로 활성화됩니다.
  • 가져올 대상 그룹에 Maintainer 또는 소유자 역할이 있어야 합니다.
  • Bitbucket의 풀 리퀘스트는 동일한 소스 및 대상 프로젝트를 가져야 하며 프로젝트 포크에서 가져온 것이 아니어야 합니다. 그렇지 않으면 풀 리퀘스트가 빈 MR로 가져옵니다.

사용자 기여가 매핑되려면 각 사용자는 프로젝트 가져오기 전에 다음을 완료해야 합니다:

  1. Bitbucket 계정 설정의 사용자 이름이 Atlassian 계정 설정의 공개 이름과 일치하는지 확인합니다. 일치하지 않으면 Atlassian 계정 설정의 공개 이름을 Bitbucket 계정 설정의 사용자 이름과 일치하도록 수정합니다.
  2. GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 연결합니다.

Bitbucket Cloud 앱 비밀번호 생성 (제거됨)#

이 기능은 GitLab 18.9에서 더 이상 사용되지 않으며 GitLab 19.0에서 제거되었습니다. 대신 Bitbucket Cloud API 토큰을 사용하십시오.

Bitbucket Cloud API 토큰 생성#

가져오기 API를 사용하여 Bitbucket Cloud 저장소를 가져오려면 Bitbucket Cloud API 토큰을 만들어야 합니다.

Bitbucket Cloud API 토큰을 생성하려면:

  1. https://id.atlassian.com/manage-profile/security/api-tokens로 이동합니다.

  2. 스코프가 있는 API 토큰 만들기를 선택합니다.

  3. 토큰 이름과 만료일을 입력한 다음 다음을 선택합니다.

  4. Bitbucket을 선택한 다음 다음을 선택합니다.

  5. 최소한 다음 스코프를 선택합니다:

    • read:repository:bitbucket
    • read:pullrequest:bitbucket
    • read:issue:bitbucket
    • read:wiki:bitbucket
  6. 토큰 만들기를 선택하고 토큰을 복사합니다.

Bitbucket Cloud 저장소 가져오기#

  1. 오른쪽 상단에서 새로 만들기 (+)를 선택하고 새 프로젝트/저장소를 선택합니다.
  2. 프로젝트 가져오기를 선택합니다.
  3. Bitbucket Cloud를 선택합니다.
  4. Bitbucket에 로그인한 다음 액세스 허용을 선택하여 GitLab에 Bitbucket 계정 액세스 권한을 부여합니다.
  5. 가져올 프로젝트를 선택하거나 모든 프로젝트를 가져옵니다. 이름으로 프로젝트를 필터링하고 각 프로젝트를 가져올 네임스페이스를 선택할 수 있습니다.
  6. 프로젝트를 가져오려면:
    • 처음에는 가져오기를 선택합니다.
    • 이후에는 다시 가져오기를 선택합니다. 새 이름을 지정하고 다시 가져오기를 다시 선택합니다. 다시 가져오기는 소스 프로젝트의 새 복사본을 만듭니다.

문제 해결#

이 섹션에는 Bitbucket Cloud에서 가져올 때 발생할 수 있는 문제에 대한 가능한 해결책이 포함되어 있습니다.

가져오기 프로세스에서 잘못된 계정 사용#

올바른 계정으로 로그인했는지 확인합니다. 실수로 잘못된 계정으로 가져오기 프로세스를 시작한 경우 다음 단계를 따릅니다:

  1. GitLab의 Bitbucket 계정 액세스를 취소합니다. 이는 본질적으로 Bitbucket Cloud 저장소를 가져왔을 때의 프로세스를 되돌리는 것입니다.
  2. Bitbucket 계정에서 로그아웃하고 Bitbucket Cloud 저장소 가져오기를 다시 수행합니다.

이름이 일치함에도 사용자 매핑 실패#

사용자 매핑이 작동하려면 Bitbucket 계정 설정의 사용자 이름이 Atlassian 계정 설정의 공개 이름과 일치해야 합니다.

이름이 일치하지만 사용자 매핑이 여전히 실패하는 경우, 사용자가 GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 연결한 후 Bitbucket 사용자 이름을 수정했을 수 있습니다.

이 문제를 해결하려면 사용자가 GitLab 데이터베이스의 Bitbucket 외부 UID가 현재 Bitbucket 공개 이름과 일치하는지 확인하고 불일치하는 경우 다시 연결해야 합니다:

  1. API를 사용하여 인증된 사용자 가져오기.
  2. API 응답에서 identities 속성에는 GitLab 데이터베이스에 있는 Bitbucket 계정이 포함됩니다. extern_uid가 현재 Bitbucket 공개 이름과 일치하지 않으면 사용자는 GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 다시 연결해야 합니다.
  3. 재연결 후 사용자는 API를 다시 사용하여 GitLab 데이터베이스의 extern_uid가 현재 Bitbucket 공개 이름과 일치하는지 확인해야 합니다.

프로젝트를 가져온 사용자는 그런 다음 가져온 프로젝트를 삭제하고 다시 가져와야 합니다.

관련 주제#

Bitbucket Cloud에서 마이그레이션

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

Bitbucket Cloud에서 GitLab으로 프로젝트를 가져옵니다. Bitbucket Cloud 가져오기 도구는 Bitbucket Cloud에서 항목의 일부를 가져옵니다. Bitbucket Cloud 항목을 가져올 때:

히스토리
  • GitLab 16.0에서 Developer 역할 대신 Maintainer 역할 요구 사항이 도입되었으며 GitLab 15.11.1 및 GitLab 15.10.5에 백포트됨.
  • GitLab 16.6에서 bitbucket_parallel_importer라는 플래그와 함께 Bitbucket Cloud 병렬 가져오기가 도입. 기본적으로 비활성화됨.
  • GitLab 16.6에서 GitLab.com에서 활성화.
  • GitLab 16.7에서 일반 공개. 기능 플래그 bitbucket_parallel_importer 제거.
  • GitLab 17.2에서 일부 가져온 항목에 가져옴 배지가 도입.

Bitbucket Cloud에서 GitLab으로 프로젝트를 가져옵니다.

Bitbucket Cloud 가져오기 도구는 Bitbucket Cloud에서 항목의 일부를 가져옵니다.

Bitbucket Cloud 항목 가져옴
저장소 설명
Git 저장소 데이터
이슈 (댓글 포함)
풀 리퀘스트 (댓글 포함)
마일스톤
위키
레이블
마일스톤
LFS 오브젝트
풀 리퀘스트 승인
승인 규칙

가져오기 도구 워크플로#

Bitbucket Cloud 항목을 가져올 때:

  • 풀 리퀘스트 및 이슈에 대한 참조가 유지됩니다.
  • 저장소 공개 액세스가 유지됩니다. Bitbucket Cloud에서 저장소가 비공개이면 GitLab에서 비공개로 생성됩니다.
  • 가져온 이슈, MR 및 댓글에는 GitLab에 가져옴 배지가 표시됩니다.

이슈, 풀 리퀘스트 및 댓글을 가져올 때 Bitbucket Cloud 가져오기 도구는:

  • 작성자/담당자의 Bitbucket 닉네임을 사용하여 GitLab에서 동일한 Bitbucket ID를 찾으려고 합니다.
  • 일치하지 않거나 사용자가 GitLab 데이터베이스에서 찾을 수 없는 경우 프로젝트 생성자(일반적으로 가져오기 프로세스를 시작한 현재 사용자)를 작성자로 설정하고 원래 Bitbucket 작성자에 대한 참조를 이슈에 유지합니다.

풀 리퀘스트의 경우 가져오기 도구는:

  • 소스 SHA를 사용하고, 저장소에 존재하지 않는 경우 소스 커밋을 머지 커밋 SHA로 설정하려고 합니다.
  • MR 담당자를 작성자로 설정하고 GitLab의 Bitbucket ID와 일치하는 사용자 이름으로 검토자를 설정합니다.
  • GitLab에서 MR을 opened, closed, merged 중 하나로 설정합니다.

이슈의 경우 가져오기 도구는:

  • Bitbucket의 이슈 유형에 해당하는 레이블을 추가합니다. bug, enhancement, proposal, task 중 하나.
  • Bitbucket의 이슈가 resolved, invalid, duplicate, wontfix, closed 중 하나이면 GitLab에서 이슈를 닫습니다.

Bitbucket Cloud 가져오기 도구는 존재하지 않는 경우 새 네임스페이스(그룹)를 만듭니다. 네임스페이스가 이미 사용 중인 경우 저장소는 가져오기 프로세스를 시작한 사용자의 네임스페이스 아래에 가져옵니다.

전제 조건#

  • Bitbucket Cloud 통합을 활성화하거나 GitLab 관리자에게 활성화를 요청해야 합니다. GitLab.com에서 기본적으로 활성화됩니다.
  • Bitbucket Cloud 가져오기 소스를 활성화하거나 GitLab 관리자에게 활성화를 요청해야 합니다. GitLab.com에서 기본적으로 활성화됩니다.
  • 가져올 대상 그룹에 Maintainer 또는 소유자 역할이 있어야 합니다.
  • Bitbucket의 풀 리퀘스트는 동일한 소스 및 대상 프로젝트를 가져야 하며 프로젝트 포크에서 가져온 것이 아니어야 합니다. 그렇지 않으면 풀 리퀘스트가 빈 MR로 가져옵니다.

사용자 기여가 매핑되려면 각 사용자는 프로젝트 가져오기 전에 다음을 완료해야 합니다:

  1. Bitbucket 계정 설정의 사용자 이름이 Atlassian 계정 설정의 공개 이름과 일치하는지 확인합니다. 일치하지 않으면 Atlassian 계정 설정의 공개 이름을 Bitbucket 계정 설정의 사용자 이름과 일치하도록 수정합니다.
  2. GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 연결합니다.

Bitbucket Cloud 앱 비밀번호 생성 (제거됨)#

이 기능은 GitLab 18.9에서 더 이상 사용되지 않으며 GitLab 19.0에서 제거되었습니다. 대신 Bitbucket Cloud API 토큰을 사용하십시오.

Bitbucket Cloud API 토큰 생성#

가져오기 API를 사용하여 Bitbucket Cloud 저장소를 가져오려면 Bitbucket Cloud API 토큰을 만들어야 합니다.

Bitbucket Cloud API 토큰을 생성하려면:

  1. https://id.atlassian.com/manage-profile/security/api-tokens로 이동합니다.

  2. 스코프가 있는 API 토큰 만들기를 선택합니다.

  3. 토큰 이름과 만료일을 입력한 다음 다음을 선택합니다.

  4. Bitbucket을 선택한 다음 다음을 선택합니다.

  5. 최소한 다음 스코프를 선택합니다:

    • read:repository:bitbucket
    • read:pullrequest:bitbucket
    • read:issue:bitbucket
    • read:wiki:bitbucket
  6. 토큰 만들기를 선택하고 토큰을 복사합니다.

Bitbucket Cloud 저장소 가져오기#

  1. 오른쪽 상단에서 새로 만들기 (+)를 선택하고 새 프로젝트/저장소를 선택합니다.
  2. 프로젝트 가져오기를 선택합니다.
  3. Bitbucket Cloud를 선택합니다.
  4. Bitbucket에 로그인한 다음 액세스 허용을 선택하여 GitLab에 Bitbucket 계정 액세스 권한을 부여합니다.
  5. 가져올 프로젝트를 선택하거나 모든 프로젝트를 가져옵니다. 이름으로 프로젝트를 필터링하고 각 프로젝트를 가져올 네임스페이스를 선택할 수 있습니다.
  6. 프로젝트를 가져오려면:
    • 처음에는 가져오기를 선택합니다.
    • 이후에는 다시 가져오기를 선택합니다. 새 이름을 지정하고 다시 가져오기를 다시 선택합니다. 다시 가져오기는 소스 프로젝트의 새 복사본을 만듭니다.

문제 해결#

이 섹션에는 Bitbucket Cloud에서 가져올 때 발생할 수 있는 문제에 대한 가능한 해결책이 포함되어 있습니다.

가져오기 프로세스에서 잘못된 계정 사용#

올바른 계정으로 로그인했는지 확인합니다. 실수로 잘못된 계정으로 가져오기 프로세스를 시작한 경우 다음 단계를 따릅니다:

  1. GitLab의 Bitbucket 계정 액세스를 취소합니다. 이는 본질적으로 Bitbucket Cloud 저장소를 가져왔을 때의 프로세스를 되돌리는 것입니다.
  2. Bitbucket 계정에서 로그아웃하고 Bitbucket Cloud 저장소 가져오기를 다시 수행합니다.

이름이 일치함에도 사용자 매핑 실패#

사용자 매핑이 작동하려면 Bitbucket 계정 설정의 사용자 이름이 Atlassian 계정 설정의 공개 이름과 일치해야 합니다.

이름이 일치하지만 사용자 매핑이 여전히 실패하는 경우, 사용자가 GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 연결한 후 Bitbucket 사용자 이름을 수정했을 수 있습니다.

이 문제를 해결하려면 사용자가 GitLab 데이터베이스의 Bitbucket 외부 UID가 현재 Bitbucket 공개 이름과 일치하는지 확인하고 불일치하는 경우 다시 연결해야 합니다:

  1. API를 사용하여 인증된 사용자 가져오기.
  2. API 응답에서 identities 속성에는 GitLab 데이터베이스에 있는 Bitbucket 계정이 포함됩니다. extern_uid가 현재 Bitbucket 공개 이름과 일치하지 않으면 사용자는 GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 다시 연결해야 합니다.
  3. 재연결 후 사용자는 API를 다시 사용하여 GitLab 데이터베이스의 extern_uid가 현재 Bitbucket 공개 이름과 일치하는지 확인해야 합니다.

프로젝트를 가져온 사용자는 그런 다음 가져온 프로젝트를 삭제하고 다시 가져와야 합니다.

관련 주제#