GitBucket 4.11をリリースしました

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

https://github.com/takezoe/gitbucket/releases/tag/4.11

デプロイキーのサポート

CIツールなどで利用するためのデプロイキーを設定できるようになりました。リポジトリの管理画面で公開鍵を登録することができます。

f:id:takezoe:20170322102545p:plain

これによって専用のユーザを作成することなくJenkinsなどのツールがSSH経由でリポジトリに読み書きできるようになります。

デフォルトのアバター画像の自動生成

ユーザがアバター画像をアップロードしておらず、Gravatar連携も無効になっている場合、ユーザ名の最初の1文字とランダムに選択された色でアバター画像が自動生成されるようになりました。

f:id:takezoe:20170324100207p:plain

プライベートリポジトリをフォークした場合のコラボレータ

プライベートリポジトリをフォークした場合、元リポジトリのコラボレータ設定を引き継ぐようになりました。

f:id:takezoe:20170322102555p:plain

これによって元のリポジトリのオーナーやコラボレーターはデフォルトでフォークされたリポジトリにもアクセスできるようになります。もちろんフォーク後にコラボレータの設定を変更することも可能です。

アバター画像をブラウザでキャッシュ可能に

GitBucketが適切なレスポンスヘッダを出力することにより、アバター画像がブラウザにキャッシュされるようになりました。

また、他のアセットについては以下のようにパスにGitBucketの起動時刻が自動的に付与されるようになりました。

<link href="http://localhost:8080/assets/vendors/bootstrap-3.3.6/css/bootstrap.min.css?20170321132510" rel="stylesheet">
<link href="http://localhost:8080/assets/vendors/octicons-4.2.0/octicons.css?20170321132510" rel="stylesheet">
...

これによってGitBucketのバージョンアップ時などにJavaScriptCSSのキャッシュによる動作の不具合を回避することができるようになりました。

リポジトリイベントをフックするための拡張ポイントを追加

プラグインリポジトリに関するイベントをフックするための拡張ポイントを追加しました。

RepositoryHookを拡張し、Pluginsに登録しておくことでリポジトリに関するイベントの通知を受け取ることができます。RepositoryHookには以下のメソッドが用意されているので処理したいイベントに対応するメソッドをオーバーライドしてください。

  • created
  • deleted
  • renamed
  • transferred
  • forked

今回のバージョンではこの他にも以下のような改善が行われています。

  • Jenkins連携のためのGitHub互換APIの改善
  • いくつかのページでのレイアウト崩れを修正
  • デフォルトで外部サービスへのHTTPアクセスを行わないようにした
  • Java9でもコンパイル可能にした

他にも様々なバグが修正されています。詳細についてはIssueの一覧をご覧ください。