Bitbucket Cloud에서 프로젝트 가져오기
- Bitbucket Cloud로부터의 병렬 가져오기는 GitLab 16.6에서 도입되었으며 기본적으로 비활성화된
bitbucket_parallel_importer
라는 플래그와 함께입니다.- GitLab 16.6에서 GitLab.com에서 활성화 됨.
- GitLab 16.7에서 일반적으로 사용 가능 함. 피처 플래그
bitbucket_parallel_importer
가 제거됨.
Bitbucket Cloud에서 프로젝트를 GitLab으로 가져옵니다.
Bitbucket 가져오기기능을 사용하여 다음을 가져올 수 있습니다:
- 리포지터리 설명
- Git 리포지터리 데이터
- 이슈
- 이슈 댓글
- 풀 리퀘스트
- 풀 리퀘스트 댓글
- 마일스톤
- 위키
- 레이블
- LFS 오브젝트
가져오는 동안:
- 이슈 및 풀 리퀘스트에 대한 참조가 유지됩니다.
- 리포지터리의 공개 액세스가 유지됩니다. Bitbucket에서 리포지터리가 비공개인 경우 GitLab에서도 비공개로 생성됩니다.
이슈, 풀 리퀘스트 및 댓글을 가져올 때, Bitbucket 가져오기기능은 작성자/지정자의 Bitbucket 닉네임을 사용하고 GitLab에서 동일한 Bitbucket 식별을 찾습니다. 일치하지 않거나 GitLab 데이터베이스에서 사용자를 찾을 수 없는 경우, 프로젝트 생성자(대부분 가져오기 프로세스를 시작한 현재 사용자)가 작성자로 설정되지만 이슈에는 원래의 Bitbucket 작성자에 대한 참조가 유지됩니다.
풀 리퀘스트의 경우:
- 소스 SHA가 리포지터리에 존재하지 않는 경우 가져오기가 소스 커밋을 Merge 커밋 SHA로 설정하려고 시도합니다.
- Merge Request 지정자는 작성자로 설정됩니다. 리뷰어는 GitLab에서의 Bitbucket 식별과 일치하는 사용자 이름으로 설정됩니다.
- 승인은 가져오지 않습니다.
- GitLab의 Merge Request은
열림
,닫힘
, 또는Merge됨
이 될 수 있습니다.
이슈의 경우:
- Bitbucket의 문제 유형에 해당하는 레이블이 추가됩니다.
bug
,enhancement
,proposal
또는task
중 하나입니다. - Bitbucket에서 이슈가
해결됨
,유효하지 않음
,중복
,해결하지 않을 것임
, 또는닫힘
중 하나인 경우 GitLab에서 해당 이슈가 닫힙니다.
가져오기가 새로운 네임스페이스(그룹)를 만들 때 그룹이 존재하지 않는 경우에는 또는 경우에 네임스페이스가 사용된 경우, 리포지터리는 사용자의 네임스페이스 아래로 가져와집니다. (이 경우, 가져오기 프로세스를 시작한 사용자).
필수 조건
- GitLab 16.0에 도입된 Maintainer 역할의 요구사항이며, GitLab 15.11.1 및 GitLab 15.10.5로 백포트되었습니다.
- Bitbucket Cloud 통합이 활성화되어 있어야 합니다. 이 통합이 활성화되어 있지 않은 경우, GitLab 관리자에게 활성화해 달라고 요청하세요. Bitbucket Cloud 통합은 GitLab.com에서 기본적으로 활성화되어 있습니다.
- Bitbucket Cloud 가져오기 소스가 활성화되어 있어야합니다. 활성화되어 있지 않은 경우 GitLab 관리자에게 요청하세요. Bitbucket Cloud 가져오기 소스는 GitLab.com에서 기본적으로 활성화되어 있습니다.
- 가져올 대상 그룹에 적어도 Maintainer 역할이 있어야 합니다.
- Bitbucket의 풀 리퀘스트는 동일한 소스 및 대상 프로젝트를 가져와야 하며 프로젝트의 포크에서 오지 않아야 합니다. 그렇지 않으면, 풀 리퀘스트는 빈 Merge Request으로 가져와집니다.
사용자 매핑 기능 요구사항
사용자 기여를 매핑하려면 프로젝트 가져오기 전에 각 사용자는 다음을 완료해야합니다:
-
Bitbucket 계정 설정에서의 사용자 이름이 Atlassian 계정 설정의 공개 이름과 일치하는지 확인하세요. 일치하지 않으면 Atlassian 계정 설정에서 공개 이름을 Bitbucket 계정 설정의 사용자 이름과 일치하도록 수정하세요.
-
GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 연결하세요.
-
공개 이메일 설정하세요.
Bitbucket 리포지터리 가져오기
- 프로젝트를 재가져오는 기능은 GitLab 15.9에서 도입되었습니다.
- GitLab에 로그인하세요.
- 왼쪽 사이드바에서 맨 위에 있는 새로 만들기 () 및 새 프로젝트/리포지터리를 선택하세요.
- 프로젝트 가져오기를 선택하세요.
- Bitbucket Cloud를 선택하세요.
-
Bitbucket에 로그인하고 GitLab에 Bitbucket 계정 접근 권한을 부여하세요.
-
가져올 프로젝트를 선택하거나 모든 프로젝트를 가져오세요. 프로젝트를 이름별로 필터링하고 각 프로젝트를 가져올 네임스페이스를 선택할 수 있습니다.
- 프로젝트를 가져오려면:
- 처음인 경우: 가져오기를 선택하세요.
- 다시 가져오는 경우: 새 이름을 지정하고 다시 가져오기를 선택하세요. 다시 가져오기는 소스 프로젝트의 새 복사본을 생성합니다.
문제 해결
하나 이상의 Bitbucket 계정을 사용하는 경우
올바른 계정으로 로그인했는지 확인하세요.
잘못된 계정으로 가져오기 프로세스를 시작한 경우 다음 단계를 따르세요:
-
Bitbucket 계정으로부터 GitLab에 대한 액세스를 취소하세요. 본질적으로 다음 절차에서 프로젝트를 가져오기 및 가져오기를 되돌립니다: Bitbucket 리포지터리 가져오기.
-
Bitbucket 계정에서 로그아웃하세요. 이전 단계의 링크된 절차를 따르세요.
사용자 매핑이 이름이 일치하더라도 실패하는 경우
사용자 매핑이 작동하려면 Bitbucket 계정 설정의 사용자 이름이 Atlassian 계정 설정의 공개 이름과 일치해야합니다. 이러한 이름이 일치하지만 사용자 매핑이 여전히 실패하는 경우, 사용자는 Bitbucket 계정을 GitLab 프로필 서비스 로그인에서 연결한 후에 Bitbucket 사용자 이름을 수정한 것일 수 있습니다.
이를 해결하려면 사용자는 Bitbucket 외부 UID가 GitLab 데이터베이스에서 현재 Bitbucket 공개 이름과 일치하는지 확인하고 불일치하는 경우 다시 연결해야 합니다:
-
API 응답에서
identities
속성에는 GitLab 데이터베이스에 존재하는 Bitbucket 계정이 포함되어 있습니다.extern_uid
가 현재 Bitbucket 공개 이름과 일치하지 않으면 사용자는 Bitbucket 계정을 GitLab 프로필 서비스 로그인에서 다시 연결해야 합니다. -
다시 연결 한 후 사용자는 API를 사용하여 GitLab 데이터베이스에서의
extern_uid
가 현재 Bitbucket 공개 이름과 일치하는지 다시 확인해야합니다.
이후 가져오기기능은 가져온 프로젝트를 삭제하고 다시 가져와야합니다.