On this page

Use case

A handy option in Jira is to use issue keys in comments to reference them whenever needed. But as the amount of comments grow, it can get hard to keep track of all mentioned issues in the comments. Therefor, the following rule checks for issue keys being added to comments and automatically links them to the current issue.



Issue Commented event

Create a new rule and name it appropriately.

Providing a description will help you to identify what the rule does but this step is optional.


Add a trigger → Issue event → Issue Commented

No further configuration needed. The automation rule is triggered every time an issue is being transitioned.

Boolean condition

Add a ConditionBoolean Condition 

Expression

Use the following Parser Expression:

findPattern(%{trigger.issue.lastComment},"([A-Z][A-Z0-9]+)-\\d+") !~ null

Boolean expressions are logical constructions that return true or false.

The findPattern() expression parser function extracts the issue key from the last comment.

Create issue link action

Next to the Boolean Condition click on Add → Action → Create issue link

Issue link type

Choose relates to (Relates)

Issue selection

Choose Issue List Expression

Use the following Parser Expression:

issueKeysToIssueList(toString(findPattern(%{trigger.issue.lastComment},"([A-Z][A-Z0-9]+)-\\d+")))

The findPattern() expression parser function extracts the issue key from the last comment.

Enable the rule by clicking on the Enable button → 

Screencast

This is how the configuration above should look on your screen


Import the example

Import the JSON file below to get started in no time


After importing the JSON file, make sure to check the configuration of the rule. Non-existing configuration elements (issue types, fields, values etc.) will be highlighted.

{
    "name": "Track issues mentioned in comments",
    "description": "",
    "creator": "admin",
    "status": false,
    "triggerData": "6",
    "triggerType": "ISSUE_EVENT",
    "configuration": {
        "refs": [
            "issue",
            "system",
            "trigger.issue",
            "trigger.parent"
        ],
        "triggerType": "6"
    },
    "children": [
        {
            "sequence": 0,
            "type": "BOOLEAN_CONDITION",
            "ruleEntityType": "CONDITION",
            "configuration": {
                "refs": [
                    "issue",
                    "project",
                    "system",
                    "trigger",
                    "trigger.issue",
                    "trigger.parent"
                ],
                "expression": "findPattern(%{trigger.issue.lastComment}, \"([A-Z][A-Z0-9]+)-\\\\d+\") !~ null",
                "expressionParsingMode": "logical",
                "actingUser": "field_00020"
            },
            "children": [
                {
                    "sequence": 0,
                    "type": "LINK_ISSUE",
                    "ruleEntityType": "ACTION",
                    "configuration": {
                        "refs": [
                            "issue",
                            "project",
                            "system",
                            "trigger",
                            "trigger.issue",
                            "trigger.parent"
                        ],
                        "issueLinkType": "inwards_10003",
                        "destinationIssueSelection": "issues",
                        "destinationIssueSelectionIssues": "issueKeysToIssueList(toString(findPattern(%{trigger.issue.lastComment}, \"([A-Z][A-Z0-9]+)-\\\\d+\")))",
                        "destinationIssueSelectionIssueKeyParsingMode": "textBasic",
                        "actingUser": "field_00020"
                    },
                    "children": null,
                    "hasChildren": false
                }
            ],
            "hasChildren": true
        }
    ],
    "hasChildren": true
}



If you still have questions, feel free to refer to our support team.