GitBucket 4.23.0をリリースしました

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

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

URL末尾のスラッシュを許容するように

URLの末尾にスラッシュがついていてもスラッシュがついていない場合と同じように振る舞うようになりました。これによってJenkinsなどの外部システムとの連携が改善されます。

GitBucketは内部的には末尾がスラッシュで終わるリクエストをスラッシュを取り除いたURLとして扱うようになっています。そのためプラグインでパスの末尾がスラッシュで終わるアクションを定義している場合、そのアクションが呼び出されることはなくなります。プラグイン開発者の方はご注意ください。

リリース一覧にタグのコミットメッセージを表示

リリース一覧に、各リリースに対応するタグのコミットメッセージが表示されるようになりました。このコミットメッセージは新規リリースを作成する際に説明文の初期値としても使用されます。

f:id:takezoe:20180330162754p:plain

イシューとプルリクエスAPIのレスポンスにlabelsプロパティを追加

イシューやプルリクエストの情報を取得するAPIのレスポンスにlabelsプロパティが追加されました。

 [
  {
    "number": 1,
    "state": "open",
    ...
    "labels": [
      {
        "name": "enhancement",
        "color": "84b6eb",
        "url": "http://localhost:8080/api/v3/repos/root/gitbucket/labels/enhancement"
      }
    ],
    ...
  }
]

プラグイン一覧API

インストール済みのプラグインの一覧情報を取得するためのAPI/api/v3/gitbucket/pluginsとして追加されました。このAPIは将来的にプラグインビルドファームで利用されることを想定したものです。

[
  {
    "id": "maven-repository",
    "name": "Maven Repository Plugin",
    "version": "1.3.0",
    "description": "Host Maven repository on GitBucket.",
    "jarFileName": "gitbucket-maven-repository-plugin-assembly-1.3.0.jar"
  },
  {
    "id": "ci",
    "name": "CI Plugin",
    "version": "1.4.0",
    "description": "This plugin adds simple CI functionality to GitBucket.",
    "jarFileName": "gitbucket-ci-plugin-assembly-1.4.0.jar"
  }
]

プライベートアクセストークンによるGit認証

Gitリポジトリの認証時にアカウントのパスワードの代わりにプライベートアクセストークンが使用できるようになりました。特に自動化ツールなどからGitリポジトリにアクセスする場合、セキュリティ上の観点からユーザのパスワードの代わりにアクセストークンを使用するとよいでしょう。

CIプラグインの設定

CIプラグインで並列実行可能なビルド数および保存する履歴の最大数を設定できるようになりました。

f:id:takezoe:20180330162811p:plain

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

なお、今回のバージョンではRELEASEテーブルがRELEASE_TAGテーブルにリネームされ、これに伴ってDBアクセス用のモデルクラスも変更されているため、DBアクセスを行う多くのプラグインでバイナリ互換性が失われています。プラグイン作者の方は必要に応じてGitBucket 4.23.0でビルドし直したバージョンをリリースしていただければと思います。また、プラグイン利用者の方はGitBucket 4.23.0で動作しないプラグインを発見したら各プラグインにフィードバックをお願いできればと思います。