2019年07月30日 - Hiromi Nozawa   (原文)
11.9

GitLab 11.9がリリース。機密情報ファイルの検出、マージリクエストでの承認ルール

GitLab 11.9がリリースされました。機密情報ファイルの検出、マージリクエストでの承認ルール、ChatOpsをCoreプランへ移動など様々な点が改善がされています。

機密情報が漏洩したかどうかを迅速に把握

認証情報を共有リポジトリに誤ってコミットすると、重大な結果を招く可能性がありますが、これは単純なミスです。攻撃者はパスワードや API キーを一旦入手すると、あなたのアカウントを乗っ取り、不正に課金することができます。 これは、乗っ取られたアカウントから他のアカウントへのアクセスされる、ドミノ効果につながることさえあります。リスクが非常に高いため、機密情報が漏洩した場合にはできるだけ早く知ることが最も重要です。

今回のリリースでは SAST 機能の一部として 機密情報の検出 を導入しています。CI/CD ジョブで各コミットをスキャンし、機密情報が含まれていないことを確認します。 スキャンにより機密情報を検出した場合、開発者はマージリクエストで警告を受け、漏洩した資格情報を無効にして新しい資格情報を生成するためのアクションを迅速に実行できます。

適切な変更管理の実施

組織が成長し、より複雑になるにつれて、組織のさまざまな部署間で整合性を保つことが難しくなります。同時に、アプリケーションのユーザ数と収益が増加すると、不適切なコードやセキュアでないコードをマージした場合の影響も大きくなります。適切なレビュープロセスに従っていることをコードがマージされる前に確認することは、そうしない場合のリスクが非常に大きいため、多くの組織にとって難しい要件です。

GitLab 11.9 では マージリクエストの承認ルール を利用して、より高度な制御と機構を提供しています。 これまでは、必要な承認のために個人またはグループを指定できました (グループのどのメンバーでも承認を与えることができます)。現在は、マージリクエストに複数のルールを追加して、個々の承認者に個別に要求したり、特定のグループで複数の承認者を要求することもできます。さらに、承認ルールにコードオーナ機能が統合されているため、誰が承認すべきかを簡単にトラッキングできます。

これにより、組織では複雑な承認フローを実現することができます。課題、コード、パイプライン、監視データを可視化してアクセスできる GitLab の単一アプリケーションのシンプルさを維持しながら、決定を通知して承認を迅速化することができます。

GitLab.com では承認ルールが一時的に無効になっていましたが、リグレッション のため GitLab 11.9 ではデフォルトで有効になっていません。

ChatOps がオープンソースになりました

GitLab ChatOps は強力な自動化ツールで、どんな CI/CD ジョブでも実行でき、Slack や Mattermost のようなチャットアプリから直接 CI/CD ジョブのステータスを受け取ることができます。GitLab 10.6 で最初にリリースされた ChatOps は GitLab Ultimate 向けの機能でした。GitLab 社の 製品戦略 および オープンソースへの取り組み の一環として、上位プランの機能を下位のプランでも利用できるように定期的に見直しを実施しています。

ChatOps では、これは誰もが恩恵を受けられる機能であり、またこの機能自体がコミュニティからの貢献による恩恵を受けることができると判断しました。

GitLab 11.9 では ChatOps をオープンソース化 しているので GitLab セルフマネージド版の Core プランと GitLab.com SaaS版の Free プランで利用することができ、コミュニティへのコントリビューションも可能です。

その他

このリリースでは、フィーチャーフラグの監査, 脆弱性修正のマージリクエスト, セキュリティジョブ用の CI/CDテンプレート など多くの優れた機能を利用できます。それら全ての機能を知るには、この記事をお読みください。

GitLab MVP badge

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

Marcel さんは GitLab のドキュメントをより良くするために私たちを継続的に手伝ってきました。彼は GitLab のドキュメントの品質と使いやすさを改善するために 多くのコントリビュート をしてくださいました。Marcel さんの貢献に心から感謝します。

GitLab 11.9での主要機能

リポジトリ内の API キーなどの機密情報を検知

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

