Bitbucket CloudからGitLabへプロジェクトをインポート
最小限の労力でBitbucket CloudからGitLabにプロジェクトをインポートしましょう。
Bitbucket インポーターはインポートできます:
- リポジトリの説明
- Git リポジトリのデータ
- イシュー
- イシューコメント
- プルリクエスト
- プルリクエストコメント
- マイルストーン
- Wiki
インポート時:
- プルリクエストやイシューへの参照は保持されます。
- リポジトリの公開は保持されます。Bitbucket でリポジトリが非公開の場合、GitLab でも非公開として作成されます。
前提条件
GitLab16.0で導入され、GitLab15.11.1とGitLab15.10.5にバックポートされたDeveloperロールの代わりにMaintainerロールの要件。
- Bitbucket Cloudインテグレーションが有効になっている必要があります。インテグレーションが有効になっていない場合は、GitLab管理者に有効にしてもらうよう依頼してください。Bitbucket CloudインテグレーションはGitLab.comではデフォルトで有効になっています。
- Bitbucket Cloudのインポートソースが有効になっている必要があります。有効になっていない場合は、GitLab管理者に有効化するよう依頼してください。Bitbucket CloudインポートソースはGitLab.comでデフォルトで有効になっています。
- インポート先のグループで、少なくともメンテナーのロールがあること。
どのように動作するか
イシュー/プルリクエストがインポートされるとき、Bitbucketインポーターは作成者/担当者のBitbucketニックネームを使い、GitLabで同じBitbucket IDを見つけようとします。もし一致しなかったり、GitLabのデータベースでユーザーが見つからなかったりした場合、プロジェクト作成者(ほとんどの場合、インポートプロセスを開始した現在のユーザー)が作成者として設定されますが、オリジナルのBitbucket作成者に関するイシューの参照は保持されます。
インポーターは、新しいネームスペース(グループ)が存在しない場合は作成し、ネームスペースが取られている場合は、インポートプロセスを開始したユーザーのネームスペースでリポジトリがインポートされます。
ユーザーマップされた貢献の要件
ユーザー貢献をマッピングするためには、各ユーザーはプロジェクトのインポートの前に以下を完了する必要があります:
-
Bitbucket アカウント設定のユーザー名が、Atlassian アカウント設定の公開名と一致していることを確認します。一致しない場合は、Bitbucket アカウント設定のユーザー名と一致するように、Atlassian アカウント設定の公開名を修正します。
-
GitLab プロファイルサービスのサインインで Bitbucket アカウントを接続します。
-
公開メールを設定します。
Bitbucket リポジトリのインポート
GitLab 15.9で導入されたプロジェクトの再インポート機能。
- GitLab にサインインします。
- 左サイドバーの上部にある「新規作成({plus})」と「新規プロジェクト/リポジトリ」を選択します。
- プロジェクトのインポートを選択します。
- Bitbucket Cloudを選択します。
-
Bitbucketにログインし、BitbucketアカウントへのGitLabアクセスを許可します。
-
インポートしたいプロジェクトを選択するか、全てのプロジェクトをインポートします。プロジェクトを名前でフィルタリングし、各プロジェクトがインポートされるネームスペースを選択できます。
- プロジェクトをインポートします:
- 初めてプロジェクトをインポートする場合インポートを選択します。
- もう一度再インポートを選択します。新しい名前を指定し、再度インポートを選択します。再インポートすると、ソースプロジェクトの新しいコピーが作成されます。
トラブルシューティング
複数の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公開名と一致していることを確認する必要があります。
その後、インポーターはインポートしたプロジェクトを削除し、再度インポートする必要があります。