プランナーユーザーロールを新たに追加したGitLab 17.7をリリース
このたび、GitLab 17.7のリリースを発表しました。今回のリリースでは、プランナーという新たなユーザーロール、脆弱性の自動解決ポリシー、管理者が制御可能なインスタンスのインテグレーションの許可リスト、UIでのアクセストークンローテーションなどが追加されました!
これらの機能は、今回のリリースに含まれる230件以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。
GitLab 17.7には、GitLabコミュニティのユーザーから138件ものコントリビュートがありました。ありがとうございました!GitLabは誰もがコントリビュートできるプラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。
来月のリリースで予定されている内容を先取りするには、17.8リリースのキックオフビデオも視聴できる今後のリリースページをご覧ください。
GitLab 17.7のリリースでは、プランナーというユーザーロールが新たに追加されました。クリックしてSNSで共有しましょう!
今月のMost Valuable Person MVPはVedant Jainさんが受賞
MVPには、誰もがGitLabコミュニティのコントリビューターを推薦できます。現在の候補者を応援したり、他の誰かをノミネートしてみませんか。🙌
Vedantさんは、コミュニティのコントリビューターとして活躍されていて、コントリビュートに対する積極的なアプローチ、デリバリーへのコミットメント、そしてコラボレーションスキルで知られています。フィードバックを受け入れ、それを作業に取り入れ、必要な場合は支援を求めることに長けていて、コントリビュートを完了させるだけでなく、常にGitLabの基準を満たしてくれています。
Vedantさんのコントリビュートには、抽象化された作業アイテム属性を単一のリスト/ボードにまとめたプロジェクト管理プロセスの効率化、作業アイテムのメタデータの並べ替え、作業アイテムウィジェットの折りたたみ状態を記憶する機能の開発などがあります。また、UIのドキュメントへのリンクを修正し(1、2)、製品全体のユーザーエクスペリエンスを改善する重要な取り組みの一環として、テクニカルライティングチームを支援しました。
GitLabのプロダクトプランニング担当シニアプロダクトマネージャーであるAmanda Ruedaは、Vedantさんを推薦し、彼の積極的でコミュニティ指向の考え方について次のように述べました。「Vedantさんは業務を通じて、ユーザーのニーズに対応するだけでなく、コントリビュートにより安定性と信頼性をより一層高めたGitLab環境をともに作り上げてくれています。バグの修正、ユーザビリティの改善、メンテナンスの取り組みにコントリビュートすることで、製品の全体的な品質を向上させる上で重要な役割を担っています。Vedantさんの積極的なアプローチとグループの枠にとらわれないコントリビュートは、イテレーション、顧客とのコラボレーション、継続的な改善というGitLabのコアバリューを体現しており、彼はコミュニティの中でも傑出したコントリビューターと言えます」
今回の受賞に関して、Vedantさんは次のように述べています。「ご協力いただいたみなさんのおかげです。良い影響を与えることができたことにとても感謝しており、これからもより多くのコントリビュートをしていきたいと思います」
Vedantさんは、最新のデータチーム向けのアクティブなメタデータプラットフォームであるAtlanのフロントエンドエンジニアであり、Google Summer of Code(GSOC)2024のメンターも務めています。
Vedantさんのコントリビュートを始め、GitLabにコントリビュートしてくださっているオープンソースコミュニティのみなさまに心より感謝します!
GitLab 17.7でリリースされた主な改善点
プランナーという新たなユーザーロール
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
プランナーというロールが新たに導入されました。これにより、権限を過剰に付与することなく、エピック、ロードマップ、Kanbanボードなどのアジャイルプランニングツールへのアクセスをカスタマイズできます。この変更により、ワークフローを安全に保ち、最小権限の原則を守りながら、コラボレーションをより効果的に行うことができます。

インスタンス管理者がどのインテグレーションを有効にするか設定可能に
SaaS: -
Self-Managed: Ultimate
インスタンス管理者は、GitLabインスタンスで有効にするインテグレーションを許可リストで設定できるようになりました。空欄の許可リストを設定した場合、インスタンス上でインテグレーションは許可されません。許可リストの設定後、デフォルトでは新しいGitLabインテグレーションは許可リストに含まれません。
以前に有効にしていたインテグレーションを後から許可リストの設定によってブロックした場合、そのインテグレーションは無効になります。これらのインテグレーションを再度許可すると、既存の設定で改めて有効になります。

