インポートとエクスポートの設定
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
インポートおよびエクスポート関連機能の設定。
許可するインポートソースを設定する
他のシステムからプロジェクトをインポートするには、そのシステムのインポートソースを有効にする必要があります。
- 管理者アクセスレベルを持つユーザーとしてGitLabにサインインします。
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートセクションを展開します。
- 許可するソースをインポートを選択します。
- 変更を保存を選択します。
プロジェクトのエクスポートを有効にする
プロジェクトとそのデータのエクスポートを有効にするには、次の手順に従います:
- 管理者アクセスレベルを持つユーザーとしてGitLabにサインインします。
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートセクションを展開します。
- プロジェクトのエクスポートまでスクロールします。
- 有効チェックボックスをオンにします。
- 変更を保存を選択します。
直接転送によるグループとプロジェクトの移行を有効にする
GitLab 16.1以前は、スケジュールされたスキャン実行ポリシーで直接転送を使用しないでください。直接転送を使用する場合は、まずGitLab 16.2にアップグレードし、適用対象のプロジェクトでセキュリティポリシーボットが有効になっていることを確認してください。
直接転送によるグループとプロジェクトの移行は、デフォルトでは無効になっています。直接転送によるグループとプロジェクトの移行を有効にするには、次の手順に従います:
- 管理者アクセスレベルを持つユーザーとしてGitLabにサインインします。
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートセクションを展開します。
- GitLabグループとプロジェクトを直接転送して移行できるようにするまでスクロールします。
- 有効チェックボックスをオンにします。
- 変更を保存を選択します。
この設定は、APIではbulk_import_enabled属性として使用できます。
管理者によるサイレントエクスポートを有効にする
インスタンス管理者がプロジェクトまたはグループファイルのエクスポートをトリガーするか、エクスポートファイルをダウンロードした際に、監査イベントが生成されないように、管理者によるサイレントエクスポートを有効にします。管理者以外のユーザーによるエクスポートは、引き続き監査イベントを生成します。
管理者によるプロジェクトおよびグループファイルのサイレントエクスポートを有効にするには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択し、設定のインポートとエクスポートを展開します。
- Silent exports by admins(管理者によるサイレントエクスポート)までスクロールします。
- 有効チェックボックスをオンにします。
管理者へのコントリビュートのマッピングを許可する
インポートされたユーザーのコントリビュートを管理者にマッピングできるようにします。
インポートされたユーザーのコントリビュートを管理者にマッピングできるようにするには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択し、設定のインポートとエクスポートを展開します。
- Allow contribution mapping to administrators(管理者へのコントリビュートのマッピングを許可する)までスクロールします。
- 有効チェックボックスをオンにします。
管理者がプレースホルダーユーザーを再割り当てする際に確認をスキップする
前提要件:
- GitLabインスタンスで、ユーザー代理が無効になっていないことを確認してください。
管理者がプレースホルダーユーザーを再割り当てする際に確認をスキップするには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートを展開します。
- Skip confirmation when administrators reassign placeholder users(管理者がプレースホルダーユーザーを再割り当てする際に確認をスキップする)で有効チェックボックスをオンにします。
この設定を有効にすると、管理者は、次のいずれかの状態の非ボットユーザーにコントリビュートとメンバーシップを再割り当てできます:
activebannedblockedblocked_pending_approvaldeactivatedldap_blocked
最大エクスポートサイズ
GitLabでのエクスポート時の最大ファイルサイズを変更するには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択し、設定のインポートとエクスポートを展開します。
- **最大エクスポートサイズ(MiB)**の値を変更し、サイズを増減させます。
最大インポートサイズ
GitLabでのインポート時の最大ファイルサイズを変更するには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートを展開します。
- **最大インポートサイズ(MiB)**の値を変更して、サイズを増減させます。
この設定は、GitLabエクスポートファイルからインポートされたリポジトリにのみ適用されます。
Webサーバーに設定されている値よりも大きいサイズを選択した場合、エラーが発生することがあります。詳細については、トラブルシューティングセクションを参照してください。
GitLab.comのリポジトリサイズの制限については、アカウントと制限の設定を参照してください。
インポートできるリモートファイルの最大サイズ
デフォルトでは、外部オブジェクトストレージ(AWSなど)からインポートできるリモートファイルの最大サイズは10 GiBです。
この設定を変更するには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートを展開します。
- **インポートできるリモートファイルの最大サイズ(MiB)**に値を入力します。ファイルサイズの制限がない場合は
0に設定します。
直接転送によりインポートできるダウンロードファイルの最大サイズ
デフォルトでは、直接転送によりインポートできるダウンロードファイルの最大サイズは5 GiBです。
この設定を変更するには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートを展開します。
- **最大ダウンロードファイルサイズ(MiB)**に値を入力します。ファイルサイズの制限がない場合は
0に設定します。
インポートされたアーカイブの最大解凍ファイルサイズ
ファイルのエクスポートまたは直接転送を使用してプロジェクトをインポートする場合、インポートされたアーカイブの最大解凍ファイルサイズを指定できます。デフォルト値は25 GiBです。
圧縮ファイルをインポートする場合、解凍後のサイズが最大解凍ファイルサイズの制限を超えないようにする必要があります。解凍後のサイズが設定された制限を超えると、次のエラーが返されます:
Decompressed archive size validation failed.この設定を変更するには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートを展開します。
- **インポートからのアーカイブの最大解凍ファイルサイズ(MiB)**に別の値を設定します。
アーカイブファイル解凍のタイムアウト
プロジェクトをインポートする場合、インポートされたアーカイブを解凍する際の最大タイムアウト時間を指定できます。デフォルト値は210秒です。
GitLabでのインポートの最大解凍ファイルサイズを変更するには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートを展開します。
- **アーカイブファイルの解凍のタイムアウト(秒)**に別の値を設定します。
同時インポートジョブの最大数
次のインポーターに対して、同時に実行されるインポートジョブの最大数を指定できます:
サーバーの過負荷を避けるため、マージリクエストにはハードコードされた制限があります。そのため、マージリクエストのインポート時にはジョブ数の制限は適用されません。
デフォルトのジョブ数の制限は次のとおりです:
- GitHubインポーター: 1,000
- Bitbucket CloudおよびBitbucket Serverインポーター: 100。Bitbucketインポーターについては、適切なデフォルト値がまだ決定されていないため、制限が低めに設定されています。そのため、インスタンス管理者はより高い制限を試すことが推奨されます。
この設定を変更するには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅でアバターを選択し、管理者を選択します。
- 設定 > 一般を選択します。
- 設定のインポートとエクスポートを展開します。
- 目的のインポーターのMaximum number of simultaneous import jobs(同時インポートジョブの最大数)に別の値を設定します。
バッチエクスポートジョブの同時実行最大数
直接転送によるエクスポートは、大量のリソースを消費する可能性があります。データベースやSidekiqプロセスを使い果たさないように、管理者はconcurrent_relation_batch_export_limit設定を調整できます。
デフォルト値は8ジョブで、これは最大40 RPSまたは2,000ユーザーのリファレンスアーキテクチャに対応しています。PG::QueryCanceled: ERROR: canceling statement due to statement timeoutエラーが発生したり、Sidekiqのメモリ制限によってジョブが中断されたりする場合は、この数値を減らすことをおすすめします。十分なリソースがある場合は、この数値を増やすことで、より多くの同時エクスポートジョブを処理できます。
この設定を変更するには、concurrent_relation_batch_export_limitを指定して、/api/v4/application/settingsにAPIリクエストを送信します。詳細については、アプリケーション設定APIを参照してください。
エクスポートのバッチサイズ
メモリ使用量とデータベースの負荷をさらに管理するには、relation_export_batch_size設定を使用して、エクスポートの際に各バッチで処理されるレコード数を制御します。
デフォルト値は、1バッチあたり50レコードです。この設定を変更するには、/api/v4/application/settingsを指定して、relation_export_batch_sizeにAPIリクエストを送信します。詳細については、アプリケーション設定APIを参照してください。
トラブルシューティング
エラー: Help page documentation base url is blocked: execution expired
インポートソースなどのアプリケーション設定を有効にしている場合、Help page documentation base url is blocked: execution expiredエラーが発生する場合があります。このエラーを回避するには、次の手順に従います:
docs.gitlab.com、またはヘルプドキュメントページのリダイレクトURLを許可リストに追加します。- 変更を保存を選択します。