正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。
ドキュメントに関する現在のご利用体験についてお聞かせください。アンケートにご協力ください

GitLab 17.2リリースノート

2024年7月18日、GitLab 17.2は以下の機能を備えてリリースされました。

さらに、今月の注目すべきコントリビューターを含む、すべてのコントリビューターに感謝します。

今月の注目すべきコントリビューター: Phawin Khongkhasawan

誰もがGitLabコミュニティのコントリビューターを推薦できます!活躍中の候補者を支援するか、新しい推薦を追加してください! 🙌

Phawin KhongkhasawanはJittaの技術リーダーであり、2024年2月にGitLabへのコントリビュートを開始しました。わずか数ヶ月で、Phawinは20を超えるコントリビュートをマージし、彼のコントリビュートは16.1117.017.1でも取り上げられました。

Phawinは、GitLabのプロダクトマネージャーであるMagdalena Frankiewiczによって、API経由でのプロジェクトテストWebhookのトリガーを許可する要求など、Webhook関連の機能改善に初めて推薦されました。GitLabエンジニアのMarc ShawJose Ivan Vargas 、およびGitLabプロダクトマネージャーのRutvik Shahは、Phawinの協力とイテレーションにおける忍耐力を強調しました。これらはGitLabのコアバリューの2つです。

「PhawinのAdd order by merged_at機能の開発、忍耐力、そして完遂への粘り強さに本当に感謝しています」とGitLabのスタッフバックエンドエンジニアであるPatrick Bajaoは述べています。「マージされてデプロイされるまでに数回のマイルストーンがかかりましたが、彼は諦めずに私たちとの協力を続けました。」

新規コントリビューターがどのように即座に影響を与え、GitLabの共同開発を支援できるかを示してくれたPhawinに、心から感謝いたします。

主要な機能

Kubernetesポッドとコンテナのログストリーミング

GitLab 16.1では、Kubernetesポッドのリストビューと詳細ビューを導入しました。しかし、ワークロードを詳細に分析するには、サードパーティ製ツールを使用する必要がありました。GitLabには、ポッドとコンテナのログストリーミングビューが搭載され、アプリケーション配信ツールを離れることなく、環境全体の問題を迅速に確認し、トラブルシューティングできるようになりました。

GitLab DuoがAI入力と出力のロギングをデフォルトで無効化

GitLab Duoは、GitLab DuoのAI入力と出力のロギングをデフォルトで無効化しました。

GitLabでは、お客様がデータに対する主権を持つことを保証することを目指しています。現在、入力と出力のロギングをデフォルトで無効にしており、お客様の明示的な同意がある場合にのみ、GitLabサポートチケットを介して入力と出力をログに記録します。

マージリクエストをブロックする変更要求

レビューを実行する際に、approvecomment、またはrequest changes (GitLab 16.9でリリース) のいずれかを選択して完了できます。レビュー中に、マージリクエストがマージされるのを阻止すべき変更が見つかる場合があります。その場合、request changesでレビューを完了します。

変更を要求すると、GitLabは変更要求が解決されるまでマージを阻止するマージチェックを追加するようになりました。変更要求は、元の変更要求者がマージリクエストを再レビューし、その後マージリクエストを承認した場合に解決できます。元の変更要求者が承認できない場合、変更要求はマージ権限を持つ誰でもバイパス済みにでき、開発を続行できます。

この新機能に関するフィードバックをイシュー455339にお寄せください。

脆弱性の説明

脆弱性の説明はGitLab Duo Chatの一部となり、一般公開されました。脆弱性の説明を使用すると、任意のSAST脆弱性からチャットを開き、脆弱性をより深く理解し、どのように悪用される可能性があるかを確認し、潜在的な修正をレビューできます。

OAuth 2.0デバイス認可グラントサポート

GitLabは現在、OAuth 2.0デバイス認可グラントフローをサポートしています。このフローにより、ブラウザ操作ができない、入力に制約のあるデバイスからGitLab IDを安全に認証することが可能になります。そのため、このフローはヘッドレスサーバーや、UIがない、あるいは限られているデバイスからGitLabのサービスを利用しようとするユーザーに最適です。John Parent様のコントリビュートに感謝いたします!

