git-remote-codecommit とは
git-remote-codecommit は、AWS CodeCommit リポジトリを Git から簡単に操作するための Python ツールです。codecommit:// という特殊なプロトコルをサポートし、HTTPS URL の代わりに使用できます。
通常の HTTPS URLの代わりに、codecommit:: という記述でクローンやプッシュができます。AWS CLI で設定した認証情報(IAM ユーザーのアクセスキー)を自動的に使用するため、毎回クレデンシャルを入力する必要がありません。複数の AWS プロファイルにも対応しており、$env:AWS_PROFILE 環境変数で切り替えられます。
メリット
- これを使うとあたらしいPCにCloneするときに楽になる
- また、WindowのCredential Managerを更新する必要がなくなる
- よって、資格マネージャーをいちいち変える必要が無いというのが良い
流れ
AWS CodeCommit で Git Remote Credentials (GRC) を使用する方法をセットアップします。
GRC を使うには、以下の手順が必要です:
- git-remote-codecommit をインストール — Python スクリプトで codecommit:// スキームをサポート
- AWS 認証情報を確認 — AWS CLI が正しく設定されている必要があります
- GRC スキームを使ってクローン — codecommit:// プロトコルでクローン
実行
1 . まずは挨拶 インストール
pip install git-remote-codecommit
2 . Cloneしたいディレクトリに移動
cd your/repo
3 . 作業セッション全体で.AWS_PROFILEを設定
$env:AWS_PROFILE = '設定しているプロファイル名'
一度設定すればそのターミナルセッション内で有効です。複数クローンする場合はこれが最も簡単です。
補足:プロファイルに永続設定することも可能
現在のユーザーの PowerShell プロファイルに追加して、常に 「設定しているプロファイル名」 を使用する場合:
echo '$env:AWS_PROFILE = "設定しているプロファイル名"' >> $PROFILE
4 . git clone するお
AWSのCodeCommitのURLのクローンの部分で
- HTTPS
- SSH
- HTTPS(GRC)
3つがあります。
HTTPS(GRC)をクリックすると
codecommit::us-east-1://your-repo
というようなURLがコピーできる
「us-east-1」の部分は所属しているregion0によって変わる
コマンド実行
git clone codecommit::us-east-1://your-repo
クローンができました。(写真はありませんが...)
感想
今はそこまで多くのAWSのアカウントを使っていないので、そこまで困っていませんでしたが、最初にこれに引っ掛かったときにめっちゃ大変でした。
特に「資格マネージャー」を更新するという部分に気づかなくてドツボにはまってました。
この部分をターミナル上のAWS_PROFILE を更新するだけでやらなくてすむという部分が良いですね。
毎回変えなきゃいけないの?と思ってたら有識者の方が教えてくれました !(^^)!。 。