GitBucket 4.17.0をリリースしました

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

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

gitbucket-ci-pluginが利用可能になりました

GitBucketでシンプルなCI機能を提供するgitbucket-ci-pluginが利用可能になりました。

f:id:takezoe:20170924143458p:plain

f:id:takezoe:20170924143509p:plain

このプラグインリポジトリのオーナーが設定したビルド用のコマンドを以下のタイミングで実行します。

  • デフォルトブランチにpushされたとき
  • プルリクエストにpushされたとき

このプラグインリポジトリのオーナーにGitBucketが動作しているサーバ上で任意のコマンド実行を許可することになりますので、公開環境で運用しているGitBucketでは使用しないでください。

また、このプラグインはあくまでGitBucketでのCIをWebフックやJenkinsなどの複雑な設定を行わなくても「試せる」ようにするためのものであり、本格的なCI/CDのために必要な柔軟性やスケーラビリティは持っていません。そのため、もしこのプラグインを試してGitBucketでのCIを本格的に使いたいと思った場合はJenkinsなどへの移行をおすすめします。

コミットID付きURLへの転送

リポジトリビューアでyキーを押すとコミットID付きのURLに移動するようになりました。ファイルの特定バージョンを示すURLを共有したい場合に便利です。

また、ファイルビューアでファイルの行番号をクリックした際も自動的にコミットID付きのURLになります。

f:id:takezoe:20170924143528p:plain

アップロード可能なファイル種別の制限を廃止

これまでGitBucketは添付可能なファイル種別に制限がありましたが、このバージョンでファイル種別による制限を廃止しました。Issues、Pull requests、各種コメントやWikiなど、ファイルをアップロード可能な箇所であればどのような種別のファイルでもアップロードできるようになりました。

メール送信APIの改善

GitBucketはプラグイン向けにメール送信用のAPIを提供していますが、このAPIがより汎用的になりました。プラグインでは以下のようにして使用できます:

val mailer = new Mailer(context.settings)

mailer.send(
  to           = "...", 
  subject      = "...", 
  textMsg      = "...", 
  htmlMsg      = Some("..."), 
  loginAccount = context.loginAccount
)

MailersendBcc()というメソッドも持っています。このメソッドはメールアドレスをSeq[String]で受け取り、これらのアドレスに対してBCCでメールを送信します。この修正に伴ってGitBucketに標準でバンドルされているgitbucket-notification-pluginは1.0.2にバージョンアップしています。

Web APIとWebフックの改善

  • 特定コミットの情報を取得するget a single commit APIを追加
  • プルリクエスト関連のAPIのレスポンスにasigneeを追加
  • Weフックのペイロードssh_urlを追加

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