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

GitLab 17.5リリースノート

2024年10月17日、GitLab 17.5が以下の機能とともにリリースされました。

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

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

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

ジムはGitLabで約100件のバックログのイシューをクローズする取り組みを主導したことで評価されました。彼は、興味深いディスカッションに深く入り込む、毎週のコミュニティペアリングセッションの多くに積極的に参加しています。ジムはGitLab Community Discord全体で人々をサポートし、GitLabのサポートリクエストのトラブルシューティングを行い、新しいコントリビューターを案内しています。ジムは、重要インフラおよびERPシステム向けのソフトウェアを作成する産業技術会社に勤務しています。

「小さなコントリビュートでも積み重なればプロジェクトはより良くなります」とジムは言います。「ドキュメントのコントリビュートのような小さなことでも、他の人々の助けになります。新しい機能全体を擁護する必要はありません。」

ジムはGitLabのフルスタックエンジニア、コントリビューターサクセスであるLee Tickettによって推薦されました。「イシュートリアージ/キュレーションは、より広いコミュニティを巻き込むための私のリストの上位にあり、ジムがここで道を切り開いています」とLeeは言います。

GitLabのシニアプログラムマネージャー、コントリビューターサクセスであるDaniel Murphyも推薦に加わりました。「ジムによる新しいコントリビューターへの優れたサポートと、彼らをスタートさせるためのガイダンスは、コミュニティとして共同開発のGitLabを成長させるのに役立っています。」

「私がレビューしたマージリクエストでの素晴らしい作業でした!」とGitLabのシニアフロントエンドエンジニア、Vanessa Ottoは言います。「ジムは素早く反応し、提案を即座に理解し、シームレスに実装しました。ジムのアプローチにおけるそのような効率性と明瞭さを見ることができてよかったです。」

GitLabへのコントリビュートをしてくださるジムとすべてのオープンソースコミュニティに深く感謝いたします!

主要な機能

Duo Quick Chatの導入

AIを活用したチャットであるDuo Quick Chatを導入します。codeでの作業場所に正確に合わせて設計されています。Duo Quick Chatは、codeから離れることなく、編集中の行で直接動作し、リアルタイムでアシスタンスを提供します。リファクタリング、バグ修正、またはテスト記述のいずれの場合でも、Duo Quick Chatはその場で提案と説明を提供し、コンテキストを切り替えることなく完全に集中し続けることができます。

GitLab Code Suggestionsでセルフホストモデルを使用する

大規模言語モデル(LLM)を選択して独自のインフラでホストし、それらのモデルをCode Suggestionsのソースとして構成できるようになりました。この機能はベータ版であり、UltimateとDuo Enterpriseのサブスクリプションで、Self-ManagedインスタンスのGitLab環境で利用できます。

セルフホストモデルを使用すると、オンプレミスまたはプライベートクラウドでホストされているモデルを使用してGitLab Duo Code Suggestionsを有効にできます。現在、vLLMまたはAWS Bedrock上のオープンソースMistralモデルをサポートしています。セルフホストモデルを有効にすることで、完全なデータ主権とプライバシーを維持しながら、生成AIの力を活用できます。

フィードバックイシューにフィードバックを残してください。

Code Suggestionsの使用イベントをエクスポートする

以前は、AIインパクト分析はGitLab.comでGitLab Duo Enterpriseの顧客にのみ利用可能であり、ClickHouse統合されたGitLabのセルフマネージドでは利用可能でした。さらに、デフォルトのメトリクスは集計されていました。

これで、GraphQL APIからraw Code Suggestionsのイベントをエクスポートできます。この方法では、データをデータ分析ツールにインポートして、提案サイズ、言語、ユーザーなど、より多くの側面で受容率に関するより深いインサイトを得ることができます。rawイベントはClickHouseに保存されないため、一部のAIインパクト分析のメトリクスは、GitLab Dedicatedやセルフマネージドを含むすべてのGitLab展開で利用可能になります。

GitLab Duo Chatとマージリクエストについて会話する

皆様のフィードバックに応えて、GitLab Duo Chatがマージリクエストに対応するようになりました。レビュアーでも作成者でも、チャットとマージリクエストについて会話して、すぐに深く掘り下げたり、次に何をすべきかを知ることができます。マージリクエストを開いてDuo Chatを開くだけで、会話を開始できます。

この新しい機能は、GitLab Duoに変更されたcodeを要約するようにリクエストすることで、マージリクエストの説明を素早く入力できる既存の機能を補完し、レビュアーがマージリクエストの概要を把握できるようにします。

ブランチルール編集機能の強化

GitLab 15.10では、ブランチ関連の設定とルールをまとめた統合ビューを導入しました。このビューにより、複数の設定にわたるプロジェクトの構成を簡単に理解できるようになりました。

