CodeCommitへリポジトリを移行

投稿者: | 2019/03/29

現在のリポジトリはどんなサービスを使っていても良いのかと思います。
CodeCommitはIAMの設定が必要です。これでアクセス制御するんですね。masterへはPushさせない設定とかできるかまだ未調査ですが。

参考
Git 認証情報を使用する HTTPS ユーザー用のセットアップ
Git: リモートのリポジトリを別のリモートリポジトリへコピーする
移行でやっていることは↑だけ。リポジトリ先の用意がAWSというだけ。

CodeCommitアクセス権の追加

※ユーザー作成は割愛します。ここでは権限の追加方法を記載します

  • 「サービス」―「IAM」へ移動
  • 「概要」ページの「アクセス権限」タブの「アクセス権の追加」―「既存のポリシーを直接アタッチ」より「AWSCodeCommitFullAccess」を追加する。またはReadOnlyなどもあるので合ったポリシーを追加する
  • 「概要」ページの「認証情報」タブの「AWS CodeCommit の HTTPS Git 認証情報」の項目で生成を選び「User Name」「Password」を取得する
    これをgitのpush,pullなどで使用することになる

CodeCommitにリポジトリ作成

  • 「サービス」―「CodeCommit」から「リポジトリ」へ移動
  • 「リポジトリの作成」ボタンからリポジトリを作成

移行作業(hoge_repoというリポジトリとします)

  1. リモートリポジトリのbearをミラーオプションでクローンします。
    git clone --mirror https://[リポジトリ元]/hoge_repo.git hoge_repo
    
  2. Push先を移行先に切り替えます
    cd hoge_repo
    git remote set-url --push origin https://[リポジトリ先]/hoge_repo
    
  3. 念のためFetchが移行元でPushが移行先の状態になっているか確認しておきましょう
    git remote -v
    #origin  https://[リポジトリ元]/hoge_repo (fetch)
    #origin  https://[リポジトリ先]/hoge_repo (push)
    
  4. 移行元の変更を取り込みます
    git fetch -p origin
    
  5. 移行先にすべてPush します(強制上書きなので注意)
    git push --mirror
    

コメントを残す

メールアドレスが公開されることはありません。