アプリケーション開発時に常に発生する懸念として、開発者が意図せずに API キーなどの機密情報を自分のリモートリポジトリにコミットする可能性が挙げられます。 そのソースに他者がアクセスできる場合やプロジェクトが公開されている場合、機密情報が公開されてしまい、それを利用して悪意のあるユーザがデプロイ環境などのリソースにアクセスする可能性があります。

GitLab 11.9 には Secret Detection と呼ばれる新しいチェックが含まれています。リポジトリ内のコンテンツをスキャンして、API キーなどのリポジトリに存在してはならない情報を検知します。GitLab ではマージリクエストウィジェット、パイプラインレポート、およびセキュリティダッシュボードの SAST レポートに結果を表示します。

アプリケーションで SAST が既に有効になっている場合は、この新機能の恩恵を受けるために特に何かをする必要はありません。すでに Auto DevOps のデフォルト設定にも含まれています。

リポジトリ内の API キーなどの機密情報を検知

マージリクエストでの承認ルール

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

コードレビューは全ての成功したプロジェクトにおいて基本的なやり方ですが、変更のレビューを誰がやるべきかは必ずしも明確ではありません。多くの場合は エンジニアリング、 UX および製品などのさまざまなチームからのレビュー担当者が必要です。

適切な承認者とそれぞれの最小承認数を指定して承認ルールを定義することで、コードレビューに参加すべき人をより分かりやすく伝えられます。承認ルールはマージリクエストウィジェットに表示されるので、次のレビュー担当者をすばやく割り当てることができます。

GitLab 11.8 では承認ルールはデフォルトで無効になっていましたが、GitLab 11.9 からデフォルトで利用可能です。

UPDATE: リグレッション により承認ルールはデフォルトで無効のままです。

GitLab 11.3 では、プロジェクトのどのコードをどのチームメンバーが担当しているかを示すために コードオーナー が導入されました。コードオーナーは承認ルールに統合されているため、変更をレビューするのに適した人を見つけることは常に簡単です。

マージリクエストでの承認ルール

GitLab Core に ChatOps 機能を移動

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab Ultimate 10.6 で最初に導入された ChatOps は GitLab Core に移行しました。 GitLab ChatOps は slash コマンド を使って Slack から GitLab CI ジョブを起動できる機能を提供します。

GitLab は購入者視点で有償プラン の判断を行っています。コミュニティによる機能の利用とコントリビューションを促進するために、この機能をオープンソース化することを決定しました。

GitLab Core に ChatOps 機能を移動

フィーチャーフラグの監査

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab の監査ログに機能フラグの追加、削除、変更などの操作が記録されるようになり、いつ何が変更されたのか分かります。 問題が発生したときに最近どんな変更が行われたのかを確認したり、もしくは監査役として機能フラグがどのように変更されたかを振り返ったりすることがとても簡単です。

フィーチャーフラグの監査

脆弱性修正のマージリクエスト

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

コード内の脆弱性に早く対応するために、修正プロセスは簡単であるべきです。セキュリティパッチ作成を簡単にして、開発者がやるべきことに集中できるようにすることが重要です。 GitLab 11.7 では 修正パッチファイル を提供していましたが、ユーザはそのパッチをダウンロードし、ローカルに適用してから、リモートリポジトリに変更を push しなければなりませんでした。

GitLab 11.9 では、これらの一連の流れを自動化します。 これで GitLab の Web インタフェースを離れることなく修復を行うことができます。脆弱性の詳細ウィンドウから直接マージリクエストを作成できます。そして、この新しいブランチにはすでに修正が含まれています。その後、問題が解決したかどうかを確認し、パイプラインがグリーンの場合は元のブランチにマージします。

脆弱性修正のマージリクエスト

グループセキュリティダッシュボードでのコンテナセキュリティ結果

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

グループセキュリティダッシュボードを使用すると、セキュリティエンジニアは最も重要な作業に焦点を当てることができ、アプリケーションに影響を与える可能性のあるすべてのセキュリティ脆弱性を明確かつ高レベルで把握できます。そのため、ユーザが修正を開始するために、すべての関連情報を一ヶ所にまとめてドリルダウンできるようにすることが不可欠です。

GitLab 11.9 ではコンテナスキャンの結果がすでに表示されている SAST および依存性のスキャン結果と共にダッシュボードに追加されます。 問題の原因に関係なく一ヶ所に完全なビューが表示されます。

