AWS CodeCommitからGitHubへの移行方法をまとめてみた

AWS CodeCommitからGitHubへの移行方法をまとめてみた

Clock Icon2025.04.13

こんにちは!クラウド事業本部の吉田です。

2024年7月に、新規AWSアカウントでのCodeCommitの利用受付を終了しました。
2025年4月現在、CodeCommitのサービス終了はアナウンスされてはおりませんが、代替サービスへの移行が推奨されている状況です。
今回は、CodeCommitからGitHubへの移行方法を紹介させていただきます。

移行してみた

事前準備

  • 移行元のCodeCommitリポジトリへのアクセス権限があるIAMユーザーの用意
    • IAMユーザーにアタッチするポリシーは、AWSマネージドポリシーの「AWSCodeCommitReadOnly」か、移行元のリポジトリへのアクセス権限を持つカスタマーポリシーをアタッチしてください。
  • 上記のIAMユーザーの HTTPS Git認証情報を取得
    • IAMユーザーの詳細画面から、「セキュリティ認証情報」タブ→「AWS CodeCommit の HTTPS Git 認証情報」→「認証情報を生成」の順でHTTPS Git認証情報を取得できます。
    • 生成されたユーザー・パスワードを控えておきます。
  • (出来れば)CodeCommit利用時のGitユーザーの情報(ユーザー名・メールアドレス)で、GitHubアカウントの作成

GitHub Importerについて

今回紹介する移行方法は、GitHub Importerを利用した方法です。
GitHub Importerは、他のバージョン管理システム(VCS)からリポジトリを簡単に移行できる機能です。
移行元リポジトリのClone URLを指定するだけで、コードやコミット履歴を丸ごとGitHubへ移行できます。

保持される移行元の情報は以下の通りです。

  • commit
  • branch
  • Actionsの実行履歴(移行元がGitHubの場合のみ)

参考記事:GitHub ImporterでRepositoryをImportした際に保持される情報を確認してみた

移行作業

  • 移行元のCodeCommitリポジトリを選択し、「URLのクローン」から「HTTPSのクローン」をクリックして、CodeCommitリポジトリのHTTPSのClone URLを取得

vscode-drop-1744525385339-mwj7rhu2epr.png

  • GitHubのコンソールのページ右上の「+」をクリックして、「Import repository」を選択

vscode-drop-1744525434490-zdf30wcld5.png

  • 詳細画面で以下の情報を入力
    • 移行元のリポジトリのClone URL
      • CodeCommitリポジトリのHTTPSのClone URLを入力
    • 移行元のリポジトリの認証情報
      • IAMユーザーのHTTPS Git認証情報であるユーザー・パスワードを入力
    • 新規作成するリポジトリ情報
      • アカウントもしくはOrganization配下に作成する新規リポジトリ名と公開範囲を設定

vscode-drop-1744525463214-fgp75dnblmn.png

しばらく待つと移行完了メッセージが表示されます。
これで移行完了です。とても簡単です。

vscode-drop-1744525475645-2d2sgn8cc7c.png

コミッターに関して

CodeCommit使用時のGitユーザーと同じメールアドレスでGitHubアカウントを作成していれば、CodeCommitで行ったコミットの作成者(以後コミッターと言います)とGitHubアカウントが自動的に関連付けられます。

具体例を出します。
下記のコミット履歴に表示されている「yoshida-takeshi-classmethod」は、GitHubアカウントと同一のユーザー名・メールアドレスでCodeCommitリポジトリにコミットしておりました。

vscode-drop-1744527186933-wcr9pxwesic.png

このユーザー名にマウスカーソルを合わせると、GitHubアカウント情報がポップアップ表示されます。

vscode-drop-1744527196033-ru7bgy2wu1.png

これは、コミッターとGitHubアカウントが自動的に紐づけられていることを示しています。

ちなみにユーザー名はリンクとなっており、クリックするとそのユーザーが行ったコミット一覧が表示されます。

vscode-drop-1744527854530-ndwz8r7s5o.png

反対に、CodeCommit使用時のGitユーザーと同じメールアドレスでGitHubアカウントを作成していなければ、当然コミッターとGitHubアカウントと紐づけられることはありません。

「yoshida-test」というコミッターは、GitHubアカウントを作成していないメールアドレスでCodeCommitリポジトリにコミットしておりました。
アイコンは灰色で、ユーザー名にマウスカーソルを合わせても何も起きず、何もクリックできません。

vscode-drop-1744527939900-fd648rkm9m4.png

ただしこの状態でも、CodeCommit使用時のGitユーザーと同じメールアドレスでGitHubアカウントを作成すれば、コミッターとGitHubアカウントが紐付けられます。

「yoshida-test」で使用していたメールアドレスでGitHubアカウントを作成したところ、無事コミッターとGitHubアカウントが紐付けられました。
なお、「yoshida-test」という名前は既に他のユーザーが使用していたため、「yoshida-test-codecommit」という名前でGitHubアカウントを作成しました。
それでも、メールアドレスが一致しているため、コミッターの名前は「yoshida-test」から「yoshida-test-codecommit」に自動的に更新されました。

vscode-drop-1744528287346-lpdnyvk2r3.png

最後に

CodeCommitがサービス終了するのか、サービス終了するとしたらいつまで利用可能なのか、まだ何もわかりません。
ただし、代替サービスへの移行を準備することに越したことはないと思います。
その検討の際にこの記事がお役に立てたのなら幸いです。

GitHubへの移行はGitHub Importerを利用する方法以外にも、Gitコマンドを利用する方法もあります。
Gitコマンドを利用する方法は、以下のAWS公式ブログの「他のリポジトリプロバイダへの一般的な移行方法」を参照してください。

AWS CodeCommit リポジトリを他の Git プロバイダーに移行する方法 | Amazon Web Services ブログ

以上、クラウド事業本部の吉田でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.