【AWS】CodeCommitからgit cloneする手順


はじめに

普段GitHubを使っているのでCodeCommiからのgitクローンのやり方がわからず、多大な時間を使ってしまったので、多くの方の時間削減につながれば幸いです。

前提

ソースコードがCodeCommitにありレポジトリやIAMなどアカウントが作成せれている。

開発環境

macOS BigSur
バージョン 11.5.1

手順

公式ガイドを参考すると以下の手順になりますが、単にクローンするだけであれば不要な設定もありました。

1、AWS CLI インストール ← 不要
2、AWS Secret Access Keyを作成する ← 不要
3、aws configureファイルの設定 ← 不要
4、gitconfigファイルの設定
5、git keychainを無効にする
6、認証情報の取得
7、git clone

1〜3までは必須では無く(厳密には必要かもしれませんが)4以降でクローンはできました。重要で必須なのは5と6です。
今回簡単にできた方法を紹介します。

目次(手順)

1、git keychainを無効にする
2、IAM の自分のロールで認証情報を取得
3、git clone

実装

それでは実際に作業を進めていきます。

1、git keychainを無効にする

まず、git クローンしてみます。

ターミナル
git clone https://git-codecommit/xxxxxxxxxx

この時点ではfatal: Authentication failed forが返ってきます。
GitHabではこれだけで良かったのですが、CodeCommitの場合、Keychain Access ユーティリティで保存されている認証情報の有効期限が15分しかないのでこれを無効にする必要があります。

git config -l --show-origin | grep credential

このコマンドで下記のhelper=osxkeychainを探します。
file:/path/to/gitconfig credential.helper=osxkeychain

helper=osxkeychaiがあればコメントアウトします。
xx/xx/xx/gitconfigのファイルパスのgitconfigの中にあります。

cd xxx

とかで対象のパスに移動しコメントアウトしてください。
ファイルには色んな行き方があるみたいなので、いずれかの方法を試してください。

2、IAM の自分のロールで認証情報を取得

認証情報作成して、ユーザー、パスワードを取得します。

3、git clone

git クローンします。
この時点でユーザーやパスワードを聞かれず、何かしらエラーが返っていたら環境に問題があるので、gitconfigやenvの中身を見て余分なものは削除してください。

ターミナル
git clone https://git-codecommit.xxxxxxxxxx

Username for 'https://git-codecommit.xxxxxxx': 
Password for 'https://git-codecommit.xxxxxxx': 

ここで先程作成した認証情報を打ち込むとクローンされます。

最後に

この手順で簡単にクローンできますが、僕の場合は環境に問題があって解決するのに2日くらい費やしてしまいました。
この、トラブルシューティングの記事もいずれ更新できれば思ってます。

参考

Keychain無効

AWS公式ガイド

Qiita