パイプライン実行ポリシータイプ

パイプライン実行ポリシータイプは、一般的なCIジョブ、スクリプト、および指示の適用をサポートする新しいタイプのセキュリティポリシーです。

パイプライン実行ポリシータイプにより、セキュリティおよびコンプライアンスチームは、カスタマイズされたGitLabセキュリティスキャンテンプレートGitLabまたはパートナーサポートのCIテンプレート、サードパーティのセキュリティスキャンテンプレート、CIジョブによるカスタムレポートルール、またはGitLab CIによるカスタムスクリプト/ルールを適用できるようになります。

Theパイプライン実行ポリシーには、インジェクトとオーバーライドの2つのモードがあります。The inject modeはプロジェクトのCI/CDパイプラインにジョブをインジェクトします。The override modeはプロジェクトのCI/CDパイプラインの設定をオーバーライドします。

すべてのGitLabポリシーと同様に、適用は、ポリシーを作成および管理する指定されたセキュリティおよびコンプライアンスチームメンバーによって一元的に管理できます。最初のパイプライン実行ポリシーを作成して開始する方法を学びましょう!

パイプラインシークレット検出におけるカスタムルールセットの展開されたサポート

パイプラインシークレット検出におけるカスタムルールセットのサポートを拡張しました。

リモートルールセットを設定するために、giturlの2つの新しいタイプのパススルーを使用できます。これにより、複数のプロジェクト間でルールセットの設定を共有するなど、ワークフローの管理が容易になります。

また、これらの新しいタイプのパススルーのいずれかを使用して、デフォルトの設定をリモートルールセットで拡張することもできます。

Theアナライザーは現在、以下もサポートしています:

  • 定義済みルールを置き換えるために、最大20個のパススルーを単一の設定に連結する。
  • パススルーに環境変数を含める。
  • パススルーを読み込む際にタイムアウトを設定する。
  • ルールセット設定におけるTOML構文の検証。

GitLab Duo Chatおよびコード提案がワークスペースで利用可能に

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com
  • アドオン: Duo Pro, Duo Enterprise
  • リンク: ドキュメント

GitLab Duo Chatコード提案がワークスペースで利用可能になりました!迅速な回答を求める場合でも、効率的なコード改善を求める場合でも、Duo Chatとコード提案は、生産性を向上させ、ワークフローを効率化するように設計されており、ワークスペースでのリモート開発をこれまで以上に効率的かつ効果的にします。

規模とデプロイ

グループ概要におけるソートとフィルタリングの改善

グループ概要ページのソートおよびフィルタリング機能を更新しました。検索要素がページ全体に拡大され、検索文字列がより見やすくなりました。ソートオプションをNameCreated dateUpdated date、およびStarsに標準化しました。

これらの変更に関するフィードバックは、イシュー438322で歓迎します。

グループs APIを使用してグループが招待されたグループを一覧表示

グループが招待されたグループを一覧表示するための新しいエンドポイントをグループs APIに追加しました。この機能は、グループが招待されたプロジェクトを一覧表示するためのエンドポイントを補完するため、グループが追加されたすべてのグループとプロジェクトの完全な概要を取得できるようになりました。エンドポイントは、ユーザーごとに1分あたり60リクエストにレート制限されます。

このコミュニティコントリビュートを提供してくれた@imskrに感謝します!

To Do項目を一度に1つのディスカッションで解決

GitLabイシューに関するディスカッションは多忙になることがあります。GitLabは、自分に関連するコメントに対してTo Do項目を発生させ、イシューに対してアクションを起こすと自動的にその項目を解決することで、これらの会話の管理を支援します。

以前は、イシュー内のスレッドでアクションを起こすと、複数の異なるスレッドで言及されていた場合でも、すべてのTo Do項目が解決されました。現在、GitLabは、ユーザーが操作したスレッドのTo Do項目のみを解決します。

UIにインポートされた項目を表示

