Langage de requête DevOps#

Utilisez le langage de requête DevOps pour filtrer les informations affichées dans votre chaîne de valeur.

A propos du langage de requête DevOps#

Le langage de requête DevOps est un outil de recherche conçu pour filtrer les chaînes de valeur. Vous générez des requêtes simples en associant des éléments consultables à des opérateurs et à des valeurs. Un élément consultable est un objet pouvant être interrogé, comme issue.status. Il est possible d'interroger presque toutes les zones de la base de données IBM™ UrbanCode Velocity et vous pouvez effectuer une recherche parmi les objets imbriqués, comme issue.project.name.

Portée de la requête#

La portée des requêtes peut être limitée à la chaîne de valeur dans son ensemble ou à une étape. Vous pouvez créer des requêtes dans la vue Chaîne de valeur, ou les définir dans le fichier value_stream_name.json joint à une chaîne de valeur. Chaque étape peut avoir une requête définie.

Vous définissez la portée d'une requête au niveau de la chaîne de valeur en définissant une requête dans l'en-tête du fichier value_stream_name.json dans la vue Chaîne de valeur. Vous devrez procéder de la sorte si vous disposez d'une instance Jira®, par exemple, et si vous souhaitez limiter les problèmes affichés à ceux qui appartiennent à votre équipe. Par exemple, issue.project.name="my_jira_project".

Si vous définissez la portée sur le niveau de la chaîne de valeur, d'autres requêtes fonctionnent au sein de cette portée. Après avoir défini la portée sur le niveau de la chaîne de valeur, vous ne pouvez pas l'écraser en définissant une nouvelle requête au niveau de la chaîne de valeur dans la vue Chaîne de valeur. Pour modifier une requête dont la portée a été définie sur la chaîne de valeur, remplacez-la dans le fichier value_stream_name.json.

Requêtes simples#

Filtrez vos chaînes de valeur à l'aide de requêtes qui limitent les informations affichées à ce que vous souhaitez consulter. Vous générez des requêtes simples à l'aide du langage de requête DevOps en associant des éléments interrogeables à des opérateurs et à des valeurs. Un élément consultable est un objet pouvant être interrogé, comme issue.status. Le format de la requête se compose d'un élément, d'un point, d'un paramètre pouvant être interrogé, d'un opérateur et d'une valeur d'un type valide :

[item].[field] [operator] [value type]

La liste suivante affiche certaines requêtes habituelles :

issue.status = “In Progress”
issue.owner = “John Doe”
pr.number > 5
issue.status != Done
build.endTime < 1d
issue.created > 10d
issues.sprints.name = "sprint 1"

Les types de valeur ne sont pas sensibles à la casse. Les types de valeur textuelle peuvent être encadrés par des apostrophes ou des guillemets.

Une liste d'objets ou d'éléments pouvant être recherchés est fournie plus loin dans cette rubrique.

Combinaison de requêtes#

Vous pouvez combiner des requêtes simples à l'aide des opérateurs logiques "et" et "ou". Les requêtes combinées sont résolues de la gauche vers la droite.

La requête suivante affiche des problèmes rencontrés par Jean et Anne Dupont, dont le statut est "En cours".

issue.owner = “John Doe” or issue.owner = “Jane Doe” and issue.status=“In Progress”

La requête suivante affiche des éléments dont le statut est "Ouvert" et qui sont antérieurs à un jour.

pr.status = Open and pr.created > 1d

Requêtes prioritaires#

Vous pouvez passer outre l'ordre de préséance en utilisant des parenthèses.

Contrairement à l'exemple précédent, cet exemple affiche tous les problèmes de Jean Dupont et uniquement les problèmes d'Anne Dupont dont le statut est "Terminé".

issue.owner = “John Doe” or (issue.owner = “Jane Doe” and issue.status=Done)

Cet exemple montre les problèmes ouverts de Jean Dupont dont le statut est "En cours".

(issue.status = “In Progress” or pr.status = open) and issue.owner = “John Doe”

Eléments du langage de requête DevOps#

La table des problèmes pouvant être recherchés répertorie les objets et leurs champs consultables. Les champs de type durée s'affichent avec la police italicized.

Elément Champs consultables
problème id, name, sprints, storyPoints, source, status, owner, priority, type, created, lastUpdate
issue.sprints id, name, previous, description, startTime, endTime, completionTime, url, active
pr id, name, source, status, branch, baseBranch,commitId, merged, assignees, reviewers, created, lastUpdate, creator, number
build id, name, source, status, endTime, requestor, startTime, number
déploiement id, name, source, status, endTime, requestor, startTime, number, env
projet id, name. Par exemple, issue.project.name="my_project".
éditions id, name, description, archived, released, releaseDate. issue.releases.name="Version 1.1", issue.releases.releaseDate > 5w et issue.releases.released = false sont des exemples classiques.
commentaires Rechercher dans le texte du commentaire.
rawIssue Le champ rawIssue contient des données non normalisées provenant de l'outil externe, comme Jira. Par exemple, issue.rawissue.fields.custom_field.

Les tables d'opérateurs de requête affichent les opérateurs de recherche.

Opérateur Définition
= être égal à
> supérieur à
< inférieur à
>= supérieur ou égal à
<= inférieur ou égal à
!= non égal à

La table des types de valeur décrit les types de valeur valides.

Type de valeur Définition
valeur Prend en charge tous les caractères, sauf les caractères blancs ou les caractères réservés suivants : . = ! < > " ( ).
valeur entre guillemets Les caractères se trouvent entre guillemets. Ce type prend en charge tous les caractères, y compris ceux non pris en charge par la valeur. Par exemple :

“This is a quoted value”, “(This = valid input!)”

| |heure|Sert à comparer les champs d'heure. Un nombre suivi d'une mesure temporelle (h = hours, d = days, w = weeks, y = years, est une entrée valide. Par exemple : 1w (one week), 10d (ten days), 3y (three years).|

Sujet parent : Gestion de la chaîne de valeur