APC 技術ブログ

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

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

GitLab 17.1の紹介: Model registry in Beta / Code Suggestions in VSCodeでの複数候補の表示 / Secret Push Protection in Betaなど

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

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

about.gitlab.com

Model registryがベータ版に

Model registryは機械学習で生成したモデルを管理する機能であり、機械学習エンジニアや開発者がGitLab上でモデルを開発しつつ、過去のバージョンのモデルの情報などにアクセスすることを可能にし、コラボレーションや生産性を向上することが見込めます。

GitLabはMLflow と連携したModel experiment tracking やModel registryを提供しており、MLflowを使ってモデルやモデルのバージョンを作成することもできます(Model registryはGitLab UIからモデルを作成・削除することも可能です)。なおGitLab CI/CDから新しいモデルのバージョンを作成する際は、MLflow client compatibilityを使ってモデルバージョンとCI/CD Jobとを紐づけ、作成時のログやMerge requestなどにアクセスしやすくすることも可能です。

GitLab Duo Code SuggestionsはVSCode上で複数の候補を表示可能に

GitLab Duo Code Suggestionsは生成AIを使ったコーディング補助機能です。Code Suggestionsは複数のIDEから利用可能ですが、VSCode上で利用する場合、生成するコードに複数の候補が存在するときに候補を表示するようになりました。

以下はリリースページにある画像ですが、 2/3 と表示されるとおり、ここでは3つの候補の中から2番目の候補が表示されています。IDE上で矢印をクリック、もしくはショートカットコマンドを入力すれば他の候補も表示され、より適したコードを採用することができます。

https://about.gitlab.com/images/17_1/multiple-code-suggestions-vs-code.png

なお、他のIDEで同じような機能の追加予定はあるか?と思いIssueを眺めてみたのですが、それらしいものは見当たりませんでした。

Secret Push Protection機能がベータ版に

Secret Push Detectionは、GitLabにPushされたコミットにカギ情報やAPIトークンなどのSecretが含まれた時にそれを妨害し、Secretの含まれたコミット情報(どのファイルの何行目にSecretを含むか、など)を表示する機能です。

※上記画像はGitLabの公開するYoutube動画より抜粋したものです。

Gitリポジトリに秘匿情報が混入すると、リポジトリにアクセスできる人ならだれでもその情報を閲覧でき、悪意あるユーザーの手に渡る可能性があります。また一度Gitリポジトリに秘匿情報が混入すると、そのデータを完全に削除することは困難です。

※参考情報:

engineering.mercari.com

Gitリポジトリへの秘匿情報の混入を防ぐツールとしては Gitleaks / git-secrets といったものがあります。GitLabでもSecret Detection という機能により、CI/CD JobでSecretの混入を検知する機能がありましたが、CI/CDのトリガーから漏れたコミットについてはSecretの混入を検知する機会がありませんでした。

なお本機能はGitLab SaaS Ultimateプランでのみ利用可能です。

GitLab Runner AutoscalerがGAに

GitLabはCI/CD Jobを実行するGitLab Runnerをオートスケールする機能を提供していますが、このたびGitLab Runner AutoscalerがGAステータスとなりました。なお本リリースでGAとなったのは、GitLab Runner Autoscalerを構成する要素の一つであるFleeting plugin (Google Cloud Compute Engine向け) のようです。

https://about.gitlab.com/images/17_1/runner_fleeting_ga.png

これまでGoogle CloudのVMに作成したGitLab Runnerをオートスケールするには、Docker Machine Executor を使うか、ユーザーごとに解決策を見つけなければなりませんでした。Docker Machineは本体であるDocker社が既に開発とサポートを停止しており、GitLabがForkしたものをメンテナンスし提供しています (関連するIssueはこちら)。GitLabではGitLab Runner Autoscalerへの移行を計画しており、本リリースをもってGoogle CloudではGitLab Runner Autoscalerを安心して使える状態になったといえるでしょう。

なおIssueを眺めてみると、AWS EC2向けのFleeting pluginは17.2、Azure VM向けFleeting plugin は17.3にマイルストーンが設定されていました。そのため、順調に進めば数か月後には、3つのクラウドプロバイダー全てでFleeting pluginが使えるようになるでしょう。17.3以降Docker Machine Executorの利用がすぐに廃止されるとは思いませんが、計画的に移行の準備はしておきたいところです。

Manual Job実行時に確認ボタンを表示可能に

GitLab CI/CDのManual Jobは手動でのCI/CD Jobの起動を制御しており、例えば本番環境へのデプロイなどで使われることがあります。このような重要なJobを扱うことが多いにもかかわらず、これまでManual Jobはボタンをクリックすれば即時Jobが実行されるため、誤ったタイミングでのJob実行のリスクがありました。

本バージョンからManual Jobは manual_confirmation というパラメータを .gitlab-ci.yml に設定することで、Job実行前の確認ボタンが表示されるようになり、より安全にManual Jobを実行できるようになりました。

https://about.gitlab.com/images/17_1/ask-confirmation-on-manual-job.png

delete_job:
  stage: post-deployment
  script:
    - make delete
  when: manual
  manual_confirmation: 'Are you sure you want to delete $CI_ENVIRONMENT_SLUG?'

GitLabドキュメントより抜粋

その他

これ以降はその他のアップデート情報の紹介です。

Container registry関連

GitLab Pages関連

Project Import関連

Deprecation

その他

※こちらをクリックすると展開されます

さいごに

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

www.ap-com.co.jp