株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

GitLabのCode Suggestions機能をお試し ~SaaS版 (GitLab.com) の場合~

皆様こんにちは。SEの小池と申します。

今回のブログでは、GitLabのSaaS版 (GitLab.com) でCode Suggestions 機能を試用 します。

2023/08/02現在、Code Suggestionsは無償プランでも利用可能なので、是非ご利用いただければと存じます。

本記事の対象の方

  • SaaS版のGitLab (GitLab.com) にて、Code Suggestionsを試してみたい方。

今回のブログのゴール

このブログのゴールはこちらです。

今回のゴール
  • GitLab SaaS版 (GitLab.com) でCode Suggestionsを利用できるように設定する。
  • ローカルのVS CodeでCode Suggestionsが利用できることを確認する。

事前ご連絡事項

  • 本記事はSaaS版 (GitLab.com) の Enterprise Edition 16.3.0-ee における仕様をベースに記載しております。それ以外のエディションやバージョンではこの記事に記載の通りではない可能性がございます。また、Self-Managed版 (オンプレミス) にてCode Suggstions機能を利用する場合の手順は、本記事では言及しておりません。
  • 本記事の操作説明と画面ショットはGitLabのローカライズを日本語にした状態で説明しております。それ以外の言語をご利用の方は適宜読み替えてください。
  • 本記事は 2023/08/02 時点の情報をもとに記載しております。この日より後に発生した機能の更新や利用可能なプランの変更については言及しておりません。ご了承ください。
  • 本記事に掲載されている情報は正確性・安全性を保証するものではありません。本記事の情報を利用することによって発生した損失や損害については、一切の責任を負いかねます。

Code Suggestionsの概要

Code Suggestions は、GitLabにおけるAI/ML in DevSecOps Seriesに含まれる機能の一つで、生成 AI を使用してコードを提案する機能です。これにより、開発中にエラー箇所を迅速に発見し修正することが可能になり、また、現状のコードから続きの処理を推察させて提案させる 等の便利機能を使うことができます。

参考 : GitLab’s AI-assisted Code Suggestions | GitLab

本機能はGoogle CloudのVertex AI Codey APIsを利用しています。

本機能は2023/08/02現在、SaaS版 (GitLab.com) であれば無償で利用可能ですが、あくまでベータ版としてリリースされています。

サポートする言語

サポートされる言語の一覧はGitLab Docsのこちらに掲載されています。

2023/08/02現在、Code Suggestionsでサポートされている言語は以下の通りです。

  • C++
  • C#
  • Go
  • Google SQL
  • Java
  • JavaScript
  • Kotlin
  • PHP
  • Python
  • Ruby
  • Rust
  • Scala
  • Swift
  • TypeScript

なお、IaCを実現するツール (Terraform 等) も一部サポートしています。GitLab Docsのこちらに一覧が掲載されています。

2023/08/02現在、Code SuggestionsでサポートされているIaCを実現するツールは以下の通りです。

  • Google Cloud CLI
  • Kubernetes Resource Model (KRM)
  • Terraform

概要でも述べた通り、本機能はバックエンドにGoogle CloudのVertex AI Codey APIsを利用しているため、基本的にこのサービスでサポートする言語がCode Suggestionsでもサポートされる言語となります。

なお、開発環境 (後述) によってサポートされる言語に差があります。詳しくはこちらをご参照ください。

サポートする開発環境

サポートする開発環境はこちらに掲載されています。

2023/08/02現在、以下のような開発環境がサポートされています。なお、これらにGitLabが提供する拡張機能がインストールされていることが必須です。

  • VS Code
  • Microsoft Visual Studio
  • JetBrains IDE
  • Neovim

また、GitLab.comのGUIから直接リポジトリのファイルを編集する際に使うGitLab WebIDEもサポート対象です。

Code Suggestions利用時におけるデータプライバシー

Code Suggestionsを有効にすることにより新たにデータ収集されることはありません。

参考 : Code Suggestions (Beta) - Code Suggestions data usage | GitLab

ただし、本機能は2023/08/02現在ベータ版なので、本機能を利用する際にはGitLab Testing Agreementへ同意したものとみなされます。

SaaS版 (GitLab.com) におけるCode Suggestions利用開始の流れ

まず、ルートグループの設定でCode Suggestionsを有効にします

次に、各ユーザーの設定でCode Suggestionsを有効にします

最後に、ご自身でご利用中の開発環境にGitLabの拡張機能をインストールします
(GitLab.comのGitLab WebIDEをご利用の場合、拡張機能のインストールは不要です。)

これだけで使用可能になります。すごく簡単っ!

なお2023/08/02現在、GitLab.comにて新規でルートグループを作成すると、Code Suggestionsはデフォルトで有効になっています。

Step1 : ルートグループの設定でCode Suggestionsを有効にする

