Перейти к содержанию

Jira Todo Sync

Хватит вести два списка задач. Jira Todo Sync зеркалирует задачи Turbo EA в выбранный вами проект Jira Cloud и держит обе стороны согласованными: задача, созданная в Turbo EA, за секунды становится задачей Jira, её завершение переводит задачу Jira в статус «выполнено», а задачи Jira, подходящие под выбранный вами фильтр, появляются как задачи Turbo EA. Заголовки, сроки и исполнители синхронизируются в обе стороны.

Кратко

Лицензия Коммерческое — требуется подписанное лицензионное право
Минимальная версия Turbo EA 2.68.0
Право доступа ext.jira-todos.admin
Разрешения доступа к данным core.todos.read, core.todos.write, core.events.todo, core.users.read
Нужна перезагрузка серверной части да — содержит серверный код
Где появляется Админ → Настройки → Интеграции → Jira Todo Sync · метки с ключом задачи на странице задач и во вкладке задач карточки

Поддерживается только Jira Cloud. Соединение исключительно исходящее: Turbo EA обращается к REST API Jira с почтой учётной записи и API-токеном. Не нужно ни выставлять наружу OAuth-обработчик, ни устанавливать приложение Jira, ни открывать входящий доступ, поэтому расширение работает на самостоятельно размещённых экземплярах и за межсетевым экраном.

Настройка

1. Создайте API-токен Atlassian

  1. Откройте https://id.atlassian.com/manage-profile/security/api-tokens и войдите под той учётной записью Atlassian, от имени которой должна работать синхронизация. По возможности используйте выделенную служебную учётную запись — задачи создаются и переводятся именно от её имени. (Эта прямая ссылка — надёжный путь; страница токенов больше не доступна через очевидный пункт меню.)
  2. Нажмите Create API token — именно обычный вариант, не Create API token with scopes. Токены с областями действия не поддерживаются.
  3. Задайте имя (например, turbo-ea-sync) и выберите срок действия. Atlassian требует его указать и ограничивает одним годом.
  4. Скопируйте токен сразу же — он показывается только один раз.

Срок действия токенов истекает

По истечении срока синхронизация останавливается с ошибками аутентификации, пока не будет введён новый токен. Отметьте дату окончания сразу при создании.

2. Подключите Turbo EA

Откройте Админ → Настройки → Интеграции и выберите вкладку Jira Todo Sync.

В блоке Подключение к Jira Cloud заполните:

Поле Примечания
URL сайта Например, https://ваш-сайт.atlassian.net
Почта учётной записи Учётная запись Atlassian, которой принадлежит токен
API-токен Хранится в зашифрованном виде. Позже оставьте поле пустым, чтобы сохранить сохранённый токен

Нажмите Проверить подключение. При успехе выводится Connected as ….

3. Задайте область

В блоке Область синхронизации:

  • Проект Jira — выберите из списка, который подгружается из Jira, как только заполнены данные подключения. Отправленные задачи создаются здесь как задачи типа Task.
  • Фильтр загрузки (JQL) — задачи, подходящие под этот JQL, зеркалируются как задачи Turbo EA. Оставьте пустым для значения по умолчанию project = "<KEY>" AND statusCategory != Done.
  • Интервал опроса (секунды) — как часто опрашивается Jira. По умолчанию 300, минимум 60.

В блоке Направления три переключателя:

Переключатель По умолчанию Действие
Отправлять задачи в Jira вкл. Задачи, созданные в Turbo EA, становятся задачами Jira; завершение задачи переводит её задачу Jira
Загружать задачи из Jira вкл. Подходящие задачи Jira появляются как задачи Turbo EA; закрытие задачи Jira завершает соответствующую задачу
Зеркалировать задачи-подписи (в одну сторону) выкл. Подписи по рискам, решениям и проектам становятся задачами Jira с обратной ссылкой, но завершать их по-прежнему нужно в Turbo EA

Нажмите Сохранить конфигурацию. Синхронизировать сейчас немедленно запускает цикл.

Сопоставление исполнителей настраивать не нужно: Turbo EA автоматически сопоставляет людей с учётными записями Jira по адресу электронной почты.

Как работает синхронизация

Событие Действие
Задача создана в Turbo EA За секунды создаётся задача Jira (заголовок, описание с обратной ссылкой, срок, исполнитель)
Задача завершена или изменена Задача Jira переводится в «выполнено» либо обновляются её поля
Задача Jira подходит под JQL Она зеркалируется как задача Turbo EA
Задача Jira закрыта Задача Turbo EA завершается при следующем опросе (повторяющиеся задачи переходят к следующему циклу)
Задача Jira открыта заново Задача Turbo EA открывается заново
Изменения с обеих сторон Побеждает более позднее изменение; при равенстве побеждает Jira
Задача удалена в Turbo EA Задача Jira никогда не удаляется — об удалении добавляется комментарий
Задача удалена в Jira Загруженная задача удаляется; задача, созданная в Turbo EA, сохраняется и отмечается в журнале