Direct Transfer によるユーザーのコントリビューションとメンバーシップの新たなマッピングのサポート
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
Direct Transfer(直接転送)によりGitLabインスタンス間を移行する場合に、ユーザーのコントリビューションとメンバーシップの新たなマッピング方法を使用できるようになりました。この機能により、インポートプロセスを管理するユーザーと、コントリビューションの再割り当てを受けるユーザーの双方に対する柔軟性と制御性が向上しました。新しいマッピング方法による変更点は以下です。
- インポートが完了した後、移行先のインスタンスの既存のユーザーにメンバーシップとコントリビュートを再割り当てできます。インポートするメンバーシップとコントリビュートはすべて、まずはプレースホルダーユーザーにマッピングされます。すべてのコントリビュートは、移行先のインスタンスで再割り当てするまで、プレースホルダーユーザーに関連付けられて表示されます。
- ソースインスタンスと移行先のインスタンスに異なるメールアドレスを持つユーザーのメンバーシップとコントリビュートをマッピングします。
移行先のインスタンスのユーザーにコントリビュートを再割り当てすると、ユーザーは再割り当てを承認または拒否できます。
詳細については、ユーザーのコントリビュートとメンバーシップのマッピングによる移行の効率化(英語)を参照してください。フィードバックを投稿するには、イシュー502565にコメントを追加してください。

後続のスキャンで見つからない場合、脆弱性を自動的に解決
SaaS: Ultimate
Self-Managed: Ultimate
GitLabのセキュリティスキャンツールは、アプリケーションコードの既知の脆弱性と潜在的な弱点を特定するのに役立ちます。フィーチャーブランチのスキャンを行うと、新たな弱点や脆弱性が検出されるため、マージする前に修正できます。プロジェクトのデフォルトブランチにすでに脆弱性がある場合、フィーチャーブランチで修正しておけば、次のデフォルトブランチスキャンの実行時に脆弱性が検出されなくなります。どの脆弱性が検出されなくなったかを把握しておくことは有益であるものの、各脆弱性をクローズするには、それぞれ手動で解決済みとしてマークする必要があります。解決すべき脆弱性が多数ある場合、新しいアクティビティフィルターやステータスの一括変更を使用したとしても、時間がかかることがあります。
本リリースでは、自動スキャンによって検出されなくなった脆弱性を自動的に解決済みに設定したいユーザーのニーズに応えて、新しいポリシータイプである脆弱性管理ポリシーを導入します。手順は簡単で、新たに追加された自動解決オプションを使用して新規ポリシーを設定し、適切なプロジェクトに適用するだけです。特定の重大度の脆弱性のみ、または特定のセキュリティスキャナーで検出された脆弱性のみを自動解決するように、ポリシーを設定することも可能です。設定が完了すると、プロジェクトのデフォルトブランチのスキャンが次回行われた際に検出されなかった既存の脆弱性は解決済みとしてマークされます。このアクションにより、脆弱性の情報が更新され、アクティビティノート、アクション発生時のタイムスタンプ、および脆弱性が削除されると判断されたパイプラインが記録されます。

