Helix Core is now P4 and Helix Swarm is now P4 Code Review. Learn more >>

Documentation | 2025.2

# Job keywords

By default, if you add jobnnnnn or @jobnnnnn to a job description, changelist description, review description, or comment, P4 Code Review automatically creates a link to the P4 Code Review job page if a match is found. The jobnnnnn or @jobnnnnn keywords are hardcoded in P4 Code Review and always present.

If your job numbers are not formatted as jobnnnnn, you can configure P4 Code Review to recognize other keywords in addition to job and @job. For example, if your job numbers are formatted as defectnnnnnn, P4 Code Review can be configured to recognize them and link to the correct job page.

When you create a new job keyword, this is in addition to the default job keywords. Multiple job keywords can be specified. The first successful match is used, starting with the default job keywords. Once P4 Code Review finds a match, none of the other keywords are evaluated.

The job keyword is configured with a regular expression so that almost any keyword can be used. When you add a new job keyword to P4 Code Review, take care to choose syntax and terminology that is unlikely to occur naturally in a description to avoid unexpected links being created.

If you make a configuration change, P4 Code Review will not use it until the configuration cache has been reloaded, this forces P4 Code Review to use the new configuration. You must be an admin or super user to reload the P4 Code Review config cache. Navigate to the User id dropdown menu, select System Information, click the Cache Info tab, and click the Reload Configuration button.

## Adding a new job keyword

- You can test the results of your regular expression before using it, see regular expressions 101
- Regular expressions are case insensitive.

Job parameters:

- 'word_length_limit': The limit on the number of characters which a text to be linkified can have.

- 'target': Opens the URL in the same tab or a new tab, defaults to '_self'. To open the URL in a new tab, set to '_blank'.

- 'regex': The regular expression used to match the job keyword.

- 'url': The URL to append the regex match to. This URL plus the job number matched by the regex is used to display the job page. This URL can reference a P4 Code Review page or an external defect tracking system.

  Optional: Specify the regex capture group to append to the URL. For example, adding /{2} after the url parameter tells P4 Code Review to append the second regex capture group result to the url. For more information on capture groups, see Regex Tutorial - Parentheses for Grouping and Capturing.

### P4 Code Review page link example

In this example, only the second regex capture group is appended to the url parameter. This means that the @ character is only used to help identify the job and is not appended to the URL.

For example, to add "defect" as a jobs keyword so that both @defectnnnnn and defectnnnnn mentions are linked to a job page in P4 Code Review, add the following block to the `SWARM_ROOT/data/config.php` file:

    <?php
        // this block should be a peer of 'p4'
        'linkify' => array(
            'word_length_limit' => 2048,
            'target' => '_blank',
            'markdown' => array(
                array(
                    'id'    =>  'jobs',
                    'regex' => '(@?)(defect[0-9]+)', // the regular expression used to match the job keyword, default is empty
                    'url'   => '{baseurl}/{2}',      // url that matching job numbers are appended to, default is empty
                ),
            ),
        ),

### External page link example

In this example, the /{0} character string at the end of the url is important because it helps the external link to get built dynamically.

For example, to add "issue" as a jobs keyword so that mentions of issuennnnn are linked to jobs in your defect tracking system, add the following block to the `SWARM_ROOT/data/config.php` file:

    <?php
        // this block should be a peer of 'p4'
        'linkify' => array(
            'word_length_limit' => 2048,
            'target' => '_blank',
            'markdown' => array(
                array(
                    'id'    =>  'jobs',
                    'regex' => '(issue[0-9]+)',               // the regular expression used to match the job keyword, default is empty
                    'url'   => 'example.defect-tracker-url/{0}', // url that matching job numbers are appended to, default is empty
                ),
            ),
        ),

### Jira issue link example

In this example, the /{0} character string at the end of the url is important because it helps the external link to get built dynamically.

For example, to add your Jira issue format so that mentions of xxx-nnnnn are linked to Jira issues in your Jira system, add the following block to the `SWARM_ROOT/data/config.php` file:

    <?php
        // this block should be a peer of 'p4'
        'linkify' => array(
            'word_length_limit' => 2048,
            'target' => '_blank',
            'markdown' => array(
                array(
                    'id'    =>  'jira',
                    'regex' => '[A-Z1-9]{2,}-\d+',               // the regular expression used to match the job keyword, default is empty
                    'url'   => 'example.jira-system-url/browse/{0}', // url that matching numbers are appended to, default is empty
                ),
            ),
        ),

Your search for returned results