カスタム フイールドをメール (バッチ処理された通知) に追加する
このチュートリアルでは、一括メール通知にカスタム フィールドを追加する方法について説明します。通常のメールにカスタム フィールドを追加する場合、「通常のメール通知へのカスタム フィールドの追加」を参照してください。
このチュートリアルは、高度なユーザー向けの内容を含み、アトラシアン サポートの対象外です。メール通知が基づく、Velocity テンプレートのコードを編集することで、カスタム フィールドを追加できます。
概要
通知は、課題のフィールド (標準のフィールドとカスタム フィールドの両方) についての変更を示します。フィールドの値が変更されなかった場合、通知する情報がないため、そのフィールドは通知に含まれません。通知は変更を伝えることにのみ焦点を当てています。
ここでは、このフィールドが更新されなかった場合も、課題に関する各通知にカスタム フィールドとその値を含める方法を紹介します。これを使用すると、通知される課題についてより正確に説明できます。たとえば、課題のセキュリティ レベルを指定するカスタム フィールドを含めることで、それらを適切に分類したり、その課題に関する通知を非表示にしたりすることができます。
はじめる前に
- メール通知のバッチ処理を有効化します。これは、 > [システム] > [メール通知のバッチ処理] で行えます。
- 課題にカスタム フィールドを追加します。
- 制限: メールへの課題フィールドの追加は、一括通知ではサポートされていません。カスタム フィールドのみ追加できます。課題フィールドを表示したい場合、これらのフィールドがサポートされる個別の通知に切り替える必要があります。一括通知に課題フィールドを追加する機能リクエストがあり、こちらで投票できます。
ステップ 1: カスタム フィールドの ID を探す
ID を使用してメール テンプレートにカスタム フィールドを追加します。カスタム フィールドの URL を調べるか、データベースにクエリを送信することで ID を検索できます。
カスタム フィールドの URL を調べる
> [課題] に移動し、[カスタム フィールド] ページを開きます。
カスタム フィールドを見つけ、 をクリックしてオプションを表示します。
A. ドロップダウン メニューで [設定] アイテムにマウスを合わせます。URL がブラウザのフッターに表示されます。
B. これがカスタム フィールドの ID です。この例では、10108 です。
データベースへのクエリ送信
データベースで以下のクエリを実行します。
SELECT * FROM customfield WHERE cfname LIKE '%mycustomfield%';
mycustomfield
がカスタム フィールドの名前です (例: assignee
)。
ステップ 2: Velocity コンテキストへのカスタム フィールドの追加
メールにカスタム フィールドを追加する前に、それを Velocity コンテキストで定義する必要があります。これらの手順には、REST API に関する知識が必要な場合があります。問題が発生した場合は、「Jira REST API」を参照してください。
1. 現在定義されているカスタム フィールドを取得
以下のコマンドを使用できます。
curl -D- \
-u username:password \
http://@localhost:8080/rest/inform-batchers/1.0/customfields
カスタム フィールドを追加していない場合、以下の例のように、リストが空になるはずです。
{
"customFieldIds": []
}
2. カスタム フィールドを追加
Velocity コンテキストにカスタム フィールドを追加するには、以下のコマンドを使用できます。<ID>
はカスタム フィールドの ID に置き換えます。
curl \
-D- \
-u username:password \
-X POST \
-H "Content-Type: application/json" \
http://localhost:8080/rest/inform-batchers/1.0/customfields?id=customfield_<ID>
このコマンドの結果は以下のようになるはずです。
{
"customFieldIds": ["customfield_10108"]
}
カスタム フィールドの削除
このコマンドを使用することで、Velocity コンテキストから任意のカスタム フィールドを削除できます。
curl \
-D- \
-u username:password \
-X DELETE \
-H "Content-Type: application/json" \
http://localhost:8080/rest/inform-batchers/1.0/customfields?id=customfield_<ID>
ステップ 3: Velocity テンプレートの取得
一括メール通知に使用される Velocity テンプレートは、Jira inform-batchers アプリにあります。これらを抽出する必要があります。
1. アプリ バージョンを調べる
Jira インストール ディレクトリに、このアプリの複数のバージョンがある場合があります。現在のバージョンを確認して、後で編集するファイルを確認します。
> [アプリの管理] に移動し、[アプリの管理] ページを開きます。
ドロップダウンから、[すべてのアプリ] を選択し、「Jira inform - batchers」を検索します。
アプリを展開し、バージョンを確認します (以下の例では 1.1.3 です)。
2. Jira インストール ディレクトリからアプリをコピー
アプリを別のディレクトリにコピーします。Jira インストール ディレクトリ内の .jar ファイルは編集しないでください。変更を元に戻す必要がある場合に備えて、元の JAR ファイルを保持することもおすすめします。
Go to <jira-installation-directory>/atlassian-jira/WEB-INF/atlassian-bundled-plugins/.
batchers-<version>.jar ファイルを見つけます。
ファイルを別のディレクトリにコピーします。
3. アプリの JAR ファイルからテンプレート ファイルを抽出
テンプレートを抽出する最も簡単な方法は、以下のコマンドを使用することです。このコマンドを動作させるには JDK がインストールされている必要があることにご注意ください。
jar xf batchers-1.1.3.jar templates/email
ステップ 4: Veloctity テンプレートの編集
Velocity テンプレートを抽出したら、それらを直接編集し、カスタム フィールドを表示する任意のコード スニペットを追加できます。
1. 更新するテンプレートを選択
一括メール通知ではいくつかのテンプレートが使用されます。必要となる最も重要なテンプレートは次のとおりです。
テンプレート ファイル | 説明 |
---|---|
| 課題更新時のメール件名。 |
| メール ヘッダー。これには、メールで表示される最初の区切り文字より手前のすべての情報 (プロジェクト名、課題名、課題キー、および更新を要約した導入テキスト) が含まれます。 このファイルは、メンションにも使用されます。 |
| 作成された課題、課題の更新、およびコメントの詳細などのすべての変更の一覧を含む、メールの主要部分。 このファイルは、メンションにも使用されます。 |
| メンションのメールの件名。 |
footer.vm | メールのフッター。 |
2. テンプレートの編集
Jira は html 形式とテキスト形式のメールをサポートしています。Jira で設定された形式に従って手順を選択する必要があります。
ステップ 4: Jira への更新されたテンプレートのアップロード
変更のテスト
本番環境に適用する前に、ステージング環境で変更をテストすることをおすすめします。Velocity 構文に違反した場合、メールは一切送信されません。
JAR ファイルにテンプレートを戻します。
jar uf batchers-1.1.3.jar templates/email
アプリを Jira にアップロードします。
> [アプリの管理] > [アプリの管理] に進みます。
[アプリのアップロード] をクリックし、JAR ファイルをアップロードします。アプリが再インストールされると、変更が表示されます。Jira を再起動する必要はありません。
トラブルシューティング
テンプレートの編集時に発生する一般的な問題です。