linkedIssuesOfRecursive
The linkedIssuesOfRecursive function allows you to delve into the web of dependencies within your projects to uncover not just direct links but also the intricate network of indirect relationships between issues.
This function is essential for:
- Mapping out complex dependency chains to foresee potential project roadblocks
- Revealing the full scope of project interdependencies
- Identifying and addressing indirect dependencies early
Consider a real-world scenario: You're using the function to trace all issues related to a critical epic, EPIC-123. By executing issueFunction in linkedIssuesOfRecursive("epic = EPIC-123"), you uncover not just the tasks directly linked to EPIC-123, but also tasks linked to those tasks, and so on. This might reveal that a seemingly unrelated task in another team's backlog is actually a crucial piece of the puzzle.
Syntax and parameters
linkedIssuesOfRecursive(Subquery, [Link name])Subquery: A JQL query to identify the initial set of issues. This is enclosed in double quotes.
Link name: Specifies the type of issue link to traverse. If this parameter is not used, all link types are considered, which we don't recommend.
linkedIssuesOfRecursive demo video
Examples
Mapping out all dependencies of an issue:
To visualise all direct and indirect dependencies of a particular issue, you might use:
issueFunction in linkedIssuesOfRecursive("issue = DEMO-1")This query helps in understanding the full extent of dependencies for
DEMO-1, aiding in thorough planning and risk assessment.Focusing on specific link types:
To concentrate on a specific type of dependency, such as "blocks", the query can be refined:
issueFunction in linkedIssuesOfRecursive("issue = DEMO-1", "blocks")By focusing on blocking issues, teams can prioritise work to clear these critical paths.
Understand the impact of recursive searches: Recursive searches can be resource-intensive. Be mindful of the number of issues your query will search through, as this can impact system performance.
Use specific link types for efficiency: Narrowing your search to specific link types can make your queries more efficient and the results more relevant.
Beware of circular dependencies: Our built-in protection mechanisms prevent infinite loops in search queries, enhancing reliability and stability.
We have protection mechanisms built in to deal with circular dependencies in your issue links. For example, if
DEMO-1 links to
DEMO-2,
DEMO-2 links to
DEMO-3 and
DEMO-3 links to
DEMO-1, then we will notice that we have already seen
DEMO-1 and stop processing.
not keyword before or after
issueFunction as shown in the following examples:
project = "KEY" and not issueFunction in linkedIssuesOfRecursive("component='componentName'", "depends on")project = "KEY" and issueFunction not in linkedIssuesOfRecursive("component='componentName'", "depends on")