グループセキュリティダッシュボードでのコンテナセキュリティ結果

セキュリティジョブ用の CI/CD テンプレート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab のセキュリティ機能は急速に進化しており、効果的にソースコードを保護するためには常に最新の状態にある必要があります。複数のプロジェクトを管理しなければならない場合にジョブ定義を変更することが難しいことが分かっています。 また、現在の GitLab インスタンスと完全に互換性があると確信が持てない場合に GitLab の最新バージョンにアップデートするリスクを負いたくないことも理解しています。

そのため、GitLab 11.7 では テンプレート を使用したジョブ定義の新しい方法を導入しました。

GitLab 11.9 からは sastdependency_scanning といった全てのセキュリティジョブのためのビルドインテンプレートを提供します。それらは付属の GitLab バージョンと互換性があります。

GitLab を新しいバージョンにアップグレードするたびにパイプラインの設定を変更することなく、直接設定に含めてシステムに合わせて更新することができます。

セキュリティジョブを定義するためのこの新しい方法は公式であり、他の以前のジョブ定義またはソースコードのスニペットは非推奨です。新しい template キーワードをできるだけ早く使って定義を更新するべきです。GitLab 12.0 もしくはそれ以降のリリースでは、他の構文のサポートは削除される可能性があります。

セキュリティジョブ用の CI/CD テンプレート

GitLab 11.9でのその他改善点

コメントへのリプライ

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab ではスレッドを用いたディスカッションができますが、今までのところ、最初のコメントを書いているユーザはその後にディスカッションをするかどうかを最初から決めなければなりません。

今回のリリースではその制約を緩和しました。 これで GitLab (課題、マージリクエスト、エピック) でどんなコメントでも出来たり、それに対し返信することもできます。その結果、スレッドでのディスカッションが開始されます。これによりチーム間でより組織的なコラボレーションが可能になります。

コメントへのリプライ

コードオーナーによるマージリクエスト承認要求

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

マージリクエストの承認を誰に依頼すべきかは必ずしも明確ではありません。

GitLab では コードオーナー を利用して、マージリクエストでの変更ファイルに基づいたマージリクエストの承認要求をサポートするようになりました。 コードオーナーは CODEOWNERS という名前のファイルを使って割り当てられます。これは gitattributes のようなフォーマットです。

マージリクエストの承認者としてコードオーナーを自動的に割り当てるための機能が GitLab 11.5 で追加されました。

アルファベット順に並んだラベル

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab のラベルは用途が広範囲であり、チームは常に新しい使い方を見つけてます。そのため、ユーザは特定の課題、マージリクエスト、またはエピックに対して多くのラベルを追加することがよくあります。

GitLab 11.9 では、これらのラベルの利用を少し簡単にしています。 課題、マージリクエスト、エピックでは、サイドバーに表示されるラベルがアルファベット順に並べられます。これは、これらのオブジェクトのリストビューでも同じです。

アルファベット順に並んだラベル

子エピックの並べ替え

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

最近 子エピック機能 をリリースしました。これによって (エピックの子課題に加えて) エピックのエピックを持てます。

今回のリリースでは子課題と全く同じように、ドラッグアンドドロップでエピックの子エピックを並べ替えられます。これにより、チームは順序を使用して優先順位を表現したり、作業の実行順序を指定したりすることができます。

子エピックの並べ替え

機密の課題をフィルタリング

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

機密の課題は、チームが公開プロジェクトで機密事項についてプライベートなディスカッションを行うために便利なツールです。特に、セキュリティの脆弱性に取り組むときに最適です。今までは 機密の課題を管理したり検索したりするのは特に容易ではありませんでした。

GitLab 11.9 では GitLab の課題一覧で機密もしくは機密ではない課題をフィルタリングできるようになりました。API 経由で課題を取得する場合も同じことができます。

Robert Schilling さんのコントリビュートに感謝します。

機密の課題をフィルタリング

マージリクエストの差分をファイル全体に拡張

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

マージリクエストの変更をレビューするときに、各ファイルの差分を展開して、ファイル全体を表示し、変更されていない行にコメントを残すことができるようになりました。

マージリクエストの差分をファイル全体に拡張

