APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

GitLab 16.9 アップデート内容の紹介

こんにちは、クラウド事業部 CI/CDサービスメニューチームの山路です。

今回は2月15日にリリースされたGitLab 16.9のリリース情報を紹介します。本記事ではすべてのアップデート情報を詳細に記載してはいませんので、興味ある内容があれば各ドキュメントを参照ください。

about.gitlab.com

GitLab Duo ChatがPremiumプランで利用可能に (Beta版)

GitLab Duo ChatはこれまでUltimateプランでしか利用できませんでしたが、Premiumプランでも利用可能となりました。GitLab Duo Chatを使うと、Issue/Epc/Codeなどの要約、コードや文章の生成などの機能が利用できます。

またGitLab Duo ChatはGitLab Web IDE、VSCode向けExtensionとも統合され、これらIDEでも利用可能です。

なお、GitLab Duo ChatはBeta版、IDEとの統合はExperimental版として提供されます。本機能についてのフィードバックはこちらで受け付けているようなので、リクエスト等あればご覧ください。

Merge request時にRequest changesでマージ前に対応すべき事項をコメント可能に

Merge requestのレビューを行う時の選択肢に Request changes が追加されました。これまでMRのレビュー時は Approve Comment という2種類の操作が利用可能でしたが、Comment の場合、そこに書かれた内容を見て、それが単なる情報提供なのか、それともMerge requestに反映すべきものか、コメントを読んだ側が判断する必要がありました。

新たに追加された Request changes は、マージ前に明確に反映すべき内容であることを示します。そのため、レビューを依頼した人が判断することなく、MRに修正を追加できます。

image

GitLab Documentより

なお本機能へのフィードバックはこちらで受け付けています

CI/CD variablesのUI変更

GitLab CI/CD variablesのUIで複数の変更がありました。

複数のvaribalesを一度に追加しやすくなりました

CI/CD variablesを追加するとき、これまでは1つ追加すると入力ページが閉じたため、複数のvariablesの追加がしにくい状態でした。

アップデートにより、variablesを作成・変更したときも入力ページが閉じず、また作成・変更したものはハイライトされるようになりました。

Validation関連

  • variables作成時のKeyに対するValidationメッセージ: variablesを作成する時、要件を満たしていなかったり、predefined / custom variablesと同じKeyを指定した場合、上記に関するメッセージが表示されるようになりました。 Issue

  • Group / group variables作成時のValidationメッセージ追加: マスクされたGroup / group variablesを作成する際には2つの条件があるのですが、これまではこの条件を満たさない場合、特にメッセージが表示されないまま作成を拒否されましたが、アップデートによりエラーメッセージが表示されるようになりました。 Issue

その他

  • file-type varibalesのinput入力時のUI改善: file-type variablesのvalueが長文の場合、ユーザーはスクロールしながら値を確認しなければなりませんでした。アップデートにより、input filedをサイズ変更可能にすることで、スクロールせずとも値を見れるようになりました。 Issue

  • Project / Group CI variablesへのオプションの説明欄の追加: Issue

Auto-cancel redundant pipelineの拡張

Auto-cancel redundant pipelineは、同じブランチ上で新規の変更に対するパイプラインが実行したとき、起動・保留中のパイプラインを自動的に停止することができる機能です。これは対象のJobに interruptible: true という値を設定することで指定します。一方で、パイプラインを停止する条件は、 interruptible: true のJob、もしくは起動もしなかったJob (Pending状態のJob) で構成されることであり、Pending状態のJobも対象となります。

この仕様によって、一部のシナリオで想定外の挙動を示すリスクが指摘されていました。これに対応するため、 workflow:auto_cancel:on_new_commit という新しい値が導入され、Auto-cancel redundant pipelineの挙動をより詳細にコントロールできるようになりました。

workflow:auto_cancel:on_new_commit を利用する場合、 .gitlab-ci.yml では以下のように定義します。 interruptible と設定すると interruptible: true を設定したJobだけをキャンセルしますが、 conservative と設定すると interruptible: false のJobが起動していない場合に限りPipelineをキャンセルします。

workflow:
  auto_cancel:
    on_new_commit: interruptible #interruptible: true Jobだけをキャンセルする

job1:
  interruptible: true #このJobだけキャンセルされる
  script: sleep 60

job2:
  interruptible: false
  script: sleep 60

その他

セキュリティ関連

  • Operational Container Scanningの改善: Kubernetesクラスター内でコンテナイメージのスキャンを実行できるOperation Container Scanning (OCS) が改善され、Trivyのレポートサイズが増加されました。なおFIPSモードで gitlab-agent を実行するユーザーはOCSが利用できません (Ultimateプラン)。 Document / Epic
  • DAST analyzerのアップデート: いくつかのバグが修正されました。 Document / Epic
  • SAST rulesの改善: 脆弱性の特定率向上、OWASPマッピング追加などのため、40以上のデフォルトSAST ruleが更新されました。 Document / Epic
  • VSCode内でより詳細なセキュリティの発見: GitLab Workflow extension for VSCodeが改良され、セキュリティ検知結果のより詳細な情報が閲覧できるようになりました (Ultimateプラン)。 Document / Epic

以下はDeprecation関連の情報です。

  • Secure analyserのアップデート: GitLab 17.0でメジャーバージョンがアップデートされます。 Document
  • Dependency Scanning / License ScanningのPython 3.9のDeprecation: GitLab 17.0からはPython 3.10がデフォルトになります。 Document
  • License Scanning CI templateのDeprecation: GitLab 17.0でtemplateは削除されるので、代わりに Cyclone DX files の利用が案内されています。 Document
  • License Scanning CI/CD artifact report typeのDeprecation: GitLab 18.0で削除されるので、こちらもCyclone DX files の利用が案内されています。 Document
  • Container Scanningの Grype のDeprecation: GitLab 17.0で削除されます。引き続き利用したい場合はこちらから設定が必要です。 Document

