Si vous êtes un utilisateur ou un administrateur de Jira, vous avez probablement déjà exploré la fonction de recherche pour trouver des demandes spécifiques ou des listes de demandes. Si certaines recherches sont simples, d’autres peuvent être complexes et nécessitent une connaissance du langage Jira Query Language (JQL).
Le JQL est un puissant outil pour créer des requêtes de recherche avancées dans Jira. Un aspect intéressant des recherches JQL est que vous pouvez les enregistrer sous forme de filtres et vous y abonner, ou vous en servir pour configurer des tableaux de bord Agile, entre autres.
Avant de plonger dans nos astuces JQL, explorons les différentes façons d’effectuer une recherche de demandes dans Jira.
La recherche rapide est la fonction de recherche la plus simple, accessible depuis l’en-tête de l’application. Elle offre trois méthodes d’utilisation :
La recherche JQL de base est recommandée si vous débutez avec le langage de requête Jira et que vous souhaitez une manière simple de filtrer les demandes. Accédez-y depuis le Navigateur de demandes en choisissant “Demandes” > “Chercher des demandes” dans le menu principal. La barre de recherche de base inclut des menus déroulants pour affiner votre recherche et permet d’ajouter davantage de champs en utilisant le menu “Plus”.
La recherche avancée offre une fonctionnalité d’auto-complétion qui vous permet de créer des requêtes à l’aide de JQL. Toute recherche de base peut être traduite en une requête JQL en basculant en mode Avancé depuis le mode Basique. Les raisons d’utiliser le mode de recherche avancée incluent l’utilisation de l’opérateur logique OR, la gestion de champs non pris en charge ou l’utilisation de fonctions JQL.
Pour obtenir la liste des demandes liées à un problème spécifique, utilisez la fonction JQL intégrée “linkedIssues(issueKey).”
Exemple : issue in linkedIssues("TP-345")
Si vous souhaitez obtenir les demandes liées à un ticket spécifique avec un type de lien particulier, utilisez la fonction “linkedIssues(issueKey, linkType).”
Exemple : issue in linkedIssues("TP-345", "blocks")
Pour trouver le type de lien, rendez-vous dans Administration > Demandes > Création de liens entre les demandes et utilisez la colonne “Nom”.
Pour filtrer toutes les demandes qui ont N’IMPORTE QUEL demande liée, utilisez la fonction “hasLinks(linkType).”
Exemple : issueFunction in hasLinks()
Si vous souhaitez obtenir la liste des demandes liées à un ensemble spécifique de demandes (filtre ou demandes), utilisez la fonction “linkedIssuesOf(Subquery).”
Exemple : issueFunction in linkedIssuesOf("project=IDP")
Pour obtenir la liste des sous-tâches dans Jira, utilisez l’objet “Parent” et spécifiez la ou les clés des demandes parentes.
Exemple : parent = "IDP-4689"
Pour les sous-tâches d’un sous-ensemble de demandes, utilisez la fonction “issueFunction in subtasksOf(Subquery).”
Exemple : issueFunction in subtasksOf("project=IDP and issuetype=Incident")
Pour obtenir les demandes parentes d’un sous-ensemble de sous-tâches, utilisez la fonction “issueFunction in parentsOf(Subquery).”
Exemple : issueFunction in parentsOf("project=IDP and issuetype=Incident")
Pour obtenir les stories associées à une epic, utilisez le champ personnalisé “Epic Link.”
Exemple : "Epic Link" in (SCUR-24, SCUR-25)
Pour obtenir les epics pour un sous-ensemble de demandes (stories), utilisez la fonction “issueFunction in epicsOf(Subquery).”
Exemple : issueFunction in epicsOf("project=IDP AND issuetype=Incident")
Pour obtenir les trois niveaux de hiérarchie dans JQL, utilisez l’application ScriptRunner avec la fonction “issueFunction in linkedIssuesOf(Subquery, linkType).”
Exemple : (project = IDP AND issuetype = Epic) OR issueFunction in linkedIssuesOf("project = IDP AND issuetype = Epic", "is epic of") OR issueFunction in subtasksOf("issueFunction in linkedIssuesOf('project = IDP AND issuetype = Epic', 'is epic of')")
Le contexte de “l’utilisateur courant” peut être utilisé avec des champs spécifiques/personnalisés tels que Reporter, Assignee, Watcher, Voter et tout champ personnalisé de sélection d’utilisateur.
Exemple : assignee = currentUser()
Pour obtenir la liste des demandes dans lesquelles un utilisateur fait partie d’un groupe spécifique dans Jira, utilisez la fonction “membersOf(GroupName).”
Exemple : assignee in membersOf("jira-administrators")
Les requêtes JQL basées sur le contexte Portfolio for Jira peuvent être effectuées à l’aide du champ personnalisé “Parent Link” et des fonctions JQL fournies par Portfolio for Jira et ScriptRunner.
Exemple : "Lien parent" in ("project=IDP")
Pour utiliser des fonctions JQL avancées, telles que “portfolioChildrenOf(Subquery)” et “portfolioParentsOf(Subquery),” assurez-vous d’avoir installé Portfolio for Jira en plus de ScriptRunner version 5.0.11 et ultérieures.
Le JQL est un outil polyvalent qui permet des recherches puissantes dans Jira. Si les fonctionnalités prêtes à l’emploi offrent de nombreuses possibilités, les applications telles que ScriptRunner fournissent des fonctionnalités supplémentaires pour des requêtes plus ciblées. En combinant les bonnes fonctions et en comprenant la syntaxe JQL, vous pouvez gérer efficacement et naviguer dans votre instance Jira pour en tirer le meilleur parti.
Pour plus de conseils et d’aide concernant les outils Atlassian, n’hésitez pas à contacter notre équipe.