Отправка происходит почти мгновенно, загрузка — по расписанию. Изменения, сделанные в Turbo EA, доходят до Jira за секунды. Изменения на стороне Jira подхватываются при следующем опросе — по умолчанию не позже чем через пять минут. Кроме того, каждый цикл сверяет обе стороны, поэтому сбой Jira или потерянное событие исправляются сами собой, а изменения не теряются.

Согласованными поддерживаются четыре поля: заголовок, срок, статус выполнения и исполнитель. Заголовок соответствует первой строке текста задачи, поэтому переименование задачи в Jira заменяет именно эту строку, оставляя последующие строки с деталями нетронутыми.

Метка с ключом задачи

Синхронизированная задача несёт свой ключ задачи Jira (например, PROJ-123) в виде небольшой ссылки — и на странице задач, и во вкладке задач карточки. Щелчок открывает задачу в Jira. Метка носит справочный характер: задача всегда завершается в Turbo EA или через синхронизацию.

Задачи-подписи

Запросы на подпись — риск, решение или проект, ожидающие утверждения, — это системные задачи, и они никогда не отправляются как обычные. Если включено Зеркалировать задачи-подписи, для них создаётся односторонняя задача Jira со ссылкой прямо на страницу, где подпись действительно ставится.

Поставить подпись из Jira невозможно. Если кто-то закроет зеркальную задачу, пока обязательство ещё открыто, синхронизация откроет её заново с комментарием, отсылающим в Turbo EA. Когда подпись поставлена в Turbo EA, зеркало переводится в «выполнено» при следующем опросе.

Выключение переключателя прекращает создание новых зеркал; существующие продолжают поддерживаться.

Наблюдение

Строка Состояние показывает время последней синхронизации, возможную ошибку и сводку выполненного. Ниже блок Недавняя активность перечисляет 50 последних действий с временем, направлением (Turbo EA → Jira, Jira → Turbo EA или Sync), задачей и подробным сообщением. Предупреждения и ошибки выделены цветом — именно здесь видно несопоставленного исполнителя или отклонённый переход статуса.

Права доступа

Право Позволяет
ext.jira-todos.admin Настраивать синхронизацию и управлять ею — подключение, проект, фильтры, ручной запуск, журнал активности

Для тех, у кого этого права нет, вкладка полностью скрыта. Конечным пользователям дополнительные права не нужны: синхронизированные задачи просто появляются в их привычном списке задач с меткой ключа.

Если лицензия истекла или расширение отключено

Задание синхронизации и его обработчик событий немедленно приостанавливаются, а разрешения доступа к данным отзываются. Ничего не удаляется — задачи сохраняют свои метки, настройки тоже сохраняются. Обновлённая лицензия возобновляет синхронизацию с того места, где она остановилась.

API-токен хранится на вашем экземпляре в зашифрованном виде и исключён из переноса рабочего пространства, поэтому он никогда не покидает тот экземпляр, где был введён.

Диагностика и ограничения

  • Только Jira Cloud. Jira Data Center не поддерживается.
  • Один проект на экземпляр, и задачи всегда создаются с типом Task.
  • Опрос, а не webhooks. Изменения на стороне Jira приходят при следующем опросе. Webhooks Jira Cloud потребовали бы OAuth-приложения и экземпляра, доступного из интернета, и всё равно нуждались бы в сверочном опросе, поэтому синхронизация сделана периодической намеренно.
  • Сопоставление исполнителей и приватность почты. Turbo EA сопоставляет людей по адресу электронной почты, а при неудаче — по точному совпадению отображаемого имени среди тех, кому можно назначать задачи в проекте. Человека, у которого почта в Jira скрыта и отображаемое имя различается между системами, сопоставить нельзя; такие исполнители остаются без изменений, а журнал фиксирует адрес, который не удалось сопоставить. Несопоставленный исполнитель Turbo EA никогда не снимает назначение с задачи Jira молча.
  • Очистка срока в Jira не отражается обратно. Очищайте его в Turbo EA.
  • Зеркала задач-подписей односторонние и отстают не более чем на один интервал опроса, поскольку процессы подписания в ядре не порождают событий изменения.
  • Синхронизировать сейчас отвечает A sync is already running, если цикл уже выполняется.
  • После смены SECRET_KEY вашего экземпляра сохранённый токен больше не расшифровывается, и панель возвращается к состоянию Not configured yet — введите токен заново.