そもそもCodeCommit とは
簡単にいえばgithubのAWSバージョン。
ちゃんと言えば以下引用
AWS CodeCommit は、クラウド内のアセット (ドキュメント、ソースコード、バイナリファイルなど) を非公開で保存および管理するために使用できる Amazon Web Services によってホストされるバージョン管理サービスです
https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/welcome.html
非公開のバージョン管理サービスです!ドヤ!
公式と同じこと言っているだけじゃん、何ドヤってんだこいつ、、、
↑
ツッコミは自分でシステムです。
今回行なった方法は?
CodeCommitに作成したリモートリポジトリ作って、それをローカルにクローン。中身つけて、CodeCommitにpush
(大体この使い方が多いのかなと思い。)
CodeCommitのいいところ
そんなに使ってないので、いいと思っていると堂々言っていいのかわかりませんが、
いいと思うところは
・最新のAWSでコード管理してるってなる
・一定以下なら無料!!、もちろんAWSにオープンはないからプライベートがっていうことです!。~~githubだとプライベートだと有料ですからね(・・;)~~なんとgithubがマイクロソフトに買収されてから無料でプライベートリポジトリ作れるようになりました。(条件あり(共有3人までならいくらでもどうぞ的な…))詳細→https://www.publickey1.jp/blog/19/github_4.html
始める前に一言!
今から説明します。よろしくお願いします。
ちなみにmacでやってます。
CodeCommitを使う前に何を行わなければ行けないかを箇条書きに
※詳しくは後で書いて行きます。
流しても大丈夫です。
大まかにやることをインプットしとくと後が理解しやすいかと思い書きました。
-
AWSにリポジトリを作成
-
自分のターミナルにAWSのリポジトリにアクセスするためのAWS CLI をインストールする
参考:https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/installing.html -
AWSのCodeCommitにアクセスできるように準備する。
参考:https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-getting-started.html
参考:https://console.aws.amazon.com/iam/home?#/users -
作ったリポジトリ、クローン
-
ゴニョゴニョして、CodeCommitにpush
codecommitを使う時にポイントとなると思うところは?
アクセスIDとアクセスキー作るところ、もちろん同時に作ります。
AWSのCodeCommitにアクセスするためにgitconfigの設定変えること。
きっとこれができていないと、
The requested URL returned error: 403
みたいなエラーが出てきます。
開始
その1
自分のターミナルからCodeCommitにアクセスする際にはまず用意されたAWS CLI のインストールが不可欠である。以下のコマンドを打つ!
pip install awscli --upgrade --user
補足:この時点でダメな場合pipのコマンド打てないとかが原因かと思うのでpipコマンドを打てるようにすればいいと思う。そう思う。sachiko-kameであった。
参考として
https://qiita.com/sachiko-kame/items/126e0a41acf270d05a73
この最後に私は
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
な警告がでて、pipのアップグレードをするか迷った。正直しなくてもいけるでしょとか思った。
でも素直なsachiko-kameは言われるがまま以下のコマンドでアップグレードした。素直でよろしい。そうきっと誰かが思ったに違いない。
pip install --upgrade pip
その2
シークレットアクセスキーを作る!
きっとここで先に急ぎたい方は
aws configure
を打ちたいに違いない。でもこれを打つと色々聞かれる。
あなたのIDは?
アクセスキーは?
どこのリージョンにリポジトリ置いたのよ?
出力形式どうすんの?ねえ? ちなみにここはjsonと打てと言われるので考える必要ない
sampleとしては以下のを少しずつ聞かれる感じ。
しかし、これらはきっとない!awsのIDで入れると思ったら大間違いだ!
そうだ、CodeCommit用に作らないと行けないのだ!
前に作ったのないかなーと思った方いたら、ない!
なぜなら、こういうキーは、作った時にしか表示されないからだ。
今、知らないのなら作らないといけない。
そう!私がその勘違いものだ!
散々言ったとこで、
次のミッション
まずは、
https://console.aws.amazon.com/iam/home?#/users
に行き、ユーザーの作成を行う必要がある!
なんのユーザーかって?
それはリモートのリポジトリにアクセスするユーザー。
だからメンバーがいたらそれだけ作らないといけない!
とりあえず、今は孤独身、自分のユーザーだけ作ります
ユーザーはどこだと思われたら、左のユーザーってところをタップして欲しい。
おそらくユーザーが存在していないはずだから左上の
ボタンからユーザー作りを開始して欲しい! |
色々聞かれるだろうから |
まずユーザーに適当な名前を使う人の名前つければいいんじゃないかと思う。
下のアクセスの種類は両方とも図ではチェックしてないけどした。
次だ!
こんな感じのチェックで進むことにした。パスワードは変更もできるし、表示されているのもそのまま使うこともできると思うので好きにすればいいと思う。
ただ、パスワードのリセットはめんどくさそうだなと思い外した。
次だ!
こんな感じの画面でてくると思う。本気のメンバーで本気の開発ならグループが欲しいかもしれないが個人でちょこまかするなら一番右の既存のポリシーを直接タッチでいいと思った。ここには表示されていないが、権限どれか一つ以上選べずらーって書いてあったので全ての権限入れます的な一番上のにチェックして次のステップへ行った。
もうここまできたらアクセスきーとシークレットキーがでてきたのではないか?。
絶対この二つは記録しておくこと!!これ忘れたら、また最初からユーザー作らないといけなくなるから!
その3
CodeCommitにリポジトリを作る!
以下のurlから飛んで、リポジトリの作成ボタンを押せば作れるだろう。
ポチッと押したらE メール通知の設定とか出るけどスキップボタンがあるからスキップしてしまえばいいと思う。
作ったら、右からニョキッとリポジトリに接続的なのでてくる。
あとでリポジトリにリージョン聞かれるけど、この画面の
git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/<作ったリポジトリ名>
なら
us-east-1
のことだからどこかに記入やメモしておくといいかもしれない。
もちろん、この全文もクローンするのに必要だけどね!
その4
ターミナルでAWSのリポジトリにアクセスする準備をする!
aws configure
を打って聞かれた内容に答えよ!今までの段階を踏んで入れば用意されているはずだ!!最後の出力形式どうすんの?ねえ? のところはAWSがjsonと打てと書いてあるのでそのままjsonと打てばいい。
わからない場合、説明文を読んでいない可能性がある。答えはあるはずだからもう一度読み直して欲しい。私の説明でわからないのなら他の説明などを探してみるのもありかもしれない!
登録が終わったら言われるがままに以下をターミナルにコピペして欲しい。書いてあるがままに。AWSが書いてあるがままに。
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true
ここまできたら、よしと思うが、macosユーザーはまだすることがあるようだ。
じゃないときっと、
The requested URL returned error: 403
なエラーがでるだろう。
3.MacOS を使用している場合、AWS CodeCommit に接続するには キーチェーンアクセスユーティリティを無効にします。
と書かれているから。
参考:http://docs.aws.amazon.com/console/codecommit/connect-https-macos-ts
まず以下のコマンドを打って欲しい。言われるがままに
git config -l --show-origin
いきなり、ずらっとでてきたと思う。このhelper = osxkeychainを探せとミッションに書いてあるが、目視するのは大変なのでcommand + Fキーでターミナル検索のところにosxkeychainを打てば、ほら!ヒットした!
この前に書かれているファイルパス
〇〇/〇〇/〇〇/〇〇/〇〇/gitconfig
みたいな、このファイルパスのgitconfigの中をどうやら編集して欲しいらしい。
まず〇〇/〇〇/〇〇/〇〇/〇〇/までいき、そこにlsでgitconfigがあるかと思うので
vim gitconfig
で開いてその中の
helper = osxkeychain
のところを見つけたらコメントにしたいので
# helper = osxkeychain
と変更して保存して欲しい。
これはキーチェーンの有効時間を15分に制御されるのを防ぐために設定します。
15分たったらgit pushとか出来ない…となってしまわないように設定します。
その5
準備は整った。好きなディレクトリに行き、おもむろにgihubのリポジトリをクローンするみたいに、記録しておいたclone文をターミナルに書いてエンターを押して欲しい。
git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/<作ったリポジトリ名>
その6
クローンされたファイルに何か入れてコミットしてpushして欲しい ほらできた。
コミットプッシュはどうすればいいか?どんな方法でもいいが
git add .
git commit --m "最初"
git push
でどうですかね?
こんな時は???
403出た時
- CodeCommitのキーチェーン有効時間15分に制御を解除する処理は行われていますか?
- ユーザは変えてませんか?変えている場合パスワードとか違うと思うので"aws configure"打って設定しなおして下さい
- xcodeからpushできない時はターミナルとかコンソールから行うとできることがあるので是非
最後に
なんか、ですます調じゃないと生意気に聞こえる!!
ただ、なんか、ですます調より分かりやすいかと思い今回はである的な感じの文章にしてみました。
気を悪くされた方ごめんなさい。
あと、セキュリティで気にしなくてもいいと思ったけど画像使うときは怖くて、つい、え!そこ隠さなくてもいいでしょ的なところも隠してみました。
今日絵文字少なかったから今使います。