Bitbucket Cloud에서 프로젝트 가져오기
Offering: GitLab.com, Self-managed, GitLab Dedicated
- GitLab 16.6에서
bitbucket_parallel_importer
라는 플래그로 도입된 Bitbucket Cloud의 병렬 가져오기. 기본적으로 비활성화되어 있습니다.- GitLab 16.6에서 GitLab.com에서 활성화됨.
- GitLab 16.7에서 일반적으로 사용 가능. 기능 플래그
bitbucket_parallel_importer
가 제거됨.- GitLab 17.2에서 도입된 일부 가져온 항목에 Imported 배지가 표시됩니다.
GitLab으로 Bitbucket Cloud에서 프로젝트를 가져오세요.
Bitbucket 가져오기는 가져올 수 있습니다:
- 리포지토리 설명
- Git 리포지토리 데이터
- 문제, 댓글 포함
- 풀 요청, 댓글 포함
- 마일스톤
- 위키
- 레이블
- 마일스톤
- LFS 객체
Bitbucket 가져오기는 가져올 수 없습니다:
- 풀 요청 승인
- 승인 규칙
가져올 때:
- 풀 요청 및 문제에 대한 참조가 보존됩니다.
- 리포지토리 공개 액세스가 유지됩니다. Bitbucket에서 리포지토리가 비공개인 경우, GitLab에서도 비공개로 생성됩니다.
- 가져온 문제, 병합 요청 및 댓글은 GitLab에서 Imported 배지를 갖습니다.
문제, 풀 요청 및 댓글이 가져와질 때, Bitbucket 가져오기는 작성자/담당자의 Bitbucket 닉네임을 사용하고 GitLab에서 동일한 Bitbucket 아이덴티티를 찾으려고 시도합니다. 일치하지 않거나 사용자가 GitLab 데이터베이스에서 발견되지 않는 경우, 프로젝트 작성자(대부분 가져오기 프로세스를 시작한 현재 사용자)가 작성자로 설정되지만, 원래 Bitbucket 작성자에 대한 참조는 문제에 유지됩니다.
풀 요청의 경우:
- 원본 SHA가 리포지토리에 존재하지 않으면, 가져오기 도구는 원본 커밋을 병합 커밋 SHA로 설정하려고 시도합니다.
- 병합 요청 담당자는 작성자로 설정됩니다. 검토자는 GitLab에서 Bitbucket 아이덴티티와 일치하는 사용자 이름으로 설정됩니다.
- GitLab의 병합 요청은
opened
,closed
또는merged
일 수 있습니다.
문제의 경우:
- Bitbucket에서 문제 유형에 해당하는 레이블이 추가됩니다.
bug
,enhancement
,proposal
또는task
중 하나입니다. - Bitbucket의 문제가
resolved
,invalid
,duplicate
,wontfix
, 또는closed
중 하나인 경우, GitLab에서 그 문제는 닫힙니다.
가져오기 도구는 존재하지 않는 경우 새로운 네임스페이스(그룹)를 생성하며, 네임스페이스가 이미 사용 중인 경우, 리포지토리는 가져오기 프로세스를 시작한 사용자의 네임스페이스 아래로 가져옵니다.
전제 조건
- GitLab 16.0에서 도입된 유지 관리 역할을 요구하며, GitLab 15.11.1 및 GitLab 15.10.5에 백포트되었습니다.
- Bitbucket Cloud 통합이 활성화되어야 합니다. 해당 통합이 활성화되어 있지 않다면, GitLab 관리자에게 요청하여 활성화해 달라고 하십시오. Bitbucket Cloud 통합은 GitLab.com에서 기본적으로 활성화되어 있습니다.
- Bitbucket Cloud 가져오기 소스가 활성화되어야 합니다. 활성화되어 있지 않다면, GitLab 관리자에게 활성화해 달라고 요청하십시오. Bitbucket Cloud 가져오기 소스는 GitLab.com에서 기본적으로 활성화되어 있습니다.
- 가져올 대상 그룹에서 최소한 유지 관리 역할이 있어야 합니다.
- Bitbucket의 풀 요청은 동일한 소스 및 대상 프로젝트를 가져와야 하며, 프로젝트의 포크가 아닐 수 있습니다. 그렇지 않으면, 풀 요청은 빈 병합 요청으로 가져옵니다.
사용자 매핑 기여 요구 사항
사용자 기여가 매핑되려면, 각 사용자는 프로젝트 가져오기 전에 다음을 완료해야 합니다:
-
Bitbucket 계정 설정에서 사용자 이름이 Atlassian 계정 설정의 공개 이름과 일치하는지 확인합니다. 일치하지 않으면 Atlassian 계정 설정에서 공개 이름을 Bitbucket 계정 설정의 사용자 이름과 일치하도록 수정합니다.
-
GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 연결합니다.
Bitbucket 저장소 가져오기
- GitLab 15.9에서 도입된 프로젝트를 재가져올 수 있는 기능 도입됨.
- GitLab에 로그인합니다.
- 왼쪽 사이드바 상단에서 새로 만들기() 및 새 프로젝트/저장소를 선택합니다.
- 프로젝트 가져오기를 선택합니다.
- Bitbucket Cloud를 선택합니다.
-
Bitbucket에 로그인하고 GitLab에 Bitbucket 계정에 대한 접근 권한을 부여합니다.
-
가져오고 싶은 프로젝트를 선택하거나 모든 프로젝트를 가져옵니다. 이름별로 프로젝트를 필터링하고 각 프로젝트가 가져올 네임스페이스를 선택할 수 있습니다.
- 프로젝트를 가져오려면:
- 처음으로: 가져오기를 선택합니다.
- 다시: 재가져오기를 선택합니다. 새 이름을 지정하고 다시 재가져오기를 선택합니다. 재가져오기는 소스 프로젝트의 새 복사본을 생성합니다.
Bitbucket Cloud 앱 비밀번호 생성
GitLab REST API를 사용하여 Bitbucket Cloud 저장소를 가져오려면 Bitbucket Cloud 앱 비밀번호를 생성해야 합니다.
Bitbucket Cloud 앱 비밀번호를 생성하려면:
- https://bitbucket.org/account/settings/로 이동합니다.
- 액세스 관리 섹션에서 앱 비밀번호를 선택합니다.
- 앱 비밀번호 만들기를 선택합니다.
- 비밀번호 이름을 입력합니다.
-
다음 권한 중 적어도 하나를 선택합니다:
계정: 이메일, 읽기 프로젝트: 읽기 저장소: 읽기 풀 요청: 읽기 이슈: 읽기 위키: 읽기 및 쓰기
- 생성을 선택합니다.
문제 해결
Bitbucket 계정이 두 개 이상인 경우
올바른 계정에 로그인하고 있는지 확인하십시오.
잘못된 계정으로 가져오기 프로세스를 시작한 경우, 다음 단계를 따르세요:
-
Bitbucket 계정에서 GitLab 접근을 취소하여 다음 절차: Bitbucket 저장소 가져오기를 역으로 실행합니다.
-
Bitbucket 계정에서 로그아웃합니다. 이전 단계에서 링크된 절차를 따르십시오.
이름이 일치함에도 사용자 매핑 실패
사용자 매핑이 작동하려면, Bitbucket 계정 설정의 사용자 이름이 Atlassian 계정 설정의 공개 이름과 일치해야 합니다. 이 이름들이 일치하지만 사용자 매핑이 여전히 실패하는 경우 사용자가 GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 연결한 후 Bitbucket 사용자 이름을 수정했을 수 있습니다.
이를 해결하려면 사용자는 GitLab 데이터베이스의 Bitbucket 외부 UID가 현재 Bitbucket 공개 이름과 일치하는지 확인하고 불일치가 있으면 다시 연결해야 합니다:
-
API 응답에서
identities
속성은 GitLab 데이터베이스에 존재하는 Bitbucket 계정을 포함합니다.extern_uid
가 현재 Bitbucket 공개 이름과 일치하지 않으면, 사용자는 GitLab 프로필 서비스 로그인에서 Bitbucket 계정을 다시 연결해야 합니다. -
다시 연결 후 사용자는 API를 다시 사용하여 GitLab 데이터베이스의
extern_uid
가 현재 Bitbucket 공개 이름과 이제 일치하는지 확인해야 합니다.
그런 다음, 가져온 프로젝트를 삭제해야 하고 다시 가져와야 합니다.