要件
requirements オブジェクトには 2 つの目的があります。
まず、これはセーフティネットとして機能します。ルールが期待どおりに動作するために存在しなければならないエンティティのセットを指定します。ルールの要件が 1 つ以上満たされない場合、ワークフロー管理 UI に該当するエラーが表示されます。すべての課題が解決されるまで、ルールは実行されません。
2 つ目は、参照として機能します。要件内の各エンティティは
contextオブジェクトにプラグインされるため、コンテキスト依存関数(action関数など)内からエンティティを参照できます。
要件には、プロジェクト全体とシステム全体の 2 種類があります。
プロジェクト全体の要件には、ルールを使用する各プロジェクトにアタッチされるカスタムフィールドのリストと、各カスタムフィールドの値のセットからの必須値が含まれます。
システム全体の要件には、YouTrack で使用可能でなければならない他のエンティティのリストが含まれています。これには、ユーザー、グループ、プロジェクト、課題、タグ、保存済み検索、課題リンクタイプが含まれます。
一般的な使用箇所
ルールが検索対象とするエンティティを記述するには要件を使用し、ルール本文では要件のエイリアスを使用します。ルールを使用するプロジェクトに一致するフィールド、値、またはエンティティがない場合、YouTrack はルール実行前にワークフロー管理 UI に課題を報告します。
以下の変更時ルールでは、優先度フィールドにメジャーと標準の値が設定されていること、および qa.lead ログインを持つユーザーが必要です。課題が未解決になると、ルールは課題の優先度をメジャーに変更し、指定されたユーザーに課題を割り当てます。
この例では、Priority、Assignee、QALead はエイリアスです。優先度フィールドと担当者フィールドでは、エイリアスが実際のフィールド名と一致するため、name プロパティは省略されています。Major と Normal のエイリアスは、優先度フィールドの必須値を表します。アクションでは、ctx.Priority.Major が必須のメジャー値を参照し、ctx.QALead が必須のユーザーを参照します。
サンプル
以下は、カスタムフィールドの定義と、そのフィールドに必要な値、システム全体の要件リストを含む requirements ステートメントの例です。
Properties
要件ステートメントで指定されているすべてのエンティティは、エイリアスによって識別されます。上記の例では、優先度フィールドにエイリアス P が割り当てられています。要件でエンティティにエイリアスを割り当てるときは、エイリアスを使用してコンテキスト内のエンティティを参照します。例: 優先度フィールドは、ctx.P、issue.fields.P、issue.fields.Priority として参照できます。
要件ステートメントで指定されている各要件には、次のプロパティがあります。
プロパティ | 説明 | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
型 | エンティティのデータ型。このプロパティは必須です。カスタムフィールドのタイプの完全なリストは次のとおりです。
次のタイプは、システム全体のエンティティに使用されます。
プロジェクトチームはユーザーグループとして表現されます。要件でプロジェクトチームを指定するには、 | ||||||||||||||||||||||||||||||||||||||||||
名前 | エンティティの名前。このプロパティはオプションです。名前が設定されていない場合、エイリアスと等しいと見なされます。 特定のシステム全体のエンティティの場合、このプロパティは完全に無視されます。
|
さらに、特定のエンティティタイプでのみ使用できるプロパティがあります。これらのプロパティは次のとおりです。
エンティティ | プロパティ | 説明 |
|---|---|---|
カスタムフィールド | 値 | 上記の既知のプロパティのいずれでもないエンティティに対して定義されているプロパティは、カスタムフィールドの値セットの値の要件と見なされます。各 上記の例では、 |
マルチ | ブール型のプロパティ。 | |
課題リンク | 外向き | 課題リンクタイプの外部名。 |
内向き | 課題リンクタイプの内部名。 | |
ユーザー | ログイン | 特定のユーザーのログイン。 |
課題 | id | 特定の課題の ID。 |