GitBucket 3.0をリリースしました

Scalaで実装されたオープンソースGitHubクローン、GitBucket 3.0をリリースしました。
https://github.com/takezoe/gitbucket/releases/tag/3.0

今回の主な新機能・修正点は以下の通りです。

新しいプラグインシステム

新しいプラグインシステムが利用可能になりました。このプラグインシステムはGitBucketがベースとしているScalatraと完全に統合されており、ScalatraやSlickといったGitBucketが使用しているフレームワーク上で、GitBucket自身が提供するすべてのAPIを使用することができ、GitBucket本体のコア機能と同じように実装することが可能です。

なお、これにともなってプラグインとの衝突を避けるため、GitBucket本体のクラス群をすべてgitbucket.coreパッケージに移動しましたのでご注意ください。

また、実用的なプラグインのサンプルとしてgitbucket-gist-pluginを公開しています。このプラグインGitHub GistsのようなコードスニペットをGitリポジトリで管理するための機能を提供します。

このプラグインは以下の手順でインストールすることができます。

  1. プラグインリポジトリをクローンし、ルートディレクトリで./sbt.sh packageを実行します
  2. 生成されたtarget/scala-2.11/gitbucket-gist-plugin_2.11-1.0.jarをGITBUCKET_HOME/pluginsにコピーします
  3. GitBucketを再起動します

コネクションプーリング

c3p0ベースのコネクションプーリングを組み込みました。ただし、これは現状のGitBucketにおける性能改善のための暫定的な対応です。

GitBucketは将来的にSlick 3に移行予定であり、その場合にはSlick 3に統合されているHikariCPを使用することになるでしょう。

新しいブランチUI

ブランチ一覧のUIがGitHubに近いものになりました。masterブランチとのコミット数の差分も表示するようになりました。


コミットIDでの差分比較

GitBucketではこれまでプルリクエスト時に特定のブランチ間での差分を表示することはできましたが、今回のリリースではそれと同じURL(REPOSITORY_URL/compare/from...to)でコミットIDを指定することもできるようになりました。

この他にもいくつかのバグ修正や改善を行っています。詳細についてはIssueの一覧をご覧ください。