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

GitLab 16.1リリースノート

2023年6月22日、GitLab 16.1は以下の機能を備えてリリースされました。

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

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

Gerardoは、ジョブトークンスコープのREST APIエンドポイントを提供するために、複数回のリリースにわたって一貫してイテレーションを重ねてきました。イテレーションはGitLabのコアバリューの1つであり、Gerardoは機能を提供するための複数のコントリビュートでそれを実証しました。

デフォルトのCI_JOB_TOKEN動作の変更により、プロジェクトの作成を自動化するユーザーは、そのプロジェクトでCI_JOB_TOKENの使用を許可されたプロジェクトの追加も自動化できなくなりました。このREST APIエンドポイントにより、お客様は再びこのプロセスを自動化し、より安全なCI_JOB_TOKENワークフローの採用を促進できます。

GerardoとSiemensのクルーの皆様、ありがとうございます!

Yuriは6年前に記録されたイシューを拾い上げ、行動への偏り (GitLabの価値観の1つ) を示し、修正にコントリビュートしました。

これは多くの顧客が関心を持っていた人気のある機能でした。この機能強化により、システム管理者は、グループまたはプロジェクトのパスのコンマ区切りリストに基づいて、バックアップと復元中に特定のプロジェクトをスキップできます。この機能により、システム管理者は、バックアップ実行中に古いプロジェクトやアーカイブされたプロジェクトをスキップし、ストレージスペースを節約してバックアップを高速化できます。同じオプションを使用して、バックアップから復元する際に特定のプロジェクトを除外することもできます。

Yuriの貴重なコントリビュートに感謝します!

主要な機能

全く新しいナビゲーションエクスペリエンス

GitLab 16.1には、全く新しいナビゲーションエクスペリエンスが搭載されています!このエクスペリエンスは、すべてのユーザーに対してデフォルトで有効になっています。開始するには、UIの右上にあるアバターに移動し、New navigation切替をオンにします。

新しいナビゲーションは、GitLabのナビゲートが煩雑であること、作業の中断箇所から再開するのが難しいこと、ナビゲーションをカスタマイズできないことという3つの主要なフィードバック領域を解決するために設計されました。

新しいナビゲーションには、合理化され改善された左サイドバーが含まれており、次のことができます:

  • 頻繁にアクセスするアイテムを📌ピン留めします。
  • サイドバーを完全に非表示にし、「必要に応じて一時的に」表示させます。
  • 新しいYour Workおよび検索オプションを使用すると、コンテキストの切り替え、検索、およびデータのサブセットの表示を簡単に行うことができます。
  • トップレベルのメニュー項目が減ったため、より迅速にスキャンできます。

この新しいナビゲーションを誇りに思っており、皆様のご意見を伺うのが楽しみです。変更点のリストを確認し、ナビゲーションのビジョンデザインに関するブログ投稿をお読みください。

新しいナビゲーションを試して、このイシューであなたの経験についてお知らせください。すでにフィードバックにフィードバックしており、最終的には切替を削除します。

GitLabでKubernetesリソースを視覚化する

あなたのクラスターで実行されているアプリケーションのステータスをどのように確認しますか?パイプラインステータスと環境ページは、最新のデプロイ実行に関するインサイトを提供します。しかし、以前のバージョンのGitLabでは、あなたのデプロイの状態に関するインサイトが不足していました。GitLab 16.1では、Kubernetesデプロイにおける主要なリソースの概要を確認できます。

この機能は、接続されているすべてのKubernetesクラスターで動作します。あなたがCI/CDのインテグレーションまたはGitOpsを使用してワークロードをデプロイするかどうかは問題ありません。Fluxユーザー向けの機能をさらに改善するため、環境の同期ステータス表示のサポートがイシュー391581で提案されています。

サービスアカウントで認証する

人間ではないユーザーが認証する必要がある多くのユースケースがあります。以前は、目的のスコープに応じて、ユーザーはパーソナルアクセストークン、プロジェクトアクセストークン、またはグループアクセストークンを使用してこのニーズを満たすことができました。これらのトークンは、人間に関連付けられている(パーソナルアクセストークンの場合)か、不必要に特権的なロール(グループアクセストークンおよびプロジェクトアクセストークンの場合)であるため、理想的ではありませんでした。