この機能を基盤として、このビューで特定のブランチルールを直接変更できるようになりました。これには、ブランチ保護、承認ルール、および外部ステータスチェックの構成が含まれます。これらの新しい機能は、将来的にさらに大きな柔軟性を可能にするブランチ構成の継続的な改善の基盤を築きます。

これらの新しい機能を探索し、フィードバックを提供することを奨励します。これは、専用のフィードバックイシューにコントリビュートすることで行うことができます。

SwitchboardにおけるGitLab Dedicatedテナント概要

Switchboardの新しいテナント概要では、GitLab Dedicatedインスタンスに関する重要な情報に素早くアクセスできる単一の場所が提供されます。

この最初のリリースでは、現在のGitLabバージョン、インスタンスURL、および今後および過去のメンテナンス期間の日時をすべてテナント概要ページで表示できます。

Secret Push ProtectionがGAになりました

Secret Push ProtectionがすべてのGitLab Ultimateのお客様に一般提供されることを発表できることを嬉しく思います。

キーやAPIトークンのようなシークレットが誤ってGitリポジトリにコミットされた場合、そのリポジトリにアクセスできる誰もが、悪意のある目的のためにシークレットのユーザーを偽装できます。流出したシークレットは時間とコストがかかり、会社の評判を損なう可能性があります。Secret push protectionは、そもそもシークレットがプッシュされるのを防ぐことで、修正時間を短縮し、リスクを軽減するのに役立ちます。

Secret push protectionはベータリリース以降、改善されました。Git CLIを使用してコミットがプッシュされると、変更(差分)のみがシークレットについてスキャンされます。また、誤検出を回避するために、パス、ルール、または特定の値を除外する実験的なサポートも追加しました。

詳細については、ブログを参照してください。

GitLab.comで利用可能な認証情報インベントリ

認証情報インベントリは、GitLab.comのトップレベルグループのオーナーが利用できるようになりました。認証情報インベントリでは、グループ全体のエンタープライズユーザーのパーソナルアクセストークンとSSHキーを表示できます。また、認証情報に関する追加情報を失効、削除、および表示することもできます。以前は、これはGitLabのセルフマネージドの管理者のみが利用できました。

グループオーナーは、認証情報インベントリを使用して、彼らの管轄下に存在する認証情報を理解し、表示レベルと制御を向上させることができます。

依存関係リスト上のコンポーネントフィルター

これで、GitLabでは、特定の依存コンポーネントを素早くフィルターして、それらがグループまたはプロジェクトで使用されているかどうかを識別できます。特定のパッケージとバージョンが存在するかどうかを確認するためだけに、リスト全体を手動で確認するのは時間がかかり、不便です。依存関係リストの新しいfilter by componentを使用すると、脆弱な依存関係を分離して、アプリケーションのオープンなリスクを評価できます。

規模とデプロイ

GitLabチャートの改善

GitLab 17.5には、NGINX Ingressコントローラーのバージョンの更新が含まれています。nginx-controllerコンテナイメージは現在バージョン1.11.2です。新しいコントローラーがエンドポイントスライスを使用し、それらにアクセスするためのRBACルールを必要とするため、これには新しいRBAC要件が含まれることに注意してください。

Omnibusの改善

GitLab 17.5には、単一ノードインストールの場合にPostgreSQLをバージョン14.xから16.xにアップグレードするためのサポートが含まれています。自動アップグレードは有効になっていないため、PostgreSQLのアップグレードは手動でトリガーする必要があります。

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

コーディングを向上させる: Windows用Visual StudioでDuo Chatが利用可能に

Windows用Visual Studioにシームレスに統合されたDuo Chatで、開発ワークフローを強化します。Duo Chatは、AIを活用した機能を提供することで、codeの説明、改善、デバッグ、またはリアルタイムでのテスト記述を可能にし、コーディング体験を向上させます。このインテグレーションにより、Duo Chatの高度なAIツールを慣れ親しんだ開発環境内で直接活用でき、生産性を向上させ、より高速で効率的な問題解決を可能にします。

REST APIを使用してエージェントおよびGitOps環境設定を構成する

GitLab環境のUIからポッドとFlux調整のステータスを確認できます。しかし、このアプローチはGraphQLまたはUIを介してのみ必要な設定が公開されるため、スケールが困難です。現在、GitLabはKubernetes用のエージェントを構成するためのREST APIサポート、および環境ごとのネームスペースとFluxリソースを設定するためのサポートを提供しています。動的環境のサポートをさらに改善するために、イシュー467912では、CI/CDパイプラインでこれらの設定を構成するためのサポートを追加することを提案しています。

GitLab Kubernetes統合の簡単なブートストラップ