GitLabにプロジェクトを他のSCMソリューションからインポートできます。しかし、プロジェクト項目がインポートされたのか、それともGitLabインスタンスで作成されたのかを知るのは困難でした。

今回のリリースでは、作成者が特定のユーザーとして識別されるGitHub、Gitea、Bitbucket Server、およびBitbucket Cloudからインポートされた項目に視覚的なインジケーターを追加しました。例えば、マージリクエスト、イシュー、およびノートなどです。

削除されたブランチがJira開発パネルから削除される

以前は、GitLab for Jira Cloud appを使用していた場合、GitLabでブランチを削除しても、そのブランチはJira開発パネルに表示されたままでした。そのブランチを選択すると、GitLabで404エラーが発生しました。

今回のリリースから、GitLabで削除されたブランチはJira開発パネルから削除されます。

コマンドパレットを使用してプロジェクト設定を見つける

GitLabは、プロジェクト、グループ、インスタンス、そして個人向けの多くの設定を提供しています。探している設定を見つけるには、UIの多くの異なる領域をクリックして時間を費やす必要があることがよくありました。

今回のリリースでは、コマンドパレットからプロジェクト設定を検索できるようになりました。プロジェクトにアクセスし、**Search or go to…**を選択し、>でコマンドモードに入り、保護タグのような設定セクションの名前を入力して試してみてください。結果を選択すると、設定自体に直接ジャンプします。

統合されたDevOpsとセキュリティ

マージコミットメッセージ生成がGAになりました

コミットメッセージを作成することは、将来のユーザーがコードベースに対してどのような変更がなぜ行われたかを理解するための重要な部分です。変更を効果的に伝え、変更した可能性のあるすべてを考慮に入れたメッセージを考案するのは困難です。

GitLab Duoによるマージコミットの生成機能が一般公開され、すべてのマージリクエストで高品質なコミットメッセージが保証されるようになりました。マージする前に、マージウィジェットでコミットメッセージを編集を選択し、コミットメッセージを生成オプションを使用してコミットメッセージの下書きを作成します。

この新しいGitLab Duoの機能は、プロジェクトのコミット履歴が将来のデベロッパーにとって貴重なリソースとなることを確実にする優れた方法です。

GitLab Duo for the CLIがGAになりました

GitLab Duo for the CLIがすべてのユーザーに一般公開されました。これで、ask GitLab Duoに、必要なgitコマンドを見つけるのを手伝ってもらうことができます。

glab duo ask <git question>を使用して、GitLab Duoに目標を達成するための書式設定されたgitコマンドを提供させます。その後、GitLab CLIは、コマンドとその動作に関する追加の詳細情報(渡されるフラグに関する情報を含む)を提供します。その後、コマンドを実行し、その出力をワークフローに直接取得できます。

GitLab CLIのaskコマンドは、少し覚えるのに助けが必要なgitコマンドを使用してワークフローをスピードアップするための優れた方法です。

LFS用の純粋なSSH転送プロトコル

2021年9月、git-lfs 3.0.0は、HTTPの代わりにSSHを転送プロトコルとして使用するサポートをリリースしました。git-lfs 3.0.0以前は、HTTPのみがサポートされている転送プロトコルであり、これは一部のユーザーにとってGitLabでのgit-lfsの使用が不可能であることを意味しました。今回のリリースでは、git-lfsの転送プロトコルとしてHTTP over SSHのサポートを有効にする機能を提供できることを大変嬉しく思います。

このコントリビュートをしてくれたKyle EdwardsJoe Snyderに感謝します!

保護環境へのデプロイと承認が監査イベントをトリガーする

デプロイ承認のようなデプロイイベントのアクセス可能な記録は、コンプライアンス管理に不可欠です。これまでGitLabはデプロイ関連の監査イベントを提供していなかったため、コンプライアンスマネージャーはカスタムツールを使用するか、GitLabで直接このデータを検索する必要がありました。GitLabは現在、3つの監査イベントを提供しています:

  • deployment_startedは、誰がデプロイメントジョブを開始し、いつ開始されたかを記録します。
  • deployment_approvedは、誰がデプロイメントジョブを承認し、いつ承認されたかを記録します。
  • deployment_rejectedは、誰がデプロイメントジョブを拒否し、いつ拒否されたかを記録します。

