2019年04月23日 - Yuko Takano   (原文)
11.7

GitLab 11.7がリリース、リリース機能、 子エピックの他層化、 NPMレジストリ

GitLab 11.7がリリースされました。リリース機能、子エピックの他層化、NPMレジストリが実装!

リリース管理がより簡単に

GitLab 11.7では、GitLab Coreでリリース機能が利用できるようになります。 ユーザは、ソースコードのみならず、全ての成果物を含めたリリース時のスナップショット を保持することができるようになりました。 これにより、ソースコードやビルドの成果物、他のメタデータやコードのリリースバージョンに関連する成果物などを手動で収集管理する必要がなくなります。 加えて、このリリース機能は将来的により幅広く、パワフルなリリースオーケストレーションになるべく、準備されます。

ポートフォリオ管理がより複雑なWBSをサポート

子エピックの多層化 はUltimateで利用できる、GitLabポートフォリオ管理の最新機能です。 子エピックでは複数階層のWBSを利用できるようになり、より複雑な案件や作業計画の一助となるでしょう。 課題とエピックの両方を含むエピックを作ることができるようになり、この構造によって、計画と実装にあたることができる課題をダイレクトに結びつけることができます。

NPMレジストリを使用してJavaScriptでの開発を効率化

GitLab 11.7のPremiumでは、NPMレジストリをGitLab内部に持てるようになりました。それにより、NPMパッケージをプロジェクト横断的に共有し、またNPMパッケージをバージョン管理することが可能になります。 パッケージ名を伝えるだけで、あとはNPMとGitLabにおまかせできます。すべてが1つのインターフェースで完結します!

その他の機能

月次リリース記事のトップで「どの機能を取り上げるか」を選ぶのは毎回とても難しい作業になっています。以下は、その他の素晴らしい機能のご紹介です。

  • パッチファイルで脆弱性を修復:ご存知の通り、GitLabのセキュリティ機能では、脆弱性を検知することができます。GitLab 11.7では、さらに、脆弱性を修復する機能が盛り込まれました。そして、Node.jsプロジェクトには、Yarnでの解決方法の提案も行われます。これはGitLabが提供する初めての修復タイプ機能であり、これからますます発展が見込まれます!

  • APIによるKubernatesの構築: もしあなたがたくさんのKubernatesクラスターを構築する業務にあたっているとしたら、GitLabのKubernetes APIを利用して、あなたの手作業を減らし、日々の仕事をすいぶん楽にできるでしょう!

  • プロジェクト横断でのパイプラインの表示: プロジェクトをまたいでパイプラインを確認できるようになりました。この機能を使えば、どんな情報でもすぐに得られるでしょう!

GitLab 11.7の全機能についてみていきましょう!

GitLab MVP badge

今月のMVPには MortyChoi さんが選ばれました

MortyChoiさんはサブグループでのプライベートGoパッケージのサポート機能を追加しました。 GitLabで幅広く使われている言語へのさらなるサポートの手助けになる、多大な貢献をしました。

GitLab 11.7での主要機能

プロジェクトのリリース機能

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

新しいリリース機能により、GitLabでリリースを作成でき、それをサマリーページで参照できるようになりました。 リリースとは、リリースしたバージョンのコードに関連する、ソースコード、リンク、その他のメタデータ、 成果物などのスナップショットにあたるもので、プロジェクトのユーザは、簡単に最新のリリースバージョンを 探せるようになるでしょう。

プロジェクトのリリース機能

子エピックの多層化

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

エピックと課題は、長期的なプロジェクト計画の策定の中で柔軟性をもつことで、とても効果的に使うことができます。 しかしながら、未だに両機能とも2階層までの対応しかできません。

今回のリリースでは、子エピック機能をリリースします。 今後は、課題とエピックの両方を持ったエピックを利用することができます。 これにより、複数階層のWBSを作成することができます。 そのため、長期的、戦略的な取り組みや、組織のゴールをハイレベルなエピックで表すことができ、 複数階層のエピックを確実な成果物やずっと下の階層の課題に落とし込むことができるのです。

子エピックの多層化

プロジェクト横断的なパイプラインの表示

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

プロジェクト横断のパイプラインの場合に、パイプライン画面で上流、下流のパイプラインの詳細を表示できるようになりました。 これにより、どのプロジェクトから始まっていようと、また終わろうと、パイプラインの端から端までを見ることができます。

プロジェクト横断的なパイプラインの表示