サービスアカウントは人間ユーザーに関連付けられておらず、スコープがよりきめ細かくなっています。サービスアカウントの作成と管理はAPIのみです。UIオプションのサポートはイシュー9965で提案されています。

GitLab Dedicatedが一般提供開始

GitLab Dedicatedは、厳格なコンプライアンス要件を持つ顧客のニーズに対応するために設計された、当社の包括的なDevSecOpsプラットフォームのフルマネージド型シングルテナントSaaSデプロイです。

規制の厳しい業界の顧客は、データ分離のような厳格なコンプライアンス要件のため、マルチテナントSaaS製品を採用できません。GitLab Dedicatedを使用すると、組織は高速なリリース、より優れたセキュリティ、より生産的なデベロッパーを含むDevSecOpsプラットフォームのすべてのメリットにアクセスしながら、データレジデンシー、分離、プライベートネットワーキングなどのコンプライアンス要件を満たすことができます。

今すぐGitLab Dedicatedについてもっと詳しく

ジョブアーティファクトをアーティファクトページで管理する

以前は、ジョブアーティファクトを表示または管理するには、各ジョブの詳細ページに移動するか、APIを使用する必要がありました。これで、ビルド > アーティファクトからアクセスできるアーティファクトページを通じて、ジョブアーティファクトを表示および管理できます。

メンテナーロール以上のユーザーは、この新しいインターフェースを使用してアーティファクトを削除することもできます。個々のアーティファクトを削除することも、手動選択またはページ上部のすべて選択オプションをチェックすることで、一度に最大100個のアーティファクトをまとめて削除することもできます。

この新しい機能に関するフィードバックを共有するために、アーティファクトページ上部のアンケートをご利用ください。検討中の追加のUI機能を表示するには、Build Artifacts page enhancements epicを確認してください。

改善されたCI/CD変数のリスト表示

CI/CD変数は、すべてのパイプラインの重要な部分であり、プロジェクトおよびグループの設定を含む複数の場所で定義できます。ユーザーが異なる階層の変数間を直感的にナビゲートできるようにする大きな改善に備えるため、変数リストの使いやすさとレイアウトの改善から着手しています。

GitLab 16.1では、これらの改善の最初のイテレーションが表示されます。「タイプ」列と「オプション」列を新しい属性列に統合しました。これにより、これらの関連する属性がよりよく表現されます。CI/CD変数エクスペリエンスの改善を継続する方法に関するフィードバックに感謝いたします。変数改善エピックにコメントをいただければ幸いです。

規模とデプロイ

GitLabチャートの改善

  • GitLab 16.1は、busybox Dockerイメージをgitlab-base Dockerイメージに置き換え、他のGitLab Dockerイメージとレイヤーを共有します。この実装では、gitlab-baseをヘルパーイメージ(kubectlcertificatesなど)として扱い、オプションでローカルオーバーライドできます。

Omnibusの改善

  • GitLab 16.1は、2023年6月10日にリリースされたDebian 12 Bookwormでのパッケージのビルドとリリースのサポートを追加します。

ドメイン検証の改善

ドメイン検証は、GitLab全体で複数の目的を果たします。以前は、ドメインを検証するには、GitLab Pages以外の目的でドメインを検証している場合でも、GitLab Pagesウィザードを完了する必要がありました。

現在、ドメイン検証はグループレベルで行われ、合理化されています。これにより、ドメインの検証が容易になります。

脆弱性レポートをカスタムロールの権限として表示

脆弱性レポートを表示する機能が別の権限に分割され、GitLabの管理者とグループのオーナーがこの権限を持つカスタムロールを作成できるようになりました。以前は、脆弱性レポートの表示はデベロッパーロール以上に限定されていました。これで、どのユーザーでも、その権限を持つカスタムロールが割り当てられていれば、脆弱性レポートを表示できます。

確認済みの任意のメールアドレスに送信されるパスワードリセットメール

