ScalaでGithubクローンを作り始めた

職場ではここ数年Trac + Mercurialを使っているのですが、リポジトリを作成したりユーザを追加するのに毎回サーバ上でスクリプトを叩いたりするのが面倒なのと、SourceTreeを使えばチームメンバーのみんなも直感的に使えそうなのと、あとTracよりもGithubのほうがIssueやWikiが使いやすいということでGithubクローンへの移行を検討しています。
IssueとWikiは必須なので、消去法でGitLabを試しているのですが、インストールがなかなか面倒な上にバグも多いとのこと。GitblitはJavaベースらしく導入は簡単らしいのですが、これはリポジトリビューアのみでIssueやWikiなどの機能は備えていないようです。
しかしこの手のツールってなんで揃いも揃ってRubyとかPythonのようにインストールの面倒なもので実装されてるんでしょうか。Javaで実装されていればJenkinsのように簡単に導入できるのに。っていうかJavaならJGitもあるし自作できるのでは?…ということで、ScalaGithubクローンを作ってみることに。フレームワークにはwarでの配布が簡単でサーブレットコンテナ上でも動かせるScalatraを使用。DB周りはまだ未着手ですがSlickを使ってみようかなと。
まずはGitリポジトリのビューア部分から作り始めたのですが、とりあえずファイルツリーのブラウズ、ブランチの切り替え、コミットログの一覧、ソースの表示くらいまでできるようになりました。



あと履歴とタグ関係を実装すればリポジトリビューアは一段落。ただ、履歴関係はちょっと面倒そうですねぇ…。JGitの使い方がまだイマイチよくわかっていません。使い物になるのはいつの日か…。