パッチファイルによる脆弱性の修正

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLabはアプリケーション内の色々なタイプの脆弱性を検知し、それを修復するための利用可能な修正を提案することもできます。GitLab 11.7では git apply コマンドを利用してパッチファイルのダウンロードやレポジトリへの適用ができます。 その後はリポジトリへ変更をpushし、脆弱性の状態をセキュリティダッシュボードで確認することができます。 解決へのプロセスがとても簡単になり、解決に取り組むための時間を削減できます。 現状yarnパッケージマネージャーに対する脆弱性の依存性スキャンがサポートされており、何も手を加えずとも利用できる状態です。パッチは脆弱性詳細ウィンドウで利用可能になったタイミングでいつでも使えます。

パッチファイルによる脆弱性の修正

Auto DevOpsパイプラインでKubernetesアプリの機密データを変数として定義する

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

システム運用者や管理者は、機密データ漏洩のリスクと危険性を減らすために、アプリケーションのリポジトリ外で機密データを定義することを要求します。 この必要性に対し、GitLabはKubernatesクラスターで動いているAuto DevOpsアプリケーションの環境変数を設定できるようにしました。 単純に K8S_SECRET_ を変数の頭に付けると、適切なAuto DevOpsCIパイプラインであなたのアプリケーションの機密変数をKubernates secretに定義してくれます。

Auto DevOpsパイプラインでKubernetesアプリの機密データを変数として定義する

NPMレジストリ

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

JavaScript開発者は、安全で標準化された方法で、NPMパッケージをプロジェクト間で共有、およびバージョンコントロールする必要があります。

GitLab 11.7では、GitLabの内部にNPMレジストリを持つことができるようになりました! GitLabに統合されたことで、どのNode.jsプロジェクトのライブラリであっても、パッケージ名を指定するだけで再利用することができます。 NPMやGitLabが内部処理を受け持ち、すべての作業はGitLabの画面からだけで完結します。 この機能はGitLab Premiumで提供されます。

このGitLab NPMレジストリを利用しているサンプルプロジェクトを見て、いかに簡単にできるかを実感してください。

NPMレジストリ

APIでKubernetes連携をサポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

今回のリリースより、APIでKubernates連携のサポートを開始します。 これは、現在利用可能なすべてのGUIでの操作、例えばKubernatesクラスターのリスト表示、追加、削除が API経由でできるようになることを示します。

チームはこの新しい機能を使って、クラスターの作成を自分たちのワークフローの一部として組み込めるようになりました。

APIでKubernetes連携をサポート

GitLab 11.7でのその他改善点

課題ボードでの検索フィルター機能

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

チームでは、プロジェクト内、ボード内のたくさんの課題ボードを使っていますが、リストが非常に長い場合、ドロップダウンリストが使いづらくなってしまいます。 今回のリリースで、フィルター機能が追加されます。 検索窓で少し文字を入力するだけで、探している課題ボードを直ちに絞り込んでくれ、より検索が簡単になるでしょう。

課題ボードでの検索フィルター機能

Microsoft ExchangeやGoogle Groupsを含む、catch-all機能のサポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLabには メールでのリプライ機能, メールによる課題起票機能, メールによる新規マージリクエスト機能 と、 サービスデスクなど、受信メールを利用した素晴らしい機能があります。 以前は、サブアドレス用に構成されたメールサーバを利用している場合にのみ、これらの機能を使うことができました。 今回のリリースにより、GitLabはサブアドレス、catch-all機能の両方をサポートします。新しいメールフォーマットを利用すれば、MSExchangeやGoogleGroups(サブアドレス未サポート)などGitLabでより多くのメールサーバを利用できるようになります。

コミットのSHA(ハッシュ値)の短縮版が環境変数として利用可能に

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitのSHAはリポジトリ内のコミットなどの特定のオブジェクトを指し示す、40文字のポインターです。 全てのハッシュ値を表示すると扱いづらく、ちょっと確認するために最初の8文字だけ表示したかったりします。(一意の値とは保証されませんが) CIパイプラインに、こういった目的用にCI_COMMIT_SHORT_SHA環境変数を追加しました。これにより、コミットのSHAの最初の部分だけが表示できるようになります。

コミットのSHA(ハッシュ値)の短縮版が環境変数として利用可能に

includes取得の権限サポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

include を使用して、パイプライン定義に外部からファイルを取り込むとき、ファイルはHTTPやHTTPSリクエストを介します。 パイプラインで利用されている資格情報で、パブリックからアクセスできない他のプロジェクト(例えば GitLab.comのプライベートプロジェクト)のyamlファイルにアクセスできるようになりました。

グループセキュリティダッシュボードで依存性スキャンの結果を表示

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

