アクションルール
アクションルールを使用すると、コマンドとして適用したり、課題、記事、コメント、添付ファイルのその他を表示メニューからアクセスしたりできるアクションを使用して YouTrack を拡張できます。
YouTrack バージョン 2024.1 以前では、課題ベースのアクションルールのみが利用可能です。YouTrack バージョン 2024.2 以降では、次の YouTrack エンティティにアクションルールを適用できます。
課題
記事
課題に関するコメント
記事コメント
添付ファイルを発行する
記事の添付ファイル
サンプルアクションルール
このルールにより、現在のユーザーに課題を自動的に割り当てるコマンドが有効になります。このコマンドは、1 つ以上の課題に一度に適用できます。
このアクションルールを定義するコンポーネントは次のとおりです。
通常どおり、スクリプトはワークフロー API の
entitiesモジュールを参照するrequireステートメントで始まります。exports.ruleプロパティは、Issue.actionメソッドを使用して、宣言に続くスクリプトをアクションルールとしてエクスポートします。ルール本体には、次のプロパティの定義が含まれています。
プロパティ
説明
タイトル
人間が読めるタイトル。
タイトルは、課題のその他を表示メニューで利用可能なアクションのリスト内の項目のラベルとして使用されます。
このプロパティが設定されていない場合、アクションのリストには
commandプロパティの値が表示されます。コマンド
カスタムコマンドに使用されるテキスト。
このコマンドが 1 つ以上の課題に適用されると、このルールで定義されたアクションが実行されます。
コマンドはサーバー全体で定義されます。つまり、これらのルールが異なるプロジェクトに関連付けられている場合でも、同じコマンドで 2 つのアクションルールを持つことはできません。
ガード
アクションルールが有効になるタイミングを決定する条件。
ガード条件が満たされていない場合、カスタムコマンドを課題に適用することはできません。コマンドはコマンドを適用ダイアログに提案されず、課題のその他を表示メニューにそのタイトルは表示されません。
アクション
コマンドが適用されるときに選択される各課題に適用される変更。このアクションは、課題ごとに個別に実行されます。変更は、コマンドを適用するユーザーに代わって行われます。
この例では、選択したすべての課題を現在のユーザーに割り当てます。
要件
ルールがエラーなしで実行されるために必要なエンティティのリスト。このプロパティにより、ルールをプロジェクトに安全にアタッチできるようになります。
この例では、ルールが関連付けられているプロジェクトに
userタイプを格納する担当者フィールドがあることだけが必要です。このフィールドがないと、ワークフローリストにエラーが表示されます。必須フィールドがアタッチされるまで、ルールを有効にすることはできません。
課題以外のエンティティのアクションルールのサンプルについては、対応するエンティティの API リファレンスを参照してください。
ユーザー入力のあるサンプルアクションルール
アクションルールを呼び出すユーザーに追加データを要求できます。このようなアクションルールがトリガーされると、ユーザーに入力を求めるダイアログが表示されます。
ユーザー入力を必要とするアクションルールは、タイトルの後の省略記号 ... によって、リストの他のアクションと区別できます。

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

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

このサンプルルールは、選択した課題のコピーを別のプロジェクトに作成するコマンドを有効にします。
このアクションルールを定義するコンポーネントは次のとおりです。
スクリプトは、ワークフロー API の
entitiesモジュールを参照するrequireステートメントで始まります。exports.ruleプロパティは、Issue.actionメソッドを使用して、宣言に続くスクリプトをアクションルールとしてエクスポートします。ルール本体には、次のプロパティの定義が含まれています。
プロパティ | 説明 |
|---|---|
タイトル | 人間が読めるタイトル。 このタイトルは、課題のその他を表示メニューで利用可能なアクションのリスト内の項目のラベルとして、またユーザー入力を要求するダイアログのタイトルとして機能します。 このプロパティが設定されていない場合、アクションのリストには |
コマンド | カスタムコマンドに使用されるテキスト。 このコマンドが 1 つ以上の課題に適用されると、このルールで定義されたアクションが実行されます。 コマンドはサーバー全体で定義されます。つまり、これらのルールが異なるプロジェクトに関連付けられている場合でも、同じコマンドで 2 つのアクションルールを持つことはできません。 |
アクション | コマンドが適用されるときに選択される各課題に適用される変更。このアクションは、課題ごとに個別に実行されます。変更は、コマンドを適用するユーザーに代わって行われます。 この例では、ユーザーが選択したターゲットプロジェクトに課題をコピーします。 |
ユーザー入力 | このアクションルールがユーザーから要求する入力。 この例では、予期されるオブジェクトのタイプは サンプルルールでは、ユーザー入力ドロップダウンとコマンドを適用ダイアログのカスタム説明も設定します。 ユーザー入力ドロップダウン: ![]() コマンドダイアログ: ![]() |
ユーザー入力に使用できるオブジェクトの種類
アクションルールでユーザーから要求できるオブジェクトの型の完全なリストを以下に示します。ユーザー入力用に type プロパティを設定する場合は、以下に示すように entities モジュールからタイプを参照してください。
オブジェクトタイプ | API 表記法 |
|---|---|
日時 |
|
日付 |
|
整数 |
|
フロート |
|
ピリオド |
|
文字列 |
|
ビルド |
|
列挙型フィールド |
|
課題 |
|
課題タグ |
|
所有地 |
|
プロジェクト |
|
プロジェクトバージョン |
|
状態 |
|
ユーザー |
|
ユーザーグループ |
|
例: ユーザーが列挙型フィールドから値を選択できるようにするには、入力タイプを entities.EnumField に設定します。この場合、ctx.userInput には選択された列挙型の値が含まれるため、互換性のあるフィールドに直接割り当てたり、name などのプロパティを読み取ったりすることができます。
関連ページ:
実体
ワークフローにアクセス可能な YouTrack 内のエンティティの定義が含まれています。タイプ:このモジュールは以下のオブジェクトの型をサポートします。AbstractVcsItem コミットやプルリクエストなどの VCS 関連の項目を表します。Agile アジャイルボードとそのボードに属する一連のスプリントを表します。AppGlobalStorage アプリのグローバル拡張プロパティのエンティティタイプ ArticleYouTrack の記事を表します。ArticleAttachment 記事に添付さ...
ステートマシンルール
state-machine ルールは、カスタムフィールドのある値から別の値への遷移を規制します。ステートマシンルールは、列挙された任意のカスタムフィールドに適用できます。ただし、ステートマシンルールの最も一般的な使用例は、状態フィールドまたはタイプを格納する別のカスタムフィールドの値間の遷移を調整することです。ステートマシンルールがプロジェクトに適用されると、フィールドのドロップダウンリストに表示されるオプションは、現在の状態のステートマシンルールで定義されている遷移に制限されます。ステートマシン...