JQL Syntax and Extensions

JQL Syntax

It is possible to use a simple syntax in Jira using the custom field "Requirement Yogi info". Please note that this custom field only contains text, and has a character limitation. You can use the Beta JQL Extensions for more accurate results.

Example:

  • Find Jira issues with or without requirement links: "Requirement Yogi info" is empty / is not empty

  • Find Jira issues with link to a specific requirement. Note that you cannot specify the space or variant: "Requirement Yogi info" ~ 'BR-01'

JQL Extension

This function is still in beta, as the underlying Atlassian API is still in preview.

You can now search for issues containing requirements with JQL.

This functionality replaces the previous functionality that used custom fields to search for requirements.

We plan to extend it in the future to allow for multiple use cases in the future. If your use case is not supported at the moment, get in touch.

Search issues containing requirements

Access the JQL search from the Filters / View all issues.

image-20240429-074914.png

And click on the Switch to JQL button.

image-20240429-074333.png

Syntax

You can use the issue in hasReq() or issue in hasRequirement() syntax. Both functions are aliases of each other.

Search parameters

Argument

Description

Example

Argument

Description

Example

Requirement key

[Optional, default = ““]

→ Restrict the issues containing a specific requirement link.

Note that you can use the % sign to filter by approximate requirement key.
e.g. "BR-%" will issues containing any requirement having a key starting by BR-.

  • issue in hasReq("BR-001") Find the first 100 issues containing the requirement having as key BR-001.

  • issue in hasReq("") Find the first 100 issues containing any requirements.

  • issue in hasReq() : Find the first 100 issues containing a requirement in all projects.

Project name

[Optional, default = ““]

→ Restrict the issues to a specific project.

  • issue in hasReq("", "RYC") Find the first 100 issues containing a requirement in the project RYC.

  • issue in hasReq("BR-001", "RYC") Find the first 100 issues containing the requirement having as key BR-001 in the project RYC.

  • issue in hasReq("", "") : Find the first 100 issues containing any requirements in all projects, with explicit pagination parameters.

Search offset

[Optional, default = 0]

→ Pagination parameter. Useful when your query matches too many issues.

  • issue in hasReq("", "", 0) or issue in hasReq("", "", 100) or issue in hasReq("", "", 200) Find the first 300 issues containing requirements in all projects.

Search limit

[Optional, default = 100]

→ Pagination parameter. You should never need to use this parameter, but it is required to use the Cache Control parameter.

  • issue in hasReq("", "", 0, 100) : Find the first 100 issues containing any requirements in all projects, with explicit pagination parameters.

  • issue in hasReq("", "", 0, 200) : Find the first 200 issues containing any requirements in all projects, with explicit pagination parameters.

  • issue in hasReq("", "", 0, 1000) Find the first 1000 issues containing requirements in all projects (Most likely will cause an error, as JQL length is limited to 1000 characters on Atlassian side).

Cache Control

[Optional, default = ““]

Atlassian automatically saves the results of calling jql functions for 7 days, depending on arguments.

Using this parameter to force a cache miss (eg: a timestamp, or a uuid) is the easiest way to get results up to date if you recently modified issue links to requirements.

  • issue in hasReq("", "", 0, 100, "2024-03-18T11:13:46").

  • issue in hasReq("", "", 0, 100, "e846db4c-6c3d-44d3-b243-ab897fafedcf").

Find the first 100 issues containing requirement in all projects and force Atlassian to use the most up to date results.