グループセキュリティダッシュボードはリリース当初、 SASTの結果を表示するのみでした。 そのため、ユーザはこの機能で他のタイプの脆弱性への対応ができませんでした。 GitLab 11.7では、依存性スキャンの調査結果が利用可能なデータに追加されました。 もし既にnew report syntaxをお使いであれば、自動的にダッシュボードに結果が表示されます。 Auto DevOps テンプレートもアップデートされました。依存性スキャンを問題なく実行するためには GitLab Runner 11.5以上が必要となります。

グループセキュリティダッシュボードで依存性スキャンの結果を表示

Kubernatesクラスター生成時にRBACがデフォルトで有効に

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Kubernatesクラスターに対し、誰がアクセスできて、どんな操作が許されるのか、をコントロールするために、安全性を高めることは必須要件です。

GitLab 11.7では、より安全で堅牢なインフラを実現するために、全てのクラスターは作成時にデフォルトでRBACが有効にされます。

NGINX Ingress 0.16.0+メトリクスのサポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

NGINX Ingress 0.16.0のリリースで、Prometheusのメトリクスは外部のexporterに依存しなくても、buildできる ようになりました。

GitLab 11.7はGitLab 11.7では、NGINX Ingress 0.16.0+からエクスポートされた メトリクス を取り込めるようになります。 取り込んだ後は、スループット、レイテンシ、デプロイのエラー発生率などが自動的に収集されて、表示されるようになります。

GitLab Runner 11.7

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

本日、GitLab Runner 11.7もリリースされます。 GitLab RunnerはCI/CDのジョブを実行し、結果をGitLabに戻すオープンソースのプロジェクトです。

最も興味深い変更点:

全ての変更リストはGitLab Runnerの CHANGELOG で参照できます。

パフォーマンス改善

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

私たちは様々なサイズの GitLab インスタンスに対してリリース毎に GitLab のパフォーマンスを改善し続けています。

GitLab 11.7 では、caching syntax highlighted discussion diffs によってマージリクエストの表示パフォーマンスが大幅に向上しました。

その他の注目すべきパフォーマンスの向上は次のとおりです:

プロジェクト一覧のデザイン刷新

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

プロジェクトはGitLabにおいて最もベースとなる機能です。私たちは、プロジェクトの一覧を見やすくしたり、簡単に調べたりしたいと思っています。 GitLab 11.7では、読みやすさとプロジェクトの活動概要の表示を重視して、プロジェクト一覧画面のデザインを刷新しました。 各プロジェクトの行に表示されるプロジェクトの情報を増やし、見易くするために余白を追加しました。 今後もフィードバックをベースとしたデザインの刷新を続けていきます。

プロジェクト一覧のデザイン刷新

課題をCSVでインポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

チームでGitLabを使い始める際、もともとは他のツールを使っていて、そのデータを持っている、といったことがよくあります。 Jiraを使っていて、GitLabの課題にデータを移行したいとしたら、今回のリリースでより簡単に移行ができるようになります。

多くの課題管理ツールがCSVでのエクスポートをサポートしていることから、GitLabにそのエクスポートデータをインポートできるようになります。 既存のタスクの管理を継続できたり、過去のデータを将来的に調査出来たり、必要に応じてリストアできるようにもなります。 Jiraやその他のCSVエクスポートに対応するどんなツールでも利用可能です。 GitLabには既存の CSVエクスポート機能もあります。

課題をCSVでインポート

自己承認機能の制限がより厳密に

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

コードレビューはあらゆる成功しているプロジェクトに不可欠な活動であり、変更した担当者以外の誰かによって実施されるべきです。 デフォルトでは、マージリクエストの自己承認は許されておらず、マージリクエスト内のコミットした担当者ではなく、マージリクエストの作成者に基づいて制限されていました。 GitLab 11.7からは、自己承認機能の制限が、マージリクエストに対して変更をコミットした人物へも適用されます。マージリクエストが複数のエンジニアから公正なコードレビューと承認を受けられるようになります。

グループセキュリティダッシュボードで脆弱性を絞り込む

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

グループセキュリティダッシュボードにより、セキュリティ担当者はグループに影響を及ぼす脆弱性を表示させ、把握することができています。 GitLab 11.7では、ユーザが重大度、レポートタイプ、プロジェクト名で脆弱性をフィルタできるようになります。

この機能により、プロジェクトに今、何が必要かにフォーカスでき、データにいち早くアクセスできます。特に、リストにたくさん項目が表示される場合に便利です。