GitLabのパスワードを忘れた場合、検証済みの任意のメールアドレスを使用してメールでリセットできるようになりました。以前は、プライマリメールアドレスのみがリセットリクエストに使用されていました。これにより、プライマリメールの受信トレイにアクセスできない場合、パスワードリセットプロセスを完了することが困難になりました。

ユーザーAPI応答に含まれるSCIM ID

ユーザーAPIは、ユーザーのSCIM IDを返すようになりました。以前は、この情報はUIには含まれていましたが、APIには含まれていませんでした。

OmniAuth Shibbolethサポートの再導入

Shibboleth OmniAuthサポートがGitLabに再導入されました。以前は、アップストリームサポートの不足によりGitLab 15.9で削除されていました。アップストリームサポートを引き受けたlukaskoenenからの寛大なコミュニティコントリビュートのおかげで、omniauth-shibboleth-reduxがセルフマネージドGitLabでサポートされるようになりました。

管理者モードでパーソナルアクセストークンの管理者アクセスを選択

GitLabの管理者は管理者モードを使用して非管理者ユーザーとして作業し、必要に応じて管理者アクセスを有効にすることができます。以前は、管理者のパーソナルアクセストークン(PAT)には、常に管理者としてAPIアクションを実行する権限がありました。これで、PATを追加する際に、管理者は管理者モードのスコープを選択することで、そのPATがAPIアクションを実行するための管理者アクセスを持つかどうかを決定できます。この機能を使用するには、管理者がインスタンスに対して管理者モードを有効にする必要があります。

Jonas WälterDiego LouzánAndreas Deichaのコントリビュートに感謝します!

ユーザーによるアカウント削除の防止

管理者は、新しいユーザー制限設定により、ユーザーがアカウントを削除できないようにすることができます。この設定が有効になっている場合、ユーザーはアカウントを削除できなくなり、監査可能なアカウント情報が保持されます。

パーソナルアクセストークンのlast_used値がより頻繁に更新されるようになりました

パーソナルアクセストークン(PAT)のlast_used値は、以前は24時間ごとに更新されていました。現在は10分ごとに更新されます。これにより、PATの使用状況の可視性が向上し、PATの侵害が発生した場合でも、悪意のある活動が認識されるまでの時間が短縮されるため、リスクが軽減されます。

Jacob Torrey様のごコントリビュートに感謝いたします!

完了したGitHubプロジェクトインポート概要のより詳細な情報

GitHubプロジェクトのインポートが完了すると、GitLabはインポートされたエンティティの簡単な概要を表示していました。しかし、GitLabはどのGitHubエンティティのインポートが失敗したか、またインポートの失敗を引き起こしたエラーを正確には表示しませんでした。このため、インポート結果が満足のいくものかどうかを判断することが困難でした。

今回のリリースでは、インポート概要を拡張し、インポートされなかったGitHubエンティティのリストを含め、可能であればGitHub上のこれらのエンティティへの直接リンクを提供するようにしました。GitLabは、各失敗に対してエラーも表示するようになりました。これにより、インポートがどれほどうまく機能したかを理解し、問題のトラブルシューティングを行うのに役立ちます。

サービスデスクのイシューで外部ユーザーをコメント作成者として表示

リクエスタがサービスデスクのメールに返信すると、サービスデスクのエージェントにとって誰がコメントしたかを知ることは有用です。しかし、リクエスタはGitLabアカウントを持たない外部ユーザーであるか、GitLabプロジェクトへのアクセス権を持たない可能性があるため、これらのコメントは以前はGitLabサポートボットに帰属していました。今後は、リクエスタからのメール返信は外部ユーザーに帰属するようになり、GitLabのイシューで誰がコメントしたかがより明確になります。

サービスデスクのメールでのイシューURLプレースホルダー

サービスデスクのリクエスタにとって、サービスデスクリクエストにメールのみでやり取りするのではなく、サービスデスクのイシューに直接アクセスできると便利です。新しいプレースホルダー%{ISSUE_URL}を導入しています。これは、あなたのメールテンプレート(例えば、「ありがとう」メール)で使用して、リクエスタをサービスデスクのイシューに直接リンクできます。

