きっかけ
うちのチームは規模の割に、コード管理のプラットフォームが分散していた。昔からのプロジェクトはGitHub、新規案件はGitLab、あとどうしても社内に置きたいやつはオンプレのGitlabみたいな感じで、開発者として毎回ブラウザを行き来するのが地味にストレスだった。結局、CI/CDの設定も各プラットフォームで微妙に違うし、Issue管理の概念も統一されてない。「何か一元化できるツール、ないかな」って思ってたときにOnedevを見つけた。
使ってみた
セットアップは正直拍子抜けするくらい簡単だった。Docker Composeで起動したら、もう Web UIが立ち上がってて、ユーザー登録して、リポジトリ作成。Git互換なので、既存の git clone や git push のコマンドは何も変わらない。むしろ、GitHub上のリポジトリをまるっと push-mirror で持ってこれたから、移行もスムーズだった。最初に触った印象は「あ、GitLabみたいだけど、UI が驚くくらいシンプルだ」って感じ。機能は多いのに、画面がゴチャゴチャしていないのが好印象だった。
ここが良い
特に気に入ったのは、コードレビューのフローが直感的なところ。PR(マージリクエスト)を作って、コメント付けて、会話して、マージ。このサイクルが GitHub と GitLab の中間くらいのシンプルさで、新しく入ったメンバーでもすぐに理解できた。あと、CI/CD も一度設定したら、他のプロジェクトでもほぼ同じ書き方で回せるので、ドキュメント化の手間が減った。それまでは GitHub Actions と GitLab CI の微妙な違いで何度もハマっていたから、統一できたのは本当に楽。自社サーバーに置いてるから、秘密鍵とか重要な設定も社内に留めておけるのも心理的に安心感がある。
気になった点
ドキュメントはまだ GitHub や GitLab に比べると充実してない部分がある。「こうしたいんだけど」って思ったとき、Google 検索で答えが出てこないことが何度かあった。あと、プラグインや拡張の生態系は正直まだ発展途上な感じがする。大規模な組織向けの連携機能(Slack notification の細かいカスタマイズとか)は手厚くはない。
まとめ
「複数のプラットフォーム使い分けるのが面倒」「自社サーバーでしっかり管理したい」「シンプルで分かりやすいインターフェースが欲しい」なら、一回試してみる価値は絶対あると思う。特にスタートアップとか中堅企業にぴったり。うちのチームは今、新規プロジェクトはデフォルト Onedev で立ててるし、これを使い続ける選択肢が増えたのは、開発効率の面でも心理的な面でも良かった。