Integrations Hub for Jira allows custom variables that can be used when generating an integration request. Under the hood, we're using JSONPath and Mustache to extract and substitute variables for integration request.
It's currently possible to substitute the following:
Request URL
Request headers
Request body
Request Authorization
General usage
Variables are accessed by using the curly braces notation of Mustache.
{{variable_name}}
or for an object, the dot notated getter name without the "get".
Example: {{my_object.name}}
. For the value of the getName()
of the my_object
variable
Value variables (Primitives/Strings ie.)
{{variable}} - Substitutes the variable value
Objects
{{object_name.user.name}} - Substitutes the object_name getUser().getName() value
Collections
Iterate through lists using the following Mustache pattern:
{{#title}}{{.}}{{/title}}
See
Manage Arrays for further info
Formatting dates
Date objects can be formatted by using the following syntax. {{#date}}{{#format}}java_date_format_pattern{{/format}}{{/date}}
Example:
{{#issue.updated}} {{#format}} yyyy-MM-dd {{/format}} {{/issue.updated}} - Will format issue updated date. (since v.3.8.0)
Quick Formats (since v 4.4.0)
{{now.yearMonthDay}} = YYYY-MM-DD
{{now.monthDayYear}} = MM/DD/YYYY
{{now.monthDayYear2}} = MM/DD/YY
{{now.dayMonthYear}} = DD-MM-YYYY
Default variables
Default variables that are available for every iHub integration request are:
Variable | Description |
---|---|
{{ |
|
|
|
|
Upper case on "U" in baseUrl |
| Get all comments for the issue Usage:
|
| Get the latest comment object for an issue. Usage:
|
| Get custom field name. example;
|
| Returns the current user as a ApplicationUser object |
| {{responseHeaders.myVariable}} gives the myVariable response header. Note only available on child actions, but seen on the parents execution log. |
| Get the issue attachment(s) as a list. Can be used to post the attachment to other systems see Attachments - Multipart data or Body and How to send an attachment for more info.
Properties on a attachment:
|
.asJson | You can use the For example, if you have a data object like this: This feature is useful when you need to extract subsets or entire chains of JSON responses. This can be extra useful when filter incoming responses. Incoming Webhooks |
String manipulation
Make a variable lowercase or uppercase
Lowercase "name":"{{issue.key.toLowerCase}}" Uppercase "name":"{{issue.key.toUpperCase}}" Trim "name":"{{issue.key.trim}}"
Defining custom variables from a response
You may define any number of variables from the response of the parent iHub integration that will be available for usage within the child's variable scope.
Define custom variables by defining them in the variables section of the child action.
Set the variable name followed by the JSONPath expression.
See JSONPath for tutorials examples on how to define your JSON path for your use case
Automatic response variables
By choosing "Auto populate response variables
" the child action will automatically parse the response JSON and add top-level variables to the variable scope.
Example JSON response from parent action:
{ "gender": "male", "name": { "title": "mr", "first": "sal", "last": "van ballegooij" }, "location": { "street": "1978 predikherenstraat", "city": "oldenzaal", "state": "groningen", "postcode": 32432, "coordinates": { "latitude": "46.8524", "longitude": "-179.9888" }, "timezone": { "offset": "+5:00", "description": "Ekaterinburg, Islamabad, Karachi, Tashkent" } } }
Will result in the following variables being available:
{{gender}} - The String "male" in this case
{{name}} - An object, use "." notation to drill down. Ie. {{name.title}} for "mr"
{{location}} - An object, use "." notation to drill down. Ie. {{location.coordinates.latitude}} for "46.8524"
Issue object
You may access the issue object by using the {{issue}}
variable notation followed by the getter that you would like to retrieve.
Variable | Description |
---|---|
{{issue.summary }} | returns the issue summary |
{{issue .key}} | returns the issue key |
{{issue .type }} | returns issue type |
{{issue .assignee }} | returns the assignee. Chain the notation with {{issue.assignee.name}} for the assignee name. |
{{issue .reporter }} | returns the reporter |
{{issue .watchers }} | returns a list of watchers such as: ["user1","user2"] |
{{issue .affectsversion }} | returns the affects version |
{{issue .fixversion }} | returns the fix version |
{{issue .components }} | returns the components |
{{issue .labels }} | returns the labels |
{{issue .resolution }} | returns the resolution |
{{issue .attachments }} | returns the attachment |
{{issue .comments }} | returns the comments. See working with collections on how to iterate this |
{{issue .worklog }} | returns the worklog |
{{issue .votes }} | returns the issue votes |
{{issue .due }} | returns the issue due date |
{{issue .description }} | returns issue description |
{{issue .priority }} | returns the priority of the issue |
{{issue .created }} | returns the created date of the issue |
{{issue .updated }} | returns the updated date of the issue |
{{issue .status }} | returns the status of the issue |
{{issue. customfield_xxxxx }} | returns the value of the custom field. example {{issue. customfield_10100 }} |
Parent object