JQL : 5 hacks pour aller plus loin avec la recherche dans Jira


Publié par
Elodie BARDAJI

25 octobre 2017

Les possibilités offertes par le JQL (Jira Query Language) sont nombreuses et certaines fonctionnalités méconnues peuvent se révéler utiles pour accéder à l’information dont vous avez besoin. Dans un article précédent, nous avons parlé de la recherche basique et de plusieurs cas pratiques où l’usage de la recherche avancée est nécessaire.

Voici 5 hacks qui vous permettront d’extraire de Jira les informations dont vous avez besoin sans vous tromper et de gagner du temps dans vos recherches.

1. Rechercher toutes les demandes créées après une demande particulière

Il est parfois utile de pouvoir visualiser toutes les demandes qui ont été créées après une demande particulière, et non pas après une date donnée.

Dans Jira, les demandes sont identifées de manière unique au moyen d’une clef composée d’un identifiant projet et d’un chiffre incrémenté à chaque demande créée.

En utilisant le mot clef  « Key » vous pouvez comparer la clef des demandes d’un projet à une clef particulière. Par exemple :

  • Key >= VSD-30 – retourne toutes les demandes créées depuis la VSD-30 jusqu’à aujourd’hui

Note : Pour retrouver les demandes créées ou mises à jour depuis une certaine date ou pendant une période donnée, vous pouvez utiliser les champs « Created » et « Updated » 

2. Rechercher toutes les demandes sauf un périmètre précis

Les requêtes excluant un élément peuvent être trompeuses. En effet si vous utilisez la fonction JQL « not in » ou « != » qui permet de prendre toutes les demandes en en excluant un périmètre, le résultat sera composé uniquement de toutes les demandes sur lesquelles le champ d’exclusion a une valeur.

Par exemple :

  • duedate != 2017-3-10 – renverra uniquement toutes les demandes dont la due date a une valeur mais dont cette valeur n’est pas égale à 10 mars 2017

La solution ? Ajouter une clause permettant d’inclure aussi les champs vides.

  • duedate != 2017-3-10 or duedate is empty – renverra alors toutes les demandes que le champ d’exclusion y ai une valeur ou non  sauf celles où la due date est à 10 mars 2017.

3. Utiliser la recherche approximative

En JQL, le « ~ » est disponible sur plusieurs champs pour rechercher à partir d’une chaine de caractères ou de quelques caractères ; par exemple si l’utilisateur recherche un ticket concernant un VPN :

  • description ~ vpn

Sachez que cette recherche prend en charge les espaces ! (à utiliser entre guillemets évidemment)

Le cas particulier des Sprints

Dans Jira Software, il faut l’avouer, ce n’est pas très pratique que tous les Sprints de tous les projets sur lesquels vous avez des droits soient disponibles…

Avec le mot clef « Sprint », le « = » fonctionne comme un « ~ ». Vous pouvez donc rechercher des noms de sprint de manière approximative.

Ainsi,

  • Sprint = «SP» – renverra toutes les demandes dont le Sprint est par exemple « SP – Sprint 1 » et « SP– Sprint 2 »

4.Optimiser votre saisie en utilisant les catégories de projet

Fatigué de sélectionner toujours les 10 mêmes projets ? La catégorie est faite pour créer un ensemble de projets et pouvoir non plus rechercher sur les 10 projets la composant mais directement sur la catégorie.

Par exemple, au lieu de :

  • Project in (« Mobile Apps », « DS Agile », « Market », « Marketplace », « Configuration », « GlobalSupport », « GeneralFinance », « DedictedSupport », « HumanRessources », « Databases »)

Vous obtiendrez :

  • Category = « Internal department »

Note : Vous ne trouvez pas la catégorie que vous cherchez? Demandez à votre administrateur Jira si les catégorisations de projet sont utilisées sur votre instance et parlez-lui de votre besoin.

5.La recherche et les champs multiples

Lorsque l’on effectue des requêtes JQL sur des champs multiples, il est nécessaire de considérer le « = » comme le verbe « contenir ».

Ainsi, par exemple :

  • component = Jira or component is empty – renverra toutes les demandes qui ne sont associées à aucun composant ou qui contiennent Jira comme composant. Plus précisément, toutes les demandes qui ne sont associées à aucun composant, qui ont pour composant Jira ou qui ont pour composant Jira et un ou plusieurs autres composants. De ce fait la demande associée aux composants Jira et Confluence fera partie du résultat.

Vous vous souvenez des requêtes d’exclusions détaillées plus haut? Voyons maintenant ce que cela donne avec les champs multiples.

  • component != Jira or component is empty – renverra  toutes les demandes qui ne sont associées à aucun composant ou qui ne contiennent pas Jira comme composant. Plus précisément, toutes les demandes qui ne sont associées à aucun composant, qui n’ont pas pour composant Jira ou qui n’ont pour composant Jira et un ou plusieurs autres composants. De ce fait la demande associée aux composants Jira et Confluence ne fera pas partie du résultat

Il n’est pas possible de faire une requête sur le nombre de choix pour un champ multiple.

Imaginons que mon projet soit organisé autour de 5 composants Jira, Crowd, Hipchat, FeCru et Bamboo et que je souhaite obtenir la liste de toutes les demandes concernant Crowd, Hipchat, FeCru et Bamboo, donc exclure toutes les demandes concernant Jira. Si je réalise la requête d’exclusion suivante, je passerai à côté d’une demande liée à la fois à Jira et un autre composant, par exemple Jira et Crowd.

  • component != Jira

Il faudra alors que je réalise la requête suivante pour être sure d’obtenir l’intégralité des demandes faisant partie de mon périmètre :

  • component in (Crowd, HipChat, FeCru, Bamboo)

La recherche en JQL dans Jira regorge de subtilités. J’espère que cet article vous aura permis d’en maitriser quelques-unes.

Si vous souhaiter aller plus loin, notre formation Préparation à la certification – Jira Administration couvre les aspects avancés du JQL et permet de se préparer sereinement à passer la certification ACP-JA.