PHPackages                             bugrov/yandex-tracker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. bugrov/yandex-tracker

ActiveLibrary[API Development](/categories/api)

bugrov/yandex-tracker
=====================

PHP SDK для работы с Яндекс.Трекером

1614.6k↓23.6%51PHP

Since May 19Pushed 1y ago3 watchersCompare

[ Source](https://github.com/bugrov/yandex-tracker)[ Packagist](https://packagist.org/packages/bugrov/yandex-tracker)[ RSS](/packages/bugrov-yandex-tracker/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (1)

PHP SDK для работы с API Yandex.Tracker
=======================================

[](#php-sdk-для-работы-с-api-yandextracker)

Оглавление
----------

[](#оглавление)

1. [Установка](#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
2. [Получение токена](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D0%B0)
3. [Инициализация](#%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)
4. [Пример использования](#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
5. [Задачи](#%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    1. [Получить параметры задачи](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    2. [Редактировать задачу](#%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D1%83)
    3. [Создать задачу](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D1%83)
    4. [Перенести задачу в другую очередь](#%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%B5%D1%81%D1%82%D0%B8-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D1%83-%D0%B2-%D0%B4%D1%80%D1%83%D0%B3%D1%83%D1%8E-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C)
    5. [Узнать количество задач](#%D0%A3%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87)
    6. [Найти задачи](#%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    7. [Освободить ресурсы просмотра прокрутки](#%D0%9E%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D1%8B-%D0%BF%D1%80%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B0-%D0%BF%D1%80%D0%BE%D0%BA%D1%80%D1%83%D1%82%D0%BA%D0%B8)
    8. [Получить приоритеты](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D1%80%D0%B8%D0%BE%D1%80%D0%B8%D1%82%D0%B5%D1%82%D1%8B)
    9. [Получить переходы](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4%D1%8B)
    10. [Выполнить переход в статус](#%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D1%8C-%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4-%D0%B2-%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81)
    11. [Получить историю изменений задачи](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8E-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    12. [Связать задачи](#%D0%A1%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    13. [Получить связи задачи](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    14. [Удалить связь с задачей](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%81%D0%B2%D1%8F%D0%B7%D1%8C-%D1%81-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B5%D0%B9)
6. [Чеклисты](#%D0%A7%D0%B5%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D1%8B)
    1. [Создать чеклист или добавить в него пункты](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D1%87%D0%B5%D0%BA%D0%BB%D0%B8%D1%81%D1%82-%D0%B8%D0%BB%D0%B8-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B2-%D0%BD%D0%B5%D0%B3%D0%BE-%D0%BF%D1%83%D0%BD%D0%BA%D1%82%D1%8B)
    2. [Получить параметры чеклиста](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D1%87%D0%B5%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B0)
    3. [Редактировать чеклист](#%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%87%D0%B5%D0%BA%D0%BB%D0%B8%D1%81%D1%82)
    4. [Удалить чеклист](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%87%D0%B5%D0%BA%D0%BB%D0%B8%D1%81%D1%82)
7. [Проекты](#%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D1%8B)
    1. [Создать проект](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82)
    2. [Получить параметры проекта](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0)
    3. [Получить список всех проектов](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D1%81%D0%B5%D1%85-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D0%B2)
    4. [Получить список очередей проекта](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B5%D0%B9-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0)
    5. [Изменить проект](#%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82)
    6. [Удалить проект](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82)
8. [Комментарии](#%D0%9A%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8)
    1. [Добавить комментарий](#%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B9)
    2. [Получить комментарии к задаче](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8-%D0%BA-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B5)
    3. [Редактировать комментарий](#%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B9)
    4. [Удалить комментарий](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B9)
9. [Макросы](#%D0%9C%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D1%8B)
    1. [Получить макросы очереди](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D1%8B-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
    2. [Получить макрос](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81)
    3. [Создать макрос](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81)
    4. [Редактировать макрос](#%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81)
    5. [Удалить макрос](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81)
10. [Внешние связи](#%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B5-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8)
    1. [Получить список внешних приложений](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D1%85-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9)
    2. [Получить список внешних связей задачи](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D1%85-%D1%81%D0%B2%D1%8F%D0%B7%D0%B5%D0%B9-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    3. [Добавить внешнюю связь](#%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D1%8E%D1%8E-%D1%81%D0%B2%D1%8F%D0%B7%D1%8C)
    4. [Удалить внешнюю связь](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D1%8E%D1%8E-%D1%81%D0%B2%D1%8F%D0%B7%D1%8C)
11. [Прикрепленные файлы](#%D0%9F%D1%80%D0%B8%D0%BA%D1%80%D0%B5%D0%BF%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B)
    1. [Получить список прикрепленных файлов](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%BF%D1%80%D0%B8%D0%BA%D1%80%D0%B5%D0%BF%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D1%85-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2)
    2. [Скачать файл](#%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB)
    3. [Скачать миниатюру](#%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C-%D0%BC%D0%B8%D0%BD%D0%B8%D0%B0%D1%82%D1%8E%D1%80%D1%83)
    4. [Прикрепить файл](#%D0%9F%D1%80%D0%B8%D0%BA%D1%80%D0%B5%D0%BF%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB)
    5. [Загрузить временный файл](#%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%B8%D1%82%D1%8C-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%B0%D0%B9%D0%BB)
    6. [Удалить файл](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB)
12. [Очереди](#%D0%9E%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
    1. [Создать очередь](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C)
    2. [Получить параметры очереди](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
    3. [Получить список очередей](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B5%D0%B9)
    4. [Получить версии очереди](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
    5. [Получить обязательные поля очереди](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BE%D0%B1%D1%8F%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
    6. [Удалить очередь](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C)
    7. [Восстановить очередь](#%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C)
    8. [Удалить тег из очереди](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%82%D0%B5%D0%B3-%D0%B8%D0%B7-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
    9. [Создать автодействие](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B0%D0%B2%D1%82%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5)
    10. [Получить параметры автодействия](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B0%D0%B2%D1%82%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F)
    11. [Создать триггер](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D1%82%D1%80%D0%B8%D0%B3%D0%B3%D0%B5%D1%80)
    12. [Получить параметры триггера](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D1%82%D1%80%D0%B8%D0%B3%D0%B3%D0%B5%D1%80%D0%B0)
13. [Доски задач](#%D0%94%D0%BE%D1%81%D0%BA%D0%B8-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87)
    1. [Получить параметры всех досок](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B2%D1%81%D0%B5%D1%85-%D0%B4%D0%BE%D1%81%D0%BE%D0%BA)
    2. [Получить параметры доски](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B4%D0%BE%D1%81%D0%BA%D0%B8)
    3. [Создать доску](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B4%D0%BE%D1%81%D0%BA%D1%83)
    4. [Редактировать доску](#%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B4%D0%BE%D1%81%D0%BA%D1%83)
    5. [Удалить доску](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%B4%D0%BE%D1%81%D0%BA%D1%83)
    6. [Получить параметры всех колонок](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B2%D1%81%D0%B5%D1%85-%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA)
    7. [Получить параметры колонки](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BA%D0%B8)
    8. [Создать колонку](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BA%D1%83)
    9. [Редактировать колонку](#%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BA%D1%83)
    10. [Удалить колонку](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BA%D1%83)
    11. [Получить все спринты доски](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D1%81%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D1%8B-%D0%B4%D0%BE%D1%81%D0%BA%D0%B8)
    12. [Получить спринт](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D1%80%D0%B8%D0%BD%D1%82)
    13. [Создать спринт](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D1%81%D0%BF%D1%80%D0%B8%D0%BD%D1%82)
14. [Страны](#%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D1%8B)
    1. [Получить список стран](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D1%81%D1%82%D1%80%D0%B0%D0%BD)
15. [Компоненты](#%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B)
    1. [Получить список компонентов](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2)
16. [Импорт](#%D0%98%D0%BC%D0%BF%D0%BE%D1%80%D1%82)
    1. [Импортировать задачу](#%D0%98%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D1%83)
    2. [Прикрепить файл к задаче](#%D0%9F%D1%80%D0%B8%D0%BA%D1%80%D0%B5%D0%BF%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB-%D0%BA-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B5)
    3. [Прикрепить файл к комментарию](#%D0%9F%D1%80%D0%B8%D0%BA%D1%80%D0%B5%D0%BF%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB-%D0%BA-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D1%8E)
    4. [Импортировать комментарии](#%D0%98%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8)
    5. [Импортировать связи](#%D0%98%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8)
17. [Пакетные операции](#%D0%9F%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8)
    1. [Массовый перенос задач в другую очередь](#%D0%9C%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D1%8B%D0%B9-%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87-%D0%B2-%D0%B4%D1%80%D1%83%D0%B3%D1%83%D1%8E-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C)
    2. [Массовое редактирование задач](#%D0%9C%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%BE%D0%B5-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87)
    3. [Массовое изменение статуса задач](#%D0%9C%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%BE%D0%B5-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%B0-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87)
18. [Учет времени](#%D0%A3%D1%87%D0%B5%D1%82-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8)
    1. [Добавить запись о затраченном времени](#%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D0%BE-%D0%B7%D0%B0%D1%82%D1%80%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8)
    2. [Редактировать запись о затраченном времени](#%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D0%BE-%D0%B7%D0%B0%D1%82%D1%80%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8)
    3. [Удалить запись о затраченном времени](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D0%BE-%D0%B7%D0%B0%D1%82%D1%80%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8)
    4. [Получить все записи о затраченном времени по задаче](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D0%BE-%D0%B7%D0%B0%D1%82%D1%80%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8-%D0%BF%D0%BE-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B5)
    5. [Отобрать записи о затраченном времени по параметрам](#%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D0%BE-%D0%B7%D0%B0%D1%82%D1%80%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8-%D0%BF%D0%BE-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B0%D0%BC)
19. [Поля задачи](#%D0%9F%D0%BE%D0%BB%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    1. [Получить глобальные поля](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B3%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8F)
    2. [Получить список всех категорий полей](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D1%81%D0%B5%D1%85-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9)
    3. [Создать поле задачи](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%BF%D0%BE%D0%BB%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    4. [Получить параметры поля задачи](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    5. [Изменить название поля задачи](#%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    6. [Изменить возможные значения поля задачи](#%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    7. [Создать категорию поля задачи](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8E-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
    8. [Создать локальное поле очереди](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
    9. [Получить локальные поля очереди](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
    10. [Получить информацию о локальном поле очереди](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8E-%D0%BE-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC-%D0%BF%D0%BE%D0%BB%D0%B5-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
    11. [Редактировать локальное поле очереди](#%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8)
20. [Пользователи](#%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B8)
    1. [Получить информацию о текущем пользователе](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8E-%D0%BE-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%BC-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5)
    2. [Получить информацию о пользователях](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8E-%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D1%85)
    3. [Получить информацию о пользователе](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8E-%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5)
21. [Встроенные хелперы](#%D0%92%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%85%D0%B5%D0%BB%D0%BF%D0%B5%D1%80%D1%8B)
    1. [TimeManager](#TimeManager)
    2. [QueryFilter](#QueryFilter)

Установка
---------

[](#установка)

Поддерживается установка с помощью [менеджера пакетов](https://getcomposer.org).

```
$ composer require bugrov/yandex-tracker dev-master

```

Или

```
$ php composer.phar require bugrov/yandex-tracker dev-master

```

Получение токена
----------------

[](#получение-токена)

1. Перейти на
2. Нажать `Зарегистрировать новое приложение`
3. Заполнить необходимые поля
4. В разделе `Платформы` выбрать `Веб-сервисы` и нажать `Подставить URL для разработки`
5. В блоке `Какие данные вам нужны?` откройте `Трекер (tracker)` и выберите опции: `Запись в трекер (tracker:write)` и `Чтение из трекера (tracker:read)`
6. После сохранения скопируйте ИД приложения и подставьте в URL для получения токена:

```
https://oauth.yandex.ru/authorize?response_type=token&client_id=

```

7. Узнайте идентификатор организации, перейдя на [страницу настроек Tracker](https://tracker.yandex.ru/settings). Идентификатор указан в поле ID организации для API. Он пригодится при инициализации.

Инициализация
-------------

[](#инициализация)

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');
```

Пример использования
--------------------

[](#пример-использования)

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    // получить информацию о пользователе
    $req = $api->user()
        ->get('1234567890')
        ->send();

    // получить тело ответа
    var_dump($req->getResponse());
    // получить HTTP-код ответа
    var_dump($req->getStatusCode());
    // получить определенное поле из ответа
    var_dump($req->getField('email'));
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

SDK в случае успеха возвращает объект `\BugrovWeb\YandexTracker\Api\ClientResponse`.

Методы объекта `ClientResponse`:

```
  public function getResponse()
```

Возвращает массив с телом ответа

```
  public function getField(string $fieldName)
```

Возвращает определенное поле из тела ответа по ключу

```
  public function getHeaders(): array
```

Возвращает массив заголовков ответа

```
  public function getHeader(string $header)
```

Возвращает определенный заголовок по ключу

```
  public function getStatusCode(): int
```

Возвращает HTTP-код ответа

---

При ошибочном вызове SDK возвращает исключение в зависимости от ситуации.

Работа с Yandex.Tracker
=======================

[](#работа-с-yandextracker)

Все методы, описанные ниже в блоках `Доступные методы`, вызываются цепочкой (т.н. `Method Chaining`):

```
$api->issue()->edit('TEST-1')->description('Simple Desc')->parent(['key' => 'ORG-1'])->send();
```

Метод `send();` замыкает цепочку вызовов, отправляя запрос к API.

Задачи
------

[](#задачи)

### Получить параметры задачи

[](#получить-параметры-задачи)

Запрос позволяет получить информацию о задаче.

```
$api->issue()->get(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function expand(string $field)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответСтрокаНетВозможные значения `$field`:

- `Issue::FIELD_TRANSITIONS` — переходы по жизненному циклу
- `Issue::FIELD_ATTACHMENTS` — вложения

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->get('TEST-1')
        ->expand(\BugrovWeb\YandexTracker\Api\Issue::FIELD_ATTACHMENTS)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Редактировать задачу

[](#редактировать-задачу)

Запрос позволяет внести изменения в задачу.

```
$api->issue()->edit(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function version(int $versionNumber)
```

ОписаниеТип данныхОбязательныйВерсия задачи. Изменения вносятся только в текущую версию задачи.ЧислоНет```
public function summary(string $name)
```

ОписаниеТип данныхОбязательныйНазвание задачи.СтрокаНет```
public function parent(string|array $parent)
```

ОписаниеТип данныхОбязательныйРодительская задача.Массив или строкаНетПоля массива `$parent`:

- `id` - Идентификатор родительской задачи. Строка
- `key` - Ключ родительской задачи. Строка

```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание задачи.СтрокаНет```
public function sprint(array $sprintArray)
```

ОписаниеТип данныхОбязательныйБлок с информацией о спринтах.Массив массивов или строк.НетПоля массива `$sprintArray`:

- `id` - Идентификатор спринта. Информацию о спринте можно получить при помощи [запроса](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D1%81%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D1%8B-%D0%B4%D0%BE%D1%81%D0%BA%D0%B8)

```
public function type(array|string|int $issueType)
```

ОписаниеТип данныхОбязательныйТип задачи.Массив, строка (если передается ключ типа задачи) или число (если передается идентификатор типа задачи)НетПоля массива `$issueType`:

- `id` - Идентификатор типа задачи. Строка
- `key` - Ключ типа задачи. Строка

```
public function priority(array|string|int $priority)
```

ОписаниеТип данныхОбязательныйПриоритет задачи.Массив, строка (если передается ключ приоритета) или число (если передается идентификатор приоритета)НетПоля массива `$priority`:

- `id` - Идентификатор приоритета. Строка
- `key` - Ключ приоритета. Строка

```
public function followers(array $followersArray)
```

ОписаниеТип данныхОбязательныйИдентификаторы или логины наблюдателей задачи.Массив массивов или строкНетПоля массива `$followersArray`:

- `id` - Идентификатор сотрудника. Строка

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->edit('TEST-2')
        ->description('Simple Desc')
        ->parent(['key' => 'TEST-1'])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать задачу

[](#создать-задачу)

Запрос позволяет создать задачу.

```
$api->issue()->create()
```

---

**Доступные методы**

```
public function summary(string $name)
```

ОписаниеТип данныхОбязательныйНазвание задачи.СтрокаДа```
public function queue(array|string|int $queue)
```

ОписаниеТип данныхОбязательныйОчередь, в которой нужно создать задачу.Массив, строка (если передается ключ очереди), число (если передается идентификатор очереди)ДаПоля массива `$queue`:

- `id` - Идентификатор очереди. Строка
- `key` - Ключ очереди. Строка

```
public function parent(string|array $parent)
```

ОписаниеТип данныхОбязательныйРодительская задача.Массив или строкаНетПоля массива `parent`:

- `id` - Идентификатор родительской задачи. Строка
- `key` - Ключ родительской задачи. Строка

```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание задачи.СтрокаНет```
public function sprint(array $sprintArray)
```

ОписаниеТип данныхОбязательныйБлок с информацией о спринтах.Массив массивов или строкНет```
public function type(array|string|int $issueType)
```

ОписаниеТип данныхОбязательныйТип задачи.Массив, строка (если передается ключ типа задачи), число (если передается идентификатор типа задачи)НетПоля массива `$issueType`:

- `id` - Идентификатор типа задачи. Строка
- `key` - Ключ типа задачи. Строка

```
public function priority(array|string|int $priority)
```

ОписаниеТип данныхОбязательныйПриоритет задачи.Массив, строка (если передается ключ приоритета), число (если передается идентификатор приоритета)НетПоля массива `$priority`:

- `id` - Идентификатор приоритета. Строка
- `key` - Ключ приоритета. Строка

```
public function followers(array $followersArray)
```

ОписаниеТип данныхОбязательныйИдентификаторы или логины наблюдателей задачи.Массив массивов или строкНетПоля массива `$followersArray`:

- `id` - Идентификатор сотрудника. Строка

```
public function assignee(array|string $assignee)
```

ОписаниеТип данныхОбязательныйИдентификатор или логин исполнителя задачи.Массив массивов или строк, строкаНетПоля массива `$assignee`:

- `id` - Идентификатор сотрудника. Строка

```
public function unique(string $uniqueField)
```

ОписаниеТип данныхОбязательныйПоле с уникальным значением, позволяющее предотвратить создание дубликатов задач.СтрокаНет```
public function attachmentIds(array|string[] $attachments)
```

ОписаниеТип данныхОбязательныйСписок [идентификаторов вложений](#%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%B8%D1%82%D1%8C-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%B0%D0%B9%D0%BB).Массив строкНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->create()
        ->queue('TEST')
        ->summary('Тестовая задача')
        ->description('Тестовая задача')
        ->type('task')
        ->assignee('1707400915')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Перенести задачу в другую очередь

[](#перенести-задачу-в-другую-очередь)

Запрос позволяет переместить задачу в другую очередь.

```
$api->issue()->move(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function queue(string $queueId)
```

ОписаниеТип данныхОбязательныйКлюч очереди, в которую необходимо перенести задачу.СтрокаДа```
public function notify(bool $notify)
```

ОписаниеТип данныхОбязательныйПризнак уведомления об изменении задачи.ЛогическийНет- `true` - (по умолчанию) пользователи, указанные в полях задачи, получат уведомления
- `false` - пользователи не получат уведомления

```
public function notifyAuthor(bool $notify)
```

ОписаниеТип данныхОбязательныйПризнак уведомления автора задачиЛогическийНет- `true` - автор получит уведомление
- `false` - (по умолчанию) – автор не получит уведомление

```
public function moveAllFields(bool $move)
```

ОписаниеТип данныхОбязательныйПеренос версий, компонентов и проектов задачи в новую очередьЛогическийНет- `true` - перенести, если в новой очереди существуют соответствующие версии, компоненты, проекты
- `false` - (по умолчанию) – очистить версии, компоненты, проекты

```
public function initialStatus(bool $clear)
```

ОписаниеТип данныхОбязательныйСброс статуса задачи в начальное значениеЛогическийНет- `true` - статус будет сброшен
- `false` - (по умолчанию) – статус останется без изменений

```
public function expand(string $field)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответЛогическийНетВозможные значения `$field`:

- `Issue::FIELD_ATTACHMENTS` — вложения
- `Issue::FIELD_COMMENTS` — комментарии
- `Issue::FIELD_WORKFLOW` — воркфлоу задачи
- `Issue::FIELD_TRANSITIONS` — переходы по жизненному циклу

```
public function summary(string $name)
```

ОписаниеТип данныхОбязательныйНазвание задачи.СтрокаНет```
public function parent(string|array $parent)
```

ОписаниеТип данныхОбязательныйРодительская задача.Массив или строкаНетПоля массива `$parent`:

- `id` - Идентификатор родительской задачи. Строка
- `key` - Ключ родительской задачи. Строка

```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание задачи.СтрокаНет```
public function sprint(array $sprintArray)
```

ОписаниеТип данныхОбязательныйБлок с информацией о спринтах.Массив массивов или строк.НетПоля массива `$sprintArray`:

- `id` - Идентификатор спринта. Информацию о спринте можно получить при помощи [запроса](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D1%81%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D1%8B-%D0%B4%D0%BE%D1%81%D0%BA%D0%B8)

```
public function type(array|string|int $issueType)
```

ОписаниеТип данныхОбязательныйТип задачи.Массив, строка (если передается ключ типа задачи) или число (если передается идентификатор типа задачи)НетПоля массива `$issueType`:

- `id` - Идентификатор типа задачи. Строка
- `key` - Ключ типа задачи. Строка

```
public function priority(array|string|int $priority)
```

ОписаниеТип данныхОбязательныйПриоритет задачи.Массив, строка (если передается ключ приоритета) или число (если передается идентификатор приоритета)НетПоля массива `$priority`:

- `id` - Идентификатор приоритета. Строка
- `key` - Ключ приоритета. Строка

```
public function followers(array $followersArray)
```

ОписаниеТип данныхОбязательныйИдентификаторы или логины наблюдателей задачи.Массив массивов или строкНетПоля массива `$followersArray`:

- `id` - Идентификатор сотрудника. Строка

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->move('TEST-2')
        ->queue('ORG')
        ->notify(true)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Узнать количество задач

[](#узнать-количество-задач)

Запрос позволяет узнать количество задач, удовлетворяющих условиям вашего запроса.

```
$api->issue()->getCount()
```

---

**Доступные методы**

```
public function filter(array $filter)
```

ОписаниеТип данныхОбязательныйПараметры фильтрации задач (Ключ =&gt; Значение любого поля для фильтрации).МассивНет```
public function query(string $filter)
```

ОписаниеТип данныхОбязательныйФильтр на [языке запросов](https://cloud.yandex.ru/docs/tracker/user/query-filter).СтрокаНетВы можете использовать [конструктор](#QueryFilter) для создания query-запроса на языке запросов Яндекс.Трекера.

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->getCount()
        ->query('queue: TEST')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Найти задачи

[](#найти-задачи)

Запрос позволяет получить список задач, удовлетворяющих заданному критерию.

```
$api->issue()->search()
```

---

**Доступные методы**

```
public function order(string $field)
```

ОписаниеТип данныхОбязательныйНаправление и поле сортировки задач. Указывается в формате +/-&lt;название поля&gt;.СтрокаНет```
public function expand(string $field)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответСтрокаНетВозможные значения `$field`:

- `Issue::FIELD_TRANSITIONS` — переходы по жизненному циклу
- `Issue::FIELD_ATTACHMENTS` — вложения

```
public function perPage(int $count)
```

ОписаниеТип данныхОбязательныйКоличество задач на странице ответа.ЧислоНет```
public function page(int $pageNumber)
```

ОписаниеТип данныхОбязательныйНомер страницы ответа.ЧислоНет```
public function scrollType(string $scrollType)
```

ОписаниеТип данныхОбязательныйТип прокрутки.СтрокаНетДопустимые значения `$scrollType`:

- `Issue::SCROLL_TYPE_SORTED` - используется указанная в запросе сортировка
- `Issue::SCROLL_TYPE_UNSORTED` - сортировка не используется

```
public function perScroll(int $count)
```

ОписаниеТип данныхОбязательныйМаксимальное количество задач в ответе.ЧислоНет```
public function scrollTTLMillis(int $milliseconds)
```

ОписаниеТип данныхОбязательныйВремя жизни контекста прокрутки и токена `scrollToken` в миллисекундахЧислоНет```
public function scrollId(string $scrollId)
```

ОписаниеТип данныхОбязательныйИдентификатор страницы (из заголовка `X-Scroll-Id`).СтрокаНет```
public function scrollToken(string $scrollToken)
```

ОписаниеТип данныхОбязательныйТокен, удостоверяющий принадлежность запроса текущему пользователю (из заголовка `X-Scroll-Token`).СтрокаНет```
public function filter(array $filter)
```

ОписаниеТип данныхОбязательныйПараметры фильтрации задач (Ключ =&gt; Значение любого поля для фильтрации).МассивНет```
public function query(string $filter)
```

ОписаниеТип данныхОбязательныйФильтр на [языке запросов](https://cloud.yandex.ru/docs/tracker/user/query-filter).СтрокаНетВы можете использовать [конструктор](#QueryFilter) для создания query-запроса на языке запросов Яндекс.Трекера.

```
public function keys(string $issueKeys)
```

ОписаниеТип данныхОбязательныйСписок ключей задач.СтрокаНет```
public function queue(string $queue)
```

ОписаниеТип данныхОбязательныйОчередь.СтрокаНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->search()
        ->filter(['queue' => 'TEST'])
        ->order('+createdAt')
        ->scrollType('sorted')
        ->perScroll(2)
        ->scrollTTLMillis(10000)
        ->send();
    var_dump($req->getResponse());
    $xScrollId = $req->getHeader('X-Scroll-Id');
    $xScrollToken = $req->getHeader('X-Scroll-Token');
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Освободить ресурсы просмотра прокрутки

[](#освободить-ресурсы-просмотра-прокрутки)

Запрос позволяет освободить ресурсы после просмотра слепка поиска в [запросе](#%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)

```
$api->issue()->clearSearch(array $tokens)
```

`$tokens` - Массив вида `scrollId` =&gt; `scrollToken`, где:

- `scrollId` - Идентификатор страницы результатов прокрутки. Значение идентификатора указывается из заголовка `X-Scroll-Id` ответа на [запрос](#%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)
- `scrollToken` - Токен, удостоверяющий принадлежность запроса текущему пользователю. Значение идентификатора указывается из заголовка X-Scroll-Token ответа на [запрос](#%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8)

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->clearSearch([$xScrollId => $xScrollToken])
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить приоритеты

[](#получить-приоритеты)

Запрос позволяет получить список приоритетов для задачи.

```
$api->issue()->getPriorities()
```

---

**Доступные методы**

```
public function localized(bool $localized)
```

ОписаниеТип данныхОбязательныйПризнак наличия переводов в ответе.ЛогическийНетДопустимые значения `$localized`:

- `true` - В ответе содержатся описания приоритетов только на языке пользователя. Значение по умолчанию.
- `false` - В ответе содержатся описания приоритетов на всех языках.

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->getPriorities()
        ->localized(false)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить переходы

[](#получить-переходы)

Запрос позволяет получить список возможных переходов задачи. Задача выбирается при указании идентификатора или ключа задачи.

```
$api->issue()->getTransitions(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->getTransitions('TEST-1')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Выполнить переход в статус

[](#выполнить-переход-в-статус)

Запрос позволяет перевести задачу в новый статус.

```
$api->issue()->newTransition(string $issueId, string $transitionId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка `$transitionId` - Идентификатор перехода. Строка

---

**Доступные методы**

```
public function comment(string $text)
```

ОписаниеТип данныхОбязательныйКомментарий к задаче.СтрокаДа```
public function ($key)
```

ОписаниеТип данныхОбязательныйПоле задачи, доступное для изменения при переходе: Зависит от типа параметраНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->newTransition('TEST-1', 'resolve')
        ->comment('Переход в новый статус')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить историю изменений задачи

[](#получить-историю-изменений-задачи)

Запрос позволяет получить историю изменений задачи.

```
$api->issue()->changelog(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function id(string $changeId)
```

ОписаниеТип данныхОбязательныйИдентификатор изменения, за которым следуют запрашиваемые изменения.СтрокаНет```
public function perPage(int $count)
```

ОписаниеТип данныхОбязательныйКоличество изменений на странице.ЧислоНет```
public function field(string $changeParamId)
```

ОписаниеТип данныхОбязательныйИдентификатор параметра изменений.СтрокаНет```
public function type(string $key)
```

ОписаниеТип данныхОбязательныйКлюч типа изменения.СтрокаНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->changelog('TEST-1')
        ->type('IssueMoved')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Связать задачи

[](#связать-задачи)

Запрос позволяет создать связь между двумя задачами.

```
$api->issue()->link(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function relationship(string $type)
```

ОписаниеТип данныхОбязательныйТип связи между задачами.СтрокаДаДопустимые значения `$type`:

- `Issue::REL_RELATES` - простая связь
- `Issue::REL_IS_DEPENDENT_BY` - текущая задача является блокером
- `Issue::REL_DEPENDS_ON` - текущая задача зависит от связываемой
- `Issue::REL_IS_SUBTASK_FOR` - текущая задача является подзадачей связываемой
- `Issue::REL_IS_PARENT_TASK_FOR` - текущая задача является родительской для связываемой задачи
- `Issue::REL_DUPLICATES` - текущая задача дублирует связываемую
- `Issue::REL_IS_DUPLICATED_BY` - связываемая задача дублирует текущую
- `Issue::REL_IS_EPIC_OF` - текущая задача является эпиком связываемой. Связь такого типа можно установить только для задач типа "Эпик"
- `Issue::REL_HAS_EPIC` - связываемая задача является эпиком текущей. Связь такого типа можно установить только для задач типа "Эпик"

```
public function issue(string $issueId)
```

ОписаниеТип данныхОбязательныйИдентификатор или ключ связываемой задачи.СтрокаДа```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->link('TEST-2')
        ->relationship(\BugrovWeb\YandexTracker\Api\Issue::REL_IS_PARENT_TASK_FOR)
        ->issue('TEST-3')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить связи задачи

[](#получить-связи-задачи)

Запрос позволяет получить информацию о связях задачи.

```
$api->issue()->getLinks(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->getLinks('TEST-1')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить связь с задачей

[](#удалить-связь-с-задачей)

Запрос позволяет удалить связь задачи с другой задачей.

```
$api->issue()->deleteLink(string $issueId, int $linkId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

`$linkId` - [Идентификатор связи с другой задачей](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8). Число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->issue()
        ->deleteLink('TEST-1', 1)
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Чеклисты
--------

[](#чеклисты)

### Создать чеклист или добавить в него пункты

[](#создать-чеклист-или-добавить-в-него-пункты)

```
$api->checklist()->add(string $issueId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

---

**Доступные методы**

```
public function text(string $text)
```

ОписаниеТип данныхОбязательныйТекст пункта.СтрокаДа```
public function checked(bool $isChecked)
```

ОписаниеТип данныхОбязательныйОтметка о выполнении пункта.ЛогическийНетДопустимые значения `$isChecked`:

- `true` - пункт отмечен как выполненный
- `false` - пункт не отмечен как выполненный

```
public function assignee(string $assignee)
```

ОписаниеТип данныхОбязательныйИдентификатор или логин пользователя, который является исполнителем пункта чеклиста.СтрокаНет```
public function deadline(array $deadlineArray)
```

ОписаниеТип данныхОбязательныйДедлайн пункта чеклиста.МассивНетПоля массива `$deadlineArray`:

- `date` - Дата дедлайна в формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`. Дата
- `deadlineType` - Тип данных параметра `deadline`. Строка

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->checklist()
        ->add('TEST-1')
        ->text('Почистить зубы')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить параметры чеклиста

[](#получить-параметры-чеклиста)

Запрос позволяет получить параметры чеклиста в задаче.

```
$api->checklist()->get(string $issueId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->checklist()
        ->get('TEST-1')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Редактировать чеклист

[](#редактировать-чеклист)

Запрос позволяет редактировать пункты чеклиста в задаче.

```
$api->checklist()->edit(string $issueId, string $checklistId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

`$checklistId` - Идентификатор пункта чеклиста. Строка

---

**Доступные методы**

```
public function text(string $text)
```

ОписаниеТип данныхОбязательныйТекст пункта чеклиста.СтрокаДа```
public function checked(bool $isChecked)
```

ОписаниеТип данныхОбязательныйПризнак выполнения пункта чеклиста.ЛогическийНетДопустимые значения `$isChecked`:

- `true` - пункт отмечен как выполненный
- `false` - пункт не отмечен как выполненный

```
public function assignee(string $assignee)
```

ОписаниеТип данныхОбязательныйИдентификатор или логин пользователя, который является исполнителем пункта чеклиста.СтрокаНет```
public function deadline(array $deadlineArray)
```

ОписаниеТип данныхОбязательныйДедлайн пункта чеклиста.МассивНетПоля массива `$deadlineArray`:

- `date` - Дата дедлайна в формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`. Дата
- `deadlineType` - Тип данных параметра `deadline`. Строка

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->checklist()
        ->edit('TEST-1', '6365f6bcb399bd4dd2929f19')
        ->text('Умыться')
        ->checked(true)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить чеклист

[](#удалить-чеклист)

Запрос позволяет удалить чеклист из задачи.

```
$api->checklist()->delete(string $issueId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->checklist()
        ->delete('TEST-1')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Проекты
-------

[](#проекты)

### Создать проект

[](#создать-проект)

Запрос позволяет создать проект.

```
$api->project()->create()
```

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание проекта.СтрокаДа```
public function queues(string $issueQueue)
```

ОписаниеТип данныхОбязательныйЗадачи, которые планируется включать в проект.СтрокаДа```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание проекта.СтрокаНет```
public function lead(string|int $lead)
```

ОписаниеТип данныхОбязательныйИдентификатор или логин исполнителя проекта.Строка/ЧислоНет```
public function status(string $stage)
```

ОписаниеТип данныхОбязательныйЭтап, на котором находится проект.СтрокаНетДопустимые значения `$stage`:

- `Project::STAGE_DRAFT` - Черновик
- `Project::STAGE_IN_PROGRESS` - В работе
- `Project::STAGE_LAUNCHED` - Запущен
- `Project::STAGE_POSTPONED` - Отложен

```
public function startDate(string $date)
```

ОписаниеТип данныхОбязательныйДата начала проекта в формате `YYYY-MM-DD`.СтрокаНет```
public function endDate(string $date)
```

ОписаниеТип данныхОбязательныйДата завершения проекта в формате `YYYY-MM-DD`.СтрокаНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->project()
        ->create()
        ->name('ORG проект')
        ->queues('ORG')
        ->status(\BugrovWeb\YandexTracker\Api\Project::STAGE_LAUNCHED)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить параметры проекта

[](#получить-параметры-проекта)

Запрос позволяет получить информацию о проекте.

```
$api->project()->get(int $projectId)
```

`$projectId` - Идентификатор проекта. Число

---

**Доступные методы**

```
public function expand(string $field)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответ.СтрокаНетВозможные значения `$field`:

- `Project::FIELD_QUEUES` - очереди проекта

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->project()
        ->get(1)
        ->expand(\BugrovWeb\YandexTracker\Api\Project::FIELD_QUEUES)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить список всех проектов

[](#получить-список-всех-проектов)

Запрос позволяет получить список всех проектов организации.

```
$api->project()->getAll()
```

---

**Доступные методы**

```
public function expand(string $field)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответ.СтрокаНетВозможные значения `$field`:

- `Project::FIELD_QUEUES` - очереди проекта

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->project()
        ->getAll()
        ->expand(\BugrovWeb\YandexTracker\Api\Project::FIELD_QUEUES)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить список очередей проекта

[](#получить-список-очередей-проекта)

Запрос позволяет получить список очередей, задачи которых попадают в проект.

```
$api->project()->getQueues(int $projectId)
```

`$projectId` - Идентификатор проекта. Число

---

**Доступные методы**

```
public function expand(string $field)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответ.СтрокаНетВозможные значения `$field`:

- `Project::FIELD_ALL` - все параметры очереди
- `Project::FIELD_PROJECTS` - все проекты организации
- `Project::FIELD_COMPONENTS` - компоненты очереди
- `Project::FIELD_VERSIONS` - версии очереди
- `Project::FIELD_TYPES` - типы задач очереди
- `Project::FIELD_TEAM` - участники команды очереди
- `Project::FIELD_WORKFLOWS` - жизненные циклы очереди и их типы задач
- `Project::FIELD_FIELDS` - обязательные поля очереди
- `Project::FIELD_NOTIFICATIONS` - поля в уведомлениях о задачах очереди
- `Project::FIELD_ISSUE_CONFIG` - настройки задач очереди
- `Project::FIELD_ENABLED_FEATURES` - настройки интеграций очереди
- `Project::FIELD_SIGNATURE_SETTINGS` - информация о почтовом ящике очереди: адрес, псевдоним и подпись

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->project()
        ->getQueues(1)
        ->expand(\BugrovWeb\YandexTracker\Api\Project::FIELD_PROJECTS)
        ->send();
    dump($req->getResponse());
} catch (\Exception $exception) {
    dump($exception->getMessage());
}
```

### Изменить проект

[](#изменить-проект)

Запрос позволяет обновить информацию о проекте.

```
$api->project()->update(int $projectId)
```

`$projectId` - Идентификатор проекта. Число

---

**Доступные методы**

```
public function version(int $versionNumber)
```

ОписаниеТип данныхОбязательныйВерсия проекта. Изменения вносятся только в текущую версию проекта.ЧислоДа```
public function expand(string $field)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответ.СтрокаНетВозможные значения `$field`:

- `Project::FIELD_QUEUES` - очереди проекта

```
public function queues(string $issueQueue)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответ.СтрокаНет```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание проекта.СтрокаНет```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание проекта.СтрокаНет```
public function lead(string|int $lead)
```

ОписаниеТип данныхОбязательныйИдентификатор или логин исполнителя проекта.Строка/ЧислоНет```
public function status(string $stage)
```

ОписаниеТип данныхОбязательныйЭтап, на котором находится проект.СтрокаНетДопустимые значения `$stage`:

- `Project::STAGE_DRAFT` - Черновик
- `Project::STAGE_IN_PROGRESS` - В работе
- `Project::STAGE_LAUNCHED` - Запущен
- `Project::STAGE_POSTPONED` - Отложен

```
public function startDate(string $date)
```

ОписаниеТип данныхОбязательныйДата начала проекта в формате `YYYY-MM-DD`.СтрокаНет```
public function endDate(string $date)
```

ОписаниеТип данныхОбязательныйДата завершения проекта в формате `YYYY-MM-DD`.СтрокаНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->project()
        ->update(1)
        ->version(2)
        ->name('ORG PROJECT 1')
        ->expand(\BugrovWeb\YandexTracker\Api\Project::FIELD_QUEUES)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить проект

[](#удалить-проект)

Запрос позволяет удалить проект.

```
$api->project()->delete(int $projectId)
```

`$projectId` - Идентификатор проекта. Число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->project()
        ->delete(1)
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Комментарии
-----------

[](#комментарии)

### Добавить комментарий

[](#добавить-комментарий)

```
$api->comment()->add(string $issueId)
```

`$projectId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function isAddToFollowers(bool $add)
```

ОписаниеТип данныхОбязательныйДобавить автора комментария в наблюдатели (по умолчанию true)ЛогическийНет```
public function text(string $comment)
```

ОписаниеТип данныхОбязательныйКомментарий к задаче.СтрокаДа```
public function attachmentIds(array|string[] $attachments)
```

ОписаниеТип данныхОбязательныйСписок [идентификаторов вложений](#%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%B8%D1%82%D1%8C-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%B0%D0%B9%D0%BB).Массив строкНет```
public function summonees(array $summonees)
```

ОписаниеТип данныхОбязательныйИдентификаторы или логины призванных пользователей.Массив масивов или строкНет```
public function maillistSummonees(array|string[] $mailList)
```

ОписаниеТип данныхОбязательныйСписок рассылок, призванных в комментарии.Массив строкНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->comment()
        ->add('TEST-1')
        ->text('Тестовый комментарий')
        ->attachmentIds(['1', '2'])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить комментарии к задаче

[](#получить-комментарии-к-задаче)

Запрос позволяет получить список комментариев к задаче.

```
$api->comment()->get(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->comment()
        ->get('TEST-1')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Редактировать комментарий

[](#редактировать-комментарий)

Запрос позволяет редактировать комментарий.

```
$api->comment()->edit(string $issueId, string|int $commentId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

`$commentId` - [Уникальный идентификатор комментария](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8-%D0%BA-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B5) в числовом формате (id) или формате строки (longId). Строка или число

---

**Доступные методы**

```
public function text(string $comment)
```

ОписаниеТип данныхОбязательныйСкорректированный комментарий к задаче.СтрокаДа```
public function attachmentIds(array|string[] $attachments)
```

ОписаниеТип данныхОбязательныйСписок [идентификаторов вложений](#%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%B8%D1%82%D1%8C-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%B0%D0%B9%D0%BB).Массив строкНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->comment()
        ->edit('TEST-1', 1)
        ->text('Первый коммент')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить комментарий

[](#удалить-комментарий)

Запрос позволяет удалить комментарий к задаче.

```
$api->comment()->delete(string $issueId, string|int $commentId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

`$commentId` - [Уникальный идентификатор комментария](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8-%D0%BA-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B5) в числовом формате (id) или формате строки (longId). Строка или число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->comment()
        ->delete('TEST-1', 1)
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Макросы
-------

[](#макросы)

### Получить макросы очереди

[](#получить-макросы-очереди)

Запрос позволяет получить параметры всех макросов очереди.

```
$api->macros()->getAll(string $queueId)
```

`$issueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->macros()
        ->getAll('TEST')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить макрос

[](#получить-макрос)

Запрос позволяет получить параметры макроса.

```
$api->macros()->get(string $queueId, string $macrosId)
```

`$issueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка

`$macrosId` - Идентификатор макроса. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->macros()
        ->get('TEST', '1')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать макрос

[](#создать-макрос)

Запрос позволяет создать макрос.

```
$api->macros()->post(string $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание макроса.СтрокаДа```
public function body(string|array $body)
```

ОписаниеТип данныхОбязательныйСообщение, которое будет создано при выполнении макроса. Используется [специальный формат](https://cloud.yandex.ru/docs/tracker/common-format#text-format)Строка/МассивНет```
public function fieldChanges(array $issueFields)
```

ОписаниеТип данныхОбязательныйМассив с информацией о полях задачи, изменения которых запустит макрос.МассивНетПоля массива `$issueFields`:

- `field` - Идентификатор поля задачи. [Полный список полей задачи](https://tracker.yandex.ru/admin/fields). Строка
- `value` - Значение поля задачи. Строка

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->macros()
        ->post('TEST')
        ->name('Add tag TEST')
        ->body("{% note info %}\n\nДобавится тэг TEST\n\n{% endnote %}")
        ->fieldChanges(['field' => 'tags', 'value' => 'TEST'])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Редактировать макрос

[](#редактировать-макрос)

Запрос позволяет изменить параметры макроса.

```
$api->macros()->patch(string $queueId, string $macrosId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка

`$macrosId` - Идентификатор макроса. Строка

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание макроса.СтрокаДа```
public function body(string|array $body)
```

ОписаниеТип данныхОбязательныйСообщение, которое будет создано при выполнении макроса. Используется [специальный формат](https://cloud.yandex.ru/docs/tracker/common-format#text-format)Строка/МассивНет```
public function fieldChanges(array $issueFields)
```

ОписаниеТип данныхОбязательныйМассив с информацией о новых настройках действий макроса. [Подробнее](https://cloud.yandex.ru/docs/tracker/patch-macros#fieldChanges)МассивНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->macros()
        ->patch('TEST', 1)
        ->name('Add tag TEST2')
        ->fieldChanges([
            'replace' => [
                'target' => [
                    'field' => 'tags',
                    'value' => 'TEST',
                ],
                'replacement' => [
                    'field' => 'tags',
                    'value' => 'TEST2',
                ]
            ]
        ])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить макрос

[](#удалить-макрос)

Запрос позволяет удалить макрос.

```
$api->macros()->delete(string $queueId, string $macrosId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка

`$macrosId` - Идентификатор макроса. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->macros()
        ->delete('TEST', 1)
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Внешние связи
-------------

[](#внешние-связи)

### Получить список внешних приложений

[](#получить-список-внешних-приложений)

Запрос позволяет получить список внешних приложений, с которыми можно создать связь.

```
$api->external()->getApplications()
```

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->external()
        ->getApplications()
        ->send();
    dump($req->getResponse());
} catch (\Exception $exception) {
    dump($exception->getMessage());
}
```

### Получить список внешних связей задачи

[](#получить-список-внешних-связей-задачи)

Запрос позволяет получить список связей задачи с объектами внешних приложений.

```
$api->external()->getLinks(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->external()
        ->getLinks('TEST-1')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Добавить внешнюю связь

[](#добавить-внешнюю-связь)

Запрос позволяет создать связь для работы с объектом внешнего приложения.

```
$api->external()->addLink(string $issueId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

---

**Доступные методы**

```
public function backlink(bool $needRequest)
```

ОписаниеТип данныхОбязательныйВыполнить [запрос из Tracker для создания дублирующей связи во внешнем приложении](https://cloud.yandex.ru/docs/tracker/ext-app-setup#create).ЛогическийНет```
public function relationship(string $type)
```

ОписаниеТип данныхОбязательныйТип связи. Рекомендуется `RELATES`.СтрокаДа```
public function key(string $objectKey)
```

ОписаниеТип данныхОбязательныйКлюч объекта во внешнем приложении.СтрокаДа```
public function origin(string $appId)
```

ОписаниеТип данныхОбязательныйИдентификатор приложения, с объектом которого нужно создать связь.СтрокаДа```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->external()
        ->addLink('TEST-1')
        ->relationship('RELATES')
        ->key('test')
        ->origin('test')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить внешнюю связь

[](#удалить-внешнюю-связь)

Запрос позволяет удалить связь задачи с объектом внешнего приложения.

```
$api->external()->deleteLink(string $issueId, string $externalLinkId)
```

`$issueId` - Идентификатор или ключ текущей задачи. Строка

`$externalLinkId` - [Идентификатор внешней связи](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D1%85-%D1%81%D0%B2%D1%8F%D0%B7%D0%B5%D0%B9-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8). Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->external()
        ->deleteLink('TEST-1', 'test')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Прикрепленные файлы
-------------------

[](#прикрепленные-файлы)

### Получить список прикрепленных файлов

[](#получить-список-прикрепленных-файлов)

Запрос позволяет получить список файлов, прикрепленных к задаче и к комментариям под ней.

```
$api->attachment()->getAll(string $issueId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->attachment()
        ->getAll('TEST-1')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Скачать файл

[](#скачать-файл)

Запрос позволяет скачать прикрепленный к задаче файл.

```
$api->attachment()->get(string $issueId, string|int $attachmentId, string $filename)
```

`$issueId` - Идентификатор или ключ задачи. Строка

`$attachmentId` - Уникальный идентификатор файла. Строка или число

`$filename` - Имя файла. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->attachment()
        ->get('TEST-1', 1, 'abcdefghijklmopqrstuvwxyz.jpg')
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Скачать миниатюру

[](#скачать-миниатюру)

Запрос позволяет получить миниатюру графического файла, прикрепленного к задаче.

```
$api->attachment()->getPreview(string $issueId, string|int $attachmentId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

`$attachmentId` - Уникальный идентификатор прикрепленного файла. Строка или число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->attachment()
        ->getPreview('TEST-1', 1)
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Прикрепить файл

[](#прикрепить-файл)

Запрос позволяет прикрепить файл к задаче.

```
$api->attachment()->post(string $issueId, string|resource $file)
```

`$issueId` - Идентификатор или ключ задачи. Строка

`$file` - Файл. Поддерживаемые типы:

- `string` - Путь к файлу на сервере
- `resource` - Дескриптор файла, открытый на запись. Пример: `fopen('test.jpg', 'r')`

---

**Доступные методы**

```
public function filename(string $newName)
```

ОписаниеТип данныхОбязательныйНовое имя файла, с которым он будет храниться на сервере.СтрокаНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->attachment()
        ->post('TEST-1', 'test.jpg')
        ->filename('new_test.jpg')
        ->send();
    var_dump($req->getStatusCode());
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Загрузить временный файл

[](#загрузить-временный-файл)

Запрос позволяет загрузить временный файл. Используйте этот запрос, чтобы предварительно загрузить файл в Tracker, а затем прикрепить его при создании задачи или комментария.

```
$api->attachment()->temp(string|resource $file)
```

`$file` - Файл. Поддерживаемые типы:

- `string` - Путь к файлу на сервере
- `resource` - Дескриптор файла, открытый на запись. Пример: `fopen('test.jpg', 'r')`

---

**Доступные методы**

```
public function filename(string $newName)
```

ОписаниеТип данныхОбязательныйНовое имя файла, с которым он будет храниться на сервере.СтрокаНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->attachment()
        ->temp('test.jpg')
        ->filename('Тестовый файл.jpg')
        ->send();
    var_dump($req->getStatusCode());
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить файл

[](#удалить-файл)

Запрос позволяет удалить прикрепленный файл.

```
$api->attachment()->delete(string $issueId, string|int $attachmentId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

`$attachmentId` - Уникальный идентификатор файла. Строка или число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->attachment()
        ->delete('TEST-1', '5')
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Очереди
-------

[](#очереди)

### Создать очередь

[](#создать-очередь)

Запрос позволяет создать очередь.

```
$api->queue()->create()
```

---

**Доступные методы**

```
public function key(string $queueKey)
```

ОписаниеТип данныхОбязательныйКлюч очереди.СтрокаДа```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание очереди.СтрокаДа```
public function lead(string $login)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор владельца очереди.СтрокаДа```
public function defaultType(string $type)
```

ОписаниеТип данныхОбязательныйИдентификатор или ключ типа задач по умолчанию.СтрокаДа```
public function defaultPriority(string $priority)
```

ОписаниеТип данныхОбязательныйИдентификатор или ключ приоритета задач по умолчанию.СтрокаДа```
public function issueTypesConfig(array $configList)
```

ОписаниеТип данныхОбязательныйМассив с настройками типов задач очереди.Массив массивовДаПоля массивов массива `$configList`:

- `issueType` - Ключ типа задачи. Строка
- `workflow` - Идентификатор воркфлоу. Строка. Предустановленные значения в трекере:
    - `Queue::WORKFLOW_SUPPORT` - Support
    - `Queue::WORKFLOW_SOFTWARE_DEV` - Software development
    - `Queue::WORKFLOW_DOCUMENTS_APPROVAL` - Documents approval
    - `Queue::WORKFLOW_GOAL_MANAGEMENT` - Goal management
    - `Queue::WORKFLOW_HUMAN_RESOURCES` - Human Resources
    - `Queue::WORKFLOW_DEV_WITH_KANBAN` - Development with Kanban
    - `Queue::WORKFLOW_MANUFACTURE` - Manufacture
    - `Queue::WORKFLOW_MARKETING` - Marketing
    - `Queue::WORKFLOW_OUTSOURCE_SOFTWARE_DEV` - Outsource software development
    - `Queue::WORKFLOW_QUICK_START` - Quick start
    - `Queue::WORKFLOW_RECRUITING` - Recruiting
    - `Queue::WORKFLOW_DEV_WITH_SCRUM` - Development with Scrum
    - `Queue::WORKFLOW_OFFERING_SERVICES` - Offering services
    - `Queue::WORKFLOW_TWO_LINE_SUPPORT` - 2 line support
- `resolutions` - Массив с идентификаторами или ключами возможных резолюций. Массив

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->create()
        ->key('SUPER')
        ->name('Super')
        ->lead('123456789')
        ->defaultType('task')
        ->defaultPriority('normal')
        ->issueTypesConfig([
            [
                'issueType' => 'task',
                'workflow' => \BugrovWeb\YandexTracker\Api\Queue::WORKFLOW_SOFTWARE_DEV,
                'resolutions' => ['fixed', 'wontFix', 'duplicate', 'later', 'overfulfilled', 'successful', 'dontDo']
            ],
            [
                'issueType' => 'bug',
                'workflow' => \BugrovWeb\YandexTracker\Api\Queue::WORKFLOW_SUPPORT,
                'resolutions' => ['fixed', 'duplicate', 'wontFix', 'cantReproduce', 'later', 'overfulfilled', 'dontDo']
            ]
        ])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить параметры очереди

[](#получить-параметры-очереди)

Запрос позволяет получить информацию об очереди.

```
$api->queue()->get(string|int $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

---

**Доступные методы**

```
public function expand(string $field)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответ.СтрокаНетВозможные значения `$field`:

- `Queue::FIELD_ALL` - в ответ будут включены все дополнительные поля очереди
- `Queue::FIELD_PROJECTS` - проекты очереди
- `Queue::FIELD_COMPONENTS` - компоненты очереди
- `Queue::FIELD_VERSIONS` - версии очереди
- `Queue::FIELD_TYPES` - типы задач
- `Queue::FIELD_TEAM` - список участников команды очереди
- `Queue::FIELD_WORKFLOWS` - список жизненных циклов
- `Queue::FIELD_FIELDS` - обязательные поля очереди
- `Queue::FIELD_ISSUE_CONFIG` - настройки типов задач очереди

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->get('SUPER')
        ->expand(\BugrovWeb\YandexTracker\Api\Queue::FIELD_ISSUE_CONFIG)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить список очередей

[](#получить-список-очередей)

Запрос позволяет получить список доступных очередей.

```
$api->queue()->getAll()
```

---

**Доступные методы**

```
public function expand(string $field)
```

ОписаниеТип данныхОбязательныйДополнительные поля, которые будут включены в ответ.СтрокаНетВозможные значения `$field`:

- `Queue::FIELD_PROJECTS` - проекты очереди
- `Queue::FIELD_COMPONENTS` - компоненты очереди
- `Queue::FIELD_VERSIONS` - версии очереди
- `Queue::FIELD_TYPES` - типы задач
- `Queue::FIELD_TEAM` - список участников команды очереди
- `Queue::FIELD_WORKFLOWS` - список жизненных циклов

```
public function perPage(int $count)
```

ОписаниеТип данныхОбязательныйКоличество очередей на странице ответа.ЧислоНет```
public function page(int $pageNumber)
```

ОписаниеТип данныхОбязательныйНомер страницы ответа.ЧислоНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->getAll()
        ->expand(\BugrovWeb\YandexTracker\Api\Queue::FIELD_ISSUE_CONFIG)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить версии очереди

[](#получить-версии-очереди)

Запрос позволяет получить информацию о версиях очереди.

```
$api->queue()->getVersions(string|int $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->getVersions('TEST')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить обязательные поля очереди

[](#получить-обязательные-поля-очереди)

Запрос позволяет получить информацию об обязательных полях очереди.

```
$api->queue()->getFields(string|int $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->getFields('TEST')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить очередь

[](#удалить-очередь)

Запрос позволяет удалить очередь.

```
$api->queue()->delete(string|int $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->delete('SUPER')
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Восстановить очередь

[](#восстановить-очередь)

Запрос позволяет восстановить удаленную очередь.

```
$api->queue()->restore(string|int $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->restore('SUPER')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить тег из очереди

[](#удалить-тег-из-очереди)

Запрос позволяет удалить тег из очереди.

```
$api->queue()->deleteTag(string|int $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

---

**Доступные методы**

```
public function tag(string $tagName)
```

ОписаниеТип данныхОбязательныйИмя тега.СтрокаДа```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->deleteTag('SUPER')
        ->tag('TEST')
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать автодействие

[](#создать-автодействие)

Запрос позволяет создать автодействие.

```
$api->queue()->createAutoAction(string|int $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание автодействия.СтрокаДа```
public function filter(array $filter)
```

ОписаниеТип данныхОбязательныйМассив с условиями фильтрации полей задач, для которых сработает автодействие.МассивДа, если не указан `query````
public function query(string $query)
```

ОписаниеТип данныхОбязательныйСтрока запроса фильтрации задач, для которых сработает автодействие. Используется [язык запросов](https://cloud.yandex.ru/docs/tracker/user/query-filter).СтрокаДа, если не указан `filter`Вы можете использовать [конструктор](#QueryFilter) для создания query-запроса на языке запросов Яндекс.Трекера.

```
public function actions(array $issueActions)
```

ОписаниеТип данныхОбязательныйМассив с действиями над задачами.МассивДа```
public function active(bool $isActive)
```

ОписаниеТип данныхОбязательныйСтатус автодействия.ЛогическийНетДопустимые значения `$isActive`:

- `true` - активный
- `false` - неактивный

```
public function enableNotifications(bool $enable)
```

ОписаниеТип данныхОбязательныйСтатус отправки уведомлений.ЛогическийНетДопустимые значения `$enable`:

- `true` - отправлять
- `false` - не отправлять

```
public function intervalMillis(int $milliseconds)
```

ОписаниеТип данныхОбязательныйПериодичность запуска автодействия в миллисекундах. По умолчанию `3600000`ЧислоНет```
public function calendar(array $period)
```

ОписаниеТип данныхОбязательныйПериод, в который автодействие активно. Имеет параметр `id` — идентификатор [графика работы](https://cloud.yandex.ru/docs/tracker/manager/schedule).МассивНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->createAutoAction('TEST')
        ->name('Тестовое действие')
        ->filter([
            'priority' => 'critical',
            'status' => 'inProgress',
        ])
        ->actions([
            'type' => 'Transition',
            'status' => [
                'key' => 'needInfo'
            ],
        ])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить параметры автодействия

[](#получить-параметры-автодействия)

Запрос позволяет получить информацию об автодействии.

```
$api->queue()->getAutoAction(string|int $queueId, int $autoActionId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

`$autoActionId` - Идентификатор автодействия. Число

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->getAutoAction('TEST', 1)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать триггер

[](#создать-триггер)

Запрос позволяет создать триггер.

```
$api->queue()->createTrigger(string|int $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание тригера.СтрокаДа```
public function actions(array $actionsList)
```

ОписаниеТип данныхОбязательныйМассив с [действиями триггера](https://cloud.yandex.ru/docs/tracker/user/set-action).МассивДа```
public function conditions(array $conditionsList)
```

ОписаниеТип данныхОбязательныйМассив с [условиями срабатывания триггера](https://cloud.yandex.ru/docs/tracker/user/set-condition).МассивНет```
public function active(bool $isActive)
```

ОписаниеТип данныхОбязательныйСтатус триггера.ЛогическийНетДопустимые значения `$isActive`:

- `true` - активный
- `false` - неактивный

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->createTrigger('TEST')
        ->name('Тестовый триггер')
        ->actions([
            'type' => 'Transition',
            'status' => [
                'key' => 'needInfo'
            ],
        ])
        ->conditions([
            'type' => 'CommentFullyMatchCondition',
            'word' => 'Нужны уточнения',
        ])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить параметры триггера

[](#получить-параметры-триггера)

Запрос позволяет получить информацию о триггере очереди.

```
$api->queue()->getTrigger(string|int $queueId, int $triggerId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка или число

`$triggerId` - Идентификатор триггера. Число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->queue()
        ->getTrigger('TEST', 1)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Доски задач
-----------

[](#доски-задач)

### Получить параметры всех досок

[](#получить-параметры-всех-досок)

Запрос позволяет получить параметры всех досок задач, созданных пользователями организации.

```
$api->board()->getAll()
```

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->getAll()
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить параметры доски

[](#получить-параметры-доски)

Запрос позволяет получить параметры доски.

```
$api->board()->get(int $boardId)
```

`$boardId` - Идентификатор доски. Число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->get(1)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать доску

[](#создать-доску)

Запрос позволяет создать доску.

```
$api->board()->post()
```

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание доски.СтрокаДа```
public function defaultQueue(array|string|int $queue)
```

ОписаниеТип данныхОбязательныйОчередь.Массив, строка (если передается ключ очереди), число (если передается идентификатор очереди)ДаПоля массива `$queue`:

- `id` - Идентификатор очереди. Строка
- `key` - Ключ очереди. Строка

```
public function boardType(string $type)
```

ОписаниеТип данныхОбязательныйТип доски.СтрокаНетВозможные значения `$type`:

- `Board::BOARD_TYPE_DEFAULT` - Простая
- `Board::BOARD_TYPE_SCRUM` - Скрам
- `Board::BOARD_TYPE_KANBAN` - Канбан

```
public function filter(array $filterList)
```

ОписаниеТип данныхОбязательныйМассив с информацией об условиях фильтра, с помощью которого отбираются задачи для доски.МассивНетПоля массива `$filterList`:

- `` - Ключ поля, который является параметром отбора задач на доску. Полный список полей: . Строка
- `` - Массив с ключами полей, которые являются параметрами отбора задач на доску. Полный список полей: . Массив

```
public function orderBy(string $field)
```

ОписаниеТип данныхОбязательныйКлюч поля для сортировки задач на доске.СтрокаНет```
public function orderAsc(bool $field)
```

ОписаниеТип данныхОбязательныйНаправление сортировки.ЛогическийНетДопустимые значения `$field`:

- `true` - по возрастанию значений поля
- `false` - по убыванию значений поля

```
public function query(string $filter)
```

ОписаниеТип данныхОбязательныйПараметры фильтра, с помощью которого отбираются задачи для доски. Параметры задаются на [языке запросов](https://cloud.yandex.ru/docs/tracker/user/query-filter).СтрокаНетВы можете использовать [конструктор](#QueryFilter) для создания query-запроса на языке запросов Яндекс.Трекера.

```
public function useRanking(bool $use)
```

ОписаниеТип данныхОбязательныйВозможность менять порядок задач на доске.ЛогическийНетДопустимые значения `$use`:

- `true` - разрешено
- `false` - запрещено

```
public function country(array $countryInfo)
```

ОписаниеТип данныхОбязательныйМассив с информацией о стране. Получить список стран можно, отправив [запрос](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D1%81%D1%82%D1%80%D0%B0%D0%BD)МассивНетПоля массива `$countryInfo`:

- `id` - Идентификатор страны. Строка

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->post()
        ->name('Доска проектов TEST')
        ->defaultQueue('TEST')
        ->boardType(\BugrovWeb\YandexTracker\Api\Board::BOARD_TYPE_KANBAN)
        ->filter([
            'queue' => 'TEST'
        ])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Редактировать доску

[](#редактировать-доску)

Запрос позволяет изменить параметры доски.

```
$api->board()->patch(int $boardId)
```

`$boardId` - Идентификатор доски. Число

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание доски.СтрокаНет```
public function columns(array $columnsInfo)
```

ОписаниеТип данныхОбязательныйМассив с информацией о новых колонках доски.МассивНетПоля массива `$columnsInfo`:

- `id` - Идентификатор колонки. Строка
- `name` - Название колонки. Строка
- `statuses` - Ключ статуса задач, которые попадут в колонку. Список всех статусов задачи: . Строка

```
public function filter(array $filterList)
```

ОписаниеТип данныхОбязательныйМассив с информацией об условиях фильтра, с помощью которого отбираются задачи для доски.МассивНетПоля массива `$filterList`:

- `` - Ключ поля, который является параметром отбора задач на доску. Полный список полей: . Строка
- `` - Массив с ключами полей, которые являются параметрами отбора задач на доску. Полный список полей: . Массив

```
public function orderBy(string $field)
```

ОписаниеТип данныхОбязательныйКлюч поля для сортировки задач на доске.СтрокаНет```
public function orderAsc(bool $field)
```

ОписаниеТип данныхОбязательныйНаправление сортировки.ЛогическийНетДопустимые значения `$field`:

- `true` - по возрастанию значений поля
- `false` - по убыванию значений поля

```
public function query(string $filter)
```

ОписаниеТип данныхОбязательныйПараметры фильтра, с помощью которого отбираются задачи для доски. Параметры задаются на [языке запросов](https://cloud.yandex.ru/docs/tracker/user/query-filter).СтрокаНетВы можете использовать [конструктор](#QueryFilter) для создания query-запроса на языке запросов Яндекс.Трекера.

```
public function useRanking(bool $use)
```

ОписаниеТип данныхОбязательныйВозможность менять порядок задач на доске.ЛогическийНетДопустимые значения `$use`:

- `true` - разрешено
- `false` - запрещено

```
public function country(array $countryInfo)
```

ОписаниеТип данныхОбязательныйМассив с информацией о стране. Получить список стран можно, отправив [запрос](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D1%81%D1%82%D1%80%D0%B0%D0%BD)МассивНетПоля массива `$countryInfo`:

- `id` - Идентификатор страны. Строка

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->patch(1)
        ->columns([
            [
                'id' => 1,
                'name' => 'Бэклог',
                'statuses' => ['backlog']
            ],
            [
                'id' => 2,
                'name' => 'Открыт/Новые',
                'statuses' => ['open', 'new', 'needEstimate', 'newGoal']
            ],
            [
                'id' => 3,
                'name' => 'В работу',
                'statuses' => ['rc', 'onHold', 'selectedForDev', 'readyForTest', 'onHold', 'confirmed']
            ],
            [
                'id' => 4,
                'name' => 'Запущено',
                'statuses' => ['inProgress', 'testing', 'inReview']
            ],
            [
                'id' => 5,
                'name' => 'Требует уточнений',
                'statuses' => ['needInfo', 'needAcceptance', 'documentsPrepared']
            ],
            [
                'id' => 6,
                'name' => 'Почти готово',
                'statuses' => ['demoToCustomer', 'firstSupportLine', 'secondSupportLine', 'resultAcceptance']
            ],
            [
                'id' => 7,
                'name' => 'Готово',
                'statuses' => ['tested', 'resolved', 'closed', 'cancelled', 'achieved', 'blockedGoal']
            ]
        ])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить доску

[](#удалить-доску)

Запрос позволяет удалить доску задач.

```
$api->board()->delete(int $boardId)
```

`$boardId` - Идентификатор доски. Число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->delete(1)
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить параметры всех колонок

[](#получить-параметры-всех-колонок)

Запрос позволяет получить параметры всех колонок доски.

```
$api->board()->getColumns(int $boardId)
```

`$boardId` - Идентификатор доски. Число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->getColumns(1)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить параметры колонки

[](#получить-параметры-колонки)

Запрос позволяет получить параметры колонки доски.

```
$api->board()->getColumn(int $boardId, int $columnId)
```

`$boardId` - Идентификатор доски. Число

`$columnId` - Идентификатор колонки. Число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->getColumn(1, 1)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать колонку

[](#создать-колонку)

Запрос позволяет создать колонку на доске задач.

```
$api->board()->postColumn(int $boardId)
```

`$boardId` - Идентификатор доски. Число

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание колонки.СтрокаДа```
public function statuses(array $statusesList)
```

ОписаниеТип данныхОбязательныйКлючи возможных статусов задач, которые попадут в колонку. Список: МассивДа```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->postColumn(8)
        ->name('Отмена')
        ->statuses(['cancelled', 'blockedGoal'])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Редактировать колонку

[](#редактировать-колонку)

Запрос позволяет изменить параметры колонки.

```
$api->board()->patchColumn(int $boardId, int $columnId)
```

`$boardId` - Идентификатор доски. Число

`$columnId` - Идентификатор колонки. Число

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание колонки.СтрокаНет```
public function statuses(array $statusesList)
```

ОписаниеТип данныхОбязательныйКлючи возможных статусов задач, которые попадут в колонку. Список: МассивНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->patchColumn(8, 14)
        ->name('Отмена/Блок')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить колонку

[](#удалить-колонку)

Запрос позволяет удалить колонку.

```
$api->board()->deleteColumn(int $boardId, int $columnId)
```

`$boardId` - Идентификатор доски. Число

`$columnId` - Идентификатор колонки. Число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->deleteColumn(8, 14)
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить все спринты доски

[](#получить-все-спринты-доски)

Запрос позволяет получить параметры спринтов доски.

```
$api->board()->getSprints(int $boardId)
```

`$boardId` - Идентификатор доски. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->getSprints(1)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить спринт

[](#получить-спринт)

Запрос позволяет получить параметры спринта.

```
$api->board()->getSprint(string $sprintId)
```

`$sprintId` - Идентификатор спринта. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->getSprint(1)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать спринт

[](#создать-спринт)

Запрос позволяет создать спринт.

```
$api->board()->postSprint()
```

---

**Доступные методы**

```
public function name(string $name)
```

ОписаниеТип данныхОбязательныйНазвание спринта.СтрокаДа```
public function board(string $boardId)
```

ОписаниеТип данныхОбязательныйИД доски, к задачам которой относится спринт.СтрокаДа```
public function startDate(string $date)
```

ОписаниеТип данныхОбязательныйДата начала спринта в формате: `YYYY-MM-DD`.СтрокаДа```
public function endDate(string $date)
```

ОписаниеТип данныхОбязательныйДата окончания спринта в формате: `YYYY-MM-DD`.СтрокаДа```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->board()
        ->postSprint()
        ->name('Тестовый спринт')
        ->board(1)
        ->startDate('2022-01-01')
        ->endDate('2022-12-31')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Страны
------

[](#страны)

### Получить список стран

[](#получить-список-стран)

Запрос позволяет получить список стран

```
$api->country()->getAll()
```

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->country()
        ->getAll()
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Компоненты
----------

[](#компоненты)

### Получить список компонентов

[](#получить-список-компонентов)

Запрос позволяет получить список всех компонентов, созданных пользователями организации.

```
$api->component()->getAll()
```

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->component()
        ->getAll()
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Импорт
------

[](#импорт)

### Импортировать задачу

[](#импортировать-задачу)

С помощью запроса вы можете импортировать в Tracker задачи из других систем управления проектами.

```
$api->import()->ticket()
```

---

**Доступные методы**

```
public function queue(string $key)
```

ОписаниеТип данныхОбязательныйКлюч очереди.СтрокаДа```
public function summary(string $name)
```

ОписаниеТип данныхОбязательныйНазвание задачи, не более 255 символов.СтрокаДа```
public function createdAt(string $date)
```

ОписаниеТип данныхОбязательныйДата и время создания задачи в формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаДа```
public function createdBy(string|int $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор автора задачи.Строка (логин), число (ИД)Да```
public function key(string $key)
```

ОписаниеТип данныхОбязательныйКлюч задачи.СтрокаНет```
public function updatedAt(string $date)
```

ОписаниеТип данныхОбязательныйДата и время последнего изменения задачи в формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаНет```
public function updatedBy(string|int $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор пользователя, который редактировал задачу последним.Строка (логин), число (ИД)Нет```
public function resolvedAt(string $date)
```

ОписаниеТип данныхОбязательныйДата и время проставления резолюции в формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаНет```
public function resolvedBy(string|int $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор пользователя, который проставил резолюцию.Строка (логин), число (ИД)Нет```
public function status(int $statusId)
```

ОписаниеТип данныхОбязательныйИдентификатор статуса задачи.ЧислоНет```
public function deadline(string $date)
```

ОписаниеТип данныхОбязательныйДедлайн в формате `YYYY-MM-DD`.СтрокаНет```
public function resolution(int $resolutionId)
```

ОписаниеТип данныхОбязательныйИдентификатор резолюции задачи.ЧислоНет```
public function type(int $typeId)
```

ОписаниеТип данныхОбязательныйИдентификатор типа задачи.ЧислоНет```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание задачи, не более 512000 символов.СтрокаНет```
public function start(string $date)
```

ОписаниеТип данныхОбязательныйДата начала в формате `YYYY-MM-DD`.СтрокаНет```
public function end(string $date)
```

ОписаниеТип данныхОбязательныйДата окончания в формате `YYYY-MM-DD`.СтрокаНет```
public function assignee(string|int $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор исполнителя.Строка (логин), число (ИД)Нет```
public function priority(int $priorityId)
```

ОписаниеТип данныхОбязательныйИдентификатор приоритета.ЧислоНет```
public function affectedVersions(array $versionsId)
```

ОписаниеТип данныхОбязательныйИдентификаторы версий, перечисленные в поле `Найдено в версиях`.МассивНет```
public function fixVersions(array $versionsId)
```

ОписаниеТип данныхОбязательныйИдентификаторы версий, перечисленные в поле `Исправить в версиях`.МассивНет```
public function components(array $componentsId)
```

ОписаниеТип данныхОбязательныйИдентификаторы компонентов, к которым относится задача.МассивНет```
public function tags(array $tags)
```

ОписаниеТип данныхОбязательныйМассив тегов задачи.МассивНет```
public function sprint(array $sprintsId)
```

ОписаниеТип данныхОбязательныйИдентификаторы спринтов, к которым относится задача.МассивНет```
public function followers(array $followersId)
```

ОписаниеТип данныхОбязательныйМассив с идентификаторами или логинами наблюдателей задачи.МассивНет```
public function access(array $usersId)
```

ОписаниеТип данныхОбязательныйМассив с идентификаторами или логинами пользователей, перечисленных в поле `Доступ`.МассивНет```
public function unique(string $uniqueId)
```

ОписаниеТип данныхОбязательныйУникальный идентификатор задачи.СтрокаНет```
public function followingMaillists(array $maillistsId)
```

ОписаниеТип данныхОбязательныйИдентификаторы рассылок — команд и отделов, подписанных на задачу.МассивНет```
public function originalEstimation(int $milliseconds)
```

ОписаниеТип данныхОбязательныйЗначение параметра "Первоначальная оценка" в миллисекундах.ЧислоНет```
public function estimation(int $milliseconds)
```

ОписаниеТип данныхОбязательныйЗначение параметра "Оценка" в миллисекундах.ЧислоНет```
public function spent(int $milliseconds)
```

ОписаниеТип данныхОбязательныйЗначение параметра "Затрачено времени" в миллисекундах.ЧислоНет```
public function storyPoints(float $storyPoints)
```

ОписаниеТип данныхОбязательныйЗначение параметра Story Points.Число с плавающей точкойНет```
public function votedBy(array $usersId)
```

ОписаниеТип данныхОбязательныйМассив с идентификаторами или логинами пользователей, которые проголосовали за задачу.МассивНет```
public function favoritedBy(array $usersId)
```

ОписаниеТип данныхОбязательныйМассив с идентификаторами или логинами пользователей, которые добавили задачу в избранное.МассивНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->import()
        ->ticket()
        ->queue('TEST')
        ->summary('Импортированная задача')
        ->createdAt('2022-11-10T10:00:00')
        ->createdBy('123456789')
        ->key('TEST-777')
        ->description('Импортированная задача по API')
        ->tags(['test', 'api'])
        ->followers(['222222222'])
        ->originalEstimation(3600000)
        ->estimation(1200000)
        ->spent(2400000)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Прикрепить файл к задаче

[](#прикрепить-файл-к-задаче)

С помощью запроса вы можете вы можете импортировать в Tracker файлы, прикрепленные к задаче.

```
$api->import()->attachIssueFile(string $issueId, string|resource $file)
```

`$issueId` - Ключ задачи, к которой будет прикреплен файл

`$file` - Файл. Поддерживаемые типы:

- `string` - Путь к файлу на сервере
- `resource` - Дескриптор файла, открытый на запись. Пример: `fopen('test.jpg', 'r')`

---

**Доступные методы**

```
public function filename(string $fileName)
```

ОписаниеТип данныхОбязательныйИмя файла, максимальная длина - 255 символов.СтрокаДа```
public function createdAt(string $date)
```

ОписаниеТип данныхОбязательныйДата и время прикрепления файла в формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаДа```
public function createdBy(string $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор автора прикрепленного файла.СтрокаДа```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->import()
        ->attachIssueFile('TEST-777', fopen('test.jpg', 'r'))
        ->filename('import.jpg')
        ->createdAt('2022-11-10T10:00:00')
        ->createdBy('123456789')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Прикрепить файл к комментарию

[](#прикрепить-файл-к-комментарию)

С помощью запроса вы можете вы можете импортировать в Tracker файлы, прикрепленные к комментарию в задаче.

P.S. По возможности используйте обычную операцию прикрепления файла к комментарию.

```
$api->import()->attachCommentFile(string $issueId, string|int $commentId, string|resource $file)
```

`$issueId` - Ключ задачи, к которой будет прикреплен файл

`$commentId` - Ключ комментария в задаче, к которой будет прикреплен файл `$file` - Файл. Поддерживаемые типы:

- `string` - Путь к файлу на сервере
- `resource` - Дескриптор файла, открытый на запись. Пример: `fopen('test.jpg', 'r')`

---

**Доступные методы**

```
public function filename(string $fileName)
```

ОписаниеТип данныхОбязательныйИмя файла, максимальная длина - 255 символов.СтрокаДа```
public function createdAt(string $date)
```

ОписаниеТип данныхОбязательныйДата и время прикрепления файла в формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаДа```
public function createdBy(string $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор автора прикрепленного файла.СтрокаДа```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->import()
        ->attachCommentFile('TEST-777', '11', 'test.jpg')
        ->filename('import.jpg')
        ->createdAt('2022-11-12T03:25:15.851+0000')
        ->createdBy('123456789')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Импортировать комментарии

[](#импортировать-комментарии)

С помощью запроса вы можете импортировать в Tracker комментарии к задаче.

```
$api->import()->comments(string $issueId)
```

`$issueId` - Ключ задачи, к которой будет прикреплен файл. Строка

---

**Доступные методы**

```
public function text(string $comment)
```

ОписаниеТип данныхОбязательныйТекст комментария, не более 512000 символов.СтрокаДа```
public function createdAt(string $date)
```

ОписаниеТип данныхОбязательныйДата и время создания комментария в формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаДа```
public function createdBy(string|int $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор автора комментария.Строка (логин), число (ИД)Да```
public function updatedAt(string $date)
```

ОписаниеТип данныхОбязательныйДата и время последнего изменения комментария в формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаНет```
public function updatedBy(string|int $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор пользователя, который редактировал комментарий последним.Строка (логин), число (ИД)Нет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->import()
        ->comments('TEST-777')
        ->text('Импортированный комментарий')
        ->createdAt('2022-11-11T15:20:00')
        ->createdBy('123456789')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Импортировать связи

[](#импортировать-связи)

С помощью запроса вы можете импортировать в Tracker связи задачи с другими задачами.

```
$api->import()->links(string $issueId)
```

`$issueId` - Ключ задачи, к которой будет прикреплен файл. Строка

---

**Доступные методы**

```
public function relationship(string $type)
```

ОписаниеТип данныхОбязательныйТип связи между задачами.СтрокаДаВозможные значения `$type`:

- `Import::REL_RELATES` - простая связь
- `Import::REL_IS_DEPENDENT_BY` - текущая задача является блокером
- `Import::REL_DEPENDS_ON` - текущая задача зависит от связываемой
- `Import::REL_IS_SUBTASK_FOR` - текущая задача является подзадачей связываемой
- `Import::REL_IS_PARENT_TASK_FOR` - текущая задача является родительской для связываемой задачи
- `Import::REL_DUPLICATES` - текущая задача дублирует связываемую
- `Import::REL_IS_DUPLICATED_BY` - связываемая задача дублирует текущую
- `Import::REL_IS_EPIC_OF` - текущая задача является эпиком связываемой. Связь такого типа можно установить только для задач типа "Эпик".
- `Import::REL_HAS_EPIC` - связываемая задача является эпиком текущей. Связь такого типа можно установить только для задач типа "Эпик".
- `Import::REL_CLONE` - связываемая задача является клоном текущей
- `Import::REL_ORIGINAL` - текущая задача является клоном связанной

```
public function issue(string $issue)
```

ОписаниеТип данныхОбязательныйИдентификатор или ключ связываемой задачи.СтрокаДа```
public function createdAt(string $date)
```

ОписаниеТип данныхОбязательныйДата и время создания связи. формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаДаВремя указывается в промежутке {"дата создания задачи"; "дата последнего обновления"}

```
public function createdBy(string|int $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор создателя связи.Строка (логин), число (ИД)Да```
public function updatedAt(string $date)
```

ОписаниеТип данныхОбязательныйДата и время последнего изменения связи. формате `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаНет```
public function updatedBy(string|int $user)
```

ОписаниеТип данныхОбязательныйЛогин или идентификатор пользователя, который редактировал связь последним.Строка (логин), число (ИД)Нет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->import()
        ->links('TEST-778')
        ->relationship(\BugrovWeb\YandexTracker\Api\Import::REL_IS_SUBTASK_FOR)
        ->issue('TEST-777')
        ->createdAt('2022-11-11T13:01:00Z')
        ->createdBy('123456789')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Пакетные операции
-----------------

[](#пакетные-операции)

### Массовый перенос задач в другую очередь

[](#массовый-перенос-задач-в-другую-очередь)

Запрос позволяет переместить в другую очередь одновременно несколько задач.

```
$api->bulk()->moveIssues()
```

---

**Доступные методы**

```
public function notify(bool $notify)
```

ОписаниеТип данныхОбязательныйПризнак уведомления об изменении задачи.ЛогическийНетДопустимые значения `$notify`:

- `true` - пользователи, указанные в полях задачи, получат уведомления
- `false` - (по умолчанию) пользователи не получат уведомления

```
public function queue(string $key)
```

ОписаниеТип данныхОбязательный[Ключ очереди](https://cloud.yandex.ru/docs/tracker/manager/create-queue#key), в которую планируется перенести задачи.СтрокаДа```
public function issues(array|string $issuesList)
```

ОписаниеТип данныхОбязательныйИдентификаторы задач, которые необходимо перенести.Строка/МассивДа```
public function values(array|string $valuesList)
```

ОписаниеТип данныхОбязательныйПараметры задач, которые будут изменены при переносе.Строка/МассивНет```
public function moveAllFields(bool $move)
```

ОписаниеТип данныхОбязательныйПеренос версий, компонентов и проектов задачи в новую очередь.ЛогическийНетДопустимые значения `$move`:

- `true` - перенести, если в новой очереди существуют соответствующие версии, компоненты, проекты
- `false` - (по умолчанию) — очистить версии, компоненты, проекты

```
public function initialStatus(bool $clear)
```

ОписаниеТип данныхОбязательныйСброс статуса задачи в начальное значение.ЛогическийНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->bulk()
        ->moveIssues()
        ->queue('SUPER')
        ->issues(['TEST-2', 'TEST-3'])
        ->values(['tags' => ['add' => 'Перенесена']])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Массовое редактирование задач

[](#массовое-редактирование-задач)

Запрос позволяет изменить параметры нескольких задач одновременно.

```
$api->bulk()->updateIssues()
```

---

**Доступные методы**

```
public function notify(bool $notify)
```

ОписаниеТип данныхОбязательныйПризнак уведомления об изменении задачи.ЛогическийНетДопустимые значения `$notify`:

- `true` - пользователи, указанные в полях задачи, получат уведомления
- `false` - (по умолчанию) пользователи не получат уведомления

```
public function issues(array|string $issuesList)
```

ОписаниеТип данныхОбязательныйИдентификаторы задач, которые необходимо отредактировать.Строка/МассивДа```
public function values(array|string $valuesList)
```

ОписаниеТип данныхОбязательныйПараметры задач, которые будут изменены.Строка/МассивДа```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->bulk()
        ->updateIssues()
        ->issues(['TEST-779', 'TEST-780'])
        ->values(['type' => ['name' => 'Ошибка']])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Массовое изменение статуса задач

[](#массовое-изменение-статуса-задач)

Запрос позволяет выполнить переход в новый статус для нескольких задач одновременно. Чтобы узнать, какие переходы доступны для задачи, выполните [запрос списка переходов](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4%D1%8B)

```
$api->bulk()->transitionIssues()
```

---

**Доступные методы**

```
public function notify(bool $notify)
```

ОписаниеТип данныхОбязательныйПризнак уведомления об изменении задачи.ЛогическийНетДопустимые значения `$notify`:

- `true` - пользователи, указанные в полях задачи, получат уведомления
- `false` - (по умолчанию) пользователи не получат уведомления

```
public function transition(string $transitionId)
```

ОписаниеТип данныхОбязательныйИдентификатор перехода.СтрокаДа```
public function issues(array|string $issuesList)
```

ОписаниеТип данныхОбязательныйИдентификаторы задач, статус которых необходимо изменить.Строка/МассивДа```
public function values(array|string $valuesList)
```

ОписаниеТип данныхОбязательныйПараметры задач, которые будут изменены при смене статуса.Строка/МассивНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->bulk()
        ->transitionIssues()
        ->transition('need_info')
        ->issues(['TEST-779', 'TEST-780'])
        ->values(['tags' => ['add' => 'Смена статуса']])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Учет времени
------------

[](#учет-времени)

### Добавить запись о затраченном времени

[](#добавить-запись-о-затраченном-времени)

Запрос позволяет добавить запись о времени, затраченном на выполнение задачи.

```
$api->worklog()->new(string $issueId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

---

**Доступные методы**

```
public function start(string $date)
```

ОписаниеТип данныхОбязательныйДата и время начала работы над задачей в формате: `YYYY-MM-DDThh:mm:ss.sss±hhmm`.СтрокаДа```
public function duration(string $isoTime)
```

ОписаниеТип данныхОбязательныйЗатраченное время в формате `PnYnMnDTnHnMnS`, `PnW` в соответствии с ISO 8601СтрокаДаВы можете использовать встроенный класс `\BugrovWeb\YandexTracker\Helpers\TimeManager()` для перевода времени в формат ISO 8601. Подробнее см. в соответствующем [разделе](#TimeManager)

```
public function comment(string $text)
```

ОписаниеТип данныхОбязательныйТекст комментария к записи.СтрокаНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $isoTime = (new \BugrovWeb\YandexTracker\Helpers\TimeManager())
        ->minute(20)
        ->hour(1)
        ->second(32)
        ->getISOTime();
    $req = $api->worklog()
        ->new('TEST-779')
        ->start('2022-11-13T13:01:00Z')
        ->duration($isoTime)
        ->comment('Забыл указать время')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Редактировать запись о затраченном времени

[](#редактировать-запись-о-затраченном-времени)

Запрос позволяет изменить запись о времени, затраченном на выполнение задачи.

```
$api->worklog()->patch(string $issueId, string|int $worklogId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

`$worklogId` - Идентификатор записи о затраченном времени. Строка/число

---

**Доступные методы**

```
public function duration(string $time)
```

ОписаниеТип данныхОбязательныйЗатраченное время в формате `PnYnMnDTnHnMnS`, `PnW` в соответствии с ISO 8601.СтрокаДаВы можете использовать встроенный класс `\BugrovWeb\YandexTracker\Helpers\TimeManager()` для перевода времени в формат ISO 8601. Подробнее см. в соответствующем [разделе](#TimeManager)

```
public function comment(string $text)
```

ОписаниеТип данныхОбязательныйТекст комментария к записи.СтрокаНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $isoTime = (new \BugrovWeb\YandexTracker\Helpers\TimeManager())
        ->week(1)
        ->getISOTime();
    $req = $api->worklog()
        ->patch('TEST-779', 1)
        ->duration($isoTime)
        ->comment('время изменено')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Удалить запись о затраченном времени

[](#удалить-запись-о-затраченном-времени)

Запрос позволяет удалить запись о времени, затраченном на выполнение задачи.

```
$api->worklog()->delete(string $issueId, string|int $worklogId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

`$worklogId` - Идентификатор записи о затраченном времени. Строка/число

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->worklog()
        ->delete('TEST-779', 2)
        ->send();
    var_dump($req->getStatusCode());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить все записи о затраченном времени по задаче

[](#получить-все-записи-о-затраченном-времени-по-задаче)

Запрос позволяет получить данные о времени, затраченном на выполнение задачи.

```
$api->worklog()->issue(string $issueId)
```

`$issueId` - Идентификатор или ключ задачи. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->worklog()
        ->issue('TEST-777')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Отобрать записи о затраченном времени по параметрам

[](#отобрать-записи-о-затраченном-времени-по-параметрам)

Запрос позволяет выбрать данные о времени, затраченном конкретным пользователем или в определенный промежуток времени.

```
$api->worklog()->get()
```

---

**Доступные методы**

```
public function createdBy(string $user)
```

ОписаниеТип данныхОбязательныйИдентификатор или логин автора записи.СтрокаНет```
public function createdAt(array|string[] $date)
```

ОписаниеТип данныхОбязательныйМассив с информацией о времени и дате создания записей.МассивНетПоля массива `$date`:

- `from` - Начало временного диапазона, в который созданы записи. Формат: `YYYY-MM-DDThh:mm:ss.sss±hhmm`. Строка
- `to` - Окончание временного диапазона, в который созданы записи. Формат: `YYYY-MM-DDThh:mm:ss.sss±hhmm`. Строка

```
public function start(array|string[] $date)
```

ОписаниеТип данныхОбязательныйМассив с информацией в какой момент стратовала/остановилась запись.МассивНетПоля массива `$date`:

- `from` - Начало временного диапазона, в который стартовали записи. Формат: `YYYY-MM-DDThh:mm:ss.sss±hhmm`. Строка
- `to` - Окончание временного диапазона, в который остановлены записи. Формат: `YYYY-MM-DDThh:mm:ss.sss±hhmm`. Строка

```
public function perPage(int $count)
```

ОписаниеТип данныхОбязательныйКоличество записей на странице ответа.ЧислоНет```
public function page(int $pageNumber)
```

ОписаниеТип данныхОбязательныйНомер страницы ответа.ЧислоНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->worklog()
        ->get()
        ->createdBy('123456789')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Поля задачи
-----------

[](#поля-задачи)

### Получить глобальные поля

[](#получить-глобальные-поля)

Запрос позволяет получить глобальные поля из настроек Трекера

```
$api->field()->getGlobals()
```

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->getGlobals()
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить список всех категорий полей

[](#получить-список-всех-категорий-полей)

Запрос позволяет получить список всех категорий полей

```
$api->field()->getCategories()
```

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->getCategories()
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать поле задачи

[](#создать-поле-задачи)

Запрос позволяет создать глобальное поле задачи.

```
$api->field()->create()
```

---

**Доступные методы**

```
public function name(array $names)
```

ОписаниеТип данныхОбязательныйНазвание поляМассивДаКлючи массива `$names`:

- `en` - на английском языке. Строка
- `ru` - на русском языке. Строка

```
public function id(string $id)
```

ОписаниеТип данныхОбязательныйИдентификатор поля.СтрокаДа```
public function category(string $id)
```

ОписаниеТип данныхОбязательныйИдентификатор категории поля. Для получения списка категорий используйте [запрос](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D1%81%D0%B5%D1%85-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9)СтрокаДа```
public function type(string $type)
```

ОписаниеТип данныхОбязательныйТип поля.СтрокаДаДопустимые значения `$type`:

- `Field::TYPE_DATE` - Дата
- `Field::TYPE_DATETIME` - Дата/Время
- `Field::TYPE_STRING` - Текстовое однострочное поле
- `Field::TYPE_TEXT` - Текстовое многострочное поле
- `Field::TYPE_FLOAT` - Дробное число
- `Field::TYPE_INT` - Целое число
- `Field::TYPE_USER` - Имя пользователя
- `Field::TYPE_URI` - Ссылка

```
public function optionsProvider(array $options)
```

ОписаниеТип данныхОбязательныйМассив с информацией об элементах списка.МассивНетПоля массива `$options`:

- `type` - Тип выпадающего списка. Строка. Допустимые значения:
    - `Field::OPTIONS_PROVIDER_LIST` - список строковых или числовых значений (для полей с типом Текстовое однострочное поле или Целое число)
    - `Field::OPTIONS_PROVIDER_USER_LIST` - список пользователей (для полей с типом Имя пользователя)
- `values` - Значения для выпадающего списка. Массив строк

```
public function order(int $sort)
```

ОписаниеТип данныхОбязательныйПорядковый номер в списке полей организации: .ЧислоНет```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание поля.СтрокаНет```
public function readonly(bool $readonly)
```

ОписаниеТип данныхОбязательныйВозможность редактировать значение поля.ЛогическийНетДопустимые значения `$readonly`:

- `true` - значение поля нельзя изменить
- `false` - значение поля можно изменить

```
public function visible(bool $visible)
```

ОписаниеТип данныхОбязательныйПризнак отображения поля в интерфейсе.ЛогическийНетДопустимые значения `$visible`:

- `true` - всегда отображать поле в интерфейсе
- `false` - не отображать поле в интерфейсе

```
public function hidden(bool $hidden)
```

ОписаниеТип данныхОбязательныйПризнак видимости поля в интерфейсе.ЛогическийНетДопустимые значения `$hidden`:

- `true` - скрывать поле даже в том случае, если оно заполнено
- `false` - не скрывать поле

```
public function container(bool $multiple)
```

ОписаниеТип данныхОбязательныйПризнак возможности указать в поле одновременно несколько значений.ЛогическийНетДопустимые значения `$multiple`:

- `true` - в поле можно указать несколько значений
- `false` - в поле можно указать только одно значение

Этот параметр допустимо использовать для полей следующих типов:

- Текстовое однострочное поле
- Имя пользователя
- Выпадающий список

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->create()
        ->name(['ru' => 'Тестовое поле', 'en' => 'Test field'])
        ->id('test_field')
        ->category('000000000000000000000001')
        ->type(\BugrovWeb\YandexTracker\Api\Field::TYPE_STRING)
        ->optionsProvider([
            'type' => \BugrovWeb\YandexTracker\Api\Field::OPTIONS_PROVIDER_LIST,
            'values' => ['Тест 1', 'Тест 2']
        ])
        ->description('Это супертестовое поле')
        ->readonly(false)
        ->visible(true)
        ->hidden(false)
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить параметры поля задачи

[](#получить-параметры-поля-задачи)

Запрос позволяет получить параметры поля задачи

```
$api->field()->getParams(string $fieldId)
```

`$fieldId` - Идентификатор поля задачи. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->getParams('test_field')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Изменить название поля задачи

[](#изменить-название-поля-задачи)

Запрос позволяет изменить название поля задачи

```
$api->field()->patchName(string $fieldId)
```

`$fieldId` - Идентификатор поля задачи. Строка

---

**Доступные методы**

```
public function version(string|int $fieldVersion)
```

ОписаниеТип данныхОбязательныйВерсия поля задачи.Строка/ЧислоДа```
public function name(array $names)
```

ОписаниеТип данныхОбязательныйМассив с информацией об имени поля задачи.МассивДаКлючи массива `$names`:

- `en` - Название поля на английском языке. Строка
- `ru` - Название поля на русском языке. Строка

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->patchName('test_field')
        ->version(1)
        ->name(['ru' => 'Тестовое глобальное поле', 'en' => 'Test global field'])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Изменить возможные значения поля задачи

[](#изменить-возможные-значения-поля-задачи)

Запрос позволяет изменить возможные значения поля задачи

```
$api->field()->patchValue(string $fieldId)
```

`$fieldId` - Идентификатор поля задачи. Строка

---

**Доступные методы**

```
public function version(string|int $fieldVersion)
```

ОписаниеТип данныхОбязательныйВерсия поля задачи.Строка/ЧислоДа```
public function name(array $names)
```

ОписаниеТип данныхОбязательныйНазвание локального поля.МассивНетКлючи массива `$names`:

- `en` - на английском языке. Строка
- `ru` - на русском языке. Строка

```
public function category(string $id)
```

ОписаниеТип данныхОбязательныйИдентификатор категории поля. Для получения списка категорий используйте [запрос](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D1%81%D0%B5%D1%85-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9)СтрокаНет```
public function order(int $sort)
```

ОписаниеТип данныхОбязательныйПорядковый номер в списке полей организации: .ЧислоНет```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание поля.СтрокаНет```
public function readonly(bool $readonly)
```

ОписаниеТип данныхОбязательныйВозможность редактировать значение поля.ЛогическийНетДопустимые значения `$readonly`:

- `true` - значение поля нельзя изменить
- `false` - значение поля можно изменить

```
public function hidden(bool $hidden)
```

ОписаниеТип данныхОбязательныйПризнак видимости поля в интерфейсе.ЛогическийНетДопустимые значения `$hidden`:

- `true` - скрывать поле даже в том случае, если оно заполнено
- `false` - не скрывать поле

```
public function visible(bool $visible)
```

ОписаниеТип данныхОбязательныйПризнак отображения поля в интерфейсе.ЛогическийНетДопустимые значения `$visible`:

- `true` - всегда отображать поле в интерфейсе
- `false` - не отображать поле в интерфейсе

```
public function optionsProvider(array $options)
```

ОписаниеТип данныхОбязательныйМассив с информацией о допустимых значениях поля.МассивНетПоля массива `$options`:

- `type` - Тип значений поля. Строка
- `values` - Массив со значениями поля. Массив

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->patchValue('test_field')
        ->version(2)
        ->description('Это тестовое глобальное поле')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать категорию поля задачи

[](#создать-категорию-поля-задачи)

Запрос позволяет создать категорию поля задачи.

```
$api->field()->createCategory()
```

---

**Доступные методы**

```
public function name(array $name)
```

ОписаниеТип данныхОбязательныйНазвание категории.МассивДаКлючи массива `$name`:

- `en` - на английском языке. Строка
- `ru` - на русском языке. Строка

```
public function order(int $sort)
```

ОписаниеТип данныхОбязательныйВес поля при отображении в интерфейсе.ЧислоДа```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание категории.СтрокаНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->createCategory()
        ->name(['ru' => 'Тестовое', 'en' => 'Test'])
        ->order(500)
        ->description('Тестовая категория')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Создать локальное поле очереди

[](#создать-локальное-поле-очереди)

Запрос позволяет создать локальное поле задачи, привязанное к заданной очереди.

```
$api->field()->createLocal(string $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка

---

**Доступные методы**

```
public function name(array $names)
```

ОписаниеТип данныхОбязательныйНазвание локального поля.МассивДаКлючи массива `$names`:

- `en` - на английском языке. Строка
- `ru` - на русском языке. Строка

```
public function id(string $id)
```

ОписаниеТип данныхОбязательныйИдентификатор локального поля.СтрокаДа```
public function category(string $id)
```

ОписаниеТип данныхОбязательныйИдентификатор категории поля. Для получения списка категорий используйте [запрос](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D1%81%D0%B5%D1%85-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9)СтрокаДа```
public function type(string $type)
```

ОписаниеТип данныхОбязательныйТип локального поля.СтрокаДаДопустимые значения `$type`:

- `Field::TYPE_DATE` - Дата
- `Field::TYPE_DATETIME` - Дата/Время
- `Field::TYPE_STRING` - Текстовое однострочное поле
- `Field::TYPE_TEXT` - Текстовое многострочное поле
- `Field::TYPE_FLOAT` - Дробное число
- `Field::TYPE_INT` - Целое число
- `Field::TYPE_USER` - Имя пользователя
- `Field::TYPE_URI` - Ссылка

```
public function optionsProvider(array $options)
```

ОписаниеТип данныхОбязательныйМассив с информацией об элементах списка.МассивНетПоля массива `$options`:

- `type` - Тип выпадающего списка. Строка. Допустимые значения:
    - `Field::OPTIONS_PROVIDER_LIST` - список строковых или числовых значений (для полей с типом Текстовое однострочное поле или Целое число)
    - `Field::OPTIONS_PROVIDER_USER_LIST` - список пользователей (для полей с типом Имя пользователя)
- `values` - Значения для выпадающего списка. Массив строк

```
public function order(int $sort)
```

ОписаниеТип данныхОбязательныйПорядковый номер в списке полей организации: .ЧислоНет```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание локального поля.СтрокаНет```
public function readonly(bool $readonly)
```

ОписаниеТип данныхОбязательныйВозможность редактировать значение поля.ЛогическийНетДопустимые значения `$readonly`:

- `true` - значение поля нельзя изменить
- `false` - значение поля можно изменить

```
public function visible(bool $visible)
```

ОписаниеТип данныхОбязательныйПризнак отображения поля в интерфейсе.ЛогическийНетДопустимые значения `$visible`:

- `true` - всегда отображать поле в интерфейсе
- `false` - не отображать поле в интерфейсе

```
public function hidden(bool $hidden)
```

ОписаниеТип данныхОбязательныйПризнак видимости поля в интерфейсе.ЛогическийНетДопустимые значения `$hidden`:

- `true` - скрывать поле даже в том случае, если оно заполнено
- `false` - не скрывать поле

```
public function container(bool $multiple)
```

ОписаниеТип данныхОбязательныйПризнак возможности указать в поле одновременно несколько значений.ЛогическийНетДопустимые значения `$multiple`:

- `true` - в поле можно указать несколько значений
- `false` - в поле можно указать только одно значение

Этот параметр допустимо использовать для полей следующих типов:

- Текстовое однострочное поле
- Имя пользователя
- Выпадающий список

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->createLocal('TEST')
        ->name(['ru' => 'Тестовое поле', 'en' => 'Test field'])
        ->id('loc_test_field')
        ->category('637230a70876b41ad90de8df')
        ->type(\BugrovWeb\YandexTracker\Api\Field::TYPE_INT)
        ->optionsProvider([
            'type' => \BugrovWeb\YandexTracker\Api\Field::OPTIONS_PROVIDER_LIST,
            'values' => [500, 1000]
        ])
        ->description('Это тестовое локальное поле')
        ->readonly(false)
        ->visible(true)
        ->hidden(false)
        ->send();
    dump($req->getResponse());
} catch (\Exception $exception) {
    dump($exception->getMessage());
}
```

### Получить локальные поля очереди

[](#получить-локальные-поля-очереди)

Запрос позволяет получить локальные поля задачи, привязанные к заданной очереди.

```
$api->field()->getLocals(string $queueId)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->getLocals('TEST')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить информацию о локальном поле очереди

[](#получить-информацию-о-локальном-поле-очереди)

Запрос позволяет получить информацию о локальном поле задачи, привязанном к заданной очереди.

```
$api->field()->getInfoLocal(string $queueId, string $fieldKey)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка

`$fieldKey` - Ключ локального поля. Чтобы получить ключ, используйте [запрос](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8). Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->getInfoLocal('TEST', 'loc_test_field')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Редактировать локальное поле очереди

[](#редактировать-локальное-поле-очереди)

Запрос позволяет редактировать локальное поле задачи, привязанное к заданной очереди.

```
$api->field()->editLocal(string $queueId, string $fieldKey)
```

`$queueId` - Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. Строка

`$fieldKey` - Ключ локального поля. Чтобы получить ключ, используйте [запрос](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%B8). Строка

---

**Доступные методы**

```
public function name(array $names)
```

ОписаниеТип данныхОбязательныйНазвание локального поля.МассивНетКлючи массива `$names`:

- `en` - на английском языке. Строка
- `ru` - на русском языке. Строка

```
public function category(string $id)
```

ОписаниеТип данныхОбязательныйИдентификатор категории поля. Для получения списка категорий используйте [запрос](#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D1%81%D0%B5%D1%85-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9)СтрокаНет```
public function order(int $sort)
```

ОписаниеТип данныхОбязательныйПорядковый номер в списке полей организации: .ЧислоНет```
public function description(string $text)
```

ОписаниеТип данныхОбязательныйОписание локального поля.СтрокаНет```
public function optionsProvider(array $options)
```

ОписаниеТип данныхОбязательныйМассив с информацией об элементах списка.МассивНетПоля массива `$options`:

- `type` - Тип выпадающего списка. Строка. Допустимые значения:
    - `Field::OPTIONS_PROVIDER_LIST` - список строковых или числовых значений (для полей с типом Текстовое однострочное поле или Целое число)
    - `Field::OPTIONS_PROVIDER_USER_LIST` - список пользователей (для полей с типом Имя пользователя)
- `values` - Значения для выпадающего списка. Массив строк

```
public function readonly(bool $readonly)
```

ОписаниеТип данныхОбязательныйВозможность редактировать значение поля.ЛогическийНетДопустимые значения `$readonly`:

- `true` - значение поля нельзя изменить
- `false` - значение поля можно изменить

```
public function visible(bool $visible)
```

ОписаниеТип данныхОбязательныйПризнак отображения поля в интерфейсе.ЛогическийНетДопустимые значения `$visible`:

- `true` - всегда отображать поле в интерфейсе
- `false` - не отображать поле в интерфейсе

```
public function hidden(bool $hidden)
```

ОписаниеТип данныхОбязательныйПризнак видимости поля в интерфейсе.ЛогическийНетДопустимые значения `$hidden`:

- `true` - скрывать поле даже в том случае, если оно заполнено
- `false` - не скрывать поле

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->field()
        ->editLocal('TEST', 'loc_test_field')
        ->optionsProvider([
            'type' => \BugrovWeb\YandexTracker\Api\Field::OPTIONS_PROVIDER_LIST,
            'values' => [1, 2, 3]
        ])
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Пользователи
------------

[](#пользователи)

### Получить информацию о текущем пользователе

[](#получить-информацию-о-текущем-пользователе)

Запрос позволяет получить информацию об учетной записи пользователя, от имени которого выполняется обращение к API.

```
$api->user()->getInfo()
```

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->user()
        ->getInfo()
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить информацию о пользователях

[](#получить-информацию-о-пользователях)

Запрос позволяет получить информацию об учетных записях пользователей, которые зарегистрированы в организации.

```
$api->user()->getAll()
```

---

**Доступные методы**

```
public function perPage(int $count)
```

ОписаниеТип данныхОбязательныйКоличество пользователей на странице ответа.ЧислоНет```
public function page(int $pageNumber)
```

ОписаниеТип данныхОбязательныйНомер страницы ответа.ЧислоНет```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->user()
        ->getAll()
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### Получить информацию о пользователе

[](#получить-информацию-о-пользователе)

Запрос позволяет получить информацию об учетной записи пользователя организации.

```
$api->user()->get(string $uid)
```

`$uid` - Уникальный идентификатор учетной записи или логин пользователя. Строка

---

**Доступные методы**

```
public function send()
```

Отправляет запрос к API

---

**Пример использования**

```
$api = new \BugrovWeb\YandexTracker\Api\Tracker('', '');

try {
    $req = $api->user()
        ->get('1234567890')
        ->send();
    var_dump($req->getResponse());
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

Встроенные хелперы
------------------

[](#встроенные-хелперы)

### TimeManager

[](#timemanager)

Конструктор для перевода времени в строку формата ISO 8601. При передаче в конструктор параметров, используйте что-то одно: только недели / год, месяц, день, минуты, секунды

---

**Доступные методы**

```
public function year(int $year)
```

Передает в конструктор год. Невозможно указание совместно с неделями.

```
public function month(int $month)
```

Передает в конструктор месяц. Невозможно указание совместно с неделями.

```
public function week(int $week)
```

Передает в конструктор недели. Невозможно указание совместно с другими параметрами.

```
public function day(int $day)
```

Передает в конструктор дни. Невозможно указание совместно с неделями.

```
public function hour(int $hour)
```

Передает в конструктор часы. Невозможно указание совместно с неделями.

```
public function minute(int $minute)
```

Передает в конструктор минуты. Невозможно указание совместно с неделями.

```
public function second(int $second)
```

Передает в конструктор секунды. Невозможно указание совместно с неделями.

```
public function getISOTime(): string
```

Возвращает сформированную метку времени в формате `PnYnMnDTnHnMnS`, `PnW`.

---

**Пример использования**

```
try {
    $isoTime = (new \BugrovWeb\YandexTracker\Helpers\TimeManager())
        ->minute(20)
        ->hour(1)
        ->second(32)
        ->getISOTime();
    echo $isoTime;
    // или
    $isoTime = (new \BugrovWeb\YandexTracker\Helpers\TimeManager())
        ->week(2)
        ->getISOTime();
    echo $isoTime;
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}
```

### QueryFilter

[](#queryfilter)

Конструктор, предоставляющий удобный интерфейс для создания запросов на языке Яндекс.Трекера.

#### Метод where

[](#метод-where)

Вы можете использовать метод `where` конструктора запросов, чтобы добавить запрос вида `"параметр": "значение"` через логическое **AND**. Самый простой вариант вызова метода требует 3 аргумента. 1-й - название параметра, 2-й - любой из доступных операторов сравнения (`!`, `>`, `=`, `=5` может быть получен следующим вызовом:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->where('Comment', '#', 'Хорошая работа, Олег')
    ->where('Story Points', '>=', 5)
    ->toString();

echo $res;
```

*Результат*

```
"Comment": #"Хорошая работа, Олег" AND "Story Points": >=5

```

Если оператор в запросе не требуется, просто передайте 2 аргумента: 1-й - название параметра, 2-й - значение параметра:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->where('Author', 'user1234@')
    ->where('Followers', 'user9876@')
    ->toString();

echo $res;
```

*Результат*

```
"Author": "user1234@" AND "Followers": "user9876@"

```

Также можно передать массив условий в метод `where`. Каждый элемент массива должен быть массивом, содержащим два/три аргумента, передаваемых методу `where`:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->where([
        ['Comment', '#', 'Хорошая работа, Олег'],
        ['Story Points', '>=', 5]
    ])
    ->toString();

echo $res;
```

*Результат*

```
("Comment": #"Хорошая работа, Олег" AND "Story Points": >=5)

```

Для фильтра по нескольким значениям одного параметра вида `"параметр": "значение1", "значение2", "значение3"`, передайте в функцию `where` 2 аргумента: 1-й - название параметра, 2-й - массив значений параметра. Например:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->where('Author', ['Иванов Иван', 'Вася Пупкин'])
    ->toString();

echo $res;
```

*Результат*

```
"Author": "Иванов Иван", "Вася Пупкин"

```

#### Метод orWhere

[](#метод-orwhere)

Метод `where` объединяет части запроса логическим оператором **AND**, в свою очередь метод `orWhere` присоединяет части запроса с помощью оператора **OR**. Метод `orWhere` работает также, как и `where`:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->where('Author', '!', 'Иван Иванов')
    ->orWhere('Original Estimate', '5d 2h 30m')
    ->toString();

echo $res;
```

*Результат*

```
"Author": !"Иван Иванов" OR "Original Estimate": "5d 2h 30m"

```

Если вам нужно сгруппировать условие **OR** в круглые скобки, вы можете передать анонимную функцию в качестве первого аргумента метода `orWhere`:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->where('Author', 'Иван Иванов')
    ->orWhere(function ($query) {
        $query->where('Author', 'Вася Пупкин')
            ->where('Created', '>', 'now()-12h');
    })
    ->toString();

echo $res;
```

*Результат*

```
"Author": "Иван Иванов" OR ("Author": "Вася Пупкин" AND "Created": >now()-12h)

```

#### Метод whereIsBetween/orWhereIsBetween

[](#метод-whereisbetweenorwhereisbetween)

Методы добавляют запрос с интервалом значений (через **AND** или **OR** соответственно), например `параметр: число1 .. число2`. Пример вызова:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->whereIsBetween('Created', ['2017-01-01', '2017-01-30'])
    ->toString();

echo $res;
```

*Результат*

```
"Created": 2017-01-01 .. 2017-01-30

```

#### Метод whereIsEmpty/whereIsNotEmpty/orWhereIsEmpty/orWhereIsNotEmpty

[](#метод-whereisemptywhereisnotemptyorwhereisemptyorwhereisnotempty)

Добавляет запрос вида `параметр: empty()`/`параметр: notEmpty()` через **AND** или **OR**. Методы принимают один аргумент - название параметра для запроса. Параметром может быть как одиночное значение, так и массив значений. Если передан массив, то для каждого значения будет создан отдельный запрос `empty()`/`notEmpty()`: `параметр1: empty() ... параметрN: empty()`. Пример вызова:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->where('Author', 'Иван Иванов')
    ->whereIsEmpty('Resolution')
    ->toString();
// или
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->whereIsEmpty(['Resolution', 'Assignee'])
    ->toString();

echo $res;
```

*Результат*

```
"Author": "Иван Иванов" AND "Resolution": empty()
или
"Resolution": empty() AND "Assignee": empty()

```

#### Метод whereIsMe/whereIsNotMe/orWhereIsMe/orWhereIsNotMe

[](#метод-whereismewhereisnotmeorwhereismeorwhereisnotme)

Добавляет запрос вида `параметр: me()`/`параметр: !me()` через **AND** или **OR**. Методы принимают один аргумент - название параметра для запроса. Параметром может быть как одиночное значение, так и массив значений. Если передан массив, то для каждого значения будет создан отдельный запрос `me()`/`!me()`: `параметр1: me() ... параметрN: me()`. Пример вызова:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->whereIsMe('Author')
    ->orWhereIsNotMe(['Assignee', 'Followers'])
    ->toString();

echo $res;
```

*Результат*

```
"Author": me() OR "Assignee": !me() OR "Followers": !me()

```

#### Метод whereIsUnresolved/orWhereIsUnresolved

[](#метод-whereisunresolvedorwhereisunresolved)

Добавляет запрос вида `параметр: unresolved()` через **AND** или **OR**. Методы принимают один аргумент - название параметра для запроса. Параметром может быть как одиночное значение, так и массив значений. Если передан массив, то для каждого значения будет создан отдельный запрос `unresolved()`: `параметр1: unresolved() ... параметрN: unresolved()`. Пример вызова:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->whereIsUnresolved('Resolution')
    ->toString();

echo $res;
```

*Результат*

```
"Resolution": unresolved()

```

#### Метод whereIsGroup/orWhereIsGroup

[](#метод-whereisgrouporwhereisgroup)

Добавляет запрос вида `"Параметр": group(value: "Значение")` через **AND** или **OR**. Методы принимают 2 аргумента: 1-й- название параметра для запроса, 2-й - значение параметра. 1-м параметром может быть как одиночное значение, так и массив значений. Если передан массив, то для каждого значения будет создан отдельный запрос `"Параметр": group(value: "Значение")`: `параметр1: group(value: "Значение") ... параметрN: group(value: "Значение")`. Пример вызова:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->whereIsGroup('Assignee', 'Коммерческий отдел')
    ->toString();

echo $res;
```

*Результат*

```
"Assignee": group(value: "Коммерческий отдел")

```

#### Метод whereIsChanged/orWhereIsChanged

[](#метод-whereischangedorwhereischanged)

Добавляет запрос вида `"Параметр": changed(from: "from" to: "to", by: "by" date: "date")` через **AND** или **OR**. Методы принимают 2 аргумента: 1-й - название параметра для запроса, 2-й - массив элементов. Каждый элемент массива должен быть массивом вида `ключ` =&gt; `значение`, где `ключ` может быть одним из: `from`, `to`, `by`, `date`. Значением ключа `date` может быть как единичное значение, так и массив из двух значений (интервал дат). Пример вызова:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->whereIsChanged('Status', [
        'to' => 'В работе',
        'by' => 'Алиса Литтл',
        'date' => ['01.09.2017', '15.09.2017'],
    ])
    ->toString();

echo $res;
```

*Результат*

```
"Status": changed(to: "В работе" by: "Алиса Литтл" date: 01.09.2017 .. 15.09.2017)

```

#### Пример сложного запроса

[](#пример-сложного-запроса)

Запрос:

```
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter())
    ->whereIsEmpty('Resolution')
    ->where('Priority', ['Blocker', 'Critical'])
    ->where(function ($query) {
        $query->orWhereIsMe(['Followers', 'Assignee', 'Author']);
    })
    ->toString();

echo $res;
```

*Результат*

```
"Resolution": empty() AND "Priority": "Blocker", "Critical" AND ("Followers": me() OR "Assignee": me() OR "Author": me())

```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity35

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 90.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/1dc2e3553c1b4f005e4bc9e1ee3a0ad1343ecfc1f4393ca5ef2baac88bb23e27?d=identicon)[bugrov](/maintainers/bugrov)

---

Top Contributors

[![bugrovAlex](https://avatars.githubusercontent.com/u/145573319?v=4)](https://github.com/bugrovAlex "bugrovAlex (19 commits)")[![bugrov](https://avatars.githubusercontent.com/u/59693058?v=4)](https://github.com/bugrov "bugrov (1 commits)")[![vaiil](https://avatars.githubusercontent.com/u/3755615?v=4)](https://github.com/vaiil "vaiil (1 commits)")

### Embed Badge

![Health badge](/badges/bugrov-yandex-tracker/health.svg)

```
[![Health](https://phpackages.com/badges/bugrov-yandex-tracker/health.svg)](https://phpackages.com/packages/bugrov-yandex-tracker)
```

###  Alternatives

[facebook/php-business-sdk

PHP SDK for Facebook Business

90923.5M35](/packages/facebook-php-business-sdk)[hubspot/api-client

Hubspot API client

24015.5M18](/packages/hubspot-api-client)[botman/driver-telegram

Telegram driver for BotMan

93452.6k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