GitLabは、Kubernetes用のエージェントとそのFlux統合により、柔軟で信頼性が高く、安全なGitOpsサポートを提供しています。しかし、GitLabでFluxをブートストラップし、Kubernetes用のエージェントを設定するには、多くのドキュメントを読み、GitLab UIとターミナルを切り替える必要がありました。GitLab CLIは現在、既存のFluxインストールの上にエージェントをインストールするのを簡素化するために、glab cluster agent bootstrapコマンドを提供しています。これで、わずか2つの簡単なコマンドでFluxとエージェントを構成できます。

ファイアウォールで保護されたGitLabインストールに対するKubernetes統合サポート

これまでは、Kubernetes用のエージェントは、KubernetesクラスターがGitLabインスタンスに接続できる場合にのみ使用できました。このイシューは、例えばGitLabをプライベートネットワークまたはファイアウォールの背後で実行している場合、一部の顧客がエージェントを使用できないことを意味していました。GitLab 17.5からは、適切に構成されたagentkインスタンスが既に接続の初期化を待機していると仮定して、GitLabからクラスター-GitLab接続を開始できます。

初期接続が確立されると、エージェントのすべての機能が利用可能になります。クラスターからの初期化は、この開発によって変更されません。

Kubernetesリソースイベントのストリーム

GitLabは、ポッドのリアルタイムビューと、Kubernetes用のダッシュボードを介したポッドログのストリーミングを提供します。GitLab 17.4では、UIからリソースイベント固有の情報を静的に表示していました。このリリースでは、Kubernetes用のダッシュボードがさらに改善され、クラスターで発生する受信イベントをストリームできるようになりました。

GitLab UIからGitOps調整を一時停止または再開する

Fluxユーザーとして、自動調整またはドリフト修正をすぐに停止する必要があったことはありますか?手動で削除されたリソースを同期するためにHelmReleaseをトリガーしたいと思ったことはありますか?これらのアクションは、Fluxの一時停止機能と再開機能で最もよく達成されます。これまでは、最も良いオプションはFlux CLIを使用することでしたが、これはコンテキスト切り替えと、適切なリソースが影響を受けることを保証するためのいくつかのコマンドを必要としました。GitLab 17.5では、Kubernetes用の組み込みダッシュボードから調整を一時停止または再開できます。

ユーザー管理概要の改善

管理者は、インスタンス上のユーザーに関する次の重要な情報の、強化された概要ビューを持つようになりました:

  • 保留中の承認。
  • 2要素認証なし。
  • 管理者。

これにより、管理者は概要ビューからこれらの状態にあるユーザーの数を素早く確認し、それらをフィルターできるため、ユーザー管理の効率性が向上します。

セキュリティポリシーのスコープにグループを追加する

これで、セキュリティポリシースコープでグループ/サブグループをターゲットにできます。これにより、グループ/サブグループ内のすべてのプロジェクト、定義されたプロジェクトリストに基づくプロジェクト、およびコンプライアンスフレームワークラベルのリストに一致するプロジェクトをターゲットにできる既存のオプションが拡張されます。

これにより、グループ全体でポリシーを有効にする柔軟性がさらに高まり、必要に応じてプロジェクトを強制のスコープから除外する例外を適用することもできます。

この改善は、セキュリティポリシープロジェクトのリンクプロセスと、ポリシーの適用範囲をきめ細かく設定するプロセスを簡素化する、いくつかの機能強化に先行するものです。

Enterpriseユーザーのパスワード認証を無効にする

エンタープライズユーザーは、ユーザー名とパスワードを使用してローカルアカウントで認証することができます。これで、グループオーナーは、グループのエンタープライズユーザーのパスワード認証を無効にできます。パスワード認証が無効になっている場合、エンタープライズユーザーは、グループのSAMLアイデンティティプロバイダーを使用してGitLabウェブUIで認証するか、パーソナルアクセストークンを使用してHTTP Basic認証でGitLab APIとGitで認証することができます。

プロジェクトでコンプライアンスセンターにアクセスする

以前は、コンプライアンスセンターはトップレベルグループとサブグループのみが利用できました。

このリリースにより、コンプライアンスセンターがプロジェクトに追加されました。このレベルでは、コンプライアンスセンターは、特定のプロジェクトに関連するチェックと違反に対して表示専用の機能を提供します。

フレームワークを追加または編集するには、代わりにトップレベルグループのコンプライアンスセンターにアクセスする必要があります。

コンプライアンスパイプラインからセキュリティポリシーへの移行プロセス

GitLab 17.3では、コンプライアンスパイプラインの廃止と、18.0リリースによる最終的な削除を発表しました。コンプライアンスパイプラインの代わりに、GitLab 17.2でリリースされたパイプライン実行ポリシータイプを使用する必要があります。

