カスタムフロー
- プラン: Premium、Ultimate
- アドオン: GitLab Duo Core、Pro、またはEnterprise
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
- ステータス: ベータ版
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
カスタムフローは、GitLabプロジェクト全体にわたる複雑な複数ステップのタスクを自動化するために作成および設定できる、AIを活用したワークフローです。
フローの表示レベル
カスタムフローを作成する際は、そのフローを管理するプロジェクトを選択し、フローを公開または非公開のどちらにするかを選択します。
公開フロー:
- インスタンス上の誰でも閲覧でき、前提条件を満たすすべてのプロジェクトで有効にできます。
非公開フロー:
- 管理対象プロジェクトのデベロッパーロール以上を持つメンバー、およびトップレベルグループのオーナーロールを持つユーザーのみが閲覧できます。
- 管理対象プロジェクト以外のプロジェクトや、トップレベルグループ以外のグループでは有効にできません。
フローが現在有効になっている場合、非公開フローを公開フローに変更することはできません。
プロジェクトのフローを表示する
前提条件:
- プロジェクトのデベロッパーロール以上が必要です。
プロジェクトに関連付けられたフローの一覧を表示するには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 自動化 > フローを選択します。
- プロジェクトでフローを有効にするには、有効タブを選択します。
- プロジェクトで管理されているフローを表示するには、Managedタブを選択します。
フローを選択して詳細を表示します。
フローを作成する
前提条件:
- プロジェクトのメンテナーロール以上が必要です。
フローを作成するには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 自動化 > フローを選択します。
- 新しいフローを選択します。
- 基本情報で、次の操作を行います:
- 表示名に、名前を入力します。
- 説明に、説明を入力します。
- 表示レベルとアクセスの下にある表示レベルで、非公開または公開を選択します。
- 設定で、次の操作を行います:
- フローを選択します。
- エディタで、フローの設定を入力します。カスタムフローYAMLの記述方法については、フローレジストリフレームワークに関するドキュメントを参照してください。
- フローを作成を選択します。
フローがAIカタログに表示されます。
フローを有効にする
フローを有効にすると、イシュー、マージリクエスト、またはディスカッションからフローをトリガーできます。フローを有効にするには、次の要件を満たしている必要があります:
- トップレベルグループで有効になっている。
- 使用するプロジェクトで有効になっている。
トップレベルグループで有効にする
前提条件:
- グループのオーナーロールが必要です。
トップレベルグループでフローを有効にするには:
- 上部のバーで、検索または移動先 > 検索を選択します。
- AIカタログを選択し、次にフロータブを選択します。
- 有効にするフローを選択します。
- 右上隅で、グループで有効にするを選択します。
- ドロップダウンリストから、フローを有効にするグループを選択します。
- 有効化を選択します。
グループの自動化 > フローページにフローが表示されます。
サービスアカウントがグループに作成されます。アカウントの名前は、ai-<flow>-<group>という命名規則に従います。
プロジェクトで有効にする
前提条件:
- プロジェクトのメンテナーロール以上が必要です。
- プロジェクトのトップレベルグループでフローを有効にする必要があります。
プロジェクトでフローを有効にするには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 自動化 > フローを選択します。
- 右上隅で、グループからのflowを有効にするを選択します。
- ドロップダウンリストから、有効にするフローを選択します。
- トリガーを追加で、フローをトリガーするイベントを選択します:
- メンション: イシューまたはマージリクエストのコメントでサービスアカウントユーザーがメンションされたとき。
- アサイン: サービスアカウントユーザーがイシューまたはマージリクエストにアサインされたとき。
- レビュアーをアサインする: サービスアカウントユーザーがレビュアーとしてマージリクエストにアサインされたとき。
- 有効化を選択します。
プロジェクトの自動化 > フローリストにフローが表示されます。
トップレベルグループのサービスアカウントがプロジェクトに追加されます。このアカウントにはデベロッパーロールが割り当てられます。
フローを無効にする
前提条件:
- グループの場合、オーナーロールが必要です。
- プロジェクトの場合、メンテナーロール以上が必要です。
フローを無効にするには:
- 上部のバーで、検索または移動先を選択し、グループまたはプロジェクトを見つけます。
- 自動化 > フローを選択します。
- 削除するフローを見つけて、アクション( )> 無効化を選択します。
- 確認ダイアログで、無効化を選択します。
フローはプロジェクトまたはグループに表示されなくなり、実行できなくなります。フローに関連付けられていたサービスアカウントまたはトリガーもすべて削除されます。
トリガーを作成する
次に、フローがいつ実行されるかを定義するトリガーを作成する必要があります。
たとえば、ディスカッションでフローサービスアカウントユーザーにメンションしたとき、またはサービスアカウントをレビュアーとしてアサインしたときに、フローがトリガーされるよう指定できます。
プロジェクトでフローを有効にすると、トリガーも作成されます。
フローを使用する
前提条件:
- プロジェクトのデベロッパーロール以上が必要です。
- プロジェクトでフローを有効にする必要があります。
フローを使用するには:
プロジェクトで、イシュー、マージリクエスト、またはエピックを開きます。
フローをトリガーするには、フローサービスアカウントユーザーに対して、メンション、アサイン、またはレビューのリクエストを行います。デフォルトでは、ユーザーの名前は
ai-<flow>-<group>です。たとえば、
Security scannerという名前のフローをGitLab Duoグループで有効にした場合、サービスアカウントユーザーはai-security-scanner-gitlab-duoです。フローがタスクを完了すると、確認メッセージが表示され、すぐにマージ可能な変更またはインラインコメントが表示されます。
サービスアカウントは、以下の両方のプロジェクトにアクセスできます:
- アクセスできる。
- フローが追加されている。
フローを複製する
元のフローを上書きせずに変更を加えるには、既存のフローのコピーを作成します。
前提条件:
- プロジェクトのメンテナーロール以上が必要です。
フローを複製するには:
- 上部のバーで、検索または移動先 > 検索を選択します。
- AIカタログを選択し、次にフロータブを選択します。
- 複製するフローを選択します。
- 右上隅で、アクション( )> 重複を選択します。
- オプション。変更するフィールドを編集します。
- フローを作成を選択します。
フローを管理する
フローの設定を変更するには編集し、AIカタログから削除するにはフローを削除します。
前提条件:
- 管理対象プロジェクトのメンバーであり、メンテナーロール以上を持っている必要があります。
- 上部のバーで、検索または移動先 > 検索を選択します。
- AIカタログを選択し、次にフロータブを選択します。
- 管理するフローを選択します。
- フローを編集するには:
- 右上隅で、編集を選択します。
- 変更するフィールドを編集し、変更を保存を選択します。
- フローを削除するには:
- 右上隅で、アクション( )> 削除を選択します。
- 確認ダイアログで、削除を選択します。
- フローを編集するには:
グループ共有とフロー
グループでフローを有効にすると、関連するサービスアカウントが自動的に作成されます。サービスアカウント:
- フローを実行するユーザー以上のアクセス権をフローが持たないように、複合アイデンティティ認証を使用します。
- フローを有効にするトップレベルグループ配下のすべてのプロジェクトのメンバーとして追加されるため、フローはそのグループ外のリソースにアクセスできません。
- トップレベルグループと共有されている追加のグループへのアクセス権が付与されます。サービスアカウントは、グループ共有のために他のグループメンバーと同様に扱われます。
複数のトップレベルグループ間でフローのサービスアカウントを共有すると、意図しないアクセス許可やセキュリティ上のリスクが生じる可能性があります。