GitBucket 3.14と4.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 3.14および4.0をリリースしました。

GitBucket 3.14は外部データベースのサポート以外は4.0と全く同じ機能を提供していますが、3.14は3系の最後のリリースとなり、今後は4系のみリリースされることになる予定ですのでご利用のプラグインの4系対応版がリリースされていないといったケースを除き、バージョンアップの際は4.0に移行することをお勧めします。ただし、既存のGitBucketを4.0に移行するにはいったん3.14にバージョンアップしてから4.0に入れ替える必要がありますのでご注意ください。

3.14および4.0の新機能は以下の通りです。

Wikiページへのファイル添付・検索

これまでWikiにファイルを添付するにはWikiのGitリポジトリをcloneしてpushする必要がありましたが、ブラウザ上でファイル添付ができるようになりました。

f:id:takezoe:20160501004316p:plain

また、画面上部の検索バーからはWikiページの内容も検索できるようになりました。

f:id:takezoe:20160501004327p:plain

メニュー等を追加するための新しい拡張ポイント

以下の項目をプラグインから追加することができるようになりました。

  • グルーバルヘッダーのメニュー
  • リポジトリのメニュー
  • リポジトリの設定画面のタブ
  • ユーザのプロフィール画面のタブ
  • システム設定画面のメニュー
  • アカウント設定画面のメニュー
  • ダッシュボードのタブ

これらの拡張ポイントの利用例はgitbucket-gist-pluginのPluginクラスを参照してください。また、プラグインのバイナリ互換性向上のため、今回のバージョンアップでPluginはトレイトから抽象クラスに変更されています。

WebフックのContent-Typeが選択可能に

Webフックの設定でWebフックのContent-Typeを選択できるようになりました。

f:id:takezoe:20160501004344p:plain

MySQLPostgreSQLのサポート(4.0のみ)

GitBucket 4.0では外部データベースとしてMySQLPostgreSQLが使用可能になりました。

これまでGitBucketは組み込みH2をデータベースとして使用してきましたが、データが増えるに従ってH2のデータがクラッシュするという報告がユーザから寄せられていました。4.0ではこういったトラブルを回避するためデフォルトの組み込みH2だけでなく、MySQLPostgreSQLが利用可能です。

設定方法やH2からのデータの移行方法についてはWikiをご覧ください。

プラグイン開発に関する注意事項

GitBucket 4.0ではデータベースのマイグレーションシステムを従来の独自システムからsolidbaseに移行しています。従ってデータベースマイグレーションの必要な既存のプラグインをGitBucket 4.0で動作するようにするためにはマイグレーションをsolidbaseに行うよう修正する必要があります。solidbaseでマイグレーションを行うプラグインの作り方についてはgitbucket-gist-pluginのPluginクラスマイグレーションスクリプトを参照してください。

この他にも様々な改善やバグフィックスを行っています。詳細についてはIssueの一覧をご覧ください。