Terraform関連

  • Terraformモジュールの重複を許可: デフォルトでは同名・同バージョンのTerraformモジュールをProjectごとに複数回公開することはできませんでしたが、Group settingからこれを許可できるようになりました。 Document / Issue
  • Group / SubgroupからのTerraformモジュールの検証: これまでGitLab TerraformモジュールはProjectレベルでしか確認できなかったのが、Group / Subgroupのモジュールを確認できるようになりました。 Document / Issue

以下はDeprecation関連の情報です。

  • Terraform CI/CD templateの fmt JobのDeprecation: GitLab 17.0では fmt Jobが削除されます。 Document
  • Terraform CI/CD TemplateのDeprecation: GitLab 18.0でTerraform CI/CD templateが廃止されます。 Document

使用量モニタリング関連

  • Fleet DashboardによるRunner利用時間などの表示: Self-managedインスタンスの Runner Fleet Dashboard で、ProjectごとのRunnerの使用量のメトリックが利用可能となりました (Ultimateプラン)。 Document / Issue
  • GitLab利用量をREST APIからアクセス: Self-managedインスタンスはREST APIからService Pingデータにアクセスできるようになりました。 Document / Epic

その他

  • GroupレベルでのJira issueの有効化: 以前はGitLab の個別Project毎にしか有効にできなかったのが、Group内のすべてのProjectに対して有効化できるようになりました (Premiumプラン以上)。 Document / Issue
  • GitLab for Slack appのREST API対応: GitLab for Slack appのREST API対応により、GitLab UIからインストール後に利用可能となりました。 Document / Issue
  • import統計情報の表示: Group / Projectのimport統計情報が Details リンクから見れるようになりました。これまでPartially completedの状態では見れなかった情報もここから確認できます。 Document / Issue
  • Issue Boardのwork-in-progressラインの表示: Issue Boards上で扱うIssue数の上限をソフトリミットとして設定し、上限を超えるとそれがUIで表現されます (Premiumプラン以上)。 Document / Issue
  • Value Stream Analyticsの新しいステージ: Issue first added to iteration というステージが追加されました (Premiumプラン以上)。 Document / Issue
  • リッチテキストエディタの利用範囲を拡大: 新たに Requirement description Vulnerability finding Release description Design notes で利用可能になりました。 Document / Epic
  • SSH証明書によるGitの認証・Sign commit: GitLab SaaSのGitアクセス制御で、SSH証明書だけでGitにアクセスできるよう設定可能となりました (Premiumプラン以上)。 Document / Epic
  • Pipeline/Jobをキャンセル可能なRoleの制御: 以前はPipelineを実行できるユーザーなら誰でもキャンセルできましたが、Roleから制御可能になりました (Premiumプラン以上)。 Document / Issue
  • GitLab Runner 16.9リリース: Document
  • Branch pipeline利用時に関連するMRへのリンクを提供: Pipeline Details ページから関連するMRにアクセスできるようになりました。 Document / Issue
  • Deployment失敗時の部分的なリソースの処理: auto_stop_in 機能が更新され、最後に終了したPipelineからJobが実行されるようになりました。 Document / Issue
  • Kubernetes 1.29サポート: Document / Issue
  • Custom roleの更新・削除のAudit event: Document / Issue
  • 期限切れのSAML SSOセッションのUX改良: GitLab SaaS版でSAML SSOセッションが切れ、Issue・MRなどすべてのアイテムで表示が必要な場合、UIで表示されるようになりました (Premiumプラン以上)。 Document / Issue
  • LDAP Group SyncによるGroupからのService accountの追加・削除: Self-managedインスタンスで、管理者はGroup / Project member APIを使い、Service accountユーザーを招待・削除できるようになりました (Premiumプラン以上)。 Document / Issue
  • Group / Projectメンバーを管理する際のCustomガイドライン: Self-managedインスタンスにて、Group / ProjectメンバーページにMember guidelineを追加し、外部ツールを使ってメンバーを管理する場合などに役立つようになりました。 Document / Issue
  • Enterprise userのEメールをUI/APIからアクセス可能に: GitLab SaaSにて、Enterprise userを持つGroup Ownerは、ユーザー管理UIかGroup / Project member APIからEメールアドレスを閲覧可能になりました (Premiumプラン以上)。 Document / Issue
  • Standards adherence reportの改良: Standards adherence reportにフィルターリングやCSVエクスポートなどの機能が追加されました (Ultimateプラン)。 Document / Epic
  • Elasticsearch code-indexing jobの最大値を設定可能に: Premiumプラン以上。 Document / Issue

以下はDeprecation関連の情報です。

  • GitLab SaaS Runner on LinuxのOSバージョンの更新: GitLab 17.0で削除されます。詳細はこちらDocument
  • GitLab SaaS Runner on Windowsのバージョン更新: GitLab 17.0でWindows 2019は削除されます。 Document

また、GitLab 16.9へのアップグレード時の注意点として、GitLab Duo機能を利用するには、 cloud.gitlab.com へのアクセスを有効にする必要があります。

さいごに

弊社はGitLabオープンパートナー認定を受けております。 また以下のようにCI/CDの導入を支援するサービスも行っているので、何かご相談したいことがあればお気軽にご連絡ください。

www.ap-com.co.jp