このリリースには、既存のコンプライアンスパイプラインをパイプライン実行ポリシータイプに移行するためのワークフローとガイド付きの警告バナーが含まれています:

  • ユーザーにコンプライアンスパイプラインの廃止を通知します。
  • 既存のコンプライアンスパイプラインをパイプライン実行ポリシータイプに移行するための、促されガイド付きのワークフローを提供します。

APIを使用したトークン関連付けの表示

これで、トークンが関連付けられているグループ、サブグループ、およびプロジェクトを表示できます。これにより、トークンの有効期限または失効の影響を特定し、トークンがどこで使用できるかを理解しやすくなります。

選択的なSAMLシングルサインオン強制

以前は、SAML SSOが有効になっている場合、グループはSSOを強制することを選択でき、これによりすべてのメンバーがグループにアクセスするためにSSO認証を使用する必要がありました。しかし、一部のグループは、従業員やグループメンバーに対してSSO強制のセキュリティを望む一方で、外部の協力者や請負業者がSSOなしでグループにアクセスすることを許可したいと考えています。

現在、SAML SSOが有効なグループでは、SAML IDを持つすべてのメンバーに対してSSOが自動的に強制されます。SAML IDを持たないグループメンバーは、SSO強制が明示的に有効になっていない限り、SSOを使用する必要はありません。

メンバーがSAML IDを持っているのは、次のいずれかまたは両方が真の場合です:

  • 彼らは、グループのシングルサインオンURLを使用してGitLabにサインインしました。
  • SCIMによってプロビジョニングされた。

選択的なSSO強制機能のスムーズな運用を確実にするために、このグループのSAML認証を有効にしますチェックボックスを選択する前に、SAML構成が正しく機能していることを確認してください。

コンテナレジストリタグでの作業時のAPIパフォーマンスの向上

セルフマネージドGitLabインスタンス向けのコンテナレジストリAPIの大幅な改善を発表できることを嬉しく思います。GitLab 17.5のリリースにより、GitLab.comで既に利用可能な機能と一致するように、:id/registry/repositories/:repository_id/tagsエンドポイントにキーセットページネーションを実装しました。この強化は、APIパフォーマンスを向上させ、すべてのGitLab展開で一貫したエクスペリエンスを提供するための継続的な取り組みの一部です。

キーセットページネーションは、大規模なデータセットを処理するためのより効率的な方法を提供し、パフォーマンスの向上とより良いユーザーエクスペリエンスをもたらします。この更新は、大規模なコンテナレジストリを管理する際に特に役立ち、リポジトリタグのスムーズなナビゲーションを可能にします。この機能を使用するには、セルフマネージドインスタンスを次世代コンテナレジストリにアップグレードする必要があります。

パッケージ保護されたパッケージで依存関係を保護する

保護されたnpmパッケージのサポートを導入できることを嬉しく思います。これは、GitLabパッケージレジストリのセキュリティと安定性を高めるために設計された新しい機能です。ペースの速いソフトウェア開発の世界では、パッケージの偶発的な変更または削除が、開発プロセス全体を混乱させる可能性があります。保護されたパッケージは、意図しない変更から最も重要な依存関係を保護できるようにすることで、この問題に対処します。

GitLab 17.5から、保護ルールを作成することでnpmパッケージを保護できます。パッケージが保護ルールに一致する場合、指定されたユーザーのみがパッケージを更新または削除できます。この機能により、偶発的な変更を防止し、規制要件へのコンプライアンスを改善し、手動での監視の必要性を減らすことでワークフローを合理化できます。

Advanced SASTのRubyサポートとルールの更新

GitLab Advanced SASTにRubyサポートを追加しました。この新しいクロスファイル、クロスファンクションスキャンサポートを使用するには、Advanced SASTを有効にしてください。すでにAdvanced SASTを有効にしている場合、Rubyサポートは自動的にアクティブ化されます。

先月、Advanced SASTがサポートする他の言語の検出ルールを改善するための更新もリリースしました:

  • 追加のJavaパストラバーサル、Javaコマンドインジェクション、およびJavaScriptパストラバーサル脆弱性の検出。
  • 脆弱性タイプをより具体的に一貫して識別するためにCWEマッピングを更新する。
  • パストラバーサル脆弱性の重大度を高める。

Advanced SASTが各言語でどの種類の脆弱性を検出するかについては、新しいAdvanced SASTカバレッジページを参照してください。

Advanced SASTの詳細については、先月の発表ブログを参照してください。

GitLab Runner 17.5

本日、GitLab Runner 17.5もリリースしました!GitLab Runnerは、CI/CDジョブを実行し、その結果をGitLabインスタンスに送信する、拡張性の高いビルドエージェントです。GitLab Runnerは、GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。

新機能

バグ修正