Grafana で GitLab をセルフモニタリング

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Omnibus パッケージに Grafana が バンドルされたため、インスタンスのパフォーマンスがこれまで以上にわかりやすくなりました。

gitlab.rbgrafana['enable'] = true を設定すると Grafana が有効になり https://your.gitlab.instance/-/grafana で利用できます。近い将来 GitLab ダッシュボードも用意される 予定です。

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab ではサイドバーまたはクイックアクションを使用して、課題を別プロジェクトに簡単に移動できます。この裏側では、既存の課題が閉じられ、システムノートやサイドバーの属性を含むすべてがコピーされた状態で、新しい課題がターゲットプロジェクトに作成されます。これは素晴らしい機能です。

移動を示すシステムノートがありますが、移動したために課題が解決されたことがわからないため、現在クローズされている課題を表示したときに混乱を招くことがわかりました。

今回のリリースでは、課題ページの上部のバッジにクローズになった課題を移動したことを示すとともに、新しい課題へのリンクがインラインで表示されるため、過去の課題を見た人は新しい課題にすばやく移動できます。

移動やクローズした課題から新しい課題にリンクする
CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

課題ボードは非常に強力で、チームはプロジェクトやグループごとに多くのボードを作成しています。 ユーザが気にしている課題ボードを素早く絞り込むための検索バーを最近追加しました。

GitLab 11.9 では、ドロップダウンに Recent セクションも追加しました。これにより、最近使用したボードにすばやく移動できます。

最近使った課題ボードに移動する

パブリックプロジェクトのフォークのための重複排除された Git オブジェクト (ベータ)

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

フォークによりリポジトリ全体を新しいプロジェクトにコピーすることで、オープンソースプロジェクトに誰でも貢献できます。誰かが書き込み権限を付与する必要はありません。頻繁にフォークされる Git リポジトリのフルコピーを保存するのは非効率です。Git の alternate を使うことで、フォークではオブジェクトプール内の上流のプロジェクトからの共通のオブジェクトを共有してディスクストレージの必要量を減らします。

ハッシュ化されたストレージが有効になっている場合、フォーク用のオブジェクトプールはパブリックプロジェクトに対してのみ作成されます。 オブジェクトプールは object_pools フィーチャーフラグを使って有効にできます。

マージリクエスト内の前後のファイルのキーボード・ショートカット

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

