GitLab 17.7リリースノート
2024年12月19日に、GitLab 17.7が次の機能を搭載してリリースされました。
さらに、今月の注目すべきコントリビューターを含む、すべてのコントリビューターに感謝します。
今月の注目すべきコントリビューター: Vedant Jain
誰もがGitLabコミュニティのコントリビューターを推薦できます!活躍中の候補者を支援するか、新しい推薦を追加してください! 🙌
Vedantは、貢献への積極的なアプローチ、提供へのコミットメント、コラボレーションスキルで知られる、傑出したコミュニティコントリビューターです。彼はフィードバックを受け入れ、それを自身の仕事に組み込み、必要に応じて支援を求めることに優れており、彼のコントリビューションが完了するだけでなく、GitLabの基準も満たすことを保証しています。
彼のコントリビューションには、作業アイテム属性を単一のリスト/ボードに抽象化 、作業アイテムのメタデータの順序付け 、および作業アイテムウィジェットの折りたたまれた状態を記憶によるプロジェクト管理プロセスの合理化が含まれます。Vedantは、UI内のドキュメントへのリンク(1 、2)も修正し、製品全体のUXを向上させる重要な取り組みの一環としてテクニカルライティングチームを支援しました。
Amanda Rueda、シニアGitLabの製品計画担当プロダクトマネージャーは、Vedantを指名し、彼の積極的でコミュニティ志向のマインドセットを強調しました。「Vedantの取り組みは、ユーザーのニーズに対応するだけでなく、彼のコントリビューションを通じて、より安定した信頼性の高いGitLab環境を共同で作成しています。バグの修正、ユーザービリティの向上、およびメンテナンスの取り組みにコントリビューションすることで、彼は製品全体の品質向上に不可欠な役割を果たしました。彼の積極的なアプローチとグループ横断的なコントリビューションは、GitLabのイテレーション、顧客とのコラボレーション、継続的な改善というコアバリューを体現しており、コミュニティにおける傑出したコントリビューターとなっています。」
「私のコントリビューションを達成するのを助けてくれたすべての人に感謝します」とVedantは述べています。「良い影響を与えることができ、さらに多くのコントリビューションを楽しみにしています。」
Vedantは、モダンなデータチーム向けのアクティブなメタデータプラットフォームであるAtlanのフロントエンドエンジニアであり、Google Summer of Code 2024のメンターでもあります。
Vedantのすべてのコントリビューションと、GitLabにコントリビューションしてくださるすべてのオープンソースコミュニティに深く感謝いたします!
主要な機能
新しいプランナーユーザーロール
新しいプランナーロールを導入し、エピック、ロードマップ、Kanbanボードなどのアジャイルプランニングツールへのカスタマイズされたアクセスを、過剰なプロビジョニングなしで提供します。権限。この変更により、ワークフローを安全に保ち、最小権限の原則に沿ったものにしながら、より効果的にコラボレーションできるようになります。
インスタンス管理者は、どのインテグレーションを有効にできるかを制御できます
インスタンス管理者は、GitLabインスタンスでどのインテグレーションを有効にできるかを制御する許可リストを設定できるようになりました。空の許可リストが設定されている場合、そのインスタンスではインテグレーションは許可されません。許可リストが設定された後、新しいGitLabインテグレーションはデフォルトでは許可リストに含まれません。
以前に有効になっていたインテグレーションで、後で許可リスト設定によってブロックされたものは無効になります。これらのインテグレーションが再び許可された場合、既存の設定で再有効化されます。
ダイレクト転送で利用できる新しいユーザーコントリビューションとメンバーシップのマッピング
ユーザーのコントリビューションとメンバーシップのマッピングの新しいメソッドが、GitLabインスタンス間で直接転送によって移行する際に利用できるようになりました。この機能は、インポートプロセスを管理するユーザーと、コントリビューションの再割り当てを受け取るユーザーの両方に、柔軟性と制御を提供します。新しい方法では、次のことができます:
- インポートが完了した後、既存のユーザーにメンバーシップとコントリビューションを宛先インスタンスで再割り当てします。インポートしたすべてのメンバーシップとコントリビューションは、最初にプレースホルダーユーザーにマップされます。すべてのコントリビューションは、宛先インスタンスで再割り当てするまで、プレースホルダーに関連付けられたまま表示されます。
- 送信元と宛先のインスタンスで異なるメールアドレスを持つユーザーのメンバーシップとコントリビューションをマップします。
宛先インスタンスでユーザーにコントリビューションを再割り当てすると、ユーザーは再割り当てを承諾または拒否できます。
詳細については、ユーザーコントリビューションとメンバーシップのマッピングによる移行の合理化を参照してください。フィードバックを残すには、イシュー502565にコメントを追加してください。
後続のスキャンで検出されなかった脆弱性を自動的に解決する
GitLabのセキュリティスキャナーは、アプリケーションコード内の既知の脆弱性や潜在的な弱点を特定するのに役立ちます。フィーチャーブランチをスキャンすることで、新しい弱点や脆弱性が表面化し、マージする前に修正することができます。プロジェクトのデフォルトブランチにすでに存在する脆弱性の場合、これらをフィーチャーブランチで修正すると、次のデフォルトブランチスキャンが実行されたときに、その脆弱性は検出されなくなったものとしてマークされます。どの脆弱性が検出されなくなったかを知ることは有益ですが、それらを閉じるには、それぞれを手動で解決済みとしてマークする必要があります。新しいアクティビティフィルターやステータスの一括変更を使用する場合でも、解決するべきものが多数ある場合、これは時間がかかる可能性があります。
私たちは、自動スキャンによって検出されなくなった脆弱性が自動的に解決済みに設定されることを望むユーザー向けに、新しいポリシータイプである脆弱性管理ポリシーを導入しています。新しいAuto-resolveオプションを使用して新しいポリシーを構成し、適切なプロジェクトに適用するだけです。特定の重大度の脆弱性のみ、または特定のセキュリティスキャナーからの脆弱性のみを自動解決するようにポリシーを構成することもできます。設定されると、次にプロジェクトのデフォルトブランチがスキャンされたときに、検出されなくなった既存の脆弱性は解決済みとしてマークされます。このアクションは、アクティビティノート、アクションが発生したタイムスタンプ、および脆弱性が削除されたと判断されたパイプラインで、脆弱性レコードを更新します。
パーソナルアクセストークン、プロジェクトアクセストークン、およびグループアクセストークンをUIでローテーションする
これで、UIを使用してパーソナルアクセストークン、プロジェクトアクセストークン、およびグループアクセストークンをローテーションできるようになりました。以前は、これを行うにはAPIを使用する必要がありました。
ありがとうございましたshangsuruさんのコントリビューションに感謝します!
プロジェクト全体のCI/CDコンポーネント使用状況を追跡する
中央のDevOpsチームは、CI/CDコンポーネントがパイプライン全体でどこで使用されているかを追跡する必要があることが多く、それらをより適切に管理および最適化するためです。表示レベルがないと、古くなったコンポーネントの使用状況を特定したり、採用率を理解したり、コンポーネントのライフサイクルをサポートしたりすることが困難です。
これに対処するため、組織のパイプライン全体でコンポーネントが使用されているプロジェクトのリストをDevOpsチームが確認できる新しいGraphQLのクエリを追加しました。この機能により、DevOpsチームは重要なインサイトを得ることで、生産性を向上させ、より良い意思決定を行うことができます。
すべてのティアで利用可能なLinux Arm上の小規模なホスト型Runner
GitLab.com向けに、すべてのティアで利用可能なLinux Arm上の小規模なホスト型Runnerを導入できることを嬉しく思います。この2 vCPUのArm Runnerは、GitLab CI/CDと完全に統合されており、Armアーキテクチャ上でネイティブにアプリケーションをビルドおよびテストできます。
私たちは業界最速のCI/CDビルド速度を提供することを決意しており、チームがさらに短いフィードバックサイクルを達成し、最終的にソフトウェアをより速く提供するのを楽しみにしています。
規模とデプロイ
Omnibusの改善
- プラン: Free、Premium、Ultimate
- リンク: ドキュメント
バグのため、GitLab 17.6以前のFIPS Linuxパッケージは、システムのLibgcryptを使用せず、通常のLinuxパッケージにバンドルされているLibgcryptと同じものを使用していました。
このイシューは、AmazonLinux 2を除くGitLab 17.7のすべてのFIPS Linuxパッケージで修正されました。AmazonLinux 2のLibgcryptバージョンは、FIPS Linuxパッケージに同梱されているGPGMEおよびGPGのバージョンと互換性がありません。
AmazonLinux 2用のFIPS Linuxパッケージは、通常のLinuxパッケージにバンドルされているのと同じLibgcryptを引き続き使用します。そうしないと、GPGMEとGnuPGをダウングレードしなければなりません。
統合されたDevOpsとセキュリティ
高度なSASTにおける検出精度の向上
高度なSASTを更新し、次の脆弱性クラスをより正確に検出できるようにしました:
- C#: OSコマンドインジェクションとSQLインジェクション。
- Go: パストラバーサル。
- Java: コードインジェクション、ヘッダーまたはログにおけるCRLFインジェクション、クロスサイトリクエストフォージェリ(CSRF)、不適切な証明書検証、脆弱な逆シリアル化、安全でないリフレクション、およびXML外部エンティティ(XXE)インジェクション。
- JavaScript: コードインジェクション。
また、C#(ASP.NET)およびJava(JSF、HttpServlet)のユーザー入力ソースの検出を改善し、一貫性のために重大度レベルを更新しました。
各言語で高度なSASTが検出する脆弱性のタイプを確認するには、高度なSASTのカバレッジを参照してください。この改善されたクロスファイル、クロスファンクションスキャンを使用するには、高度なSASTを有効にしてください。すでに高度なSASTを有効にしている場合は、新しいルールが自動的にアクティブ化されます。
KEVによる効率的なリスク優先順位付け
GitLab 17.7で、既知の悪用された脆弱性カタログ(KEV)のサポートが追加されました。KEV CatalogはCISAによって管理されており、実際に悪用されたCVEのリストをキュレーションしています。KEVを活用することで、スキャン結果の優先順位をより適切に設定し、脆弱性が環境に与える潜在的な影響を評価するのに役立てることができます。
このデータは、GraphQLを介してコンポジション解析ユーザーが利用できます。GitLab UIでこのデータを表示することをサポートするための作業が計画されています。
高度なSAST向けに拡張されたコードフロービュー
- プラン: Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
高度なSASTのコードフロービューは、脆弱性が表示されるあらゆる場所で利用できるようになりました。これには以下が含まれます:
新しいビューはGitLab.comで有効になっています。GitLabセルフマネージドでは、GitLab 17.7(MR変更ビュー)およびGitLab 17.6(その他のすべてのビュー)から、新しいビューがデフォルトで有効になります。サポートされているバージョンと機能フラグの詳細については、コードフロー機能の可用性を参照してください。
高度なSASTの詳細については、発表ブログを参照してください。
GitLab Duo Chatに新しい/helpコマンド
GitLab Duo Chatの強力な機能を発見しましょう!/helpをチャットメッセージフィールドに入力するだけで、それがあなたのために何ができるかをすべて探ることができます。
試してみて、GitLab Duo Chatがあなたの仕事をいかにスムーズかつ効率的にできるかを確認してください。
environment.action: accessとprepareを設定すると、auto_stop_inタイマーがリセットされます
以前は、action: prepare、action: verify、およびaction: accessジョブをauto_stop_in設定と共に使用した場合、タイマーはリセットされませんでした。18.0以降では、action: prepareとaction: accessがタイマーをリセットしますが、action: verifyは変更しません。
現時点では、prevent_blocking_non_deployment_jobs機能フラグを有効にすることで、新しい実装に変更できます。
複数の破壊的な変更は、environment.action: prepare | verify | access値の動作を区別することを目的としています。environment.action: accessキーワードは、タイマーのリセットを除き、現在の動作に最も近いものになります。
将来の互換性イシューを防ぐために、これらのキーワードの使用法を確認する必要があります。以下のイシューで、これらの提案された変更について詳しく学んでください:
Kubernetes 1.31のサポート
このリリースでは、2024年8月にリリースされたKubernetesバージョン1.31の完全なサポートが追加されました。アプリをKubernetesにデプロイする場合、接続されているクラスターを最新のバージョンにアップグレードし、すべての機能を活用できるようになりました。
詳細については、当社のKubernetesサポートポリシーとその他のサポートされているKubernetesバージョンを参照してください。
CI/CDジョブからネームスペースとFluxリソースパスを設定する
Kubernetes用のダッシュボードを使用するには、環境設定からKubernetes接続用のエージェントを選択し、オプションでネームスペースとFluxリソースを構成して調整ステータスを追跡する必要があります。GitLab 17.6では、CI/CD設定を持つエージェントを選択するサポートを追加しました。しかし、ネームスペースとFluxリソースの設定には、依然としてUIを使用するか、APIコールを行う必要がありました。17.7では、environment.kubernetes.namespaceとenvironment.kubernetes.flux_resource_path属性を使用して、CI/CD構文でダッシュボードを完全に設定できます。
認証情報インベントリ内のグループアクセストークンとプロジェクトアクセストークン
グループアクセストークンとプロジェクトアクセストークンが、GitLab.comの認証情報インベントリに表示されるようになりました。以前は、パーソナルアクセストークンとSSHキーのみが表示されていました。インベントリ内の追加のトークンタイプにより、グループ全体の認証情報のより完全な全体像が得られます。
拡張されたトークン有効期限通知
以前は、トークン有効期限メール通知は、期限切れの7日前にのみ送信されていました。現在、これらの通知は、期限切れの30日前と60日前にも送信されます。通知の頻度と日付範囲の増加により、ユーザーは間もなく期限切れになる可能性のあるトークンをより意識するようになります。
Unicode 15.1絵文字サポート 🦖🍋🟩🐦🔥
GitLabのバージョン以前では、絵文字のサポートは古いUnicode標準に限定されており、一部の新しい絵文字は利用できませんでした。
GitLab 17.7ではUnicode 15.1のサポートが導入され、最新の絵文字が追加されました。これにより、ティラノサウルス🦖、ライム🍋🟩、フェニックス🐦🔥のような魅力的な新しいオプションが含まれ、最新のシンボルで自分自身を表現できます。
さらに、このアップデートは絵文字の多様性を高め、文化、言語、アイデンティティ全体でより大きな表現を保証し、プラットフォームでコミュニケーションする際に誰もが疎外感を感じないようにします。
優先するテキストエディタをデフォルトとして設定する
このバージョンでは、よりパーソナライズされた編集エクスペリエンスのために、デフォルトのテキストエディタを設定する機能が導入されます。この変更により、リッチテキストエディタ、プレーンテキストエディタのいずれかを選択するか、またはデフォルトなしを選択できるようになり、コンテンツの作成および編集方法に柔軟性がもたらされます。
このアップデートにより、エディタインターフェースを個々の好みやチームの標準に合わせることで、よりスムーズなワークフローが保証されます。この機能強化により、GitLabは引き続きすべてのユーザーに対してカスタマイズと使いやすさを優先します。
アクセストークン用の新しい説明フィールド
個人、プロジェクト、グループ、または代理アクセストークンを作成する際に、そのトークンの説明をオプションで入力できるようになりました。これにより、トークンがどこでどのように使用されているかなどの追加のコンテキストを提供できます。
APIを使用してグループでシークレットプッシュ保護を有効にする
- プラン: Ultimate
- 提供形態: GitLab.com
- リンク: ドキュメント
このリリースにより、REST APIとGraphQL APIを介して、グループ内のすべてのプロジェクトでシークレットプッシュ保護を有効にできるようになりました。これにより、プロジェクトごとではなく、グループごとに効率的にシークレットプッシュ保護を有効にできます。プッシュ保護が有効または無効になるたびに、監査イベントがログに記録されます。
エンタープライズユーザーをリストする新しいAPIエンドポイント
グループオーナーは、専用のAPIエンドポイントを使用して、エンタープライズユーザーと関連するすべての属性をリストできるようになりました。
カスタムロールからオーナーベースロールを削除する
オーナーベースロールは、カスタムロールの作成時に利用できなくなりました。これは、パーミッションが追加的であるため、追加の値を提供しなかったためです。オーナーベースロールを持つ既存のカスタムロールは、この変更による影響を受けません。
コンプライアンスセンターのナビゲーションとユーザービリティの改善
- プラン: Ultimate、Premium
- 提供形態: GitLab.com
- リンク: ドキュメント
私たちは、グループとプロジェクトの両方で、コンプライアンスセンターのユーザーエクスペリエンスに対する反復的かつ重要な改善を継続しています。
GitLab 17.7では、2つの重要な改善を提供しました:
- ユーザーはコンプライアンスセンターのプロジェクトタブでグループによってフィルタリングできるようになり、ユーザーは適切なプロジェクトとそのプロジェクトに添付されているコンプライアンスフレームワークを適用、フィルタリング、検索するための別のオプションが提供されます。
- プロジェクトのコンプライアンスセンターにフレームワークタブが追加され、ユーザーはその特定のプロジェクトに添付されているコンプライアンスフレームワークを検索できるようになりました。
フレームワークの追加または編集は、プロジェクトではなくグループで行われることに注意してください。