グループセキュリティダッシュボードで脆弱性を絞り込む

CI/CDのファイルを他のプロジェクトやテンプレートから取り込む

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

include で、外部ファイルを取り込むなどの動的なCI/CDパイプラインの生成が可能となります。 以前はプロジェクトのレポジトリにあるファイルか、HTTPで持ってきたリモートのファイルのみが対象でした。 GitLab 11.7では、他のプロジェクトや定義済みテンプレートから、スニペットを取り込むこともできるようになります。 GitLabはsastdependency_scanning などの特定のジョブ用のスニペットを取り込むことができるので、現行の定義をコピー&ペーストせずとも参照することができます。 GitLabがアップデートされる際、ジョブも自動的に最新バージョンにアップデートされます。手作業での変更は必要ありません。

CI/CDのファイルを他のプロジェクトやテンプレートから取り込む

サブグループでのプライベートGoパッケージをサポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLabに入っているGoパッケージはgo getを使えばインストールができます。 しかしながら、サブグループのプライベートプロジェクトでは、それがサポートされていません。 GitLab 11.7では、サブグループのプライベートプロジェクトも含め、どのプロジェクトからでもGoパッケージが利用できるようになります。

プライベートパッケージは.netrcファイルを使用した go getコマンドと、パスワード欄のパーソナルアクセストークンを使用してサポートされています。

MortyChoi さんの貢献に感謝します!

git push時にCIの処理をスキップ

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

CI/CDパイプラインをコミット時に実行させたくない場合、ユーザがコミットメッセージで [ci skip][skip ci]と記載することで回避できました。 しかし、多くのユーザはコミットメッセージに余計な文言を入れたくない、または入れることができないでしょう。

GitLab 11.7以降は、Git2.10以上でGitLabにpushする場合、パイプラインが動作しないようにGit push options を利用できるようになります。

git push -o ci.skipを実行することで、コミットメッセージに不要な文言を追加することなく、パイプライン実行の回避が実現できるようになったのです。

Jonathon Reinhart さんの貢献に感謝します。

Omnibusパッケージの改善点

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

非推奨

Debian 7 Wheezy サポート

GitLab 11.6 が Debian 7 Wheezy の最後のサポートバージョンになります。

GitLab 10.6 にて Debian 7 Wheezy のサポートを非推奨にすることが発表されています。 2018 年 5 月現在 Debian 7 Wheezy は Debian プロジェクトでサポートされていません。

Debian 9 Stretch または Debian 8 Jessie へのアップグレードを強くお勧めします。

削除日: 2019年12月22日

Raspbian Jessie サポート

GitLab 11.8 が Raspbian Jessie をサポートする最後のリリースになります。

Jessie は LTS に移行 しました。 そして 最新の Raspbian Jessie イメージ はリリースから 1 年以上経っています。 Raspbian ユーザは Raspbian Stretch にアップグレードすることをお勧めします。

削除日: 2019年2月22日

CentOS 6 での Docker executor を使用した GitLab ランナーのサポート

GitLab 11.9 が CentOS 6 での Docker executor を使用した GitLab ランナーをサポートする最後のリリースになります。 理由は、現在サポートしていない Dokcer ライブラリより新しい Docker ライブラリへのアップデートを計画しているからです。

詳細については この課題 を参照してください。

削除日: 2019年3月22日

Omnibus GitLabでPrometheus 1.x系のサポートについて

GitLab 11.4では、OmnibusパッケージへのPrometheusバージョン1.0のバンドルが廃止されました。 現在、Prometheusの2.0が含まれるようになりましたが、メトリクスのフォーマットが1.0と異なります。 Omnibusパッケージに含まれるツールを使い、既存環境も、2.0にアップデートし、データのマイグレーションもできます。

GitLab 12.0では、どのインストール方法でも、Prometheus 2.0で動いていない場合は自動的にアップグレードされます。 その場合は、Prometheus 1.0のメトリクスデータはマイグレーションされずに失われます。

削除日: 2019年6月22日

GitLab 12.0からはデフォルトでTLSv1.1を無効化に

GitLab 12.0から、セキュリティ向上のため TLS v1.1はデフォルトで無効化されます。これにより、Heartbleedを含む多くのissueの低減につながり、また、PCI DSS 3.1規格に準拠した状態ですぐに使用できるようになります。

今すぐTLS v1.1を無効化したい場合は、gitlab.rbnginx['ssl_protocols'] = "TLSv1.2"と編集し、gitlab-ctl reconfigureを実行します。

削除日: 2019年6月22日

GitLabインストール用のOpenShiftテンプレート

