GRCを用いたsubmoduleの追加
AWSで開発するにあたってCodeCommitを使っています。
GRCはAWSのクレデンシャルを使ってgitが扱えるので非常に便利ですが、git submoduleで少々つまづいたのでメモ
何もしないとgit submoduleはプロトコルcodecommitを使えません。
GRCを用いたsubmoduleの追加
以下のコマンドでcodecommitプロトコルを常に許可する。
git config --global --add protocol.codecommit.allow always
そうするとgit submodule add
することが可能。この時credentialをurlに埋め込むとmoduleのconfigに残る。
git submodule add
したらルートに.gitmodules
を追加し以下を記述
[submodule "MODULE_NAME"] path = DIR_NAME url = GCR_URL
submoduleの同期
cloneして来たらsubmoduleは空の状態なので同期するためにgit submodule update --init
したいところだが、実行するとcredentialで怒られる
全員が共通のcredential名にして.gitmodules
に記載するというルールはナンセンスなのと、デプロイ時にもcredentialが必要になってしまうのでNG
代わりにプライベートURLを設定してそのURLにcredentialを埋め込んであげる。
git config submodule.terraform_modules.url PRIVATE_URL