マージリクエストの変更を確認するときに、次のファイルには ] または j を、前のファイルには [ または k を使用してファイル間を素早くジャンプします。

サーバレスプロジェクトで .gitlab-ci.yml をシンプルにする

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab CI の include 機能に基づいたサーバーレスの gitlab-ci.yml テンプレートは大幅にシンプルになりました。将来のリリースでは、このファイルを変更せずに新しい機能を導入することができます。

JupyterHub ログインアクセスをグループ/プロジェクトメンバーだけに制限する

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab の Kubernetes インテグレーション経由で JupyterHub をデプロイすることは、大規模なグループと Jupyter ノートブックを共有するための素晴らしい方法です。機密データや個人データが共有されている場合は、ノートブックへのアクセスを制御することも有益です。

GitLab 11.9 では Kubernetes 連携によりデプロイされた JupyterHub インスタンスへのログインは (グループまたはプロジェクトを介して) “Developer” プロジェクトアクセス権を持つメンバーのみに制限されています。

タグの Auto DevOps ビルドジョブを追加する

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Auto DevOps の Auto Build ステージは、プロジェクトの Dockerfile または Heroku ビルドパックを利用してアプリケーションのビルドを作成します。

GitLab 11.9 では、タグパイプラインによってビルドされた成果物の Docker イメージは、コミットの SHA の代わりにコミット tag を使用して従来のイメージ名と同じように命名されます。

Aaron Walker さんのコントリビュートに感謝します。

Code Climate を 0.83.0 にアップグレード

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab Code QualityCode Climate engine を使用して、コードの変更がコードやプロジェクトの健全性にどのように影響するかを確認します。

GitLab 11.9 では、エンジンを最新リリース (0.83.0) にアップグレードすることで GitLab Code Quality に言語の追加とソースコード静的解析ツールサポートのメリットが増えました。

GitLab コアチームメンバの Takuya Noguchi さんのコントリビュートに感謝します。

SAST の TypeScript 対応

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

TypeScriptJavaScript をベースにした比較的新しいプログラミング言語です。

GitLab 11.9 では、静的アプリケーションセキュリティテスト(SAST)が TypeScript コードの脆弱性を分析および検出し、マージリクエストウィジェット、パイプラインレベル、およびセキュリティダッシュボードに表示することができます。現在の sast ジョブ定義を変更する必要はありません。そしてそれは自動的に Auto DevOps にも含まれます。

GitLab Runner 11.9

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

今回 GitLab Runner 11.9 もリリースします。GitLab Runner は CI/CD ジョブを実行し、その実行結果を GitLab に送るために使用されるオープンソースプロジェクトです。

GitLab Runner 11.9 での変更点は以下になります:

全ての変更点のリストは GitLab Runner の CHANGELOG にあります。

Omnibus の改善

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab 11.9では、Omnibus に以下が追加されました:

  • GitLab 11.9 には Slack の OSS クローン と言われている Mattermost 5.8 が含まれています。これには、最新版の Team Edition 用 MFA、イメージパフォーマンスの向上などが含まれています。このバージョンには セキュリティアップデート も含まれているのでアップグレードをお勧めします
  • GitLab レジストリが 1.10 より前のバージョンの Docker と互換性を持つことを可能にする新しいフラグが追加されました。有効にするには gitlab.rbregistry['compatibility_schema1_enabled'] = true を設定してください
  • GitLab レジストリは Prometheus メトリクスをエクスポートするようになり、付属の Prometheus サービス によって自動的に監視されます
  • Google Cloud Memorystore のサポートが追加されました。redis_enable_client を無効にする 必要があります
  • openssl は 1.0.2r、nginx は 1.14.2、python は 3.4.9、jemalloc は 5.1.0、docutils は 0.13.1、そして gitlab-monitor は 3.2.0 に更新されました

.NET, Go, iOS, GitLab Pages 用のプロジェクトテンプレート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab ユーザが新しいプロジェクトを簡単に作成できるように、いくつかの新しいプロジェクトテンプレートが用意されています:

Web IDE でのファイル移動

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

ファイルまたはディレクトリの名前を変更するときに、ファイルおよびディレクトリを Web IDE からリポジトリ内の新しいパスに移動できるようになりました。

Web IDE でのファイル移動

課題のアクティビティをフィルタリングしているときに素早くコメントを付ける

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

最近、ユーザが課題、マージリクエスト、エピックなどのアクティビティフィードをフィルタリングできる機能をリリースし、ユーザがコメントやシステムノートだけに集中できるようにしました。ただ、この設定はシステム内にユーザ単位で保存されるため、ユーザが数日後に問題を表示したときにフィルタリングされたフィードを見ていることに気付かず、コメントできないように見えることがあります。

今回のリリースでは、この画面のインタラクションを改善しました。ユーザはフィードの先頭にスクロールしなくてもコメントできるモードに素早く切り替えることができます。これは課題、マージリクエストおよびエピックに適用されます。

課題のアクティビティをフィルタリングしているときに素早くコメントを付ける
CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

以前 GitLab の全てのページのヘッダとフッタにカスタムメッセージを表示できる機能を追加しました。これは非常に好評で、チームは GitLab インスタンスに関するシステム全体のメッセージのような重要な情報を伝達するためにこの機能を使ったりしています。

今回のリリースではより多くのユーザに利用していただけるように、この機能を Core に導入することにしました。さらに GitLab から送信する全てのメールに同じカスタムメッセージを表示することも可能になり、他の GitLab ユーザタッチポイントに対しても一貫性がもたらされます。

Web および電子メールでのヘッダーとフッターのカスタムシステムメッセージ

デプロイ後に Knative ドメインを編集

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Knative のインストール時にカスタム・ドメインを指定すると、一意のエンドポイントから様々なサーバレスのアプリケーション/機能を利用できます。

GitLab の Kubernetes 統合により Knative が Kubernetes クラスタに配置した後にカスタムドメインを変更/更新できるようになりました。

Kubernetes CA 証明書フォーマットの検証

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

既存の Kubernetes クラスタを追加する際、GitLab では入力された CA 証明書が有効な PEM 形式であることを検証し、Kubernetes 連携時に発生する可能性のあるエラーを減らすことができます。

マージリクエストであるファイルが変更された場合のみ特定のジョブを実行する

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab 11.6 では、ユーザがマージリクエストの作成時にのみ特定のジョブを実行できるようにするためにパイプラインジョブに only:merge_requests を指定する機能が追加されました。

現在は、特定のファイルが変更された場合にユーザがマージリクエストに対してのみ特定のジョブを実行できるように only:changes との連結ロジックを含むようにその機能を拡張しています。

Hiroyuki Sato さんのコントリビュートに感謝します。

エピックのサイドバーでのエピックを見る

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

私たちは最近 子エピック をリリースしました。これはエピックのエピックを作れる機能です。

GitLab 11.9 では、そのエピックの関係をさらに見やすくしました。親のエピックだけでなく、そのエピックで全体のエピックツリーをサイドバーで見ることができます。それらのエピックがクローズされているかどうかを見ることができ、さらにそれらに直接ナビゲートすることもできます。

エピックのサイドバーでのエピックを見る

YouTrack の統合

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab は外部の多くの課題追跡システムと統合されています。そのため、チームが課題の管理ツールをそのまま使いながら課題管理以外の機能のところで GitLab を利用しやすいです。

このリリースでは JetBrains の YouTrack とも統合されました。

Kotau Yauhen さんのコントリビュートに感謝します。

YouTrack の統合

マージリクエストのファイルツリー表示をリサイズする

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

マージリクエストの変更をレビューするときに、長いファイル名をリサイズして表示したり、小さい画面で空白を減らしたりできます。

マージリクエストのファイルツリー表示をリサイズする

開発者による protected ブランチの作成を許可する

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

protected ブランチは、レビューされていないコードがプッシュされたりマージされたりするのを防ぎます。 しかし、保護されたブランチにプッシュすることが誰もできない場合、リリースブランチのような新しい protected ブランチを作成できません。

GitLab 11.9 では GitLab や API を使って、すでに protected であるブランチから保護されたブランチを作成できるようになりました。新しい protected ブランチを間違って作成しないように、新しい protected ブランチを Git でプッシュすることを防ぎます。

アサインされた承認者によるマージリクエストリストのフィルタリング

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

コードレビューは全ての成功するプロジェクトに不可欠な方法ですが、レビュー担当者としてどのマージリクエストのレビューを依頼されたかを追跡するのは困難な場合があります。

GitLab 11.9 では、マージリクエストリストはアサインされた承認者でフィルタリングできるようになりました。これにより、承認者として追加されたマージリクエストを見つけることができます。

Glavin Wiechert さんのコントリビュートに感謝します。

アサインされた承認者によるマージリクエストリストのフィルタリング

Ingress ホスト名のサポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Kubernetes Ingress コントローラをデプロイすると、プラットフォームによっては IP アドレスが返される場合 (Google の GKE など) と DNS 名 (AWS の EKS など) が返される場合があります。

Kubernetes インテグレーションではプロジェクトの cluster セクションに表示するために両方のタイプのエンドポイントをサポートします。

Aaron Walker さんのコントリビュートに感謝します。

セキュリティダッシュボードチャートで時間範囲を調整可能

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

グループセキュリティダッシュボードには、プロジェクトの最近のセキュリティステータス概要を把握するための脆弱性チャートが含まれています。これはセキュリティ責任者にとってプロセスを調整したり、チームのパフォーマンスを理解するのにとても役立ちます。

GitLab 11.9 では、この脆弱性チャートの期間を選択できるようになりました。 時間範囲はデフォルトは過去 90 日ですが、取得したい詳細レベルにより 60 日または 30 日に設定できます。

これはチャートにプロットされているデータポイントにのみ影響します。カウンタやリストに表示されているデータには影響しません。

セキュリティダッシュボードチャートで時間範囲を調整可能

メトリックダッシュボードでのズームやスクロールについて

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

パフォーマンス異常を調査しているときに、与えられた測定基準の選択された部分を詳しく調べることができるととても役に立ちます。

GitLab 11.9 では、ユーザはメトリクスダッシュボードで特定の期間にズームインしたり、タイムウィンドウ全体をスクロールしたり、ビューを元の期間に簡単に戻すことができます。これにより、これらの興味深いイベントを素早く簡単に調査できます。

メトリックダッシュボードでのズームやスクロールについて

SAST のマルチモジュール Maven プロジェクト対応

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Maven プロジェクトはよく 複数モジュール を 1 つのリポジトリに集約するように構成されています。以前は GitLab はこれらのプロジェクトを正しくスキャンできず、脆弱性は開発者やセキュリティ研究者に報告されていませんでした。

GitLab 11.9 では、この特定のプロジェクト設定に対する静的アプリケーションセキュリティテスト (SAST) サポートが改良され、インストールや設定などをせずにすぐに脆弱性をテストできるようになりました。アナライザの柔軟性により、設定は自動的に検出され、マルチモジュールの Maven アプリケーションの結果を見るために何も変更する必要はありません。いつものように同じ改善が Auto DevOps の一部としても利用できます。

GitLab チャートの改善

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab チャートではこれらの改善がなされました:

  • Google Cloud Memorystore サポートを追加
  • Cron ジョブ設定は複数のサービスで共有されるため 現在はグローバル設定になります
  • レジストリが 2.7.1 に更新されました
  • GitLab レジストリが 1.10 より前のバージョンの Docker と互換性を持てる新しいフラグが追加されました。registry.compatibility.schema1.enabled:true を設定すると有効になります

Performance 改善

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

あらゆるサイズの GitLab インスタンスがリリースされるたびに、GitLab のパフォーマンスが向上し続けています。 GitLab 11.9 での改善点は次のとおりです:

非推奨

GitLab Geo で Hashed Storage を適用 (GitLab 12.0)

GitLab Geo ではセカンダリノードの競合状態を緩和するために Hashed Storage が必要です。 これは gitlab-ce#40970 に記載されています。

この要件は GitLab 11.5gitlab-ee#8053 にある Geo のドキュメントに追加されました。

GitLab 11.6 では sudo gitlab-rake gitlab:geo:check コマンドを用いて、ハッシュストレージが有効であり、すべてのプロジェクトが移行されていることを確認できます。gitlab-ee#8289 を参照してください。 Geo を使用している場合は、このチェックを実行してできるだけ早く移行してください。

GitLab 11.8 では上記のチェックが出来ていない場合 Admin Area › Geo › Nodes ページに警告が表示されます: gitlab-ee!8433

GitLab 12.0 では Geo で Hashed Storage 要件を適用する予定です。gitlab-ee#8690 を参照してください。

削除日: 2019年6月22日

Hipchat 統合機能について

Hipchat は 提供終了しています。 そのため、11.9 では既存の GitLab Hipchat 統合機能を削除しました。

削除日: 2019年3月22日

Docker executor を使用した GitLab Runner での Cent OS 6 サポートについて

GitLab 11.9 では Docker executor を使用している場合の CentOS 6 での GitLab Runner サポートを削除します。これは CentOS 6 がサポート対象外となった Docker ライブラリへのアップグレードによるものです。詳細については この課題 を参照してください。

削除日: 2019年3月22日

GitLab Runner での legacy code パスを廃止

Gitlab 11.9 以降、GitLab Runner はリポジトリのクローン作成/取得に 新しい方法 を使用しています。現在 GitLab Runner は新しい方法がサポートされていない場合に古い方法を使用します。

GitLab 11.0 では GitLab Runner 用の Metrics Server 設定方法を変更しました。metrics_server は GitLab 12.0 で導入される listen_address のために削除されます。詳細については この課題この課題 を参照してください。

11.3 では GitLab Runner での 複数キャッシュプロバイダー のサポートを開始しました。これにより S3 固有の設定 に新しい設定が追加されました。 ドキュメント には、何が変わったのか、そして新しい設定にどう対応するのかをまとめた表があります。詳細は この課題 を参照してください。

これらのパスは GitLab 12.0 では使用できなくなります。GitLab Runner 12.0 にアップグレードするときにユーザーがやるべきことは GitLab インスタンス上の GitLab のバージョンが 11.9 以上であることを確認するだけです。他は何も変更する必要はありません。

削除日: 2019年6月22日

GitLab Runner の entrypoint フィーチャーフラグを廃止

GitLab Runner は 11.4 にて #2338#3536 のような課題に対応するために FF_K8S_USE_ENTRYPOINT_OVER_COMMAND という feature フラグを導入しました。

GitLab 12.0 ではフィーチャーフラグがオフになっているかのように正しい挙動に切り替わります。詳細については この課題 を参照してください。

削除日: 2019年6月22日

GitLab Runner で EOL になった Linux ディストリビューションのサポートを廃止

GitLab Runner をインストールできるいくつかの Linux ディストリビューションがサポート終了となりました。

GitLab 12.0 では、GitLab Runner はこれらの Linux ディストリビューションに対してパッケージを配布しなくなります。サポートされなくなったディストリビューションの完全なリストは このドキュメント にあります。 Javier Jardón さんの コントリビューション に感謝します。

削除日: 2019年6月22日

GitLab Runner Helper の古いコマンドを削除

Windows Docker executor をサポートする取り組みの一環として、helper イメージ で使用されていたいくつかの古いコマンドを廃止する必要がありました。

GitLab 12.0 では、GitLab Runner が新しいコマンドを使うようになります。これは helper イメージを上書きしている ユーザにのみ影響します。 詳細については この課題 を参照してください。

削除日: 2019年6月22日

開発者は GitLab 11.10 で Git タグを削除可能に

保護されていないブランチでの Git タグのリリースノートの削除や修正はこれまで Maintainer と Owner に制限されていました。

開発者はタグを追加したり、保護されていないブランチを修正したり削除したりできるので、Git タグも削除できるべきです。 GitLab 11.10 では、私たちのパーミッションモデルに この変更を追加 して、ワークフローを改善し、開発者がより効率良くタグを利用できるようにしています。

引き続き、Maintainer と Owner にこのパーミッションを制限したい場合には、保護されたタグ を使うことができます。

削除日: 2019年4月22日

Omnibus GitLab での Prometheus 1.x サポート

Omnibus GitLab にバンドルされる Prometheus は GitLab 11.4 では 1.0 バージョンが廃止されて 2.0 にアップグレードされた Prometheus が含まれるようになりました。 ただし、メトリクスのフォーマットは 1.0 と互換性がありません。既存のインストールでは 2.0 にアップグレードできますが、その際オプションで 付属のツールを使用 してデータ移行できます。

GitLab 12.0 では、まだ Prometheus 2.0 が動作していない場合は自動的にアップグレードされます。Prometheus 1.0 からのメトリクスデータは移行されずに失われます。

削除日: 2019年6月22日

TLS v1.1 について

セキュリティを強化するために GitLab 12.0 から TLS v1.1 はデフォルトで無効になります。これにより、Heartbleed を含む多くの問題が緩和され、GitLab は PCI DSS 3.1 標準にすぐに準拠できるようになります。

TLS v1.1 を直ちに無効にしたい場合は、gitlab.rb ファイルに nginx['ssl_protocols'] = "TLSv1.2" を設定し gitlab-ctl reconfigure を実行してください。

削除日: 2019年6月22日

GitLab をインストールするための OpenShift テンプレート

公式の gitlab helm chartOpenShift でのデプロイメント を含めて、Kubernetes 上で GitLab を運用するための推奨方法です。

GitLab インストール用の OpenShift テンプレート は廃止され、GitLab 12.0 では未サポートになります。

削除日: 2019年6月22日

以前のセキュリティジョブ定義について

セキュリティジョブ用の CI/CD テンプレート の導入により、以前のジョブ定義を廃止し、GitLab 12.0 以降で削除予定です。

GitLab が提供するすべての新しいセキュリティ機能を活用するためにジョブ定義を新しい構文に更新してください。

削除日: 2019年6月22日

admin パネルのシステム情報セクションについて

GitLab は稼働中の GitLab インスタンスに関する情報を admin/system_info に表示しますが、この情報は不正確かもしれません。

GitLab 12.0 では admin パネルの このセクションを削除 予定であり、他のモニタリング機能 の使用をお勧めします。

削除日: 2019年6月22日

変更履歴

すべての名称付きの変更を確認したい場合は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