GitLab 9.5 リリース

# GitLab 9.5 リリース
今月も GitLab のマイナーアップデート [GitLab 9.5]() がリリースされました!

驚くべきことに 9.x としてはこれが最後のリリースで来月は 10.0 だそうです。特に決まりがあったわけではありませんが、メジャーアップデートはだいたい一年半ごとに行われていたので、半年でというのは珍しいですね。


## GitLab 9.4.4, 9.3.10, 9.2.10, 9.1.10, 9.0.13, and 8.17.8 Critical Security Release]
日本時間の 8/11 AM 3:00 ごろ、重大なセキュリティホールを修正した [GitLab](https://about.gitlab.com/2017/08/10/gitlab-9-dot-4-dot-4-released/) がリリースされました。

> We strongly recommend that all affected GitLab installations be upgraded to one of these versions immediately.

直ちにアップデートをすることを強く推奨するとありますので、まだの方はお早めに!

脆弱性の一つは Git のもので、[Recurity Labs](http://www.recurity-labs.com/) 社が発見して、各団体に連絡したようです。詳しいレポートは Recurity Labs 社から [Compromise On Checkout - Vulnerabilities in SCM Tools](http://blog.recurity-labs.com/2017-08-10/scm-vulns) として公開されています。

この脆弱性は Git だけでなく、Subversion や Mercurial にも同様にあるようです。

事前告知ありの重大な脆弱性は GitLab では通常 AM 8:59 (JST) にアップデートと詳細の告知がなされるのですが、今回時刻が異なったのは 8/11 AM 03:00 (JST) がこの脆弱性の公表日だったからのようです。おそらくは、次回からはまた AM 8:59 (JST) に戻るのではないかと。


## 変更点
来月に 10.0 を控えているせいか、今月は新機能より改善が多いようです。今月も気になっているものを取り上げます。


### [GPG Commit Verification](https://about.gitlab.com/2017/08/22/gitlab-9-5-released/#gpg-commit-verification)
Git はコミットに名前とメールアドレスが埋め込まれます。ですが、この名前とメールアドレスは自称なので、偽装することができます。Git では GPG でコミットを署名し、本人であることを証明できます。

GitLab でもこの署名を扱えるようになり、なりすましや改変がされていないかを GitLab のコミット一覧で確認できるようになりました! 余談ですが、GitHub は一年ちょっと前から対応していたようです。

GPG の公開鍵は `Settings` -> `GPG Keys` からアップロードできます。


### [New Navigation Improvements ](https://about.gitlab.com/2017/08/22/gitlab-9-5-released/#new-navigation-improvements)
[GitLab 9.4](http://qiita.com/masakura/items/ab78e19335b65fb6fd03#new-navigation) で、新しいナビゲーション UI が投入されました。9.5 ではより改良されてとても使いやすくなっています。

スクリーンショットにあるように、サイドバーが畳めるようになりました。9.4 のころは、畳めなかったのでちょっとウインドウが狭くなって困ってたので大助かりです。また、アイコンも心なしかカッコよくなってますね!

![gitlab1.PNG](https://qiita-image-store.s3.amazonaws.com/0/103982/0d1cd300-e3bb-191e-14fe-99b5d9f615af.png)

新ナビゲーション UI を使うには、右上の自分のアイコンから `Turn on new navigation` で変更する必要があります。おそらく、次の 10.0 でこの新ナビゲーション UI が標準になると思われます。


### [Project Templates](https://about.gitlab.com/2017/08/22/gitlab-9-5-released/#project-templates)
9.5 一押しの機能は Project Templates だと思います。

新しいプロジェクトを作るときに Ruby on Rails などのテンプレートから作れるようになりました! `.gitlab-ci.yml` ファイルも自動で作られますので、手軽にプロジェクトを始められるようになります。

スクリーンショットを見ればわかる通り、"Ruby on Rails"、"Spring"、"Node.js Express" に対応しています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/103982/e55077bf-6653-67d3-4114-6ef6f176990a.png)

プロジェクトを作るときは、統合開発環境や各フレームワークのテンプレートを使った方が便利なので、この機能はあまり役に立たないと思うんですよね。でも、**デモをするときはすごく便利なんです!**


### [Automatic Retry for Failed CI Jobs](https://about.gitlab.com/2017/08/22/gitlab-9-5-released/#automatic-retry-for-failed-ci-jobs)
本来、CI のジョブはタイミングによって失敗したり成功したりしてはいけないんですが、どうしてもそうなってしまうことがあります。

9.5 ではそういうときに自動でジョブがリトライされる機能が付きました!

こんな感じで、リトライ回数を指定できるようです。

```yaml:.gitlab-ci.yml
test:
  script: rspec
  retry: 2
```


### [Confidential Issue Toggle](https://about.gitlab.com/2017/08/22/gitlab-9-5-released/#confidential-issue-toggle)
Issue の右にあるサイドバーは、担当者を変更したりマイルストーンを変更したりする際に重宝します。

9.5 では Confidentiality の変更もできるようになりました。

Confidentiality に設定された Issue は公開プロジェクトであっても、プロジェクトのメンバーしか見ることができません。セキュリティインシデントやあまり公開したくない議論をする際に便利です。


### [MR Widget Links to Repository](https://about.gitlab.com/2017/08/22/gitlab-9-5-released/#mr-widget-links-to-repository)
9.5 の改善の中で一番役に立ちそうなものがこちらです。

Merge Request から変更されたコードだけではなく、そのブランチのリポジトリ全体を見ることがよくあります。(少なくとも私は) やったことがある人ならわかってもらえると思いますが、非常にめんどくさいです。

9.5 から Merge Request にそのブランチへのリンクが付きました!

![image.png](https://qiita-image-store.s3.amazonaws.com/0/103982/8fec00e4-ea62-06e6-eb3e-f840e4d4a41d.png)


### [Merge Request Diff File Navigation](https://about.gitlab.com/2017/08/22/gitlab-9-5-released/#merge-request-diff-file-navigation)
Merge Request でソースコードの差分を見ることはよくあると思います。変更が少ないときはあまり気にならないのですが、変更されたファイルが多いとなかなか大変です。

9.5 ではこれが改善され、ファイルをさっと選べるようになりました。


### ["Remove Source Branch" Disabled by Default](https://about.gitlab.com/2017/08/22/gitlab-9-5-released/#%22remove-source-branch%22-disabled-by-default)
9.2 でデフォルト "ON" にされた `Remove Source Branch` ですが、9.5 ではデフォルト "OFF" に戻されたようです。

誤ってブランチが削除されることがあり、[問題](https://gitlab.com/gitlab-org/gitlab-ce/issues/32885) になっていたようです。


### [Performance Improvements](https://about.gitlab.com/2017/08/22/gitlab-9-5-released/#performance-improvements)
9.5 のパフォーマンス向上は多岐にわたるようです。期待!


### [Mattermost 4.1]()
GitLab 9.4.x に含まれる Mattermost 4.0 はログインできなくなることがあるようです。正確にはログインできないわけではなく、ログイン後のホームページの表示で JavaScript エラーとなり、ブラウザーウインドウに何も表示されません。Mattermost のロケールを英語以外に設定すると発生しやすいようです。

Mattermost 4.1 ではこれが解消されています。やったー!


## 最後に
来月に 10.0 を控えているせいか、今月はあまり大きな変更はありませんでした。その代わり、来月はすごそうですね。

* [CI ジョブ成果物の HTML ファイルのプレビューが可能に](https://gitlab.com/gitlab-org/gitlab-ce/issues/34102)
* [Issue をリアクションでフィルター](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12962)
* 新ナビゲーション UI のデフォルト化
* GitLab API v3 の廃止

[GitLab Direction](https://about.gitlab.com/direction/) には書かれてないようなんですが、さすがに 10.0 ってことで、大きな変更があるようです。

ライセンスなし GitLab EE が GitLab CE とほぼ同じになり、EE が推奨のインストールになるらしいです。(9.5 の時点で、そうなってますが発表が見送られた?)

また、Visual Studio Code や Visual Studio Services でおなじみのエディター Monaco が搭載されるらしいです。ちょこっとした変更なら、GitLab の GUI から捜査して、CI に任せちゃえますね。

来月も楽しみですね!