1. 背景

awsのCodeCommitからgit cloneする際、httpsだとパスワードを求められます。

ansibleで対話せずにpullしたく、その方法を示します。

2. 方法

以下のようなURLでcloneします。

https://git-codecommit.ap-southeast-1.amazonaws.com/v1/repos/aaaa

ユーザIDとパスワードをあらかじめ入れて、以下のようにします。

https://user:password@git-codecommit.ap-southeast-1.amazonaws.com/v1/repos/aaaa

とやります。

ここで、考慮が必要なポイント。

awsが払い出すIDとパスワードはやたらと長いです。

そして、@+/という文字が含まれています。これらの特殊文字はユーザ名とパスワードとして扱ってくれないのです。

そこで、これらの特殊文字のエンコードが必要になります。@%40に、+%2Bに、/%2Fに変更します。

これによりユーザ名とパスワードとして扱ってくれます。