YouTrack クラウド 2024.3 ヘルプ

アクションルール

アクションルールを使用すると、コマンドとして適用したり、課題、記事、コメント、添付ファイルのさらに表示メニューから直接アクセスしたりできるアクションを使用して、YouTrack を拡張できます。

アクションルールは、次の YouTrack エンティティで使用できます。

  • 課題

  • 記事

  • 課題に関するコメント

  • 記事コメント

  • 添付ファイルを発行する

  • 記事の添付ファイル

アクションルールを作成すると、追加の設定を使用して、ルールをトリガーする方法を指定できます。

設定

説明

アクション

ワークフロールールの実行に使用されるコマンドを格納します。

ユーザー入力

ユーザーからの追加入力を要求するオプションを有効にします。

オブジェクトタイプ

ユーザーから期待されるオブジェクトのタイプを格納します。

ラベル

ユーザー入力ドロップダウンとコマンドを適用ダイアログのカスタム説明を保存します。

次に、前提条件セクションで課題を更新するための初期基準を定義し、アクションセクションで適用する更新を指定します。

アクションルールは、ルールの実行方法を定義する特定のプロパティセットをサポートします。

JavaScript ベースのアクションルールの詳細については、開発者ポータルを参照してください。

サンプルアクションルール

これは、ユーザーが期限切れの購入リクエストの期日を延期し、コメントを自動的に追加できるようにするワークフロールールです。

A sample action rule in the workflow constructor.

このサンプルアクションルールは、次のように動作します。

ルールトリガー

ルールは、次の状況でトリガーされるように構成されています。

設定

説明

ルール名

ルールに割り当てられている名前期限切れのリクエストを延期するは、単一の課題のアクションメニューに表示されます。ユーザーがメニューからこのオプションを選択すると、このルールで説明されているアクションが選択した課題に適用されます。

アクション

延期アクションは、必要に応じて課題へのコマンドとして適用できます。

ユーザー入力

トグルは無効になっています。これは、このアクションルールがユーザーからの追加入力を必要としないことを意味します。

ルールの前提条件

このルールには、追加の前提条件はありません。カスタムアクションを適用するオプションは、ワークフロールールがアクティブなプロジェクトに属するすべての課題で使用できます。

ルールアクション

ユーザーがカスタムアクションを課題に適用するたびに、ワークフローは次の変更を自動的に適用します。

アクション

説明

タグを削除する

このアクションブロックは、次の設定で構成されています。

  • 課題 : 現在の課題を使用する

  • タグ : 超過

これにより、現在の課題から期限切れのタグが削除されます。

フィールドの値を更新する

このアクションブロックは、次の設定で構成されています。

  • 課題 : 現在の課題を使用する

  • フィールド : 期限日

  • モード : set

  • To: ルールがトリガーされます

    指定した日付からの時間オフセットを格納する設定は + 1w に設定されます。

このアクションにより、期限日の値が現在の日付から 1 週間の日付に更新されます。

コメントの追加

このアクションブロックは、次の設定で構成されています。

  • 課題 : 現在の課題を使用する

  • コメントテキスト : 調査するのにさらに時間が必要です

  • 作成者 : 現在のユーザーを使用する

このアクションにより、指定されたテキストを含むコメントが現在の課題に追加されます。

このルールにより、現在のユーザーに課題を自動的に割り当てるコマンドが有効になります。このコマンドは、1 つ以上の課題に一度に適用できます。

const entities = require('@jetbrains/youtrack-scripting-api/entities'); exports.rule = entities.Issue.action({ title: 'Take this issue!', command: 'take', guard: (ctx) => { return ctx.issue.isReported; }, action: (ctx) => { ctx.issue.fields.Assignee = ctx.currentUser; }, requirements: { Assignee: { type: entities.User.fieldType } } });