サブグループコンプライアンスセンターでのフレームワークの割り当て

コンプライアンスセンターは、コンプライアンスチームがコンプライアンス基準への準拠レポート、違反レポート、およびグループのコンプライアンスフレームワークを管理するための中央の場所です。

以前は、コンプライアンスセンターの関連機能はすべてトップレベルグループでのみ利用可能でした。これは、サブグループの場合、オーナーがトップレベルグループで提供されるコンプライアンスセンターの機能にアクセスできなかったことを意味しました。

これらの主要な課題に対処するために、サブグループのコンプライアンスフレームワークを割り当てたり、割り当てを解除したりする機能を追加しました。これにより、グループオーナーは、既に利用可能だった完全なトップレベルグループレベルのコンプライアンスセンターダッシュボードに加えて、サブグループレベルでコンプライアンスの状態を視覚化できるようになりました。

「スキャン実行ポリシー」を拡張して、各GitLabアナライザーのlatestテンプレートを実行する

スキャン実行ポリシーが拡張され、ポリシールールを定義する際にdefaultlatestのGitLabテンプレートを選択できるようになりました。defaultは現在の動作を反映していますが、与えられたセキュリティアナライザーの最新テンプレートでのみ利用可能な機能を使用するために、ポリシーをlatestに更新できます。

latestテンプレートを利用することで、マージリクエストパイプラインにスキャンが適用されることを保証できるようになりました。latestテンプレートで有効になっている他のすべてのルールも同様です。以前は、これはブランチパイプラインまたは指定されたパイプラインスケジュールに限定されていました。

注: ポリシーを変更する前に、defaultlatestのテンプレート間のすべての変更をレビューして、これがお客様のニーズに合っていることを確認してください!

複数のアクセストークンの有効期限が切れる日付を特定する

管理者は、複数のアクセストークンの有効期限が切れる日付を特定するスクリプトを実行できるようになりました。トークンローテーションがまだ実装されていない場合、このスクリプトをトークントラブルシューティングページの他のスクリプトと組み合わせて使用し、有効期限に近づいている多数のトークンを特定して延長できます。

OAuth認可画面の改善

OAuth認可画面が、ユーザーが許可している認可をより明確に説明するようになりました。また、GitLabが提供するアプリケーションのために「GitLabによる検証済み」セクションも含まれています。以前は、アプリケーションがGitLabによって提供されているかどうかに関わらず、ユーザーエクスペリエンスは同じでした。この新しい機能は、追加のレイヤーの信頼を提供します。

インスタンス管理者セットアップの簡素化

GitLabの新規インストールのための管理者セットアップエクスペリエンスが簡素化され、より安全になりました。初期の管理者ルートメールアドレスは現在ランダム化されており、管理者は、アクセスできるアカウントにこのメールアドレスを変更することを強制されます。以前は、このステップが遅れる可能性があり、管理者がメールアドレスの変更を忘れることがありました。

Snowflake Data ConnectorにUser APIが追加されました

GitLab 17.2では、Snowflake Marketplaceアプリで利用可能なGitLab Data ConnectorUsers APIのサポートを追加しました。これで、Users APIを使用して、セルフマネージドGitLabインスタンスからSnowflakeにユーザーデータをストリーミングできるようになりました。

Google Cloudインテグレーションのセットアップの簡素化

Google Cloud CLIコマンドが、Google Cloud IAMインテグレーションのワークロードアイデンティティフェデレーションを設定する際にネイティブに利用できるようになりました。以前は、ガイド付きセットアップはcURLコマンドを通じてダウンロードされたスクリプトを使用していました。また、セットアッププロセスをよりよく説明するためにヘルプテキストが追加されました。これらの改善により、グループオーナーはGoogle Cloud IAMインテグレーションをより迅速にセットアップできます。

Wikiページのタイトルとパスフィールドを分離する

