Skip to main content

BLOB ストレージを構成する

GitLab からアーカイブを読み取ることができるように、一時的に保存 GitHub 必要があります。

ほとんどのお客様には、 GitHub-owned blob storageを使用してアーカイブを保存することをお勧めします。 これは最も簡単なパスであり、追加の構成は必要ありません。

ただし、ファイアウォール要件がある場合や、移行が完了した後にアーカイブを保持する必要がある場合は、外部プロバイダーでストレージを構成できます。

アーカイブをステージングする場所の選択

GL2GH extensionは、各 GitLab プロジェクトをアーカイブにエクスポートし、そのアーカイブを読み取り可能な BLOB ストレージGitHubアップロードします。 移行を実行するときに、ストレージ バックエンドを選択します。

ストレージオプションそれを選択する方法メモ

GitHub-owned blob storage (推奨) | --use-github-storage | セットアップは必要ありません。 GitHub は、移行が成功した後、または移行が失敗してから 7 日後にアーカイブを自動的に削除します。 AWS S3 | --aws-bucket-name ( AWS_REGIONAWS_ACCESS_KEY_ID、および AWS_SECRET_ACCESS_KEY 環境変数を使用し、必要に応じて AWS_SESSION_TOKEN) | バケットとそのライフサイクルを所有している。 GitHub は、ストレージからアーカイブを削除しません。 Azure Blob Storage | AZURE_STORAGE_CONNECTION_STRING 環境変数 (単一の migrate-repo コマンドの場合は、代わりに --azure-storage-connection-string を使用できます) | ストレージ アカウントのアクセス キー接続文字列のみがサポートされています (SAS はサポートされていません)。 GitHub は、ストレージからアーカイブを削除しません。

BLOB ストレージの構成

GitHub-owned blob storageを使用している場合は、何も構成する必要はありません。 cli でこの方法を選択するには、 --use-github-storage フラグを使用します。 ただし、低速接続またはプロキシ接続がある場合は、 GITHUB_OWNED_STORAGE_MULTIPART_MEBIBYTES 変数 (既定では 100 MiB、最小 5 MiB) を小さい値に設定できます。

外部 BLOB ストレージを使用している場合は、これを設定する必要があります。

AWS S3 ストレージ バケットの設定

AWS で、S3 バケットを設定します。 詳しくは、AWS のドキュメント「バケットの作成」をご覧ください。

次のアクセス許可を持つ AWS アクセス キーと秘密鍵も必要です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucketMultipartUploads",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": [
                "arn:aws:s3:::github-migration-bucket",
                "arn:aws:s3:::github-migration-bucket/*"
            ]
        }
    ]
}

メモ

GitHub Enterprise Importer は、移行の完了後に AWS からアーカイブを削除しません。 ストレージ コストを減らすため、一定期間後にアーカイブが自動削除されるよう構成することをお勧めします。 詳しくは、AWS のドキュメントの「バケットのライフサイクル設定の指定」をご覧ください。

移行を実行する準備ができたら、リージョン、アクセス キー、シークレット キー、セッション トークンなどの AWS 資格情報を GitHub CLI に提供します (必要な場合)。 引数として渡すことも、AWS_REGIONAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN という環境変数を設定することもできます。

また、--aws-bucket-name 引数を使って S3 バケットの名前で渡す必要があります。

Azure Blob Storage ストレージ アカウントの設定

Azure でストレージ アカウントを作成し、接続文字列を記録しておきます。 詳しくは、Microsoft Docs の「ストレージ アカウント アクセス キーを管理する」をご覧ください。

メモ

GitHub Enterprise Importer は、移行の完了後に Azure Blob Storage からアーカイブを削除しません。 ストレージ コストを減らすため、一定期間後にアーカイブが自動削除されるよう構成することをお勧めします。 詳しくは、Microsoft Docs の「データ ライフサイクルを自動管理してコストを最適化する」をご覧ください。

移行を実行する準備ができたら、接続文字列を引数として GitHub CLI に渡すか、AZURE_STORAGE_CONNECTION_STRING という名前の環境変数を使って渡すことができます。

ネットワーク アクセスの許可

ストレージ アカウントでファイアウォール規則を構成している場合は、移行先の IP 範囲へのアクセスを許可していることを確認します。 「GitLab から GitHub への移行のアクセスを管理する」を参照してください。