1ヶ月ぐらい前からGitリポジトリにGitLabを使い始めた。

動機

今までは、公開できるものはGitHub、公開できないものはBitBucketと使い分けて利用していたが、

  • アクティビティ
  • Issueの管理

をまとめて管理したいなと思うようになり、1つのサービスにまとめたいなと思い始めた。

そこで、どこかにまとめられないか検討し始めた。

GitHub

GitHubは機能面ではとても満足しているが、自分が管理したいリポジトリの9割はプライベートリポジトリなので、$7/month払う必要がある。
今のところ、そこまで出せないなというのが本音、ちょっと情けないのだけども。
ということで将来的にはGitHubで統一したけど、今のところは却下。

BitBucket

プライベートなリポジトリが無制限で利用できるのはありがたいんだけども、個人的にアトラシアン製品のUIがとてつもなく嫌い。
単なるリポジトリとして利用する分には良いのだけども、Issueまで管理しようとすると使いづらすぎてびっくりする。
ということで、Issueの管理までしようとすると厳しいかなという結論。

GitLab

そこで思い出したのがGitLab。
昔少しだけ利用していたことがあったけど、最近は全然触っていなかった。
プライベートリポジトリは無制限に無料で作ることが出来て、UIもBitBucketほどひどくない印象。
一旦これで試してみるかと思ったら、いくつかの外部サービスとの連携で問題が発生した。

あまり外部サービスと連携出来ないGitLab

GitLabから連携する場合はそれ程問題なくて色々出来るんだけど、その逆が難しい。
個人的に問題になったのが以下のサービス。

Docker Hubでは

リポジトリのブランチが更新されたら自動的にビルドする

という機能があるんだけど、これがGitLabで利用できない。

Werckerは、登録できるリポジトリがそもそもGitHubとBitBucketだけだったりする。

んー困った。

とりあえず解決方法としては、

  • Docker Hubで自動ビルドさせたい場合はGitHubを利用する
  • Werckerの使用は諦めて、GitLab-CIを利用する

ということで落ち着いた。

最終的な運用方針

完全にGitLab一本という夢を見ていたが、やはりそれは難しいっぽい。
中途半端だが、今の所以下のような運用方針で落ち着いた。

  • 基本的には全てGitLabを利用する
  • GitHubで公開していて、いくつかスターがついているようなリポジトリはそのまま残す
  • Docker Hubの自動ビルド機能を使いたい場合はGitHubを利用する

という感じになった。
OSS活動する時もGitHubを使うことが多いので、このあたりが現実的なところかなと思った。

おわりに

GitLabはちゃんと進化を続けているし、GitLab-CIという面白いプロダクト作っていたりしてて、この先が楽しみだなと思った。
個人的にはGitHubはエンタープライズ臭が強くなってきている気がするので、GitLabには頑張って欲しいかなと思う。

また、当初の予定通りアクティビティとIssueもほぼまとめられるようになったのは、とても気持ちが良い。

gitlab activity

GitHubと比べるとUI周りがどうしても弱いが、その辺はしようがないかなと思っているし今後の改善に期待。
GitLabはもっと使われても良いサービスだと思うし、今後も長くサービスを続けていって欲しいので、応援していけたらなと思う。