GitLab 17.2では、Wikiページのタイトルはパスとは別になりました。以前のリリースでは、ページタイトルが変更されるとパスも変更され、ページへのリンクが壊れる可能性がありました。現在、Wikiページのタイトルが変更されても、パスは変更されません。Wikiページのパスが変更された場合でも、壊れたリンクを防ぐために自動リダイレクトが設定されます。

Wikiサイドバーの改善

GitLab 17.2では、Wikiがサイドバーを表示する方法にいくつかの機能強化が追加されました。現在、Wikiはサイドバーにすべてのページ(最大5000ページ)を表示し、目次(TOC)を表示し、ページを迅速に見つけるための検索バーを提供します。

以前は、サイドバーにはTOCがなかったため、ページのセクションを移動するのが困難でした。新しいTOC機能は、ページの構造を明確に確認し、異なるセクションに迅速に移動するのに役立ち、使いやすさを大幅に向上させます。

検索バーの追加により、コンテンツの発見が容易になります。サイドバーにすべてのページが表示されるようになったため、Wiki全体をシームレスに閲覧できます。

Terraformモジュールレジストリのモジュールをドキュメント化する

TerraformモジュールレジストリがReadmeファイルを表示するようになりました!この非常に要望の多かった機能により、各モジュールの目的、設定、および要件を透過的にドキュメント化できます。

以前は、この重要な情報を他のソースで検索する必要があり、モジュールを適切に評価して使用するのが困難でした。現在、モジュールドキュメントがすぐに利用できるようになったため、使用する前にモジュールの機能を迅速に理解できます。このアクセシビリティにより、組織全体でTerraformコードを自信を持って共有および再利用できます。

イシューイベントWebhookにタイプ属性を追加する

イシュー、タスク、インシデント、要件、目標と主な成果はすべて、Issues Events Webhookカテゴリの下でペイロードをトリガーします。これまで、イベントペイロード内でWebhookをトリガーしたオブジェクトのタイプを迅速に判断する方法はありませんでした。このリリースでは、Issues eventsコメントConfidential issues events、および絵文字イベントのトリガー内のペイロードで利用可能なobject_attributes.type属性が導入されました。

Go、Java、Python向け高度なSASTがベータ版で利用可能に

GitLab Advanced SASTが、Ultimateのお客様向けにベータ機能として利用可能になりました。Advanced SASTは、クロスファイル、クロスファンクション分析を使用して、より高品質な結果を提供します。現在、Go、Java、Pythonをサポートしています。

ベータ期間中は、既存のSASTアナライザーを置き換えるのではなく、テストプロジェクトでAdvanced SASTを実行することをお勧めします。Advanced SASTを有効にするには、手順を参照してください。GitLab 17.2から、Advanced SASTはSAST.latest CI/CDテンプレートに含まれるようになりました。

これは、当社の反復的なOxeye技術の統合の一部です。今後のリリースでは、Advanced SASTを一般公開に移行し、他の言語のサポートを追加し、脆弱性がどのように流れるかをトレースするための新しいUI要素を導入する予定です。テストに関するフィードバックは、イシュー466322でお待ちしております。

APIセキュリティテストが署名付き認証リクエストをサポートするようになりました

APIセキュリティはすでに、スキャナーが送信するリクエストを変更できる「オーバーライド」をサポートしています。しかし、これらのオーバーライドは事前に設定する必要があり、リクエスト自体に基づいて変更することはできません。GitLab 17.2では、「リクエストごとのスクリプト」(APISEC_PER_REQUEST_SCRIPT)が追加され、ユーザーが各リクエストを送信する前に呼び出されるC#スクリプトを提供できるようになりました。これにより、認証の一形式として、シークレットでリクエストを「署名」するサポートが提供されます。

コンテナスキャン: 継続的脆弱性スキャンOSサポート

コンテナスキャンMVCの継続的脆弱性スキャンのフォローアップとして、17.2中にAPKおよびRPMオペレーティングシステムパッケージバージョンのサポートを追加しました。

この機能強化により、当社のアナライザーは、APKおよびRPMオペレーティングシステムpurlタイプのパッケージバージョンを比較することで、コンテナスキャンの勧告に対する継続的脆弱性スキャンを完全にサポートできるようになります。

