これまで、私のプライベートなコード置き場は、このような変遷を見せてきた。
最初は VPS上のSVNサーバだった。学生のころから始めたんだったか。これは、Apatch HTTPDとの組み合わせで動作するやつだった記憶がある。 それから、セルフホスト型のGitLabを長い間使っていた。VPSに立てていたが、メモリ使用量の多さにずっと悩まされ続けてきた。 それから、Raspberry Pi と Dockerの環境にGitLabを移動した。 直近は Gitea をセルフホストして使っていた。当時、私もGo言語にハマいって、軽快な動作をなによりも求めていた。
Gitea : https://gitea.io/ja-jp/
Raspberry Pi のディスク故障やMySQL破損といったトラブルが相次いでおきて、再構築するのが面倒だったので、AWS CodeCommit を使うことにした。
ほかの選択肢として、GitHubやGitLabも検討したが、そもそも設定ひとつで公開可能になるような場所に置きたくないと思えた。
CodeCommitは地味だ。 もともとエンタープライズのコード管理向けのサービスなのだから、ホビーで使うようなものではないはずだけど。最近のコード管理につきものだったWikiだの課題管理だのといった付属機能がほとんど無いわけだけど、そんなに使っていたわけではないから、いいかな、と思う。 aws cli でリポジトリを操作できる点も気に入っている。 リポジトリを新しく作るときに、わざわざブラウザを立ち上げて操作するなんてことはなく、aws cli でサクッと作成できる。
aws codecommit create-repository --repository-name $NAME
Bashでリポジトリの引っ越しを行う。
#!/bin/bash
cat repos.txt | while read repo
do
cd $repo
aws codecommit create-repository --repository-name $repo
git remote remove origin
git remote add origin ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/$repo
git push -u origin master
cd ../
done
どうなるか。しばらく使ってみる。