GitHubからCodeCommitへ移行


はじめに

GitHubからCodeCommitへリポジトリを移行してみました。

また、AWSのこちらのページに移行用のドキュメントがありましたので
こちらを参考に進めて行きます。

必要な作業

作業内容と行っても複雑なものは特になく

1.移行したいリモートリポジトリをローカルPCにクローン
2.CodeCommitに移行先のリポジトリを作成
3.クローンしたリモートリポジトリをCodeCommitにプッシュ

以上の流れになります。

リモートリポジトリをローカルPCにクローン

リモートリポジトリをクローン

今回はリポジトリの移行が目的のため、履歴も持ったベアリポジトリをクローンする必要があります。
※ベアリポジトリとは作業ディレクトリを持たないリポジトリでリモートリポジトリに使用されています。

そのため、--mirrorオプションを付加してクローンします。

$ git clone --mirror https://github.com/<アカウントID>/<リポジトリ名>.git <クローン先のディレクトリ名>

CodeCommitに移行先のリポジトリを作成(+その他必要作業)

マネージドコンソールからリポジトリを新規作成

CodeCommitのマネージドコンソールで「リポジトリを作成」を押下します。
リポジトリの設定画面で任意のリポジトリ名を入力してリポジトリを新規作成します。

CodeCommitへのプッシュに使用するユーザーを作成

IAMのマネージドコンソールで「ユーザーを追加」を押下し、Git操作で使用するユーザーを作成します。
今回、Gitを通してAWSにアクセスするので「AWS 認証情報タイプを選択」では「アクセスキー - プログラムによるアクセス」にチェックを入れます。

アクセス許可の設定画面で権限を指定します。
「既存のポリシーを直接アタッチ」から権限を検索し、「AWSCodeCommitPowerUser」を選択します。

「次へ」ボタンで進めていくとAWS CLI等の認証で利用するcsvファイルをダウンロード出来ます。

ユーザー作成後、作成したユーザーのページの「認証情報」タブでCodeCommitのHTTPS Git認証情報が生成出来ます。
生成すると、先程と同様に認証情報が記載されたcsvファイルがダウンロードされます。

クローンしたリモートリポジトリをCodeCommitにプッシュ

AWS CLIをインストールし、初期設定する

こちらのページを参考にAWS CLIをインストールします。

認証情報類の初期設定はこちらのページを参考に設定します。
※AWSのユーザーを作成した時に取得したcsvファイルの認証情報を利用します。

CodeCommitにプッシュ

先ほどのクローンで作成したディレクトに移動し、プッシュします。

$ cd <クローン先のディレクトリ名>
$ git push --all <CodeCommitのリポジトリURL>

プッシュする時、Git操作で使用するユーザーの認証情報を求められます。
そのため、AWSユーザーの「CodeCommitのHTTPS Git認証情報」で取得したcsvファイルの内容を使用します。

最後に

CodeCommitのマネージドコンソール画面でプッシュした内容や履歴が確認出来ていれば成功です。

参考文献