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

変更時のルール

on-change ルールは、課題または記事に変更が適用されたときに実行されるアクションを定義します。

変更時ルールには、初期トリガーの特別なプロパティはありません。ルールがアクティブなプロジェクトで新しい課題または記事が作成されたとき、または既存の課題または記事に変更が適用されたときに実行されます。

YouTrack バージョン 2024.1 以前では、課題ベースの変更時ルールのみが利用可能です。YouTrack バージョン 2024.2 以降では、課題と記事に対して変更時ルールが利用可能です。

変更時ルールのサンプル

このルールは、変更が課題に適用されると、次のアクションを実行します。

  • YouTrack は、サブシステムフィールドの値の変更を確認します。

  • サブシステムの値が変更されると、課題はサブシステムの所有者に自動的に割り当てられます。

const entities = require('@jetbrains/youtrack-scripting-api/entities'); const workflow = require('@jetbrains/youtrack-scripting-api/workflow'); exports.rule = entities.Issue.onChange({ title: 'Set subsystem owner as assignee for unassigned issues', guard: (ctx) => { return !ctx.issue.fields.Assignee && ctx.issue.fields.Subsystem; }, action: (ctx) => { const issue = ctx.issue; const fs = issue.fields; if ((issue.isReported && (fs.isChanged(ctx.Subsystem) || issue.isChanged('project'))) || issue.becomesReported) { if (fs.Subsystem.owner) { if (ctx.Assignee.values.has(fs.Subsystem.owner)) fs.Assignee = fs.Subsystem.owner; else workflow.message( "{0} is set as the owner of the {1} subsystem but isn't included in the list of assignees for issues in this project. " + "The workflow that automatically assigns issues to the subsystem owner cannot apply this change.", fs.Subsystem.owner.fullName, fs.Subsystem.name); } } }, requirements: { Assignee: { type: entities.User.fieldType }, Subsystem: { type: entities.OwnedField.fieldType } } });

この変更時ルールを定義するコンポーネントは次のとおりです。

  • すべてのスクリプトは、require ステートメントのリストで始まります。このルールでは、ローカル変数 entities を宣言し、ワークフロー API で entities モジュールを参照します。これは、このモジュールに含まれるすべてのものに、このスクリプトで entities 変数を使用してアクセスできることを意味します。

  • 各スクリプトは、1 つのルールを exports.rule プロパティにエクスポートします。ルールは、Issue.onChange メソッドで宣言されます。このメソッドは、宣言に続くスクリプトを変更時ルールとしてエクスポートします。

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

    プロパティ

    説明

    タイトル

    人間が読めるオプションのタイトル。タイトルは管理インターフェースにのみ表示されます。

    ガード

    ルールを実行するための条件を決定する機能。保護条件が満たされていない場合、ルールに指定されているアクションは課題に適用されません。

    アクション

    各課題に適用されるアクション。アクションは、引数としてコンテキストを受け入れる関数として宣言されます。

    この例では、サブシステムフィールドが null 以外の所有者を持つ null 以外の値に設定されているかどうかを確認します。その場合、ルールは担当者フィールドの値を設定します。

    runOn

    変更イベントルールをトリガーする発行イベントを決定します。指定しない場合、課題の更新時にルールがトリガーされます。このプロパティは、次のパラメーターで拡張されます。

    • changetrue の場合、ルールは課題の変更時にトリガーされます。

    • removaltrue の場合、課題が削除されたときにルールがトリガーされます。

    この例のルールは更新が適用されるとトリガーされるため、このプロパティの値を指定する必要はありません。

    要件

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

    この例では、要件により、サブシステムフィールドと担当者フィールドの両方に正しいタイプが格納され、ルールが関連付けられているプロジェクトで使用できることが保証されます。いずれかのフィールドが存在しない場合、ワークフローリストにエラーが表示されます。必須フィールドがアタッチされるまで、ルールを有効にできません。

冠詞の変更時ルールのサンプルについては、API 参照を参照してください。

2026 年 2 月 04 日

関連ページ:

ローカライズされたワークフローメッセージ

YouTrack サーバーの言語設定はシステム全体で設定されます。通知とメッセージを含むワークフロールールを作成するときは、システムで使用されている言語でテキストを入力してください。YouTrack にバンドルされているデフォルトのワークフローは、サポートされているすべての言語にローカライズされています。これらのワークフローは、関数を使用して、ローカライズされたテキスト文字列を作成します。この関数はソース文字列を参照し、システムで使用されるデフォルト言語に基づいてローカライズされた文字列を返しま...

ワークフロールールタイプ

YouTrack は、さまざまなタイプのワークフロールールをサポートしています。ルールタイプは、ルールが実行される一般的な条件を定義します。JavaScript エディターでワークフローを作成するときは、各ルールを定義するモジュールをワークフローに追加します。エディターには、ルールタイプごとに異なるテンプレートがあります。コードを整理および構造化できるカスタムスクリプトを作成することもできます。カスタムスクリプトを使用して、独自の関数とオブジェクトを定義し、他のルールやワークフローで使用します。...