注として、キャレット(^)を含むRPMバージョンはサポートされていません。これらのバージョンをサポートするための作業は、このイシューで追跡されています。

DASTアナライザーの更新

17.2リリースマイルストーン中に、以下の更新を公開しました。

  1. 3つの新しいチェックを追加しました:
  • チェック506.1は、Polyfill.io CDNの乗っ取りによって侵害されている可能性のあるリクエストURLを特定するパッシブチェックです。
  • チェック384.1は、悪意のあるアクターが有効なセッション識別子を再利用できる可能性があるセッション固定の脆弱性を特定するパッシブチェックです。
  • チェック16.11は、プロダクションサーバーでTRACE HTTPデバッグメソッドが有効になっている場合に、機密情報が誤って公開される可能性があることを特定するアクティブチェックです。
  1. 誤検出を減らすために、以下のバグに対処しました:
  • DASTチェック614.1(セキュア属性のない機密クッキー)および1004.1(HttpOnly属性のない機密クッキー)は、サイトが過去に有効期限を設定してクッキーをクリアした場合に、発見を作成しなくなりました。
  • DASTチェック1336.1(サーバーサイドテンプレートインジェクション)は、攻撃の成功を判断するために500 HTTPレスポンスステータスコードに依存しなくなりました。
  1. 以下の機能強化を追加しました:
  • すべてのレスポンスヘッダーがDAST脆弱性発見における証拠として表示されるようになりました。この追加コンテキストにより、発見のトリアージに費やす時間が短縮されます。
  • Sitemap.xmlファイルは、追加のURLについてクロールされるようになり、ターゲットWebサイトのカバレッジが向上しました。

APIファズテストが署名付き認証リクエストをサポートするようになりました

APIファジングはすでに、スキャナーが送信するリクエストを変更できる「オーバーライド」をサポートしています。しかし、これらのオーバーライドは事前に設定する必要があり、リクエスト自体に基づいて変更することはできません。GitLab 17.2では、「リクエストごとのスクリプト」(FUZZAPI_PER_REQUEST_SCRIPT)が追加され、ユーザーが各リクエストを送信する前に呼び出されるC#スクリプトを提供できるようになりました。これにより、認証の一形式として、シークレットでリクエストを「署名」するサポートが提供されます。

セルフマネージド向けにシークレットプッシュ保護が利用可能になり、潜在的な漏洩の警告が改善されました

17.2リリースマイルストーン中に、以下の更新を公開しました:

パイプラインスケジュールのソートオプション

これで、パイプラインスケジュールリストを説明、参照、次回の実行、作成日、更新日でソートできるようになりました。

rules:changes:compare_toがCI/CD変数をサポートするようになりました

GitLab 15.3で、rules:changecompare_toキーワードを導入しました。これにより、比較対象の正確な参照を定義することが可能になりました。GitLab 17.2から、このキーワードでCI/CD変数を使用できるようになり、複数のジョブでcompare_to値を定義および再利用しやすくなりました。

GitLab Runner 17.2

本日、GitLab Runner 17.2をリリースします!GitLab Runnerは、軽量で高度にスケールするエージェントであり、CI/CDジョブを実行し、結果をGitLabインスタンスに送り返します。GitLab Runnerは、GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。

新機能

バグ修正

すべての変更のリストについては、GitLab Runner CHANGELOGを参照してください。

ワークスペース向けの新しいエージェント認可戦略

このリリースでは、従来の戦略の制約に対処しつつ、グループオーナーと管理者により多くの制御と柔軟性を提供するために、ワークスペース向けの新しい認可戦略を実装しました。新しい認可戦略により、グループオーナーと管理者は、ワークスペースをホストするためにどのクラスターエージェントを使用するかを制御できます。

スムーズな移行を確実にするため、従来の認可戦略を使用しているユーザーは、新しい戦略に自動的に移行されます。ワークスペースをサポートする既存のエージェントは、これらのエージェントが配置されているルートグループで自動的に許可されます。この移行は、これらのエージェントがルートグループ内の異なるグループで許可されていた場合でも発生します。