このアクションルールを定義するコンポーネントは次のとおりです。

  • 通常、スクリプトは、ワークフロー API のエンティティモジュールを参照する require ステートメントで始まります。

  • exports.rule プロパティは、Issue.action メソッドを使用して、宣言に続くスクリプトをアクションルールとしてエクスポートします。

  • ルール本体には、次のプロパティの定義が含まれています。

    プロパティ

    説明

    タイトル

    人間が読めるタイトル。

    タイトルは、コマンドを適用ダイアログ内のコマンドのラベルとして、および課題のさらに表示メニューで使用可能なアクションのリスト内の項目として使用されます。

    このプロパティが設定されていない場合、アクションのリストには command プロパティの値が表示されます。

    コマンド

    カスタムコマンドに使用されるテキスト。

    このコマンドが 1 つ以上の課題に適用されると、このルールで定義されたアクションが実行されます。

    コマンドはサーバー全体で定義されます。つまり、これらのルールが異なるプロジェクトに関連付けられている場合でも、同じコマンドで 2 つのアクションルールを持つことはできません。

    ガード

    アクションルールが有効になるタイミングを決定する条件。

    ガード条件が満たされていない場合、カスタムコマンドを課題に適用することはできません。コマンドはコマンドを適用ダイアログに提案されず、課題のさらに表示メニューにそのタイトルは表示されません。

    アクション

    コマンドが適用されるときに選択される各課題に適用される変更。このアクションは、課題ごとに個別に実行されます。変更は、コマンドを適用するユーザーに代わって行われます。

    この例では、選択したすべての課題を現在のユーザーに割り当てます。

    要件

    ルールがエラーなしで実行されるために必要なエンティティのリスト。このプロパティにより、ルールをプロジェクトに安全にアタッチできるようになります。

    この例では、ルールが関連付けられているプロジェクトに user タイプを格納する担当者フィールドがあることだけが必要です。このフィールドがないと、ワークフローリストにエラーが表示されます。必須フィールドがアタッチされるまで、ルールを有効にすることはできません。

課題以外のエンティティのアクションルールのサンプルについては、対応するエンティティの API リファレンスを参照してください。

JavaScript でのワークフローの作成の詳細については、開発者ポータルのドキュメントを参照してください。

ユーザー入力によるアクションルール

アクションルールを呼び出すユーザーに追加データを要求できます。このようなアクションルールがトリガーされると、ユーザーに入力を求めるダイアログが表示されます。

ユーザー入力を必要とするアクションルールは、タイトルの後の省略記号 ... によって、リストの他のアクションと区別できます。

Custom action with input on the list

さらに表示メニューからオプションを選択すると、入力ダイアログが表示されます。

User input for an action rule

コマンドを使用して、ユーザー入力でアクションルールを呼び出すこともできます。この場合、コマンドダイアログ自体が入力を求めます。

User input for an action rule from the command dialog

ユーザー入力のあるサンプルアクションルール

ユーザーが選択した課題を別のプロジェクトにコピーできるようにするワークフロールールを次に示します。ユーザーは追加の入力ダイアログでターゲットプロジェクトを選択します。

A sample action rule with user input.

このサンプルアクションルールは、次のように動作します。

ルールトリガー

ルールは、次の状況でトリガーされるように構成されています。

設定

説明

ルール名

ルールに割り当てられている名前課題を別のプロジェクトに複製するは、単一の課題のアクションメニューに表示されます。ユーザーがメニューからこのオプションを選択すると、このルールで説明されているアクションが選択した課題に適用されます。

アクション

プロジェクトへのクローンアクションは、必要に応じて課題へのコマンドとして適用できます。

ユーザー入力

トグルが有効になっているため、このアクションルールではユーザーからの追加入力が必要になります。

オブジェクトタイプ

このアクションルールにはユーザーからのプロジェクトが必要です。

ラベル

ターゲットプロジェクトの名前を入力するよう求められた場合、カスタムラベルが付いたダイアログが表示されます。

ラベルのテキスト: 対象プロジェクトを選択

ルールの前提条件

このルールには、追加の前提条件はありません。カスタムアクションを適用するオプションは、ワークフロールールがアクティブなプロジェクトに属するすべての課題で使用できます。

ルールアクション

ユーザーがカスタムアクションを課題に適用するたびに、ワークフローは次の変更を自動的に適用します。

