Структура добавляет функцию JQL Structure(), которая позволяет искать задачи, добавленные в структуру, с возможностью добавления ограничений на их отношения. Вы можете использовать эту функцию в любом месте JIRA, где вы можете использовать JQL: в Навигаторе задач , в сохраненном фильтре, в качестве запроса Agile Board и т. д. Для получения дополнительной информации см. документацию JIRA по функциям расширенного поиска и расширенного поиска.
Если у пользователя нет доступа к структуре, он не сможет создавать новые запросы с помощью функции Structure(), а в существующих запросах функция Structure() будет возвращать пустой набор. Однако пользователь по-прежнему будет видеть функцию Structure(), предлагаемую в раскрывающемся списке завершения JQL.
Чтобы указать условие структуры в JQL, используйте следующий формат:
issue in structure(structureNameopt, structureQueryopt)
Аргументы функции:
structureName |
Необязательный |
Название структуры. Если вы не укажете имя структуры, будет выполняться общесистемный поиск Структуры по умолчанию. |
structureQuery |
Необязательный |
Используйте этот параметр, чтобы выбрать только часть структуры. Этот параметр определяет запрос структуры на языке, похожем на JQL, Structured JQL. |
Вы можете использовать идентификатор структуры вместо имени структуры. Вы можете увидеть идентификатор структуры в URL-адресе доски структуры, если откроете страницу «Управление структурой» и щелкните имя структуры.
Аргументы функции должны быть заключены в кавычки, если они содержат пробелы или небуквы
В соответствии с синтаксисом JQL вам необходимо заключить имя структуры или запрос структуры в «одинарные» или «двойные кавычки», если они содержат пробелы или небуквы.
Что делать, если имя структуры или сам запрос структуры содержит кавычки?
Если имя структуры или запрос структуры содержат кавычки одного вида, их необходимо заключить в кавычки другого вида. То есть, если структурный запрос содержит двойные кавычки, вам нужно будет заключить его в одинарные кавычки. Кроме того, вы можете экранировать кавычки обратной косой чертой: \".
Пример 1
Предположим, вам нужно найти все задачи, находящиеся непосредственно под задачами со статусом Ожидает развертывания.
В простом JQL проблемы с этим статусом можно найти с помощью этого запроса: Статус = "Ожидает развертывания". Обратите внимание, что, поскольку имя статуса содержит пробелы, JQL требует, чтобы мы заключали его в кавычки.
Согласно справочнику S-JQL, соответствующий запрос структуры будет дочерним по отношению к [Status = "Awaiting Deployment"] ([Статус = "Ожидание развертывания"]).
Это означает, что вам нужно заключить этот запрос структуры в одинарные кавычки:
КОД
issue in structure("My personal structure", 'child of [Status = "Awaiting Deployment"]')
Обратите внимание, что следующее не будет работать:
КОД
issue in structure("My personal structure", "child of [Status = "Awaiting Deployment"]")
Пример 2: экранирование с помощью обратной косой черты
В следующем примере запрос возвращает проблемы, которые находятся непосредственно в задачах, назначенных версии исправления с именем 3.0 «Армагеддон».
КОД
issue in structure("My personal structure", "child of [fixVersion = '3.0 \"Armageddon\"']")
Обратная совместимость с функцией JQL Structure() до Structure 2.4
До Structure 2.4 функция JQL Structure() не принимала запрос структуры в качестве аргумента; вы можете указать только один ключ или идентификатор задачи, и вы получите указанную задачу вместе со всеми ее дочерними элементами на всех уровнях. Как вы могли заметить, это использование в старом стиле можно интерпретировать как структурный запрос, но в соответствии с правилами S-JQL он будет возвращать только указанную задачу без ее дочерних элементов. Для обеспечения обратной совместимости любой структурный запрос в Структуре 2.4, состоящий из одного базового ограничения, ссылающегося на задачи по их ключам или идентификаторам, соответствует не только этим задачам, но и всем их дочерним элементам.
Это означает, что если вы использовали JQL в форме
КОД
issue in structure("My personal structure", TS-129)
то в структуре 2.4 этот запрос по-прежнему будет возвращать TS-129 и все его дочерние элементы на всех уровнях (при условии, что TS-129 добавлен в структуру).
Если вас кусает эта обратная совместимость (если, скажем, вам нужно проверить, добавлена ли задача в структуру), добавьте к запросу структуры задачу в:
КОД
issue in structure("My personal structure", "issue in TS-129")
Этот JQL будет соответствовать только TS-129, если он есть в структуре.
По материалам Atlassian JIRA Structure: structure() JQL function