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