パーソナル、プロジェクト、グループアクセストークンをUIからローテーション可能に
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
UIを使用して、パーソナルアクセストークン、プロジェクトアクセストークン、グループアクセストークンをローテーションできるようになりました。これまでは、UIからトークンを更新するにはAPIを使用する必要がありました。
この場を借りて、コントリビュートしてくれたshangsuruさんに感謝します!
CI/CDコンポーネントの使用状況をプロジェクトをまたいで追跡可能に
SaaS: Premium、Ultimate
Self-Managed: Premium、Ultimate
中心となるDevOpsチームは多くの場合、パイプライン全体でCI/CDコンポーネントが使用されている場所を追跡して、より適切に管理し、最適化する必要があります。コンポーネントの利用状況を可視化する方法がなければ、古いコンポーネントの使用の特定、採用率の把握、コンポーネントのライフサイクルのサポートなどを行うのは困難です。
このようなニーズに応えるために、新たにGraphQLクエリを追加し、DevOpsチームが組織のパイプライン全体でコンポーネントが使用されているプロジェクトのリストを表示できるようにしました。この機能により、DevOpsチームは可視化に基づいた分析結果を活用して生産性を向上させ、より良い意思決定を行うことができます。
Linux Armでホストされる小規模Runnerが全プランで利用可能に
SaaS: Free、Premium、Ultimate
Self-Managed: -
本リリースから、GitLab.com向けにLinux Armでホストされる小規模Runnerを全プランでご利用いただけるようになりました。この2 vCPU Arm Runnerは、GitLab CI/CDと完全に統合されており、Armアーキテクチャ上でネイティブにアプリケーションをビルドし、テストすることができます。
当社は、業界最速のCI/CDビルド速度を実現できるよう尽力しており、みなさまのチームがフィードバックサイクルのさらなる短縮に成功し、最終的にソフトウェアをより迅速に提供できるようになることを願っております。
GitLab 17.7のリリースに含まれるその他の改善点
お好みのテキストエディタをデフォルトに設定
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
本バージョンでは、お好きな方法で編集を行えるようにするために、デフォルトのテキストエディタを設定できるようになりました。この変更により、リッチテキストエディタ、プレーンテキストエディタ、またはデフォルトなしを選択できるようになり、コンテンツの作成方法と編集方法の幅が拡がりました。
今回のアップデートにより、エディタインターフェイスを個々の好みやチームの標準に合わせられるようになり、よりスムーズなワークフローを実現できます。この機能強化でも、GitLabは従来どおり、すべてのユーザーを考慮した使いやすさ、そしてカスタマイズ性を優先しています。
GitLab Duo Chatの新しい/help
コマンド
SaaS: Premium、Ultimate、Duo Pro、Duo Enterprise
Self-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise
GitLab Duo Chatの様々な強力な機能を見つけましょう!チャットメッセージフィールドに「/help
」と入力するだけで、Duo Chatで利用可能な機能をすべて確認できるようになりました。
ぜひこの新しいコマンドも試してみて、Duo Chatを使用することでどのように作業をよりスムーズに効率化できるかご確認ください。
CI/CDジョブからネームスペースとFluxリソースパスを設定可能に
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
Kubernetes用ダッシュボードを使用するには、環境設定からKubernetesとの接続用エージェントを選択し、必要に応じてReconciliationのステータスを追跡するために、ネームスペースとFluxリソースを設定する必要があります。GitLab 17.6では、CI/CD設定でエージェントの指定が可能になりました。ただし、ネームスペースとFluxリソースを設定するには、引き続きUIを使用するか、APIコールを行う必要がありました。17.7では、environment.kubernetes.namespace
とenvironment.kubernetes.flux_resource_path
を選択したCI/CD構文を使用してダッシュボードの設定をすべて行えるようになりました。
KEVによる効率的なリスクの優先順位付け
SaaS: Ultimate
Self-Managed: Ultimate
GitLab 17.7では、悪用が確認された既知の脆弱性(KEV)カタログのサポートを追加しました。KEVカタログ(英語)は、実際に悪用された共通脆弱性識別子(CVE)のリストがまとめられたもので、米国サイバーセキュリティ・社会基盤安全保障庁(CISA)によって管理されています。KEVを活用すれば、スキャン結果の優先順位付けを改善できるほか、脆弱性によって環境に生じうる影響を評価できます。
このデータは、GraphQLを介してコンポジション解析ユーザーが利用できます。このデータをGitLab UIに表示できるようにする作業が計画されています。
高度なSASTのためのコードフロービューの表示場所を拡大
SaaS: Ultimate
Self-Managed: Ultimate
脆弱性が表示されている場所であればどこでも、高度なSASTのコードフロービューを利用できるようになりました。以下はその一例です。
GitLab.comでは、新しいビューが有効になっています。GitLab Self-Managedでは、新しいビューはデフォルトでGitLab 17.7(MR変更ビュー)とGitLab 17.6(他のすべてのビュー)から有効になっています。サポートされているバージョンと機能フラグの詳細については、コードフロー機能の可用性を参照してください。
高度なSASTの詳細については、本機能の一般提供の発表に関するブログ記事(英語)をご覧ください。
トークンの有効期限の通知機能の強化
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
これまでは、トークンの有効期限に関するメール通知は、有効期限が切れる7日前にのみ送信されていましたが、本リリースから30日前と60日前にも送信されるようになりました。通知の頻度増加および日付範囲の拡大により、ユーザーはトークンの有効期限をより認識しやすくなりました。
コンプライアンスセンターのナビゲーションと使いやすさを改善
SaaS: Premium、Ultimate
Self-Managed: Premium、Ultimate
GitLabでは、グループとプロジェクトの両方で、コンプライアンスセンターのユーザーエクスペリエンスに対する重要な改善を反復的に行っています。
GitLab 17.7で行った主な改善は次の2点です。
- コンプライアンスセンターの「プロジェクト」タブでグループによるフィルタリングが可能になりました。これにより、ユーザーはこれまでとは別の方法で、適切なプロジェクトとそのプロジェクトに設定されたコンプライアンスフレームワークを適用、絞り込み、検索できるようになりました。
- プロジェクトのコンプライアンスセンターに「フレームワーク」タブが追加されました。ユーザーはこのタブを使用して、特定のプロジェクトに設定されているコンプライアンスフレームワークを検索できます。
なお、フレームワークの追加や編集は、プロジェクトではなくグループで行われます。
オムニバスの改善
SaaS: -
Self-Managed: Free、Premium、Ultimate
バグのため、GitLab 17.6以前のバージョンでのFIPS LinuxパッケージではシステムLibgcryptは使用されず、標準のLinuxパッケージにバンドルされているのと同じLibgcryptが使用されていました。
このイシューは、AmazonLinux 2を除くGitLab 17.7のすべてのFIPS Linuxパッケージで修正されています。AmazonLinux 2のLibgcryptバージョンは、FIPS LinuxパッケージにインストールされているGPGMEおよびGnuPGバージョンと互換性がありません。
AmazonLinux 2のFIPS Linuxパッケージでは、標準のLinuxパッケージにバンドルされているのと同じLibgcryptが引き続き使用されます。そうでない場合は、GPGMEとGnuPGをダウングレードする必要があります。
Unicode 15.1の絵文字サポート🦖🍋🟩🐦🔥
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
17.7より前のバージョンでは、絵文字のサポートは古いUnicode標準に限定されていたため、一部の新しい絵文字は利用できませんでした。
GitLab 17.7では、Unicode 15.1のサポートが導入され、最新の絵文字が追加されました。これにより、ティラノサウルス🦖、ライム🍋🟩、不死鳥🐦🔥などの楽しい絵文字も使えるようになり、最新の絵文字を使用して表現の幅も広がります。
さらに、今回のアップデートにより絵文字の多様性が強化され、文化、言語、アイデンティティをより適切に表現できるようになりました。プラットフォーム上でのやり取りにおいてすべての人が受け入れられていると感じられるようになります。
Kubernetes 1.31のサポート
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
本リリースでは、2024年8月にリリースされたKubernetesバージョン1.31のフルサポートが追加されました。Kubernetesにアプリをデプロイすると、接続しているクラスターを最新バージョンにアップグレードし、そのすべての機能を利用できるようになります。
詳細については、Kubernetesのサポートポリシーとサポートされているその他のKubernetesバージョンを参照してください。
environment.action: access
とprepare
の設定でauto_stop_in
タイマーのリセットが可能に
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
これまでは、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
キーワードを指定すると、タイマーのリセットを除き、現在の動作に最も近いままとなります。
将来的に互換性の問題が発生しないように、これらのキーワードの使用方法を見直す必要があります。提案された変更の詳細については、次のイシューを参照してください。
APIを使用してグループ内でシークレットプッシュ保護を有効化
SaaS: Ultimate
Self-Managed: Ultimate
本リリースでは、REST APIとGraphQL APIを介して、グループ内のすべてのプロジェクトでシークレットプッシュ保護を有効にできるようになりました。これにより、プロジェクトごとではなく、グループごとにシークレットプッシュ保護を効率的に有効化できます。プッシュ保護が有効または無効になるたびに、監査イベントが記録されます。
高度なSASTでの検出精度を向上
SaaS: Ultimate
Self-Managed: Ultimate
次の脆弱性クラスをより正確に検出できるように、高度なSASTを更新しました。
- C#:OSコマンド導入とSQL挿入
- Go:パストラバーサル
- Java:コードインジェクション、ヘッダーまたはログへのCRLFインジェクション、クロスサイトリクエストフォージェリ(CSRF)、不適切な証明書の検証、脆弱なデシリアライゼーション、安全でないリフレクション、およびXML外部エンティティ(XXE)インジェクション
- JavaScript:コードインジェクション
また、C#(ASP.NET)とJava(JSF、HttpServlet)のユーザー入力ソースの検出を改善し、一貫性を保つために重大度レベルを更新しました。
高度なSASTが各言語で検出できる脆弱性の種類を確認するには、高度なSASTのカバレッジを参照してください。この改良されたファイルや機能間のスキャンを使用するには、高度なSASTを有効にしてください。高度なSASTがすでに有効な場合は、新しいルールが自動的に適用されます。
認証情報インベントリ内でグループおよびプロジェクトアクセストークンが表示されるように
SaaS: Ultimate
Self-Managed: -
グループとプロジェクトのアクセストークンが、GitLab.comの資格情報インベントリに表示されるようになりました。これまでは、パーソナルアクセストークンとSSH鍵のみが表示されていました。インベントリ内に新たなトークンタイプが表示されるようになったことで、グループ全体の認証情報をさらに詳しく把握できるようになりました。
エンタープライズユーザーを一覧表示するAPIエンドポイントを追加
SaaS: Premium、Ultimate
Self-Managed: -
グループオーナーは、専用のAPIエンドポイントを使用して、エンタープライズユーザーと関連する属性を一覧表示できるようになりました。
アクセストークン用の説明フィールドを追加
SaaS: Free、Premium、Ultimate
Self-Managed: Free、Premium、Ultimate
パーソナル、プロジェクト、グループ、または代理のアクセストークンを作成する際に、任意でそのトークンの説明を入力できるようになりました。これにより、どこでどのように使用されるかなど、トークンに関する補足情報を入力できます。

