自動化の基本
Atlassian Cloud 製品における自動化の一般的なコンセプトとベスト プラクティスを説明します。
ルールの設定時に、次のスマート バリューを利用して、テキスト文字列にアクセスして書式設定できます。Jira Automation テンプレート ライブラリでスマート バリューを使用する方法をご確認ください。
以下の例では [要約] フィールドの Hello World! という値を使用しています。
定義した文字数までテキスト文字列を省略して末尾に「...」を追加します。maxLength パラメーターは 4 以上にする必要があります。
1
2
{{issue.summary.abbreviate(8)}} -> Hello Wo...
{{issue.summary.abbreviate(4)}} -> Hell...
詳細は「StringUtils.abbreviate(int)」を参照してください。
文字列を取り、可能な場合は数字に変換します。不可能であれば、空値 (Null) を返します。
1
{{issue.summary.asNumber}} -> Null
テキスト文字列内の指定位置の文字を識別します。
1
2
3
{{issue.summary.charAt(0)}} -> H
{{issue.summary.charAt(7)}} -> o
{{issue.summary.charAt(12)}} -> Null
詳細は「String.charAt(int)」を参照してください。
最初の文字を大文字にします。
1
{{issue.summary.capitalize()}} -> Hello world!
詳細は「StringUtils.capitalize(String)」を参照してください。
戻り値の末尾に指定のテキスト文字列を追加します。
1
{{issue.summary.concat(" It's a beautiful day!")}} -> Hello World! It's a beautiful day!
詳細は「String.concat(String)」を参照してください。
テキスト文字列の末尾が指定のテキストであるかどうかを確認し、true または false を返します。
1
2
{{issue.summary.endsWith("World!")}} -> true
{{issue.summary.endsWith("World@")}} -> false
詳細は「String.endsWith(String)」を参照してください。
テキスト フィールドを取って、指定した文字列と等しいかチェックします。文字列が等しい場合は true が返されます。条件ロジックで使用できます。
1
2
{{issue.summary.equals(“Hello world!”)}} -> true
{{issue.summary.equals(“hello world!”)}} -> false
テキスト フィールドを取って、大文字小文字を区別せずに指定した文字列と等しいかチェックします。文字列が等しい場合は true が返されます。条件ロジックで使用できます。
1
2
3
{{issue.summary.equals(“Hello world!”)}} -> true
{{issue.summary.equals(“hello world!”)}} -> true
{{issue.summary.equals(“helloo world!”)}} -> false
テキストをエンコードして HTML コンテンツに含められるようにします。
1
{{htmlEncode(issue.summary)}} -> Hello world!
Wiki マークアップを含むテキスト フィールドを取って、HTML またはプレーン テキストに変換します。Wiki マークアップから HTML への変換について詳細を読む
指定テキスト文字列の最初の文字位置を返します。
1
2
3
{{issue.summary.indexOf("Wo")}} -> 6
{{issue.summary.indexOf("ello")}} -> 2
{{issue.summary.indexOf("d!")}} -> 11
詳細は「String.indexOf(String)」を参照してください。
テキストに文字のみが含まれるかどうかを確認し、true または false を返します。
1
{{issue.summary.isAlpha()}} -> true
詳細は StringUtils.isAlpha() を参照してください。
テキストに文字または数字のみが含まれるかどうかを確認し、true または false を返します。
1
{{issue.summary.isAlphanumeric()}} -> true
詳細は「StringUtils.isAlphanumeric()」を参照してください。
テキストが空かどうかを確認し、true または false を返します。
1
{{issue.summary.isEmpty()}} -> false
詳細は StringUtils.isEmpty() を参照してください。
テキストが空ではないことを確認し、true または false を返します。
1
{{issue.summary.isNotEmpty()}} -> true
詳細は StringUtils.isNotEmpty() を参照してください。
テキストに数字のみが含まれるかどうかを確認し、true または false を返します。
1
{{issue.summary.isNumeric()}} -> false
詳細は「StringUtils.isNumeric()」を参照してください。
JSON の呼び出しをテキストに含められるようにエンコードします (例: 外向き web リクエストの送信 アクション)。
1
{{issue.summary.jsonEncode}} -> Hello World!
発信 Webhook を JSON として送信する際のエンコードの詳細については、以下の「JSON エンコード」を参照してください。
JSON 形式の文字列を JSON オブジェクトに変換します。オブジェクトのキーにはドット表記でアクセスできます。
1
{{jsonStringToObject(webResponse.body)}} -> {value=Hello World!}
ここで、WebResponse.body のスマート バリューは次のように返されます。
1
{"value": "Hello World!"}
次のような、配列の配列は機能しません。
1
{"value": { {"key1": "val1", "key2": "val2"}, {"key3": "val3", "key4": "val4"} } }
配列のオブジェクトなら機能します。
1
{"value": [ {"key1": "val1", "key2": "val2"}, {"key3": "val3", "key4": "val4"} ] }
指定テキスト文字列の最後の文字位置を返します。
1
2
3
{{issue.summary.lastIndexOf("wo")}} -> 7
{{issue.summary.lastIndexOf("ll")}} -> 4
{{issue.summary.lastIndexOf("rl")}} -> 9
詳細については「string.lastIndexOf(String)」をご参照ください。
テキスト文字列の先頭から何番目の文字かを指定して、その文字を返します。
1
2
3
{{issue.summary.left(5)}} -> Hello
{{issue.summary.left(9)}} -> Hello Wor
{{issue.summary.left(2)}} -> He
詳細については「StringUtils.left(int)」をご参照ください。
文字の指定合計数に達するまで、テキスト文字列の先頭に文字を追加します。
1
2
{{issue.summary.leftPad(14, "-")}} -> --Hello World!
{{issue.summary.leftPad(20, "|")}} -> ||||||||Hello World!
詳細は StringUtils.leftPad(int, String) を参照してください。
テキスト文字列の文字数を返します。
1
{{issue.summary.length()}} -> 12
詳細は「String.length()」を参照してください。
正規表現検索を実行して最初の (また、1 つのみ) に一致する正規表現グループを返します。
基本的な実装は Java の Pattern クラスに基づいており Matcher.find() を使用して一致を検索します。一致が複数見つかった場合、反復可能なコレクションとして返されます。単一パターンの一致を見つけるため (例: 課題の説明からバージョン数を抽出)、または複数のパターンをマッチングするため (例: 課題のコメントからすべてのメール アドレスを抽出) に使用できます。
1
{{issue.summary.match(".*(lo).*")}} -> lo {{issue.summary.match(".*(o).*")}} -> [o, o]
スマート バリューをエスケープして文字テキスト表現にし、Pattern.quote() を使って正規表現一致で使えるようにします。
1
{{issue.summary.quote()}} -> \QHello(.*)World!\E<
文字をテキストから削除します。
1
{{issue.summary.remove("l")}} -> Heo Word!
詳細は「StringUtils.remove(String)」を参照してください。
指定した置換内容で一致する文字テキストを置換します。
1
{{issue.summary.replace("Hello","Goodbye")}} -> Goodbye World!
詳細は String.replace(String, String) を参照してください。
正規表現検索を実行して、一致を変換文字列と置き換えます。"$1" を使用して変換文字列内でマッチング グループにアクセスできます。
1
{{issue.summary.replaceAll("(lo)","xx$1yy")}} -> Helxxloyy World!
詳細は「String.replaceAll(String, String)」を参照してください。
テキスト文字列の文字の順番を逆にします。
1
{issue.summary.reverse()}} -> !dlroW elloH
詳細は「StringUtils.reverse()」を参照してください。
テキスト文字列の末尾から何番目の文字かを指定して、その文字を返します。
1
{{issue.summary.right(6)}} -> World!
詳細は StringUtils.right(int) を参照してください。
文字の指定合計数に達するまで、テキスト文字列の末尾に文字を追加します。
1
{{issue.summary.<br/>rightPadPad(14,"-")}} -> Hello World!--
詳細は StringUtils.rightPad(int, String) を参照してください。
テキストを分割し、テキスト文字列の単語の位置で指定した単語を返します。
1
{{issue.summary.split(" ").first}} -> Hello
詳細は「String.split(String)」を参照してください。
テキスト文字列の先頭が指定のテキストであるかどうかを確認し、true または false を返します。
1
{{issue.summary.startsWith("World!")}} -> false
詳細は「String.startsWith(String)」を参照してください。
指定した文字数以降の文字を返します。
1
{{issue.summary.substring(7)}} -> orld!
詳細は StringUtils.substring(int) を参照してください。
指定位置の文字を返します。
1
{{issue.summary.substring(1,3)}} -> el
詳細は「StringUtils.substring(int, int)」を参照してください。
1 つ目の指定区切り文字の後のテキストを返します。
1
{{issue.summary.substringAfter("W")}} -> orld!
詳細は StringUtils.substringAfter(String) を参照してください。
最後の指定区切り文字の後のテキストを返します。
1
{{issue.summary.substringAfterLast("o")}} -> rld!
詳細は「StringUtils. substringAfterLast(String)」を参照してください。
1 つ目の指定区切り文字の前のテキストを返します。
1
{{issue.summary.substringBefore("W")}} -> Hello
詳細は StringUtils. substringBefore(String) を参照してください。
最後の指定区切り文字の前のテキストを返します。
1
{{issue.summary.substringBeforeLast("o")}} -> Hello W
詳細は StringUtils. substringBeforeLast(String) を参照してください。
指定されたパラメーターに挟まれるテキストを返します。
1
{{issue.summary.substringBetween("e","d")}} -> llo Worl
詳細は「StringUtils. substringBetween(String, String)」を参照してください。
テキスト文字列を小文字に変換します。
1
{{issue.summary.toLowerCase()}} -> hello world!
詳細は「String.toLowerCase()」を参照してください。
テキスト文字列を大文字に変換します
1
{{issue.summary.toUpperCase()}} -> HELLO WORLD!
詳細は String.toUpperCase() を参照してください。
値の始めまたは終わりにある空白を削除します。
1
{{issue.summary.trim()}} -> Hello World!
詳細は「String.trim()」を参照してください。
テキストを URL パラメーターとして含めることができるようにエンコードします (例: メールに含まれるリンク)。
1
{{issue.summary.urlEncode}} -> See Encoding below.
テキストをエンコードして、送信 Webhook などの XML データに含められるようにします。
1
{{issue.summary.xmlEncode}} -> See Encoding below.
他のシステムとの連携またはメール送信には、規格に準拠するため、またはデータを壊さないようにするためにテキストのエンコードが必要なことがあります。たとえば、HTML メールを送信している場合、課題の説明を HTML としてエンコードする必要があるかもしれません。これにより特定の文字は HTML 仕様にエスケープ処理が必要になります。
HTML エンコードは、メールと HTML ページのエクスポートに便利です。たとえば、Waiting for R&D は Waiting for R&D にエンコードされます。
セキュリティ上の理由から、インライン バージョンではなく、関数バージョンのみを使用してください。Webhook 応答 (htmlEncode というプロパティがある応答) をメールで送信する際、応答を {{webhookData.htmlEncode}} でエンコードすると、webhookData の内容をエンコードする代わりに htmlEncode プロパティの値が返されます。
1
2
// Function
{{htmlEncode(issue.status.name)}}
発信 Webhook を JSON として送信する際に便利です。たとえば、"Hello World" は \"Hello World\" にエンコードされます。
1
2
3
4
5
// Function
{{#jsonEncode}}{{issue.summary}}{{/}}
// Inline version
{{issue.summary.jsonEncode}}
メールでリンクの作成を送信する際に役立ちます。たとえば、Hello & World は Hello+%26+World とエンコードされます (スペースは + になり、アンパサンドは %26 になります)。
1
2
3
4
5
// Function
{{#urlEncode}}{{issue.summary}}{{/}}
// Inline version
{{issue.summary.urlEncode}}
発信 Webhook を XML として送信する際に便利です。たとえば、Hello & World は Hello & World にエンコードされます。
1
2
3
4
5
// Function
{{#xmlEncode}}{{issue.description}}{{/}}
// Inline function
{{issue.description.xmlEncode}}
この内容はお役に立ちましたか?