正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

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のマージリクエストは、openedclosed、またはmergedのいずれかになります。

イシューの場合:

  • ラベルは、Bitbucketのイシューのタイプに対応して追加されます。bugenhancementproposaltaskのいずれか。
  • Bitbucketのイシューが、resolvedinvalidduplicatewontfix、またはclosedのいずれかであった場合、そのイシューはGitLabで閉じられます。

インポーターは、新しいネームスペース(グループ)が存在しない場合、またはネームスペースが取得されている場合は、インポートプロセスを開始したユーザーのネームスペースの下にリポジトリがインポートされます。

前提要件

  • Bitbucket Cloudインテグレーションを有効にする必要があります。そのインテグレーションが有効になっていない場合は、GitLab管理者に有効にするように依頼してください。Bitbucket Cloudインテグレーションは、GitLab.comではデフォルトで有効になっています。
  • Bitbucket Cloudインポート元を有効にする必要があります。有効になっていない場合は、GitLab管理者に有効にするよう依頼してください。Bitbucket Cloudインポート元は、GitLab.comではデフォルトで有効になっています。
  • インポート先の宛先グループに対する少なくともメンテナーロール。
  • Bitbucketのプルリクエストには、同じソースプロジェクトと宛先プロジェクトが必要であり、プロジェクトのフォークからのものであってはなりません。そうでない場合、プルリクエストは空のマージリクエストとしてインポートされます。

ユーザーマッピングされたコントリビュートの要件

ユーザーのコントリビュートをマップするには、各ユーザーはプロジェクトのインポートの前に以下を完了する必要があります:

  1. Bitbucketアカウント設定のユーザー名が、Atlassianアカウント設定の公開名と一致することを確認します。一致しない場合は、Bitbucketアカウント設定のユーザー名と一致するように、Atlassianアカウント設定の公開名を変更します。

  2. GitLabプロファイルサービスサインインでBitbucketアカウントを接続します。

Bitbucketリポジトリをインポートする

  1. GitLabにサインインします。

  2. 左側のサイドバーの上部にある新規作成 plus )と新規プロジェクト/リポジトリを選択します。

  3. プロジェクトのインポートを選択します。

  4. Bitbucket Cloudを選択します。

  5. Bitbucketにサインインし、アクセス許可を選択して、GitLabにBitbucketアカウントへのアクセスを許可します。

  6. インポートするプロジェクトを選択するか、すべてのプロジェクトをインポートします。プロジェクトを名前でフィルタリングし、各プロジェクトのインポート先のネームスペースを選択できます。

  7. プロジェクトをインポートするには:

    • 初回: インポートを選択します。
    • もう一度: 再インポートを選択します。新しい名前を指定し、再度再インポートを選択します。再インポートすると、ソースプロジェクトの新しいコピーが作成されます。再プルすると、ソースプロジェクトの新しいコピーが作成されます。

Bitbucket Cloudアプリのパスワードを生成する

GitLab REST APIを使用してBitbucket Cloudリポジトリをインポートする場合は、Bitbucket Cloudアプリのパスワードを作成する必要があります。

Bitbucket Cloudアプリのパスワードを生成するには:

  1. https://bitbucket.org/account/settings/に移動します。

  2. Access Management(アクセス管理)セクションで、App passwords(アプリのパスワード)を選択します。

  3. Create app password(アプリのパスワードを作成)を選択します。

  4. パスワード名を入力します。

  5. 少なくとも次のアクセス許可を選択します:

    Account: Email, Read
    Projects: Read
    Repositories: Read
    Pull Requests: Read
    Issues: Read
    Wiki: Read and Write
  6. 作成を選択します。

トラブルシューティング

Bitbucketアカウントが複数ある場合

正しいアカウントにサインインしてください。

誤ったアカウントでインポートプロセスを誤って開始した場合は、次の手順に従ってください:

  1. BitbucketアカウントへのGitLabアクセスを失効させ、基本的に次の手順でプロセスを逆にします: Bitbucketリポジトリをインポートする

  2. Bitbucketアカウントからサインアウトします。前の手順からリンクされている手順に従います。

名前が一致していてもユーザーマッピングに失敗する

ユーザーマッピングが機能するためには、Bitbucketアカウント設定のユーザー名がAtlassianアカウント設定の公開名と一致する必要があります。これらの名前が一致していてもユーザーマッピングがまだ失敗する場合は、ユーザーがGitLabプロファイルサービスサインインでBitbucketアカウントを接続した後で、Bitbucketユーザー名を変更した可能性があります。

これを修正するには、ユーザーはGitLabデータベース内のBitbucketの外部UIDが現在のBitbucketの公開名と一致することを確認し、不一致がある場合は再接続する必要があります:

  1. APIを使用して、現在認証されているユーザーを取得します

  2. APIレスポンスでは、identities属性には、GitLabデータベースに存在するBitbucketアカウントが含まれています。extern_uidが現在のBitbucket公開名と一致しない場合、ユーザーはGitLabプロファイルサービスサインインでBitbucketアカウントを再接続する必要があります。

  3. 再接続後、ユーザーは再度APIを使用して、GitLabデータベース内のextern_uidが現在のBitbucket公開名と一致することを確認する必要があります。

インポーターは、インポートされたプロジェクトを削除してから、再度インポートする必要があります。