カスタムロールからオーナーの基本ロールを削除
SaaS: Ultimate
Self-Managed: Ultimate
カスタムロールの作成時に、オーナーの基本ロールを利用できなくなりました。カスタムロールは権限を追加していく形で作成するものであり、オーナーの基本ロールを提供することは意味をなさないためです。オーナーの基本ロールを使用している既存のカスタムロールは、この変更の影響を受けません。
実験的な機能
SCA Vulnerability Prioritizer
この実験的な機能の導入は、ユーザーが依存関係スキャンまたはコンテナスキャン中に特定された脆弱性への優先順位付けを支援する新たな一歩です。ユーザーは、このCI/CDコンポーネントを`.gitlab-ci.yml
`ファイルに含めることができます。これにより、プロジェクト内で見つかった脆弱性の優先順位付けレポートが生成されます。レポートはパイプラインに出力できます。
このコンポーネントは、GitLab GraphQL APIをクエリし、脆弱性データを取得後、次のように優先順位を付けます。
- 悪用が確認された既知の脆弱性(KEV)
- 悪用予測スコアリングシステム(EPSS)スコアが高い脆弱性
- 重大度の高い脆弱性
検出および確認された脆弱性のみが表示されます。現在、このコンポーネントではEPSSとKEVデータを使用して、脆弱性の優先順位を付けています。EPSSとKEVデータは、依存関係スキャンとコンテナスキャンを通じて収集されるCVEでのみ利用可能です。詳細については、Vulnerability Prioritizer を参照してください。
フィードバックをお待ちしております。ぜひフィードバックイシューからご質問やコメントをお寄せください。
GitLab Self-Managedのカスタム管理者ロール
管理者はカスタム管理者ロールを使用して、管理者エリアへのきめ細かいアクセスを提供できるようになりました。これにより、タスクを完了するために組織が管理者エリアへの完全なアクセス権をユーザーに付与する必要がなくなります。この機能は実験的に導入されました。詳細については、カスタム管理者ロールを参照してください。
みなさまからのフィードバックをお待ちしています。ご質問やコメントがある場合、またはGitLabチームとのやり取りをご希望の場合は、こちらのフィードバックイシューをご覧ください。
バグ修正、パフォーマンスの改善、UIの改善
GitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。
以下のリンクをクリックして、17.7のバグ修正、パフォーマンスの強化、UI改善についてすべてご覧ください。
監修:川瀬 洋平 @ykawase
(GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー)