op_list_projects
List OpenProject projects and subprojects with filters for name, parent, active status, or custom criteria. Return a flat list or hierarchical tree.
Instructions
Получить список проектов и подпроектов в OpenProject.
Поиск по имени (параметр name) выполняется по синонимам: передавайте
сразу несколько вариантов формулировки (строка или список). Пример:
name=["демо", "тестовый"]. Не добавляйте перевод/транслитерацию
автоматически — только если пользователь явно попросил.
Логика поиска по имени:
Ищем по имени проекта (фильтр
name ~) по очереди для каждого синонима, результаты объединяем (ИЛИ), дедуплицируем по id.Если по имени ничего не найдено и include_description_fallback=True — повторяем поиск по описанию проекта (фильтр
description ~).
Режимы работы (без учёта name):
Без parent_id и as_tree: плоский список всех видимых проектов.
С parent_id: подпроекты. direct_children_only=False (по умолчанию) — фильтр
ancestor, всё поддерево потомков любой глубины; direct_children_only=True — фильтрparent_id, только прямые дети.as_tree=True: запрашивает все видимые проекты и собирает дерево иерархии в памяти по _links.parent. При as_tree параметр name игнорируется (дерево строится по всем проектам).
Если совпадений по name нет, возвращается пустой список с подсказкой.
Args:
parent_id: ID проекта-родителя. Если задан — вернуть его подпроекты.
Игнорируется при as_tree=True.
direct_children_only: True → только прямые дети parent_id (фильтр
parent_id). False → всё поддерево потомков (фильтр ancestor).
active: Фильтр по активности: True → только активные, False → только
архивированные. None → без фильтра.
name: Имя проекта или список синонимов (строка либо список строк).
Поиск по части имени (оператор '~'), объединение ИЛИ между
синонимами. Пример: "демо" или ["демо", "тест"].
include_description_fallback: True (по умолчанию) — если поиск по
имени пуст, повторить по описанию. False — искать только по имени.
filters: Произвольный JSON-массив фильтров API, например
[{"public":{"operator":"=","values":["t"]}}]. Объединяется (AND)
с другими параметрами.
page_size: Размер страницы (по умолчанию 50). Игнорируется при as_tree
и при поиске по name.
offset: Номер страницы, начиная с 1. Игнорируется при as_tree и
при поиске по name.
sort_by: JSON-массив сортировки, например [["name","asc"]].
Допустимые поля: id, name, typeahead, created_at, public,
latest_activity_at, required_disk_space.
as_tree: True — вернуть дерево иерархии проектов вместо плоского
списка (игнорирует parent_id/name/пагинацию).
Returns: JSON со списком проектов (компактный вид) и сводкой. При поиске по синонимам добавляются поля searched_field, matched_terms, fallback_used. При as_tree — дерево {'projects': [<узел>]}. При пустом результате — список [] и note с подсказкой.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| active | No | ||
| offset | No | ||
| as_tree | No | ||
| filters | No | ||
| sort_by | No | ||
| page_size | No | ||
| parent_id | No | ||
| direct_children_only | No | ||
| include_description_fallback | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |