はじめに
普段、GitLabを使っているんですが、この度デプロイ自動化しようぜって話になったので、CodeCommitにソースをpushすることになったんですよ。
ふつう、 aws-cli
でやるのがいいのでしょうが、ゆくゆくはGitLabを廃してCodeCommitに一本化したい気持ちもあり、GitKrakenで簡単に操作できるといいなあと思った次第です。
#やり方
とりあえず、CodeCommitのリポジトリと、そこにつなげるIAMユーザーは作ってあるものとして話を進めます。
できてないときはここと見ながらやると良いでしょう。
AWS CLI を使用していない SSH ユーザーの セットアップ
1. IAMユーザーにSSH公開鍵を登録する
IAMでユーザーを作ったらユーザーの概要の画面を出しましょう。そこの 認証情報
というタブをクリックします。
すると真ん中の方に SSHパブリックキーのアップロード
というボタンが有るはずです。
ここをクリックするとポップアップが出てきて、そこに公開鍵をペーストしてあげて SSHパブリックキーのアップロード
という青いボタンをクリックすると、 SSHキーID
とか項目のついた表が出てくるはずです。
そこの SSHキーID
がSSH接続するときのユーザー名になります。
2. GitKrakenにリモートリポジトリを登録する
まずは接続用のURLを取ってきましょう。CodeCommitのリポジトリのここから取れます。
GitKrakenの Add Remote
ってところをクリックすると簡単にリモートリポジトリを登録することができます。
でこのときに出てくるウィンドウに接続情報を入れてやるわけですが、 Pull URL
と Push URL
に入れるURLに一工夫が必要になります。
CodeCommitはなぜか ユーザー名@ホスト名:リポジトリパス
のいわゆる SSH URL
が使えません。
なので ssh://
から始まるURLを登録するわけですが、このままやるとこのあとGitKrakenからユーザー名を聞かれ、そこにさっきのSSHキーIDを入れてしまうと、GitKraken側で勝手に SSH URL
に変換されてしまってFETCHもPUSHもできなくなってしまいます。なので、以下の感じのURLを登録してやればよいのです。
ssh://{SSHキーID}@{リポジトリのURL}
おわりに
まさかここで謎にハマってしまうとは思いませんでした……CodeCommitがにくい……