Pular para o conteúdo principal

Queries — WIQL vs JQL

AspectoAzure DevOps (WIQL)Jira (JQL)
SintaxeSQL-like: SELECT ... FROM WorkItems WHERE ...Clause-based: project = X AND status = Y ORDER BY ...
Tipos de queryFlat list, One-hop (links diretos), Tree (hierárquico)Flat list (com funções de linked issue)
Funções@Today, @Me, @Project, [Any]now(), currentUser(), membersOf(), issueHistory(), linkedIssues(), 50+ funções
Operadores=, <>, >, <, IN, UNDER, CONTAINS, EVER=, !=, >, <, IN, NOT IN, ~ (contains), WAS, CHANGED, IS EMPTY e mais
Queries salvasShared Queries (estrutura de pastas)Saved Filters (compartilháveis, com subscription)
SubscriptionsAlert rules (separadas)Filter subscriptions (notificações por email built-in)
DashboardsWidgets baseados em queriesGadgets baseados em filters
PermissõesPermissões de pasta de queriesPermissões de compartilhamento de filters

Exemplos de migração WIQL → JQL

WIQLJQL
SELECT [System.Id] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.State] = 'Active'issuetype = Bug AND status = "In Progress"
WHERE [System.AreaPath] UNDER 'Project\Backend'component = Backend (plano) ou labels in (area-backend)
WHERE [System.IterationPath] UNDER 'Project\Release 1'fixVersion = "Release 1" ou sprint in openSprints()
WHERE [System.AssignedTo] = @Meassignee = currentUser()
WHERE [System.CreatedDate] >= @Today - 7created >= -7d
WHERE [System.State] EVER 'Active'status WAS "In Progress"

JQL é significativamente mais poderoso

dica

JQL suporta operadores temporais (WAS, CHANGED), composição de funções, busca textual (~) e funções de relacionamento de issues. Porém, todas as queries WIQL existentes devem ser manualmente reescritas em JQL.