GitLab 8.17 リリース

# GitLab 8.17 リリース
[GitLab 8.17 がリリース](https://about.gitlab.com/2017/02/22/gitlab-8-17-released/)されました。オープンソース版の GitLab CE にも、ついに GitLab Pages が導入されました!


## 変更点
[GitLab 8.17 の変更](https://about.gitlab.com/2017/02/22/gitlab-8-17-released/) の中から、個人的に気になるものをピックアップします。


### GitLab Pages (GitLab CE)
何はなくとも GitLab Pages です! GitHub Pages と同様に、静的ページをホスティングしてくれるサービスです。GitLab EE では標準搭載されていて、GitLab.com でも使えていたので、利用されていた方も多いのではないでしょうか?

その、GitLab Pages がオープンソース版の GitLab CE にも導入されました。GitLab 社が導入を決定した経緯については、coolchicprogramer さんのブログ[なぜGitLab PagesをCommunity Editionでも利用できるようにしたのか](https://coolchicprogramer.wordpress.com/2016/12/29/gitlab%E3%81%AA%E3%81%9Cgitlab-pages%E3%82%92community-edition%E3%81%A7%E3%82%82%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%9F%E3%81%AE%E3%81%8B/)が詳しいです。

簡単に説明すると、ウェブサイトを手軽に公開する機能です。

GitLab Pages の管理者のセットアップは [GitLab Pages administration](https://docs.gitlab.com/ce/administration/pages/index.html) を、GitLab Page を使うには [GitLab Pages](https://docs.gitlab.com/ce/user/project/pages/index.html) を見てください。

プロジェクトの `.gitlab-ci.yml` ファイルに以下のように書いておくと、`index.html` が公開され、`http://your-name.pages.example.com/project1` でアクセスできるようになります。

```yaml
# .gitlab-ci.yml
pages:
  script:
    - mkdir -p public
    - echo test > public/index.html
  artifacts:
    paths:
      - public
```

なはずなのですが、自分の手元の環境 (テスト用にクリーンインストールしてます) ではうまく動きませんでした。しかも、GitLab Pages が楽しみで 8.17-rc のころから追いかけてたのですが、一度も動いたことはありません。どうしても、`pages:deploy failed` となります。

![10.png](https://qiita-image-store.s3.amazonaws.com/0/103982/b66eb153-e75b-460e-f17b-abe9f67cfbf1.png)

さすがに 8.17 リリース版でも動かないのは自分の環境が悪いのかと思い、調べてみました。動かない原因は以下の二点のようです。

* `/opt/gitlab/sv/gitlab-pages/run` の一部の記述を削除して、`gitlab-ctl restart` しないといけない [#28579](https://gitlab.com/gitlab-org/gitlab-ce/issues/28579)
* `unzip` コマンドが必要

手順をまとめておきます。

サーバーにログインして、(Docker 版を利用している方は、`docker exec -it gitlab-name bash` で) `/opt/gitlab/sv/gitlab-pages/run` ファイルから `-damen-?id` の二行を削除してください。

```diff
--- /opt/gitlab/sv/gitlab-pages/run.orig        2017-02-23 11:44:30.239648963 +0000
+++ /opt/gitlab/sv/gitlab-pages/run     2017-02-23 11:44:38.311859846 +0000
@@ -10,8 +10,6 @@
 
 exec /opt/gitlab/embedded/bin/gitlab-pages \
     -listen-proxy "localhost:8090" \
-    -daemon-uid "$(id -u "git")" \
-    -daemon-gid "$(id -g "git")" \
     \
     -pages-domain "pages.virt.heavenly.fujitsu.local" \
     -pages-root "/var/opt/gitlab/gitlab-rails/shared/pages" \
```

そして、`gitlab-ctl restart` でサービスを再起動します。ちなみに、この書き換えたファイルは `gitlab-ctl reconfigure` で元に戻ってしまうので要注意です。

その後、`apt-get update && apt-get install unzip` で `unzip` コマンドをインストールしてください。(Ubuntu の場合)

再チャレンジしたら動きました!

![12.png](https://qiita-image-store.s3.amazonaws.com/0/103982/9f75f4d7-9454-80cd-7d25-3dae17bf79ad.png)

作成されたウェブサイトは `Pages` メニューからたどると分かります。

![13.png](https://qiita-image-store.s3.amazonaws.com/0/103982/8c8395ae-e7f1-afcc-cd82-189d747d3fb3.png)

無事表示されました!

![14.png](https://qiita-image-store.s3.amazonaws.com/0/103982/d3b215cb-e290-60be-727e-eac8b2b4dbf6.png)


### Easily Search and Add Issues to Issue Boards
8.17 から [Issue Board](https://about.gitlab.com/solutions/issueboard/) (いわゆるカンバン) の使い方がちょっと変更されました。

* Backlog が廃止され、リストに属していない Issue が表示されなくなった
* `Add Issues` ボタンが追加され、これで Issue を Board に登録するようになった

もともと、Backlog には多くの Issue が表示されるようになっており、そこから探しだして `ToDo` に追加していくのはかなり大変だったようです。`ToDo` に追加したい Issue を探しやすくなっており、使いやすくなりました。

詳しくは使ってみるのが一番だと思います!


### Copy and Paste GitLab Markdown
地味にすごいのがこの機能です。Markdown をそのままコピーできます。何を言っているのかわからないと思いますが、とにかくすごいです。

[Link from Merge Request interface to Environment](https://about.gitlab.com/2017/02/22/gitlab-8-17-released/#copy-and-paste-gitlab-markdown) に動画がありますので、とにかくそれを見てください!


### Link from Merge Request interface to Environment
これ、すごいです! すごいしか言ってませんが...

[Link from Merge Request interface to Environment](https://about.gitlab.com/2017/02/22/gitlab-8-17-released/#link-from-merge-request-interface-to-environment) よりも、[Go directly from source files to public pages on the environment](https://docs.gitlab.com/ce/ci/environments.html#go-directly-from-source-files-to-public-pages-on-the-environment) の方が分かりやすいかもです。

`.gitlab/route-map.yml` ファイルを用意しておくことで、Repository のファイルから該当するウェブアプリの URL へのリンクボタンがつくようです。

例えば、GitLab で `app/views/users.ejs` というテンプレートファイルを表示している時、その画面に `http://preview-app.master.example.com/users` へのリンクがつくという感じです。

Merge Request で変更されたコードをレビューしながら、ボタンを押すと該当するウェブアプリの画面に直接飛べるんですよね。レビューがはかどりますね。


### Streamlining Project Settings and Navigation
プロジェクトの右上にある歯車アイコンのメニューが整理されました。まとめられたり、名前が変わったりしています。注意してください。

他にも、今まで `Build` と呼んでいたものが `Job` に変更されたようです。


### Redesigned Slack and Mattermost Issue Messages
[Redesigned Slack and Mattermost Issue Messages](https://about.gitlab.com/2017/02/22/gitlab-8-17-released/#redesigned-slack-and-mattermost-issue-messages) を見ればすぐに解ると思いますが、Mattermost や Slack で Issue を表示するときの見た目が大幅に改善されました。


### API v4 Beta
GitLab API の V4 が使えるようになりました。GitLab 9.0 (来月っぽい) からこれが正式となり、API V3 は非推奨となるようです。

[V3 to V4 version](https://docs.gitlab.com/ce/api/v3_to_v4.html) を参照してください。


### Add PlantUML support for Markdown
個人的に大好きな [PlantUML](http://plantuml.com/) が Markdown でも使えるようになりました!

[AsciiDoc では 8.16 に導入](http://qiita.com/masakura/items/c039f0bc56c826fb6214#add-support-for-plantuml-diagrams-in-asciidoc) されていました。


### Display project ID in project settings
プロジェクト ID がプロジェクトの設定画面で確認できるようになりました。地味に便利です。

![15.png](https://qiita-image-store.s3.amazonaws.com/0/103982/2cc1bed9-24d5-9c17-9f6e-456d1e7a6561.png)


## 最後に
今回の目玉はなんと言っても GitLab Pages ですね! Issue Board が使いやすくなっているのも見逃せません。

さて、来月は 9.0 です。[GitLab Direction](https://about.gitlab.com/direction/#gitlab-community-edition) をざっと見ると、嬉しい機能追加がありましね。

* [GitLab グループの作成で Mattermost Team が作られる (When creating GitLab group, create Mattermost team)](https://gitlab.com/gitlab-org/gitlab-ce/issues/23964)
* [Nested groups](https://gitlab.com/gitlab-org/gitlab-ce/issues/2772)

相変わらず楽しみです。