バックアップにプロジェクトをスキップする機能が追加されました

組み込みのバックアップおよび復元ツールに、特定のリポジトリをスキップする機能が追加されました。Rakeタスクは、新しいSKIP_REPOSITORIES_PATHS環境変数を使用することで、バックアップまたは復元中にスキップされるカンマ区切りのグループまたはプロジェクトパスのリストを受け入れるようになりました。これにより、例えば、時間の経過とともに変更されない古いプロジェクトやアーカイブされたプロジェクトをスキップできるようになり、a) バックアップ実行の高速化による時間短縮、およびb) バックアップファイルにこのデータを含めないことによるスペース節約を実現できます。Yuri Konotopov氏のコミュニティコントリビュートに感謝します!

Geoがすべてのコンポーネントにレプリケーションステータスによるフィルタリングを追加

Geoは、セルフサービスフレームワークによって管理されるすべてのコンポーネントにレプリケーションステータスによるフィルタリングを追加しました。これで、レプリケーションの詳細ビューで「進行中」、「失敗」、および「同期済み」のステータスでアイテムをフィルタリングできるようになり、同期に失敗しているデータをより簡単かつ迅速に見つけることができます。

Geoがデザインレポジトリを検証

イシューにデザインを追加すると、デザインGitリポジトリが作成または更新され、LFSオブジェクトと(サムネイル用の)アップロードが作成されます。GeoはすでにLFSオブジェクトとアップロードを検証しており、今後はデザインリポジトリも検証します。これでデザイン管理のすべての基盤となるデータが検証されたため、あなたのデザインデータは転送中または保存時に破損しないことが保証されます。もしGeoがディザスターリカバリー戦略の一部として使用される場合、これはデータ損失からあなたを保護します。

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

マージリクエストでファイル全体にコメント

マージリクエストはファイル全体へのコメントをサポートするようになりました。これは、すべてのマージリクエストフィードバックが特定の行に限定されるわけではないためです。ファイルが削除された場合、その理由についてより多くの情報が必要になる場合があります。ファイル名に関するフィードバックや、構造に関する一般的なコメントを提供したい場合もあります。

GitLab CLIから変更履歴を作成

変更履歴は、プロジェクトへのコミットに基づいて変更の包括的なリストを生成します。これらは自動化または表示が困難な場合があり、GitLab APIとの対話が必要です。

GitLab CLI v1.30.0のリリースにより、Shellから直接プロジェクトの変更履歴を生成できるようになりました。glab changelog generateコマンドは、変更履歴のレビュー、自動化、公開を容易にします。

Michael Meadさんのコントリビュートに感謝します!

無効なセキュリティポリシー承認チェックで失敗閉鎖

セキュリティおよびコンプライアンスポリシーにより、組織は複数のプロジェクトにわたってチェックアンドバランスを強制し、セキュリティおよびガバナンスプログラムに合わせることができます。お客様にとって、ポリシーに影響を与える変更によってガードレールが解除されないようにすることが重要です。このアップデートにより、無効なルールは「フェイルクローズ」として扱われ、すべてのスキャン結果ポリシーの無効なルールが対処されるまでMRがブロックされます。

グループまたはサブグループからnpmパッケージをインストールする

プロジェクトのパッケージレジストリを使用して、npmパッケージを公開およびインストールできます。アクセストークン(パーソナル、ジョブ、デプロイ、またはプロジェクト)を使用して認証し、あなたのGitLabプロジェクトにパッケージの公開を開始するだけです。

これは、プロジェクト数が少ない場合に非常にうまく機能します。残念ながら、複数のプロジェクトがある場合、すぐに数十または数百もの異なるソースを追加することになるかもしれません。大規模な組織のチームが、ソースコードやパイプラインとともに、プロジェクトのパッケージレジストリにパッケージを公開することは一般的です。同時に、組織内のグループやサブグループ内の他のプロジェクトから依存関係を簡単にインストールできる必要があります。