Code Suggestionsを有効にしたいルートグループに対してロール Owner を保有するユーザーで設定します。
対象のグループの[設定] > [一般] を開きます。

[権限とグループ機能] を展開し、[コード提案] の [このグループのプロジェクトではコードの提案を使用できます] にチェックを入れます。

[変更を保存] をクリックします。

ルートグループでCode Suggestionsを有効にする手順は以上です。
次に、各ユーザーの設定でCode Suggestionsを有効にします

Step2 : ユーザーの設定でCode Suggestionsを有効にする

ユーザーの [設定] からCode Suggestionsを有効にします。この操作はユーザー自身で行います。
Code Suggestionsを有効にしたいユーザーでGitLab.comのGUIにログインし、ユーザーアイコンから [設定] をクリックします。

[基本設定] を開き、[コードの提案] の [コードの提案を有効化] にチェックを入れます。

[変更を保存] をクリックします。

ユーザーの設定でCode Suggestionsを有効にする手順は以上です。
次に、ご利用中の開発環境にGitLabの拡張機能をインストールします。このブログでは例としてVS Codeで進めます。

Step3 : VS CodeにGitLab拡張機能をインストール&設定する

GitLabは2023/08/02現在、複数の開発環境をサポートしていますが、このブログでは例としてVS CodeでCode Suggestionsを試してみます。

VS CodeでCode Suggestionsを利用するためには、VS CodeにGitLabの拡張機能 "GitLab Workflow" をインストールする必要があります。
拡張機能 "GitLab Workflow" のインストール方法は以前のブログ (下のリンク) にて紹介しております。下のブログのStep1, 2, 3の全部を実施してください。(OAuthによる認証まで実施してください。)
blogs.networld.co.jp

拡張機能 "GitLab Workflow" をインストールしてOAuthによる認証が終わったら、Code Suggestionsが有効になっていることを確認します。
拡張機能 "GitLab Workflow" のギアマークをクリックし、[拡張機能の設定] をクリックします。

「Ai Assisted Code Suggestions」の「Enable code completion (Beta) 」 にチェックが入っていることを確認します。

VS CodeにGitLab拡張機能をインストール&設定する手順は以上です。 これでGitLabのCode Suggestionsを使える状態になったので、次章で実際に使用できることを確認します。

Code Suggestionsを試す

準備ができたら早速Code Suggestionsをお試しください! 急に投げやりな手順紹介に・・・

基本的に、コーディングの提案を受けたい箇所にカーソルを置いてしばらくすると、グレーの文字で提案が自動生成されます。

表示された提案内容を全て利用する場合は [Tab] キーを押下します
[Ctrl] + [→ (右矢印) ] で、提案内容を前から任意の位置まで利用することも可能です

お試しするコードを考えるのも面倒だ!という方は、test.javaという名前のファイルを作成し、そこに以下のコードを記載してください。
この時、3行目と4行目は何も記載しません。

import java.util.logging.Logger;
import java.util.logging.Level;


上記のコードを記載後、4行目のことろにカーソルを置いて5, 6秒ほど待つと、下図のようにグレーの文字でコードが提案されます。

Code Suggestionsのお試しは以上です。

最後に

この度はGitもCI/CDもよくわかっていないど素人SEによるGitLab検証ブログをお読みいただき、誠にありがとうございます。
このブログの目標は以下のとおりでしたが、皆さまはいかがでしたでしょうか。


今回のゴール
  • GitLab SaaS版 (GitLab.com) でCode Suggestionsを利用できるように設定する。
  • ローカルのVS CodeでCode Suggestionsが利用できることを確認する。

GitLabは「AI/ML in DevSecOps Series」と題し、今回紹介いたしましたCode Suggestionsを含めたAI 及び ML (Machine learning) 関連機能の拡充に力を入れています。
今回のCode Suggestionsはコーディングに影響する生成AI関連機能ですが、他にもマージリクエストの自動要約、推奨されるレビュワーの選定 等、DevSecOpsを補助するAI関連機能 及び ML関連機能が続々と登場しています。
いずれも2023/08/02現在はベータ版ではありますが、便利な機能であることは確かなので、今後も本ブログで紹介してまいりたいと存じます。

なお、今回紹介したCode Suggestionsに関するメーカーへのフィードバックはこちらからどうぞ。

この記事がGitLabを触り始めた方の一助となれば幸いにございます。


GitLabに関するお問い合わせは、以下のフォームからお願い致します。
GitLab製品 お問い合わせ

今までのGitLabの検証ブログは下のバナーからどうぞ。
GitLab カテゴリーの記事一覧 - ネットワールド らぼ

GitLab操作デモ動画 (基本編) を作ってみました。(音声の録音は自宅でiPhoneのボイスメモ使うという超低クオリティですが…。)
つたない内容ではありますが、ご興味がおありでしたら是非ご視聴いただければと存じます。

www.youtube.com