GitLab 17.4リリースノート
2024年9月19日、GitLab 17.4が以下の機能とともにリリースされました。
さらに、今月の注目すべきコントリビューターを含む、すべてのコントリビューターに感謝します。
今月の注目すべきコントリビューター: Archish Thakkar
誰もがGitLabコミュニティのコントリビューターを推薦できます!活躍中の候補者を支援するか、新しい推薦を追加してください! 🙌
Archish Thakkarは、今年GitLabのトップコントリビューターの一人であり、46件のクローズされたイシューと119件のMRをマージしました。これらのコントリビュートにより、Archishは過去2回のGitLabハッカソンでトップの座を獲得しました。彼はMiddlewareのシニアソフトウェアエンジニアであり、情熱的なオープンソースのコントリビューターです。
ArchishはGitLabのスタッフバックエンドエンジニア、エンジニアリング生産性担当のPeter Leitzenによって推薦されました。この推薦は、GitLabのスタッフバックエンドエンジニアであるMax Woolfと、GitLabのシニアバックエンドエンジニアであるJames Nuttによってサポートされました。Archishのコントリビュートは過去2ヶ月間で増加しており、GitLabのコードベースの改善に一貫して卓越したコミットメントを示し、複数のQoL(Quality of Life)修正にコントリビュートし、技術的負債を削減しました。
ArchishとGitLabの他のオープンソースのコントリビューターの皆様、GitLabを共同で作成していただき、誠にありがとうございます!
主要な機能
よりコンテキスト認識型のGitLab Duoコード提案を開いているタブを使用して提供
他の開いているタブの内容を使用して、コーディングワークフローを向上させ、よりコンテキスト認識型のコード提案を受け取ります。
このコード提案の改善により、エディタで開いているタブの内容が使用されるようになり、より関連性の高い正確なコードの推奨が提供されます。
すべてのチェックが合格した場合の自動マージ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
MRは、マージ可能になる前に合格しなければならない多くの必須チェックがあります。これらのチェックには、承認、未解決にするべきスレッド、パイプライン、およびその他の満たすべき項目が含まれます。コードをマージする責任がある場合、これらすべてのイベントを追跡し、いつ戻ってMRをマージできるかを確認するのは難しい場合があります。
GitLabは、MRのすべてのチェックに対するAuto-mergeをサポートするようになりました。自動マージにより、マージする資格のあるユーザーは、必要なすべてのチェックが完了する前でも、MRをAuto-mergeに設定できます。MRがそのライフサイクルを通じて続行すると、最後の失敗したチェックが合格した後、MRは自動的にマージされます。
私たちは、MRワークフローを加速するこの改善に本当に興奮しています。この機能に関するフィードバックは、イシュー438395に残すことができます。
Web IDEで拡張機能マーケットプレースが利用可能に
- プラン: Free、Silver、Gold
- 提供形態: GitLab.com
- リンク: ドキュメント
GitLab.comのWeb IDEで拡張機能マーケットプレースのローンチを発表できることを嬉しく思います。拡張機能マーケットプレースを使用すると、サードパーティの拡張機能を見つけ、インストールし、管理して、開発エクスペリエンスを向上させることができます。一部の拡張機能は、ローカルのランタイム環境を必要とするため、Web専用バージョンと互換性がありません。ただし、何千もの拡張機能から選択して、生産性を向上させたり、ワークフローをカスタマイズしたりできます。
拡張機能マーケットプレースはデフォルトで無効になっています。開始するには、user preferencesのインテグレーションセクションで拡張機能マーケットプレースを有効にすることができます。エンタープライズユーザーの場合、トップレベルグループのオーナーロールを持つユーザーのみが拡張機能マーケットプレースを有効にできます。
ワークスペースへのセキュアなsudoアクセス
- プラン: Premium、Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
これで、ワークスペースのsudoアクセスを設定できるようになり、開発環境に依存関係を直接インストール、設定、実行することがこれまで以上に簡単になりました。シームレスな開発エクスペリエンスを確保するために、3つのセキュアな方法を実装しました:
- Sysbox
- Kata Containers
- ユーザーネームスペース
この機能により、ワークフローとプロジェクトのニーズに合わせて環境を完全にカスタマイズできます。
Kubernetesリソースイベントのリスト
GitLabは、ポッドとストリーミングポッドログのリアルタイムビューを提供します。しかしこれまで、UIからリソース固有のイベント情報を表示していなかったため、Kubernetesのデプロイをデバッグするには、サードパーティツールを使用する必要がありました。このリリースでは、Kubernetes用ダッシュボードのリソース詳細ビューにイベントが追加されます。
これは、UIにイベントを追加した最初の試みです。現在、イベントはリソース詳細ビューを開くたびに更新されます。リアルタイムイベントストリーミングの開発は、イシュー470042で追跡できます。
GitLab PagesがワイルドカードDNSレコードなしで一般提供されました
以前は、GitLab Pagesプロジェクトを作成するには、name.example.ioまたはname.pages.example.ioのような形式のドメインが必要でした。この要件は、ワイルドカードDNSレコードとTLS証明書をセットアップする必要があることを意味しました。このリリースでは、DNSワイルドカードなしでGitLab Pagesプロジェクトをセットアップすることがベータから一般提供に移行しました。
ワイルドカード証明書の要件を削除することで、GitLab Pagesに関連する管理オーバーヘッドが軽減されます。一部の顧客は、ワイルドカードDNSレコードまたは証明書に対する組織的な制限のため、GitLab Pagesを使用できません。
GitLab Pagesの並列デプロイ(ベータ版)
このリリースでは、Pagesの並列デプロイ(ベータ版)が導入されます。これで、変更を簡単にプレビューし、GitLab Pagesサイトの並列デプロイを管理できるようになりました。この機能強化により、新しいアイデアをシームレスに実験できるため、自信を持ってサイトをテストおよび改良できます。早期にイシューを発見することで、ライブサイトが安定して洗練された状態を保ち、GitLab Pagesのすでに優れた基盤をさらに発展させることができます。
さらに、アプリケーションやWebサイトの異なる言語バージョンをデプロイする場合、並列デプロイはローカリゼーションに役立ちます。
GitLab Duo Chatでイシューのディスカッションを要約
- プラン: Ultimate
- 提供形態: GitLab.com
- アドオン: Duo Enterprise
- リンク: ドキュメント
長期間にわたるイシューのディスカッションに追いつくには、かなりの時間投資が必要です。このリリースにより、AIが生成するイシューのディスカッションの要約がGitLab Duo Chatと統合され、GitLab.com、Self-Managedインスタンス、およびDedicatedのお客様向けに一般提供されるようになりました。
高度なSASTが一般提供されました
- プラン: Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
当社の高度なSAST (SAST) スキャナーが、すべてのUltimateのお客様向けに一般提供されることを発表できることを嬉しく思います。
高度なSASTは、今年初めにOxeyeから取得したテクノロジーを搭載した新しいスキャナーです。社内のセキュリティ研究に基づいたルールを持つ独自の検出エンジンを使用し、ファーストパーティコードの悪用可能な脆弱性を特定します。より正確な結果を提供することで、デベロッパーやセキュリティチームが誤検出のノイズを振り分ける必要がなくなります。
新しいスキャンエンジンに加えて、GitLab 17.4には以下が含まれます:
- 脆弱性のファイルと関数を横断するパスをトレースする新しいコードフロービュー。
- 高度なSASTが、以前のGitLab SASTスキャナーからの既存の結果を「引き継ぐ」ことを可能にする自動移行。
詳細については、アナウンスブログをご覧ください。
UIでCI/CD変数の値を非表示にする
プロジェクト設定に保存された後、誰にも変数の値を見られたくない場合があります。CI/CD変数を作成する際に、新しいマスクして非表示の表示レベルオプションを選択できるようになりました。このオプションを選択すると、変数の値がCI/CD設定UIで永続的にマスクされ、今後誰にも値が表示されないように制限され、データの表示レベルが低下します。
規模とデプロイ
Omnibusの改善
- プラン: Free、Premium、Ultimate
- リンク: ドキュメント
GitLab 17.4には、新しいGitLabインストール用のPostgreSQL 16がデフォルトで含まれています。
GitLab 17.7にはOpenSSL V3が含まれます。これは、送信接続用のTLS 1.2以上の最小要件、およびTLS証明書用の少なくとも112ビットの暗号化を満たさない外部インテグレーション設定のOmnibusインスタンスに影響を与えます。詳細については、当社のOpenSSLアップグレードドキュメントを確認するか、ご自身のインスタンスが影響を受けるかどうかわからない場合はご確認ください。
グループまたはプロジェクトに招待されたグループを、グループまたはプロジェクトAPIを使用してリスト表示
グループまたはプロジェクトに招待されたグループを取得するために、グループAPIおよびプロジェクトAPIに新しいエンドポイントを追加しました。この機能は、グループまたはプロジェクトのメンバーページでのみ利用可能です。この追加により、グループやプロジェクトのメンバーシップ管理を自動化しやすくなることを願っています。エンドポイントは、ユーザーあたり1分あたり60件のリクエストにレート制限されます。
グループAPIを使用してドメインでグループアクセスを制限する
以前は、UIのグループレベルでのみドメイン制限を追加できました。これで、グループAPIの新しいallowed_email_domains_list属性を使用しても、これを実行できます。
グループおよびプロジェクトメンバーのソース表示の改善
グループおよびプロジェクトのメンバーページで、ソース列の表示を簡素化しました。直接メンバーは引き続きDirect memberとして示されます。継承されたメンバーは、Inherited fromの後にグループ名が続く形で表示されるようになりました。グループまたはプロジェクトにグループを招待して追加されたメンバーは、Invited groupの後にグループ名が続く形で表示されます。親グループに追加された招待済みグループから継承したメンバーについては、メンバーシップを管理するユーザーのために表示をアクション可能に保つため、最終ステップを表示するようになりました。
GitLab Duoシート割り当てメール
Self-Managedインスタンスのユーザーは、GitLab Duoシートが割り当てられるとメールを受信するようになりました。以前は、誰かに言われるか、GitLab UIで新しい機能に気づかない限り、シートが割り当てられたことを知りませんでした。
このメールを無効にするには、管理者はduo_seat_assignment_email_for_smFFを無効にできます。
失敗したWebhookリクエストをAPIで再送信する
以前は、GitLabはWebhookリクエストの再送信機能をUIでのみ提供しており、多くのリクエストが失敗した場合には非効率的でした。
失敗したWebhookリクエストをプログラムで処理できるように、このリリースではコミュニティのコントリビュートのおかげで、再送信用のAPIエンドポイントを追加しました:
- プロジェクトWebhookリクエスト
- グループWebhookリクエスト (PremiumおよびUltimateのみ)
できるようになりました:
Phawinのこのコミュニティコントリビュートに感謝します!
Webhookリクエストの冪等キー
このリリースから、Webhookリクエストのヘッダーに冪等キーをサポートします。冪等キーは、Webhookの再試行全体で一貫性を保つ一意のIDであり、Webhookクライアントが再試行を検出できるようにします。Idempotency-Keyヘッダーを使用して、インテグレーションに対するWebhookの影響の冪等性を確保します。
Vanのこのコミュニティコントリビュートに感謝します!
統合されたDevOpsとセキュリティ
コードインテリジェンス用のCI/CDコンポーネント
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
GitLabのコードインテリジェンスは、リポジトリを閲覧する際にコードナビゲーション機能を提供します。コードナビゲーションの開始は、CI/CDジョブを設定する必要があるため、しばしば複雑です。このジョブには、正しい出力とアーティファクトを提供するためのカスタムスクリプトが必要になる場合があります。
GitLabは、より簡単なセットアップのために公式のコードインテリジェンスCI/CDコンポーネントをサポートするようになりました。コンポーネントの使用に関する指示に従って、このコンポーネントをプロジェクトに追加します。これにより、GitLabでのコードインテリジェンスの採用が大幅に簡素化されます。
現在、コンポーネントは以下の言語をサポートしています:
- Goバージョン1.21以降。
- TypeScriptまたはJavaScript。
新しいコンポーネントの言語サポートを拡大するために、利用可能なSCIPインデクサーの評価を続けます。ある言語のサポートを追加することに興味がある場合は、コードインテリジェンスコンポーネントプロジェクトでMRを開いてください。
MR内のリンクされたファイルが最初に表示されます
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
MR内の特定のファイルへのリンクを共有する場合、それは多くの場合、そのファイル内の何かを見てほしいからです。以前は、MRは参照した特定の場所にスクロールする前に、すべてのファイルを読み込む必要がありました。ファイルに直接リンクすることは、MRでのコラボレーションの速度を向上させる優れた方法です:
- 最初に表示するファイルを検索します。ファイル名を右クリックして、そのファイルへのリンクをコピーします。
- そのリンクにアクセスすると、選択したファイルが一覧の一番上に表示されます。ファイルブラウザには、ファイル名の横にリンクアイコンが表示されます。
リンクされたファイルに関するフィードバックは、イシュー439582に残すことができます。
JetBrains IDEでGitLab DuoにOAuthで認証する
JetBrains向けの当社のGitLab Duoプラグインは、より安全で効率的なオンボーディングプロセスを提供するようになりました。OAuthで素早く安全にサインインできます。既存のワークフローとシームレスに統合され、パーソナルアクセストークンは必要ありません!
保護環境への非デプロイメントジョブは、手動ジョブに変換されません
実装上のイシューにより、action: prepare、action: verify、およびaction: accessのジョブは、保護環境に対して実行されると手動ジョブになります。これらのジョブは、追加の承認は必要ありませんが、実行するには手動での操作が必要です。
イシュー390025は、これらのジョブが手動ジョブに変換されないように、実装を修正することを提案しています。この提案された変更後、現在の動作を維持するには、ジョブを手動で明示的に設定する必要があります。
今のところ、prevent_blocking_non_deployment_jobs機能フラグを有効にすることで、新しい実装に変更できます。
提案された破壊的な変更は、environment.action: prepare | verify | access値の動作を区別することを目的としています。environment.action: accessキーワードは、現在の動作に最も近い状態を維持します。
将来の互換性イシューを防ぐために、これらのキーワードの使用を今すぐレビューする必要があります。これらの提案された変更の詳細については、以下のイシューで確認できます:
クラスターUIからFluxの調整をトリガーする
Fluxを設定して指定された間隔で調整をトリガーすることができますが、即時調整が必要な状況もあります。過去のリリースでは、CI/CDパイプラインまたはコマンドラインから調整をトリガーすることができました。GitLab 17.4では、追加の設定なしでKubernetesのダッシュボードから調整をトリガーすることができるようになりました。
リコンシリエーションをトリガーするには、設定済みのダッシュボードに移動し、Fluxステータスバッジを選択します。
オプションのトークン有効期限
管理者は、パーソナルアクセストークン、プロジェクトアクセストークン、およびグループアクセストークンに強制的な有効期限を適用するかどうかを決定できるようになりました。管理者がこの設定を無効にすると、新しく生成されるアクセストークンには有効期限は必要ありません。デフォルトではこの設定は有効になっており、許可される最大ライフタイムよりも短い有効期限が必要です。この設定はGitLab 16.11以降で利用可能です。
複数のコンプライアンスフレームワークで検索
GitLab 17.3では、ユーザーがプロジェクトに複数のコンプライアンスフレームワークを追加できる機能を提供しました。
これで、複数のコンプライアンスフレームワークで検索できるようになり、複数のコンプライアンスフレームワークが関連付けられているプロジェクトを検索するのが簡単になりました。
セキュリティポリシーにリンクされたプロジェクト内のパイプライン実行ポリシーYAMLファイルへの読み取りアクセスを許可する
GitLab 17.4では、すべてのリンクされたプロジェクトのpipeline-execution.ymlファイルへの読み取りアクセスを許可するために使用できるセキュリティポリシーに設定を追加しました。この設定により、プロジェクト全体でパイプライン実行をグローバルに適用するユーザー、ボット、またはトークンを有効にするための柔軟性が向上します。例えば、グループまたはプロジェクトアクセストークンがセキュリティポリシーの設定を読み取り、パイプライン実行中にパイプラインをトリガーすることができるようにすることができます。依然として、セキュリティポリシープロジェクトリポジトリまたはYAMLを直接表示することはできません。設定はパイプライン作成中にのみ使用されます。
設定を設定するには、共有したいセキュリティポリシープロジェクトに移動します。設定 > 一般 > 可視性、プロジェクトの機能、権限を選択し、パイプライン実行ポリシーまでスクロールし、Grant access to this repository for projects linked to it as the security policy project source for security policies切替を有効にします。
パイプライン実行ポリシーパイプラインでの名前の衝突があるジョブのサフィックスをサポートする
パイプライン実行ポリシーの17.2リリースに対する機能強化として、ポリシー作成者は、ジョブ名の衝突を適切に処理するようにパイプライン実行ポリシーを設定できるようになりました。パイプライン実行ポリシーのpolicy.ymlを使用すると、次のオプションを設定できます:
suffix: on_conflictは、ポリシージョブの名前を変更することで衝突を適切に処理するようにポリシーを設定し、これが新しいデフォルトの動作となります。suffix: neverは、すべてのジョブ名が一意であることを強制し、衝突が発生した場合にパイプラインを失敗させます。これは17.2以降のデフォルトの動作でした。
この改善により、パイプライン実行ポリシー内で実行されるセキュリティおよびコンプライアンスジョブが常に実行されることを保証しつつ、ダウンストリームのデベロッパーへの不要な影響も防止できます。
次の機能強化では、ポリシーエディタ内に設定オプションを導入します。
サイズ変更可能なWikiサイドバー
これで、Wikiサイドバーを調整して長いページタイトルを表示できるようになり、コンテンツ全体の発見可能性が向上しました。Wikiコンテンツが増えるにつれて、サイズ変更可能なサイドバーは、複雑な階層や広範囲にわたるページリストをより効率的に管理し、閲覧するのに役立ちます。
CycloneDX 1.6 SBOMのインジェストをサポート
GitLab 15.3はCycloneDX SBOMのインジェストをサポートしました。
GitLab 17.4では、CycloneDXバージョン1.6 SBOMのインジェストのサポートを追加しました。
ハードウェア(HBOM)、サービス(SaaSBOM)、およびAI/MLモデル(AI/ML-BOM)に関連するフィールドは、現在サポートされていません。これらのBOMに関連するデータを含むSBOMは処理されますが、データは分析されたりユーザーに提示されたりすることはありません。これらの他のBOMタイプのサポートは、このエピックで追跡されています。
削除されたSASTアナライザーの自動クリーンアップ
- プラン: Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
GitLab 17.0 、16.0 、および15.4では、GitLab SASTを合理化し、より少ない別個のアナライザーを使用してコードの脆弱性をスキャンするようにしました。
現在、GitLab 17.3.1以降にアップグレードすると、1回限りのデータ移行により、サポート終了に達したアナライザーからの残りの脆弱性が自動的に解決されます。これにより、脆弱性レポートがクリーンアップされ、最新のアナライザーによって依然として検出される脆弱性に集中できます。
この移行は、確認または無視していない脆弱性のみを解決し、Semgrepベースのスキャンに自動的に翻訳された脆弱性には影響しません。
Anthropic APIキーのシークレット検出サポート
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
パイプライン側とクライアント側の両方のシークレット検出が、Anthropic APIキーの検出をサポートするようになりました。
JaCoCoのテストカバレッジ可視化サポート(ベータ版)が利用可能に
これで、JaCoCoカバレッジレポート(カバレッジ計算の人気のある標準)をMR内で使用できます。この機能はベータ版として利用可能ですが、JaCoCoカバレッジレポートをすぐに使用したい人なら誰でもテストできます。フィードバックがある場合は、フィードバックイシューへのコントリビュートをお願いします。
GitLab Runner 17.4
- プラン: Free、Premium、Ultimate
- リンク: ドキュメント
本日、GitLab Runner 17.4もリリースします!GitLab Runnerは、CI/CDジョブを実行し、その結果をGitLabインスタンスに送信する、拡張性の高いビルドエージェントです。GitLab Runnerは、GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。
新機能
バグ修正
GitLab Runnerのすべての変更リストは変更履歴にあります。