GitLab 9.0 の変更点まとめ


2017年3月22日にGitLab 9.0がリリースされました。18ヶ月ぶりのメジャーバージョンアップだそうです。
GitLabは、アプリケーションライフサイクル管理(ALM)ツールです。
アプリケーションの設計、コーディング、ビルド、デプロイ、モニタリングをGitLab内で直接行うことができます。

GitLabにはオープンソースのCommunity Editionと、有償のEnterprise Editionがありますが、本記事はCommunity Editionを対象にしてします。

[インストール記事はこちら](http://qiita.com/boiyaa/items/20a4fd0cc79f7d3b4a56)
[アップグレード記事はこちら](http://qiita.com/boiyaa/items/eb5f67064e3855393012)


# サブグループ
グループ内のグループ、つまり「サブグループ」に対応しました。
最大20階層のサブグループを作成できます。
:notebook_with_decorative_cover: [Subgroupsについてさらに詳しく](https://docs.gitlab.com/ce/user/group/subgroups/)


# 開発環境のモニタリング
CI/CDパイプラインとソースコードリポジトリを統合した監視システムが導入されました。
Prometheusを活用して、Kubernetesベースの環境で実行されているアプリケーションのCPUとメモリ使用率を追跡できるようになりました。
将来的には、マージのパフォーマンスへの影響を測定し、広範囲のメトリクスをサポートし、デプロイボードに監視データを統合するそうです。
:notebook_with_decorative_cover: [Prometheus統合についてさらに詳しく](https://docs.gitlab.com/ce/user/project/integrations/prometheus.html)


# パフォーマンス向上
authorやassigneeのより効率の良い検索と、不要なクエリの削除によって、IssuesとMerge Requestsのダッシュボードのパフォーマンスが改善されました。


# ナビゲーション更新
タブの項目が再配置されました。
プロジェクトビュー設定の設定が簡略化され、メインプロジェクトタブで、(1)ファイルとREADME、(2)アクティビティ、のどちらを表示するか選択できるようになりました。
:notebook_with_decorative_cover: [変更点についてさらに詳しく](https://gitlab.com/gitlab-org/gitlab-ce/issues/26348)


# カンバンで課題の並び替え
ドラッグ＆ドロップで課題の順序を変更できるようになりました。
:notebook_with_decorative_cover: [Issue Boardsについてさらに詳しく](https://docs.gitlab.com/ce/user/project/issue_board.html)


# API v4
v3は2017年8月までサポートするそうです。
:notebook_with_decorative_cover: [v4変更点についてさらに詳しく](https://docs.gitlab.com/ee/api/v3_to_v4.html)


# Unicode絵文字対応
:notebook_with_decorative_cover: [award絵文字についてさらに詳しく](https://docs.gitlab.com/ce/user/award_emojis.html)



# 空プロジェクトでブランチ作成
空プロジェクトでブランチ作成した場合、自動的にmasterブランチを作成し、空README.mdをコミットしてから、新しいブランチを作成するようになりました。
:notebook_with_decorative_cover: [ブランチ作成についてさらに詳しく](https://docs.gitlab.com/ce/user/project/repository/web_editor.html#create-a-new-branch-from-an-issue)


# GitLab CI変数名変更
:notebook_with_decorative_cover: [CI変数についてさらに詳しく](https://docs.gitlab.com/ce/ci/variables/)


# Merge Requestsウィジェットのユーザビリティ
をどんどん改善していきたいそうです。
最も関連性の高い情報を提示し、コードの状態（レビュー中、デプロイ済など）を一目で確認できるようにしたいそうです。


# Gitaly
Gitまわりのパフォーマンス向上のためのオープンソースソリューションを作っているそうで、今後ご期待くださいとのことです。


# グループ作成時にMattermostチームを作成する
GitLabはチームチャットツールのMattermostと統合しています。
9.0では、グループを作成するときにMattermostに同じ名前のチームを作成できるようになりました。


# グループ検索
グループ一覧画面がグループの検索と並べ替えに対応しました。


# Environmentsにページネーション追加


# IssuesとMerge Requestsでトークン化フィルタリング
フィルタの属性がトークン化されました。
将来のリリースでGitLabの他の部分にも展開するそうです。


# 偽装トークン
トークンを取得するプロセスをより簡単で一元的に制御できます。
:notebook_with_decorative_cover: [偽装トークンについてさらに詳しく](https://docs.gitlab.com/ce/api/index.html#impersonation-tokens)


# GitLab PagesのArtifactsをデプロイ後に自動削除
有効期限を設定することで保持できます。


# Diffsのコメントがより簡単に


# アクセス許可されたPipelineトリガー
Pipeline Trigger APIができました。Build Trigger APIは廃止され、間もなく削除されます。


# CIキーワード`cache:key`がデフォルトでdefaultに
`cache:key`の値を明示しない場合は、defaultが設定されるようになりました。


# 手動ジョブでブロッキングができるように
`when: manual`のジョブに`allow_failure: false`を指定すると、実行するまで次以降のステージの実行をブロッキングできるようになりました。


# HTTP Strict Transport Securityの詳細制御
Omnibus GitLab configで微調整できるようになりました。
:notebook_with_decorative_cover: [HSTSについてさらに詳しく](https://docs.gitlab.com/omnibus/settings/nginx.html#setting-http-strict-transport-security)


# 注目に値するコミュニティの貢献
- リポジトリのHTTP（S）クローンURLにユーザ名を追加
- API：カバレッジ値をコミット・ステータス・エンドポイントに渡せるように
- wikiの一覧表示時にディレクトリ階層を表示
- 行頭でメンションされたユーザーに作成される`Directly addressed` Todoを追加
- TodoのUndone機能
- Todo通知バッジで99以上を表示できるように
- Todoのフィルタリングオプションに`Added`と`Pipelines`を追加
- 課題一覧の各課題にマージリクエスト数を追加
- コメントに絵文字だけを投稿できるようにするために`/award`スラッシュコマンドを追加。
- 失敗したビルドの課題を作成するボタンを追加
- Slack通知にユーザーとビルドのリンクを追加
- ブランチ名をクリップボードにコピーする機能を追加
- Pipelines通知メールにブランドヘッダーロゴ


# Omnibus GitLabパッケージの改善
- [PostgreSQLのバージョンアップ (9.2 -> 9.6)](https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server)
- [GitLab Mattermost 3.7](https://about.mattermost.com/mattermost-3-7)
- Raspberry Pi 2パッケージがRaspbianディストリビューションに変更
- [PrometheusでGitLabの監視](https://docs.gitlab.com/ce/administration/monitoring/prometheus/)


# 廃止
- GitLab Runner
- Git-Annex
- GitLab.comのGitLab PagesサーバのIPアドレス