高度なワークフローの設定
このページでは、Jira ワークフローでのトランジションの設定について説明します。ワークフローの基本については、「ワークフローで作業する」を参照してください。
Jira 管理者は、トランジションの動作の次の側面を制御できます。
- トリガー – アトラシアンのBitbucket や Stash など、接続済みの開発ツールで特定のイベントが生じたときに Jira 課題のトランジションを実行します。
- 条件 – トランジションがユーザーによって実行されるべきかどうかを検査します。
- バリデーター – トランジションが実行される前にトランジションに対する入力 (ユーザーによる入力など) が有効かどうかを検査します。
- 事後操作 – トランジションの実行後に追加処理を実行します。
- プロパティ – キー値のペアで、トランジションをさらにカスタマイズするために使用できます。
このページで解説するその他の項目:
トリガー
Jira 管理者は、リンク済みの開発ツール内のイベントに応答するトリガーを Jira ワークフローに設定できます。これにより、開発ツールと Jira ワークフローを設定できるため、たとえば、開発者がブランチを作成してアトラシアンの Bitbucket または Stash の課題に対して作業を開始すると、課題は自動的に「オープン」から「進行中」にトランジションします。
以前にトリガーを設定したことがない場合、またはトリガーについて詳細を学習する場合は、トリガーに関するガイド「ワークフロートリガーの設定」を参照してください。ガイドでは、このサンプル開発ワークフローと類似した、トリガーを含むワークフローを設定する方法も説明しています。トリガーを含む開発ワークフロー (Atlassian Marketplace より)。
トリガーの設定
トランジションのトリガーの表示または設定や、トランジションを含むワークフローの編集を行うには、トランジションを選択してから、トランジションのプロパティパネルでトリガーをクリックします。
条件
条件は、トランジションがユーザーによって実行されるべきかどうかを制御します。たとえば、次のように条件を使用できます。
- 報告者にのみトランジションの実行を許可する
- 特定の権限を持つユーザにのみトランジションの実行が許可されている
- コードがこの課題に対してコミットされた場合、またはコミットされなかった場合にのみ実行を許可する
条件が満たされない場合、「課題の表示」ページのトランジション ボタンが表示されず、トランジションを実行できません。
条件はトランジション画面でユーザーから収集した入力パラメーターを検証できません。これを実行するには、バリデーターを使用する必要があります。
以降のセクションの内容
条件の追加
トランジションに条件を追加して、トランジションを含むワークフローを編集するには、トランジションを選択してから、トランジションのプロパティパネルで条件をクリックします。
条件タブでは設定済みの条件を確認できます。
[条件を追加] をクリックすると、使用可能な条件から条件を選択して、その条件に必要なパラメーターを設定できます。追加条件はインストール済みのプラグインから利用できる場合もあります。アプリ システムを使用して独自の条件を作成することもできます。詳細は、「ワークフロー アプリ モジュール」を参照してください。
「テキスト」モードでは、トランジションの編集もできます。
条件のグループ化
条件をグループ化し、入れ子にすることで、複雑な条件を作成できます。どのような条件でも、その条件の「グループ化された条件を追加」アイコンをクリックすることによってグループ化できます。これで、上記で説明した新しいグループにさらに条件を追加できます。
グループ内の条件の適用方法を すべて か いずれか かで、ロジックの切替ができます。
バリデーター
バリデーターは、トランジションの実行前に、トランジションへの入力が有効であることを確認します。入力には、トランジション画面でユーザーから収集した入力が含まれます。
検証が失敗した場合、課題はトランジションの目的のステータスに進まず、トランジションの事後操作は実行されません。
バリデーターの追加
トランジションにバリデーターを追加するには、トランジションが含まれるワークフローを編集して、トランジションを選択したあと、トランジションのプロパティ パネルで バリデーター をクリックします
バリデーター タブには、設定ずみのすべてのバリデーターが表示されます。
バリデーターの追加 をクリックすると、利用可能なバリデーターを選択し、バリデーターに必要なパラメーターを設定できます。
「テキスト」モードでは、トランジションの編集もできます。
事後操作
事後操作では、トランジション実行後に必要となる、以下のような追加の処理を実行します。
- 課題フィールドの更新
- 課題の変更履歴生成
- 課題へのコメント追加
- メール通知をトリガーするイベントの生成
以降のセクションの内容
基本的な事後操作
すべての Jira のトランジションで、次のような基本的な事後操作が行われ、この順番で実行されます。
- 課題のステータスをターゲット ワークフロー ステータスのリンクされたステータスに設定します。
- トランジション中にコメントが入力された場合、そのコメントを課題に追加します。
- 課題の変更履歴を更新し、データベースに課題を格納します。
- 課題のインデックスを再作成して、データベースとの同期を維持します。
- リスナーが処理できるイベントを発生させます。
これらの基本事後操作はトランジションから削除したり、並べ替えることができません。ただし、他の(オプションの)事後操作を間に挿入することはできます。
オプションの事後操作
Jira には、トランジションに追加可能な事後操作がいくつか含まれています。
インストール済みのアプリから追加の事後操作を利用できる場合があります。アプリ システムを使用して独自の事後操作を作成することもできます。詳細は、「ワークフロー アプリ モジュール」を参照してください。
事後操作の追加
トランジションに事後操作を追加するには、トランジションが含まれるワークフローを編集して、トランジションを選択したあと、トランジションのプロパティ パネルで 事後操作 をクリックします
事後操作 タブには、 設定ずみのすべての事後操作が表示されます。事後操作の追加 をクリックすると、 利用可能な事後操作を選択し、事後操作に必要なパラメーターを設定できます。事後操作の編集や削除を行ったり、実行順序を変更したりするオプションは、タブの右側にあります(そこにカーソルを合わせると表示されます)。
「テキスト」モードでは、トランジションの編集もできます。
最初のトランジションの事後操作の使用
課題が作成されたとき、特定のフィールドの値を設定するなどの処理タスクを実行する必要がある場合、ワークフローの最初のトランジションに事後操作を追加できます。最初のトランジションは、「作成」(空白のワークフローを作成した場合)または「課題の作成」(システム ワークフローを複製した場合)と呼ばれます。
Jira には、ワークフローの最初のトランジションを指定し、この順番で処理される以下の基本的な事後操作が含まれます。
- 課題を作成します。
- リスナーが処理できるイベントを発生させます。
以下のオプション事後操作は、最初のトランジション用に特別に用意されています。
オプション事後操作(最初のトランジションのみ) | 説明 |
---|---|
コメントを作成 | トランジション中にコメントが入力された場合、そのコメントを課題に追加します。 |
課題ステータスの更新 | 課題のステータスをターゲット ワークフロー ステータスのリンクされたステータスに設定します。 |
課題の保存 | 課題の更新を保存します(変更履歴は作成されません)。 |
また、標準のオプション事後操作を最初のトランジションに追加できます。
トランジション作成に追加されたオプション事後操作は、「元課題の作成」事後操作の前に配置する必要があります。
必要に応じ、別の最初のトランジションに移動するよう、ワークフローの最初のステータスを設定できます。詳細については、最初のステータスの設定を参照してください。
注意
課題を作成する際に「解決状況」フィールドを設定する必要がある場合、 「課題作成」事後操作の後に「課題フィールドの更新」事後操作を追加し、その後 「課題の保存」事後操作を使用します。「課題の保存」事後操作は、課題作成時に解決状況フィールドを設定するのに便利です。
ただし、課題の保存事後操作には以下のような制限があるため、必要な場合にのみ使用します。
- 変更履歴を生成しない
- 課題と 1 対多の関係を持つフィールド(たとえば、「バージョン」や「コンポーネント」)を保持できない
事後操作によるフィールド設定
特定のトランジションが実行されたあと、課題フィールドの値を設定するには、「課題フィールドの更新」事後操作を使用します。
たとえば、課題をクローズ ステータスに移動し、「解決状況」フィールドを自動的に設定するトランジションが必要な場合があります。
例:事後操作による解決状況フィールド設定
トランジションを持つワークフローを編集して、ステータスを他のステータスにドラッグし、新しいトランジションを作成します。
- [なし]、または [解決状況] フィールドを含まない画面を選択します。
- 「課題フィールドの更新」タイプの新しい事後操作を追加し、
- 課題フィールド一覧 から解決状況を選択します。
- フィールド値一覧から適切な解決状況を選択します。
解決状況フィールドをクリアするトランジションを作成するには、上記の「課題フィールドの更新」事後操作をトランジションに追加する手順と同じ手順にしたがいます。ただし、フィールド値一覧からなしを選択します。
このトランジションの事後操作一覧には、次のステートメントが含まれます。
- 課題の解決状況がクリアされます。
これらのトランジションが実行されるたびに、課題の解決状況は、これらの事後設定で指定されたとおりに自動的に設定、またはクリアされます。
事後操作による HipChat 通知の送信
課題がこの事後操作をもつトランジションを通過するたびに、「HipChat 通知」事後操作を使用して、1 つ以上の HipChat ルームに通知を送信できます。また、「Hipchat 通知」事後操作に JQL クエリを追加して、HipChat 通知をトリガーする課題をフィルタリングできます。
HipChat 通知を送信するには、
- トランジションを作成または編集します。
- 「HipChat 通知」タイプの新しい事後操作を追加します。
- 「操作へのパラメーター追加」ページで、
- 任意で JQL クエリを指定します。クエリにマッチする課題のみが通知を送信します。
このトランジションを通るすべての課題に通知を送信するには、このフィールドを空のままにします。 - ワークフロー トランジションにリンクする HipChat ルームを選択します。
- 任意で JQL クエリを指定します。クエリにマッチする課題のみが通知を送信します。
事後操作によるメール通知の送信
「リスナーが処理可能なイベント発生」事後操作を使用して、「一般イベント」、すなわち組み込みの Jira イベントを発生させます。このイベントは特定のトランジションが実行されたあと、メール通知の送信をトリガーするために使用します。
また、このトランジション用に特別に作成したカスタム イベントを発生させることができます。
トランジションが実行されると、Jira は以下の動作を行います。
- 課題のプロジェクトに関連付けられた通知スキームを調べ、発生したイベントに関連付けられたユーザーを特定します。
- 各ユーザーにメール通知を送信します。
発生したイベントは、登録済みのすべての リスナーにも伝えられます。
例:事後操作によって一般イベントを発生し、メール通知を送信する
- トランジションを作成または編集します。
- トランジションの 事後操作タブをクリックし、「リスナーが処理可能なイベントの発生」事後操作を編集します。
イベント一覧から一般イベントを選択します。
トランジション プロパティ
プロパティはキー値のペアで、トランジションをさらにカスタマイズするために使用します。たとえば、トランジション プロパティはコピーした システム ワークフロー を拡張して、言語の翻訳を可能にします。
トランジションのプロパティを表示、編集するには、
- ダイヤグラムからトランジションを選択します。
- プローパティ パネルで プロパティ を選択します。
- 次のいずれかを実行します。
- トランジションに新しいプロパティを追加する。
- プロパティの右側にあるアイコンをクリックして、プロパティを削除する。
重要
このページではトランジションのプロパティを編集できません。プロパティのキーまたは値(あるいはその両方)を変更するには、まず変更したいプロパティを削除し、更新された新しいプロパティを追加する必要があります。
「テキスト」モードでは、トランジションの編集もできます。
トランジション プロパティを使用して、トランジションに制限を実装することが可能です。詳細については、「ワークフロー プロパティ」を参照してください。
トランジションの表示方法のカスタマイズ
課題を表示しているとき、大半の操作やワークフローのトランジションは課題の上部にあるボタンの列から実行できます。
トランジション ボタンの数を既定の 2 個から変更するには:
初期設定では、最初の 2 つのトランジションはトランジション ボタンのセット内で別々のボタンとして表示されます。追加のトランジションは [ワークフロー] メニューに表示されます。これらのボタンが表示される順序は、システム ワークフローで定義された順序に基づいています。
- Jira をシャットダウンします。
jira-config.properties
ファイルを Jira アプリケーション ホーム ディレクトリで編集します。詳細は、「jira-config.properties
ファイルを変更する」を参照してください。- [ワークフロー] メニューを操作する前に、このファイルの
ops.bar.group.size.opsbar-transitions = X
プロパティの "X
" の値を必要なトランジション ボタンの数に変更します。
このプロパティがjira-config.properties
ファイルに存在しない場合は追加します。これを行わない場合、既定値の 2 であるとみなされます。 - 編集済みの
jira-config.properties
ファイルを保存します。 - Jira を再起動します。
トランジション ボタンの順序を変更するには、
[ワークフロー] メニューに表示される追加のトランジションを含む、トランジション ボタンの順序を変更するには、順序を変更する各ワークフロー トランジションにプロパティ キー opsbar-sequence
を追加します。各 opsbar-sequence
プロパティ キーでは、課題ビュー上のトランジション アクションの順序を定義するプロパティ値が必要です。
- 上記の トランジション プロパティの説明のとおりに、トランジションのプロパティに移動します。
- [新しいプロパティの追加] の [プロパティ キー] フィールドに「
opsbar-sequence
」と入力します。 - [プロパティ値] フィールドに値を入力します。この値は課題ビューに表示されるトランジション ボタンの順序を定義し、"0" 以降の正の整数である必要があります。
10、20、30...などの連続するopsbar-sequence
プロパティー値を使用し、新しいトランジションをあとから簡単に追加できるようにします。 - [追加] をクリックします。
opsbar-sequence
プロパティをワークフロー トランジションに追加しても、テキスト編集モードでのワークフロー内のトランジション順は変わりません。このプロパティの追加は課題表示 ページのトランジション順にのみ影響します。
グローバルトランジション
グローバル トランジション により、ワークフローの任意のステータスを特定のステータスにトランジションできます。
グローバル トランジションを追加するには、
- (既存のステータスを追加して)新しいステータスを作成する際に、 グローバル トランジションをステータスに追加する オプションをチェックします。
- ステータスを選択し、ステータスのプロパティ パネルで すべてのステータスがこのステータスにトランジションすることを許可する をチェックします。
同じターゲット ステップをポイントする 2 つのグローバル トランジションを作成するには、
- ワークフロー デザイナーでステップを選択して、"すべてのステータスがこのステータスにトランジションすることを許可する" を選択し、最初のグローバル トランジションを標準として作成します。
- 現在そのステップをポイントしているグローバルトランジションを持たない他のステップで、2 番目のグローバル トランジションを作成します。
- 次に、作成した 2 番目のグローバル トランジションをテキスト エディタから選択します。
- 「編集」ボタンをクリックし、「ターゲット ステップ」を最初のグローバル トランジションで選択したのと同じステップに変更し、「更新」をクリックします。