こんにちは、クラウド事業部 CI/CDサービスメニューチームの山路です。
今回は2月15日にリリースされたGitLab 16.9のリリース情報を紹介します。本記事ではすべてのアップデート情報を詳細に記載してはいませんので、興味ある内容があれば各ドキュメントを参照ください。
- GitLab Duo ChatがPremiumプランで利用可能に (Beta版)
- Merge request時にRequest changesでマージ前に対応すべき事項をコメント可能に
- CI/CD variablesのUI変更
- Auto-cancel redundant pipelineの拡張
- その他
- さいごに
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版として提供されます。本機能についてのフィードバックはこちらで受け付けているようなので、リクエスト等あればご覧ください。
- GitLab Duo Chat | GitLab
- Supporting GitLab Duo (chat) for SM and Dedicated (&11251) · Epics · GitLab.org · GitLab
Merge request時にRequest changes
でマージ前に対応すべき事項をコメント可能に
Merge requestのレビューを行う時の選択肢に Request changes
が追加されました。これまでMRのレビュー時は Approve
Comment
という2種類の操作が利用可能でしたが、Comment
の場合、そこに書かれた内容を見て、それが単なる情報提供なのか、それともMerge requestに反映すべきものか、コメントを読んだ側が判断する必要がありました。
新たに追加された Request changes
は、マージ前に明確に反映すべき内容であることを示します。そのため、レビューを依頼した人が判断することなく、MRに修正を追加できます。
なお本機能へのフィードバックはこちらで受け付けています。
- Merge request reviews | GitLab
- Request changes on merge requests (&11719) · Epics · GitLab.org · GitLab
CI/CD variablesのUI変更
GitLab CI/CD variablesのUIで複数の変更がありました。
- GitLab CI/CD variables | GitLab
- Beautifying of our UI 16.8 - Variables (#418331) · Issues · GitLab.org / GitLab · GitLab
複数の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
- CI/CD YAML syntax reference | GitLab
- Improving canceling redundant pipelines with `interruptible` (#412473) · Issues · GitLab.org / GitLab · GitLab
その他
セキュリティ関連
- 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の導入を支援するサービスも行っているので、何かご相談したいことがあればお気軽にご連絡ください。