YouTrack および Hub ヘルプの開発者ポータル

要件

requirements オブジェクトには 2 つの目的があります。

  • まず、セーフティネットとして機能します。ルールが期待どおりに機能するために存在しなければならないエンティティのセットを指定します。1 つ以上のルール要件が満たされない場合は、対応するエラーがワークフロー管理 UI に表示されます。すべての課題が修正されるまで、ルールは実行されません。

  • 次に、参照として機能します。要件の各エンティティは context オブジェクトにプラグインされるため、コンテキスト依存関数(action 関数など)内からエンティティを参照できます。

要件には、プロジェクト全体とシステム全体の 2 種類があります。

  • プロジェクト全体の要件には、ルールを使用する各プロジェクトにアタッチされるカスタムフィールドのリストと、各カスタムフィールドの値のセットからの必須値が含まれます。

  • システム全体の要件には、YouTrack で使用可能でなければならない他のエンティティのリストが含まれています。これには、ユーザー、グループ、プロジェクト、課題、タグ、保存済み検索、課題リンクタイプが含まれます。

サンプル

カスタムフィールドの定義とこのフィールドに必要な値を含む要件ステートメントの例は、システム全体の要件のリストが続きます。

requirements: { P: { type: entities.EnumField.fieldType, name: 'Priority', M: { name: 'Major' }, Normal: {} }, ImportantPerson: { type: entities.User, login: 'superadmin' }, OurTeam: { type: entities.UserGroup, name: 'integration-team' }, Int: { type: entities.Project, name: 'Integration' }, Ref: { type: entities.Issue, id: 'INT-483' }, ToBeReleased: { type: entities.IssueTag, name: 'To be released' }, Untested: { type: entities.SavedQuery, name: 'Not tested yet' } Depend: { type: entities.IssueLinkPrototype, outward: 'is required for', inward: 'depends on' } }

Properties

要件ステートメントで指定されているすべてのエンティティは、エイリアスによって識別されます。上記の例では、優先度フィールドにエイリアス P が割り当てられています。要件でエンティティにエイリアスを割り当てるときは、エイリアスを使用してコンテキスト内のエンティティを参照します。例: 優先度フィールドは、ctx.Pissue.fields.Pissue.fields.Priority として参照できます。

要件ステートメントで指定されている各要件には、次のプロパティがあります。

プロパティ

説明

エンティティのデータ型。このプロパティは必須です。カスタムフィールドのタイプの完全なリストは次のとおりです。

ビルド

entities.Build.fieldType

列挙型

entities.EnumField.fieldType

グループ

entities.UserGroup.fieldType

ownedField

entities.OwnedField.fieldType

状態

entities.State.fieldType

ユーザー

entities.User.fieldType

バージョン

entities.ProjectVersion.fieldType

日付

entities.Field.dateType

日時

entities.Field.dateTimeType

浮く

entities.Field.floatType

integer

entities.Field.integerType

文字列

entities.Field.stringType

テキスト

entities.Field.textType

期間

entities.Field.periodType

次のタイプは、システム全体のエンティティに使用されます。

ユーザー

entities.user

グループ

entities.UserGroup

プロジェクト

entities.Project

課題

entities.Issue

タグ

entities.IssueTag

保存した検索条件

entities.SavedQuery

課題リンク

entities.IssueLinkPrototype

名前

エンティティの名前。このプロパティはオプションです。名前が設定されていない場合、エイリアスと等しいと見なされます。

特定のシステム全体のエンティティの場合、このプロパティは完全に無視されます。

  • ユーザーは、login プロパティによって識別されます。

  • 課題は、id プロパティによって識別されます。

  • 課題リンクは、inward または outward プロパティによって識別されます。

さらに、特定のエンティティタイプでのみ使用できるプロパティがあります。これらのプロパティは次のとおりです。

エンティティ

プロパティ

説明

カスタムフィールド

上記の既知のプロパティのいずれでもないエンティティに対して定義されているプロパティは、カスタムフィールドの値セットの値の要件と見なされます。各 value プロパティには、オプションの name プロパティもあります。

上記の例では、Priority カスタムフィールドの値 Majorctx.P.M または ctx.P.Major として参照できます。カスタムフィールドの値は、issue.fields.P = ctx.P.M;Major に変更できます。

マルチ

ブール型のプロパティ。true の場合、カスタムフィールドには複数の値を格納する必要があります。

課題リンク

外向き

課題リンクタイプの外部名。

内向き

課題リンクタイプの内部名。

ユーザー

ログイン

特定のユーザーのログイン。name プロパティの代わりに使用されます。

課題

id

特定の課題の ID。name プロパティの代わりに使用されます。