アクション

説明

課題をコピーする

このアクションブロックは、次の設定で構成されています。

  • 課題 : 現在の課題を使用する

  • プロジェクト : ユーザーが提供した値を使用する

このアクションは、現在の課題をユーザーが選択したターゲットプロジェクトにコピーします。

このルールは、別のプロジェクトで選択した課題のコピーを作成するコマンドを有効にします。

var entities = require('v1/entities'); exports.rule = entities.Issue.action({ title: 'Clone issue to another project', command: 'clone to project', action: function (ctx) { const clone = ctx.issue.copy(); clone.project = ctx.userInput; }, userInput: { type: entities.Project, description: 'Select target project' } });

このアクションルールを定義するコンポーネントは次のとおりです。

  • スクリプトは、ワークフロー API の entities モジュールを参照する require ステートメントで始まります。

  • exports.rule プロパティは、Issue.action メソッドを使用して、宣言に続くスクリプトをアクションルールとしてエクスポートします。

  • ルール本体には、次のプロパティの定義が含まれています。

プロパティ

説明

タイトル

人間が読めるタイトル。

このタイトルは、課題のさらに表示メニューで利用可能なアクションのリスト内の項目のラベルとして、またユーザー入力を要求するダイアログのタイトルとして機能します。

このプロパティが設定されていない場合、アクションのリストには command プロパティの値が表示されます。

コマンド

カスタムコマンドに使用されるテキスト。

このコマンドが 1 つ以上の課題に適用されると、このルールで定義されたアクションが実行されます。

コマンドはサーバー全体で定義されます。つまり、これらのルールが異なるプロジェクトに関連付けられている場合でも、同じコマンドで 2 つのアクションルールを持つことはできません。

アクション

コマンドが適用されるときに選択される各課題に適用される変更。このアクションは、課題ごとに個別に実行されます。変更は、コマンドを適用するユーザーに代わって行われます。

この例では、ユーザーが選択したターゲットプロジェクトに課題をコピーします。

ユーザー入力

このアクションルールがユーザーから要求する入力。

この例では、予期されるオブジェクトのタイプは Project です。ユーザー入力として要求できるオブジェクトタイプの完全なリストについては、ユーザー入力に使用できるオブジェクトの種類を参照してください。

サンプルルールでは、ユーザー入力ドロップダウンとコマンドを適用ダイアログのカスタム説明も設定します。

ユーザー入力ドロップダウン:

User input for an action rule

コマンドダイアログ:

User input for an action rule

ユーザー入力に使用できるオブジェクトの種類

アクションルールでユーザーに要求できるオブジェクトタイプの完全なリストを次に示します。

  • Field.dateTimeType

  • Field.dateType

  • Field.integerType

  • Field.floatType

  • Field.periodType

  • Field.stringType

  • Build

  • EnumField

  • Issue

  • IssueTag

  • OwnedField

  • Project

  • ProjectVersion

  • User

  • UserGroup

関連ページ:

ルール固有のプロパティ

プロパティの値を設定するすべてのスクリプトは、ワークフロールールとして解釈されます。ルールの各タイプは、ルールの実行方法を定義する特定のプロパティセットをサポートしています。各モジュールは、プロパティの単一のオブジェクトのみを保存できます。スクリプトにこのプロパティの定義が複数含まれている場合、スクリプトの最後の定義がエクスポートされます。例: スクリプトがプロパティを(変更時ルールの宣言)に設定し、後でこのプロパティをに設定した場合、スクリプトはアクションルールとして解釈されます。変更時ルール...

ステートマシンルール

state-machine ルールは、カスタムフィールドのある値から別の値への遷移を規制します。ステートマシンルールは、列挙された任意のカスタムフィールドに適用できます。ただし、ステートマシンルールの最も一般的な使用例は、状態フィールドまたはタイプを格納する別のカスタムフィールドの値間の遷移を調整することです。ステートマシンルールがプロジェクトに適用されると、フィールドのドロップダウンリストに表示されるオプションは、現在の状態のステートマシンルールで定義されている遷移に制限されます。ステートマシン...