Bitbucket Cloudからプロジェクトをインポートする
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
プロジェクトをBitbucket CloudからGitLabにインポートします。
Bitbucketインポーターでインポートできるもの:
- リポジトリの説明
- Gitリポジトリデータ
- イシュー(コメントを含む)
- プルリクエスト(コメントを含む)
- マイルストーン
- Wiki
- ラベル
- マイルストーン
- LFSオブジェクト
Bitbucketインポーターでインポートできないもの:
- プルリクエストの承認
- 承認ルール
インポート時は、:
- プルリクエストとイシューへの参照は保持される。
- リポジトリのパブリックアクセスは保持されます。リポジトリがBitbucketでプライベートな場合、GitLabでもプライベートとして作成されます。
- インポートされたイシュー、マージリクエスト、コメントには、GitLabにインポート済みバッジが付いています。
Bitbucket Cloudインポーターは、Bitbucket.orgでのみ動作します。Bitbucket Server(別名Stash)では動作しません。Bitbucket Serverからプロジェクトをインポートしようとしている場合は、Bitbucket Serverインポーターを使用してください。
イシュー、プルリクエスト、およびコメントがインポートされると、Bitbucketインポーターは作成者/assigneeのBitbucketのニックネームを使用し、GitLabで同じBitbucket IDを検索しようとします。一致しない場合、またはGitLabデータベースにユーザーが見つからない場合、プロジェクト作成者(ほとんどの場合、インポートプロセスを開始した現在の認証済みユーザー)が作成者として設定されますが、元のBitbucket作成者に関するイシューの参照は保持されます。
プルリクエストの場合:
- リポジトリにソースSHAが存在しない場合、インポーターはソースコミットをマージコミットSHAに設定しようとします。
- マージリクエストのassigneeは作成者に設定されます。レビュアーは、GitLabのBitbucket IDと一致するユーザー名で設定されます。
- GitLabのマージリクエストは、
opened、closed、またはmergedのいずれかになります。
イシューの場合:
- ラベルは、Bitbucketのイシューのタイプに対応して追加されます。
bug、enhancement、proposal、taskのいずれか。 - Bitbucketのイシューが、
resolved、invalid、duplicate、wontfix、またはclosedのいずれかであった場合、そのイシューはGitLabで閉じられます。
インポーターは、新しいネームスペース(グループ)が存在しない場合、またはネームスペースが取得されている場合は、インポートプロセスを開始したユーザーのネームスペースの下にリポジトリがインポートされます。
前提要件
- Bitbucket Cloudインテグレーションを有効にする必要があります。そのインテグレーションが有効になっていない場合は、GitLab管理者に有効にするように依頼してください。Bitbucket Cloudインテグレーションは、GitLab.comではデフォルトで有効になっています。
- Bitbucket Cloudインポート元を有効にする必要があります。有効になっていない場合は、GitLab管理者に有効にするよう依頼してください。Bitbucket Cloudインポート元は、GitLab.comではデフォルトで有効になっています。
- インポート先の宛先グループに対する少なくともメンテナーロール。
- Bitbucketのプルリクエストには、同じソースプロジェクトと宛先プロジェクトが必要であり、プロジェクトのフォークからのものであってはなりません。そうでない場合、プルリクエストは空のマージリクエストとしてインポートされます。
ユーザーマッピングされたコントリビュートの要件
ユーザーのコントリビュートをマップするには、各ユーザーはプロジェクトのインポートの前に以下を完了する必要があります:
Bitbucketアカウント設定のユーザー名が、Atlassianアカウント設定の公開名と一致することを確認します。一致しない場合は、Bitbucketアカウント設定のユーザー名と一致するように、Atlassianアカウント設定の公開名を変更します。
GitLabプロファイルサービスサインインでBitbucketアカウントを接続します。
Bitbucketリポジトリをインポートする
GitLabにサインインします。
左側のサイドバーの上部にある新規作成( )と新規プロジェクト/リポジトリを選択します。
プロジェクトのインポートを選択します。
Bitbucket Cloudを選択します。
Bitbucketにサインインし、アクセス許可を選択して、GitLabにBitbucketアカウントへのアクセスを許可します。
インポートするプロジェクトを選択するか、すべてのプロジェクトをインポートします。プロジェクトを名前でフィルタリングし、各プロジェクトのインポート先のネームスペースを選択できます。
プロジェクトをインポートするには:
- 初回: インポートを選択します。
- もう一度: 再インポートを選択します。新しい名前を指定し、再度再インポートを選択します。再インポートすると、ソースプロジェクトの新しいコピーが作成されます。再プルすると、ソースプロジェクトの新しいコピーが作成されます。
Bitbucket Cloudアプリのパスワードを生成する
GitLab REST APIを使用してBitbucket Cloudリポジトリをインポートする場合は、Bitbucket Cloudアプリのパスワードを作成する必要があります。
Bitbucket Cloudアプリのパスワードを生成するには:
Access Management(アクセス管理)セクションで、App passwords(アプリのパスワード)を選択します。
Create app password(アプリのパスワードを作成)を選択します。
パスワード名を入力します。
少なくとも次のアクセス許可を選択します:
Account: Email, Read Projects: Read Repositories: Read Pull Requests: Read Issues: Read Wiki: Read and Write作成を選択します。
トラブルシューティング
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公開名と一致することを確認する必要があります。
インポーターは、インポートされたプロジェクトを削除してから、再度インポートする必要があります。