Bitbucket Server에서 프로젝트 가져오기
- GitLab 15.9에서 소개된 프로젝트 다시 가져오기 기능.
- GitLab 16.3에서 소개된 리뷰어 가져오기 기능.
- GitLab 16.7에서 도입된 풀 리퀘스트 승인 가져오기 지원.
- GitLab 17.2에서 도입된 일부 가져온 항목에 대한 가져옴 배지.
Bitbucket Server에서 프로젝트를 GitLab로 가져옵니다.
경고: 현재 GitLab.com에서 Bitbucket Server로 가져오기 기능은 사용 불가 상태입니다. 복구에 대한 예상 시간이 없습니다. 자세한 내용은 지원팀에 문의하세요. 이러한 불가능은 Bitbucket Cloud에서 가져오기에 영향을 미치지 않습니다.
사전 준비 사항
- GitLab 16.0에 도입되고 GitLab 15.11.1 및 GitLab 15.10.5로 backport된 Maintainer 역할이 Developer 역할 대신 필요합니다.
- Bitbucket Server 가져오기 소스를 활성화해야 합니다. 활성화되지 않았다면 GitLab 관리자에게 활성화하도록 요청하세요. Bitbucket Server 가져오기 소스는 기본적으로 GitLab.com에서 활성화되어 있습니다.
- 가져오기할 대상 그룹에서 적어도 Maintainer 역할이 필요합니다.
- 관리자 액세스 권한을 가진 Bitbucket Server 인증 토큰이 필요합니다. 관리자 액세스 권한이 없으면 일부 데이터가 가져와지지 않을 수 있습니다.
저장소 가져오기
Bitbucket 저장소를 가져오려면 다음을 수행합니다:
- GitLab에 로그인합니다.
- 왼쪽 사이드바의 맨 위에서 새로 만들기 () 및 새 프로젝트/저장소를 선택합니다.
- 프로젝트 가져오기를 선택합니다.
- Bitbucket Server를 선택합니다.
- Bitbucket에 로그인하고 GitLab에 Bitbucket 계정 액세스 권한을 부여합니다.
- 가져올 프로젝트를 선택하거나 모든 프로젝트를 가져옵니다. 프로젝트를 이름으로 필터링하고 각 프로젝트를 가져올 네임스페이스를 선택할 수 있습니다.
- 프로젝트를 가져오려면:
- 처음 가져올 때: 가져오기를 선택합니다.
- 다시 가져올 때: 다시 가져오기를 선택합니다. 새 이름을 지정하고 다시 다시 가져오기를 선택합니다. 다시 가져오기는 소스 프로젝트의 새 사본을 생성합니다.
가져온 항목
- 저장소 설명
- Git 저장소 데이터
- 댓글, 사용자 언급, 리뷰어 및 머지 이벤트를 포함하는 풀 리퀘스트
- LFS 오브젝트
가져올 때:
- 저장소의 공개 액세스가 유지됩니다. Bitbucket에서 저장소가 비공개인 경우 GitLab에서도 비공개로 생성됩니다.
- 가져온 풀 리퀘스트 및 댓글에는 GitLab에서 가져옴 배지가 표시됩니다.
닫히거나 머지된 풀 리퀘스트를 가져올 때, 저장소에 존재하지 않는 커밋 SHAs는 Bitbucket 서버에서 가져옵니다. 이를 통해 풀 리퀘스트에 연결된 커밋이 보장됩니다:
- 소스 커밋 SHAs는
refs/merge-requests/<iid>/head
형식의 참조로 저장됩니다. - 대상 커밋 SHAs는
refs/keep-around/<SHA>
형식의 참조로 저장됩니다.
소스 커밋이 저장소에 존재하지 않는 경우 커밋 메시지에 해당 SHA를 포함하는 커밋을 대신 사용합니다.
가져오지 않는 항목
다음 항목은 가져오지 않습니다:
- 마크다운의 첨부 파일
- 작업 목록
- 이모지 반응
- 풀 리퀘스트 승인
- 풀 리퀘스트 승인 규칙
가져와져지만 변경된 항목
다음 항목은 가져와져지지만 가져올 때 변경됩니다:
- GitLab은 임의의 코드 라인에 대한 댓글을 허용하지 않습니다. 영역을 벗어난 Bitbucket 댓글은 머지 리퀘스트의 댓글로 삽입됩니다.
- 여러 쓰레드 수준은 하나로 축소되고 원래 댓글에 인용이 추가됩니다.
- 프로젝트 필터링은 흐린 검색을 지원하지 않습니다. 시작하는 또는 전체 일치 문자열만 지원합니다.
사용자 할당
- GitLab 16.7에서 이메일 주소 또는 사용자명을 사용한 승인 가져오기가 도입되었습니다.
- GitLab 16.8에서 GitLab 사용자와 일치하는 사용자 언급이 도입되었습니다.
- GitLab 17.1에서 이메일 주소로의 승인만 가져오도록 변경되었습니다.
bitbucket_server_import_stage_import_users
라는 특성 플래그를 활성화할 수 있습니다.
GitLab.com 및 GitLab Dedicated에서는이 기능을 사용할 수 없습니다.이슈 및 풀 리퀘스트를 가져올 때, 가져오기 프로그램은 Bitbucket Server 사용자의 이메일 주소를 GitLab 사용자 데이터베이스의 확인된 이메일 주소와 일치시킵니다. 이러한 사용자가 없는 경우:
- 프로젝트 생성자를 사용합니다. 가져오기 프로그램은 원래 생성자를 표시하기 위해 댓글에 주석을 추가합니다.
- 풀 리퀘스트 리뷰어에는 지정된 리뷰어가 없습니다.
- 풀 리퀘스트 승인자에는 승인이 추가되지 않습니다.
풀 리퀘스트 설명과 노트에서의 @멘션
은 사용자의 이메일 주소를 사용하여 Bitbucket Server 프로필의 사용자와 일치시킵니다.
GitLab에서 동일한 이메일 주소를 가진 사용자를 찾을 수 없는 경우 @멘션
이 정적으로 생성됩니다.
사용자가 일치하려면 프로젝트에 적어도 읽기 액세스를 제공하는 GitLab 역할이 있어야 합니다.
프로젝트가 공개 상태인 경우 GitLab은 프로젝트로 초대된 사용자만 일치시킵니다.
가져오기 프로그램은 해당하지 않는 경우 새 네임스페이스(그룹)를 생성합니다. 네임스페이스가 사용 중인 경우, 저장소는 가져오기 프로세스를 시작한 사용자의 네임스페이스에 가져옵니다.
사용자 할당을 사용자명으로
- 운영용으로 권장되지 않습니다.
bitbucket_server_user_mapping_by_username
이라는 기능 플래그를
활성화할 수 있습니다. 이 기능은 운영용으로 준비되지 않았습니다.이 기능을 활성화하면 사용자 이메일 주소 매칭이 비활성화됩니다. 대신, 가져온 프로그램은 GitLab 사용자 데이터베이스의 사용자를 Bitbucket Server 사용자의:
사용자명
슬러그
표시 이름
문제 해결
일반
GUI 기반의 가져오기 도구가 작동하지 않는 경우 다음을 시도할 수 있습니다:
- GitLab Import API를 사용합니다. Bitbucket Server 엔드포인트.
- 저장소 미러링을 설정합니다. 상세한 오류 출력을 제공합니다.
Bitbucket Cloud에 대한 문제 해결 섹션은 문제 해결 섹션을 참조하세요.
LFS 객체 미가져오기
프로젝트 가져오기가 완료되지만 LFS 객체가 다운로드되거나 복제되지 않는 경우, 특수 문자가 포함된 암호 또는 개인 액세스 토큰을 사용하고 있을 수 있습니다. 자세한 내용은 이 문제를 참조하세요.
유효하지 않거나 해결되지 않은 호스트 주소로 인한 가져오기 실패 또는 가져오기 URL이 차단된 경우
프로젝트 가져오기가 프로젝트 가져오기 실패: 가져오기 URL이 차단됨
과 같은 오류 메시지와 함께 실패하는 경우, 초기 비트버킷 서버 연결이 성공했어도 비트버킷 서버 또는 역방향 프록시가 올바르게 구성되지 않았을 수 있습니다.
이 문제를 해결하려면 프로젝트 API를 사용하여 새롭게 생성된 프로젝트를 확인하고 프로젝트의 import_url
값을 찾으세요.
이 값은 가져오기에 사용할 비트버킷 서버에서 제공한 URL을 나타냅니다. 이 URL이 공개적으로 해결되지 않는 경우 해결할 수 없는 주소 오류가 발생할 수 있습니다.
이 문제를 해결하려면 비트버킷 서버가 프록시 서버를 인식하고 있는지 확인하여 프록시 서버가 비트버킷이 URL을 작성하고 사용하는 방법에 영향을 미칠 수 있기 때문에 이 문제를 해결하세요. 자세한 내용은 Atlassian의 문서를 참조하십시오.