公式の gitlab helm chartOpenShiftへの構築を含む、Kubernates上にGitLabを展開したいときに推奨される方法です。

OpenShiftのGitLabテンプレートは廃止となり、GitLab12.0ではもうサポートされません。

削除日: 2019年6月22日

GitLab Geoではv12.0からHashed Storageが必要に

GitLab Geoでは、セカンダリーノードとの間で競合状態になることを回避するため、 Hashed Storageの利用が必要になります。 これはgitlab-ce#40970に記載されています。

11.5で、Geoのドキュメント: gitlab-ee#8053にこの要件を追加しました。

11.6では、 sudo gitlab-rake gitlab:geo:check でHashed Storageが利用可能かどうかを確認し、全てのプロジェクトをマイグレーションします。:gitlab-ee#8289 Geoを利用中であれば、このチェックコマンドを実行し、可能な限り早くマイグレーションをしてください。

11.8では、上記で記載したチェックが行われないと、”Admin Area › Geo › Nodes”にページに警告のバナーが表示され続けます。gitlab-ee!8433

12.0では、GeoはHashed Storageを必須とします。 gitlab-ee#8690.

削除日: 2019年6月22日

Google OAuth2 SSOは11.7のみでサポート

2019年3月7日、Googleは全てのGoogle+のAPIを停止しました。 こちらでGoogleからのアナウンスの詳細を読むことができます。

11.7以前のバージョンでは、これらのAPIはGoogle OAuth2に依存していましたが、今後機能しなくなります。 11.7では、 GoogleSSOをサポートします。 もしご利用中のインスタンスが認証でGoogle OAuth2を使っている場合、11.7へのアップデートをお勧めします。

削除日: 2019年3月7日

GitLab11.9ではDeveloperがGit tagを削除できるように

非プロテクトブランチ上の編集/削除タグは、今まで Maintainers と Ownersのみに制限されてきました。

Developerがタグを追加できるだけでなく、非プロテクトブランチを変更、削除できるようになったため、Developerでタグについても変更や削除ができるべきだと考えました。

GitLab 11.9で我々は、ワークフローを改善し、Developerががタグをより効果的かつ効果的に使用できるよう、パーミッションのモデルに 変更を加えました。

削除日: 2019年3月22日

Hipchat連携

Hipchatはサービス終了となります。 そのため、GitLab 11.9では、既存のHipchat関連機能を削除する予定です。

削除日: 2019年3月22日

アップグレードの指標

11.6の最新バージョンからGitLab 11.7へのアップグレードに、ダウンタイムは発生しません。 詳細はノーダウンタイムアップグレードに関するドキュメントを参照してください。

GitLab.comと同規模のインスタンスでは、このリリースで、データベースのマイグレーションに30分から60分程度かかります。 より小規模なインスタンスでは、データベースのマイグレーションは長くても15分程度です。

GitLab Geoのユーザーは、Geoのアップグレードに関するドキュメントを参照してください。

変更履歴

すべての名称付きの変更を確認したい場合はCHANGELOGを確認してください:

インストール方法

新規にGitLabをインストールをする場合は インストール のページを参照してください。

アップデート方法

アップデート ページを参照ください。

GitLabのサブスクリプションプラン

GitLabは セルフホスト または クラウドサービス で利用できます。

セルフホスト: オンプレミス、またはクラウドプラットフォームにデプロイ

  • Core: 小規模なチーム、個人プロジェクト、または無期限でのGitLabの試用に向いています
  • Starter: プロフェッショナルのサポートが必要な、同一の場所で作業するチームに向いています
  • Premium: 高度な機能、高可用性、365日24時間のサポートが必要な、複数の場所で作業するチームに向いています
  • Ultimate: 高度なセキュリティとコンプライアンスで戦略の実行が求められるエンタープライズ向けのプランです

クラウドサービス - GitLab.com: 無料でも利用可能な、GitLabが運営するクラウドサービスです。

  • Free: プライベートリポジトリと共同作業者の制限はありません。 プライベートプロジェクトではFreeの機能に制限されますが、パブリックプロジェクトではGoldの機能を利用できます。
  • Bronze: より高度なワークフロー機能が必要なチームに向いています。
  • Silver: より強力なDevOps機能、コンプライアンス、迅速なサポートが必要なチームに向いています。
  • Gold: 多くののCI/CDのジョブを実行できます。プランにかかわらず、パブリックプロジェクトでは無料でGoldの機能を利用できます。

カバーイメージ のライセンスは Unsplash です。

Gitlab x icon svg