プロジェクト間でパッケージの共有を容易にするため、自分のグループからパッケージをインストールできるようになりました。これにより、どのパッケージがどのプロジェクトにあるかを覚えておく必要がなくなります。選択した認証トークンを使用すると、グループをnpmパッケージのソースとして追加した後、グループのnpmパッケージをどれでもインストールできます。

デザインアップロードに説明を追加する

現在、デザインアップロードには、その目的やアップロードされている理由を説明するメタデータがありません。イメージをよりよく理解できるように、説明としてテキストボックスを追加しました。

GitLab Pagesで静的ファイルディレクトリを設定する

これで、GitLab Pagesの静的ファイルディレクトリを任意の名前(デフォルトではpublic)に設定できるようになりました。これにより、Next.js、Astro、Eleventyなどの人気のある静的サイトフレームワークでPagesを使用する際に、それらの設定で出力フォルダーを変更する必要がなくなります。

Code Qualityアナライザーのアップデート

GitLab Code Qualityは、すでに実行しているツールとのインテグレーションをサポートし、CodeClimateスキャンシステムを実行するCI/CDテンプレートも提供します。16.1のリリースマイルストーン中に、CodeClimateベースのアナライザーに対する以下のアップデートを公開しました:

  • CodeClimateをバージョン0.96.0に更新しました。このバージョンには以下が含まれます:
    • 新しいプラグイン(golangci-lint用)。
    • 新しい利用可能なバージョン(bundler-auditプラグイン用)。
  • Docker APIソケットへの構成可能なパスのサポートを追加しました。

詳細については、変更履歴を参照してください。

もしGitLabマネージドのコード品質テンプレートCode-Quality.gitlab-ci.yml)を含めている場合、これらのアップデートは自動的に適用されます。

以前のリリースでのCode Qualityの変更点については、最新のアップデートを参照してください。

SASTアナライザーの更新

GitLab SASTには、GitLab静的な解析チームが積極的に保守、更新、サポートする多くのセキュリティアナライザーが含まれています。16.1のリリースマイルストーン中に、以下のアップデートを公開しました:

  • Semgrepベースのアナライザーは、Semgrepエンジンのバージョン1.23.0を使用するように更新されました。また、C、C#、Go、Javaのスキャンに使用されるGitLabマネージドルールのガイダンスを明確にし、有効性を向上させました。詳細については、変更履歴を参照してください。
  • SpotBugsベースのアナライザーは、SAST_SCANNER_ALLOWED_CLI_OPTSCI/CD変数を設定することで、「労力レベル」を変更できるようになりました。これにより、スキャンの精度と脆弱性検出能力を低下させることで、パフォーマンスを向上させることができます。詳細については、変更履歴を参照してください。

GitLab管理のSASTテンプレートSAST.gitlab-ci.yml)を含め、GitLab 16.0以降を実行している場合、これらの更新を自動的に受け取ります。特定のアナライザーのバージョンを維持し、自動更新を防ぐには、そのバージョンを固定できます。

以前の変更については、先月の更新を参照してください。

Google Cloudの流出したシークレットへの自動対応

シークレット検出をGoogle Cloudとインテグレーションし、GitLabを使用してGoogle Cloud上でアプリケーションを開発する顧客をよりよく保護するようにしました。これで、組織がGoogle Cloudの認証情報をGitLab.com上の公開プロジェクトに漏洩した場合でも、GitLabはGoogle Cloudと連携してアカウントを保護することで、組織を自動的に保護できます。

シークレット検出は、Google Cloudが発行した以下の3種類のシークレットを検索します:

公開された流出したシークレットは、発見された後にGoogle Cloudに送信されます。Google Cloudは漏洩を検証し、その後、不正使用から顧客アカウントを保護するために機能します。

このインテグレーションは、GitLab.comでシークレット検出が有効化されているプロジェクトでデフォルトでオンになっています。シークレット検出スキャンはすべてのGitLab Tierで利用可能ですが、流出したシークレットへの自動応答は現在Ultimateプロジェクトでのみ利用可能です。

詳細については、このインテグレーションに関するブログ投稿を参照してください。

SASTルールに対するより明確なガイダンスとより良いカバレッジ

