Jira Cloud

Трекеры задач · издатель buff · версия 1.0.3

Задачи, вопросы и ответы прямо в тикетах Jira Cloud — не выходя из трекера, в котором уже работает команда.

Скачать коннектор Как установить2 из 3 инструментов только читают
  • Вопрос из тикета в интерфейсе Buff: та же переписка, что и в Jira, вместе с ответом.
  • Форма настройки строится по схеме, которую интеграция объявляет о себе.
  • Подключение работает: свой процесс, свой набор инструментов, свой разрешённый адрес.
  • Проверка связи говорит не «ок», а что это Cloud, под какой учётной записью вошли и сколько проектов в области.
  • Что интеграция получит, видно в каталоге коннектора до установки.

Нажмите на снимок, чтобы открыть его целиком. Все снимки — с работающей установки.

Обзор

Интеграция связывает Buff с вашим сайтом на atlassian.net. Команда продолжает ставить задачи и задавать вопросы там, где привыкла: в тикете. Buff читает тикет вместе с обсуждением, отвечает комментарием туда же и, если попросили, заводит задачу разработки со ссылкой обратно. Код берётся из ваших репозиториев — они подключаются к Buff отдельно, как источник кода. Для Jira Data Center и Server есть отдельная интеграция: у облака другой API.

Сценарии

Ситуации, ради которых его ставят.

  • Вопрос по коду, не выходя из тикета

    Тестировщик завёл тикет «экспорт в CSV ломается на кириллице» и не знает, где копать. Он упоминает бота в комментарии и просит разобраться.

    Результат. Через несколько минут в тикете лежит разбор: где формируется выгрузка, почему теряется кодировка и что придётся менять. Никто не заводил задачу и не переключался в другой интерфейс.

  • Задача разработки прямо из тикета

    Продакт описал доработку в тикете — с обсуждением на десять комментариев, где половина требований появилась по ходу.

    Результат. Buff читает тикет целиком, вместе с комментариями, и заводит по нему черновик задачи разработки. Ссылка возвращается в тикет, так что трекер остаётся единственным местом, куда смотрит команда.

  • Это уже было — найти, где именно

    Пришло обращение, подозрительно похожее на прошлогоднее. Искать вручную по JQL долго, а помнит его только тот, кто в отпуске.

    Результат. Интеграция ищет по отмеченным проектам и приносит связанные тикеты: дубликаты, прошлые обращения по той же подсистеме и задачи, на которые опирается текущая — со ссылками.

  • Ответ там, где его ждут

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

    Результат. Готовый разбор или ссылка на задачу разработки приходит комментарием в исходный тикет. Единственный инструмент интеграции, который что-то пишет, — и он недоступен на стадиях, где модель только читает.

Примеры

Что написать и что придёт в ответ. Обращение к боту задаётся в настройках подключения — здесь это «@buff».

  1. @Buff, разберись, почему при экспорте в CSV ломается кириллица

    комментарий в самом тикете

    инструмент: get_issue

    Прочитал тикет целиком, вместе с обсуждением, и разобрал по коду. Файл отдаётся без BOM и с заголовком text/csv без charset — Excel в Windows читает такой файл в cp1251. Разбор с местами в коде приложил документом и продублировал ссылкой сюда.

  2. @Buff, заведи по этому тикету задачу разработки

    комментарий в тикете

    инструмент: get_issue

    Задача заведена: в неё перенесены описание, требования, всплывшие в комментариях, и ограничения из обсуждения. Ссылка на задачу — в ответном комментарии, так что статус видно, не выходя из трекера.

  3. /research откуда берётся задержка в отчёте

    комментарий в тикете — так запускается глубокое исследование

    инструмент: get_issue

    Слово после обращения выбирает работу: без него — короткий ответ, «research» — глубокое исследование с документом, «task» — черновик задачи разработки. Упоминание, вставленное редактором Jira, работает так же, как набранное руками.

  4. @Buff, найди тикеты про кеширование каталога

    комментарий в любом тикете отмеченного проекта

    инструмент: search_issues

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

Что умеет

Читает тикет целиком, а не заголовок

get_issue отдаёт модели описание и все комментарии. Это то, из чего складывается настоящая постановка: в заголовке «не работает поиск», а в третьем комментарии — что именно и на каких данных. Инструмент только читает.

Ищет по отмеченным проектам

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

Отвечает в том же тикете

add_comment пишет ответ в исходный тикет — разбор вопроса или ссылку на задачу разработки. Это единственный инструмент интеграции, который что-то меняет, — и он недоступен на стадиях, где модель только читает. Проверяет это коннектор у себя.

Понимает документ, а не строку

Комментарий в Cloud — это не текст, а документ: абзацы, списки и упоминания отдельными узлами. Интеграция читает такой документ и пишет ответ в том же виде, поэтому упоминание, вставленное редактором Jira, распознаётся так же, как набранное руками.

Берётся за работу только по обращению

Переход по доске, смена приоритета или метки не запускают ничего: их делают правила автоматизации, и работа, которую никто не заказывал, всё равно была бы оплачена. Назначение тикета на учётную запись бота — это обращение, но и оно бывает автоматическим, поэтому включается отдельной настройкой. Список отмеченных проектов и есть контроль доступа.

Никогда не трогает ваш процесс

Интеграция не двигает тикеты по доске, не меняет статусы, приоритеты и исполнителей. Она читает и пишет комментарии — ничего больше.

