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