GitLab SASTルールを以下のように更新しました:

  • 各ルールが対象とする脆弱性の種類と、それを修正する方法をより明確に説明します。これまでのところ、C、C#、Go、Javaのルールに関する説明とガイダンステキストを更新しました。残りの言語はイシュー382119で追跡されています。
  • 既存のJavaルールで追加の脆弱性を検出します。

これらの改善は、GitLab静的な解析チームと脆弱性リサーチチーム間のコラボレーションの一部であり、デフォルトの静的な解析ルールセットを改善することを目的としています。エピック8170でのSAST、シークレット検出、およびIaCスキャン用のデフォルトルールに関するフィードバックを歓迎します。

GitLab SASTルールの変更に関する詳細については、CHANGELOGを参照してください。GitLab 16.1現在、sast-rulesプロジェクトは、SemgrepベースのSASTアナライザーで使用されるすべてのGitLabマネージドデフォルトルールの単一ソースです。

SAST、IaCスキャン、およびシークレット検出における共有ルールセットのカスタマイズ

これで、SASTIaCスキャン 、またはシークレット検出のルールセットカスタマイズを複数のプロジェクト間で共有するために、CI/CD変数を設定できます。

ルールセットを共有すると、次のことが可能になります:

この分野のさらなる改善については、イシューで議論されています。

CI/CD: rulesneedsを使用する

needs:キーワードは、ジョブ間の依存関係を定義します。これは、ジョブをステージ順序外で実行するように設定するために使用できます。このリリースでは、特定のrules条件に対してこの関係を定義する機能を追加しました。条件がルールに一致すると、ジョブのneeds設定は、ルール内のneedsで完全に置き換えられます。これは、ジョブが通常よりも早く開始できる場合、定義された条件に基づいてパイプラインを高速化するのに役立ちます。また、これをジョブが以前のジョブの完了を待ってから開始するように強制するためにも使用できます。これにより、より柔軟なneedsオプションが利用できるようになりました!

CI/CDパイプラインとジョブのUIを美しくする

GitLabの最もよく使用される機能の1つはCI/CDです。16.1では、CI/CDパイプラインとジョブのリストビュー、およびパイプライン詳細ページの使いやすさとエクスペリエンスの向上に焦点を当てました。探している情報がこれまでより簡単に見つかるようになりました!変更点に関するコメントがございましたら、フィードバックイシューでお聞かせください。

Linux上のGitLab SaaS Runnerのストレージが増加

最近、vCPUとRAMにおいてLinux上のGitLab.com SaaS Runnerのサイズを拡大した後、mediumおよびlargeマシンタイプ用のストレージも増加させました。

これで、セキュアでオンデマンドなGitLab Runner Linux環境を、GitLab CI/CDと完全にインテグレーションして、より大規模なアプリケーションをシームレスにビルド、テスト、デプロイできるようになりました。

CI/CDジョブトークンスコープAPIエンドポイント

GitLab 16.0より、すべての新規プロジェクトでデフォルトのCI/CDジョブトークン(CI_JOB_TOKEN)スコープが変更されました。これにより、新しいプロジェクトのセキュリティは向上しましたが、自動化を使用してプロジェクトを作成するユーザーにとっては追加の手順が必要になりました。自動化ではジョブトークンスコープも設定する必要がある場合がありますが、これはREST APIではなくGraphQL(またはUIで手動で)のみでしか行えませんでした。

この設定をREST APIを介しても設定できるようにするため、Gerardo Navarroは16.1でジョブトークンスコープを制御するための新しいエンドポイントを追加しました。プロジェクトでメンテナー以上のロールを持つユーザーが利用できます。Gerardoさん、この素晴らしいコントリビュートをありがとうございます!

Runnerの詳細 - 設定を共有するRunnerを統合する

新しいRunner作成方法により、同じ機能を備えた複数のRunnerを登録する必要があるシナリオで、Runner設定を再利用できます。同じ認証トークンで登録されたRunnerは、設定を共有し、新しい詳細ビューでグループ化されます。

GitLab Runner 16.1

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

新機能

GitLab Runnerのすべての変更リストは変更履歴にあります。