Как пользоваться

Всё происходит на машине, где стоит коннектор. Открывать доступ к вашей сети снаружи не нужно ни на одном шаге.

  1. Шаг 1

    Установка занимает одно нажатие

    Откройте раздел «Маркетплейс» на локальной странице коннектора. До установки видно, что интеграция получит: адреса, по которым она сможет ходить, какие учётные данные попросит и сколько инструментов увидит модель. Коннектор скачивает подписанный бандл из нашего реестра и проверяет подпись до того, как что-то запишет на диск.

    Коннектор
    Границы доступа видны в каталоге до установки.
  2. Шаг 2

    Настройка — адрес сайта, почта, токен и ключи проектов

    Нужен адрес вашего сайта (`https://ваша-компания.atlassian.net`), почта учётной записи бота и её API-токен с id.atlassian.com, а также ключи проектов — те самые буквы перед номером тикета. Cloud проверяет пару «почта + токен», поэтому в форме два поля; и то и другое остаётся на вашей машине, интеграция их не видит.

    Коннектор
    Форма настройки строится по схеме интеграции.
  3. Шаг 3

    Заведите боту отдельную учётную запись

    Дайте ей доступ только к тем проектам, где бот должен отвечать: права учётной записи — внешняя граница, а список отмеченных проектов — внутренняя. Прав на просмотр и комментирование достаточно; администратором сайта бот быть не должен.

  4. Шаг 4

    Код подключается отдельно

    Jira — трекер задач, репозиториев она для нас не отдаёт. Чтобы бот отвечал по вашему коду, репозитории подключаются к Buff как источник кода — тем же коннектором, в разделе «Репозитории». Одно без другого работает: бот сможет читать тикеты и отвечать в них, просто без разбора по коду.

  5. Шаг 5

    То же самое из командной строки

    Установка без графики равноправна, а не запасной вариант: `connector install jira-cloud`, затем `connector instance add jira-cloud --config base_url=https://acme.atlassian.net --config project_keys=PROJ`.

  6. Шаг 6

    События приходят сами

    После настройки ничего запускать не нужно: интеграция сама следит за отмеченными проектами. Хотите быстрее — включите приём событий у коннектора и добавьте в Jira вебхук на события комментариев. Ссылку выдаёт коннектор: Jira свои вызовы не подписывает, поэтому пропуском служит секрет внутри самой ссылки.

    Коннектор
    Каждое подключение — отдельный процесс со своим набором инструментов.

Границы доступа

То же самое коннектор показывает на вашей машине до установки. Список берётся из подписанного каталога, а не написан здесь руками.

Ходит наружу

только по адресам из полей base_url

Учётные данные

api — значения остаются в коннекторе, интеграция их не видит

Вебхуки

deliver — порт открываете вы, по желанию

Инструменты, которые увидит модель: 3, из них только читают 2. Пишущие недоступны на стадиях, где модель только читает, — и проверяет это коннектор у себя.
ИнструментЧто делаетДоступ
search_issuesНайти тикеты по JQL — когда упомянут ключ или нужен контекст из трекератолько чтение
get_issueПрочитать тикет целиком с комментариями — когда нужны требования или обсуждениетолько чтение
add_commentНаписать комментарий в тикетпишет

Интеграция работает отдельным процессом под собственным пользователем операционной системы: она не видит ключа коннектора, не читает файлы других подключений и не может выйти в сеть мимо коннектора. Подробнее — в разделе о безопасности.

Требования

  • Jira Cloud (atlassian.net). Для Data Center и Server — отдельная интеграция: у облака другой API.
  • Учётная запись бота на сайте и её API-токен с id.atlassian.com, с правом смотреть нужные проекты и писать комментарии.
  • Сетевой доступ от машины с коннектором до вашего сайта Jira — наружу из вашей сети ничего открывать не нужно.
  • Коннектор, запущенный с правом заводить отдельного пользователя ОС для интеграции (root или CAP_SETUID).
  • Чтобы ответы разбирались по коду, подключите репозитории к Buff как источник кода — тем же коннектором, в разделе «Репозитории».

Вопросы

У нас Jira Data Center. Эта интеграция подойдёт?
Нет, для Data Center и Server есть отдельная интеграция — на витрине она называется просто Jira. У облака другой API: комментарий там документ, а не строка, и поиск устроен иначе.
API-токен уходит к вам в облако?
Нет. Почта и токен хранятся на машине с коннектором и не покидают её. Интеграция их тоже не видит: коннектор подставляет их в исходящий запрос сам.
Может ли интеграция ходить куда-то, кроме нашего сайта Jira?
Нет. Адрес, по которому ей разрешено ходить, выводится из вашего же поля «Адрес Jira Cloud», и коннектор не выпускает запрос за его пределы. Что именно разрешено, видно в каталоге до установки.
Бот будет двигать тикеты по доске?
Нет. Интеграция читает и пишет комментарии. Статусы, приоритеты и исполнители остаются за вашей командой.
Бот ответит на комментарий, который написал сам?
Нет. Он знает свою учётную запись и не принимает собственные ответы за новые вопросы.

Дальше

Подключить Jira Cloud

Поставьте коннектор в своей сети, откройте его локальную страницу и установите интеграцию из каталога. Пересобирать ничего не нужно.

Юрлицам и ИП — оплата переводом по реквизитам и закрывающие документы