Buff Development
Коннектор

Интеграция с Jira

Спрашивайте, запускайте исследования и заводите задачи прямо из тикета Jira — не отдавая нам доступ к вашей Jira.

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

Обычный тикет: человек упомянул @buff, бот ответил в том же обсуждении.

Как и с git, доступ к Jira остаётся у вас. Токен лежит на машине, где запущен агент, и к нам не попадает — агент ходит к Jira изнутри вашей сети.

Что поддерживается

Jira Data Centerда
Jira Server (обычный self-hosted, в том числе старые версии)да
Jira Cloudнет — там другой API и другая схема входа

Способ входа агент выбирает сам, спросив вашу Jira о её версии:

Версия JiraВход
8.14 и новееPersonal Access Token
старше 8.14логин и пароль — токенов в этих версиях просто нет

Если вы дадите токен старой Jira, мастер так и скажет, назвав найденную версию, и предложит переключиться на логин с паролем. Гадать не придётся.

Настройка

Настраивается всё в самом коннекторе — там же, где провайдеры git. Подойдёт любой из трёх способов: веб-интерфейс, терминал или YAML.

Шаг 1. Доступ к Jira

Укажите адрес вашей Jira и токен, затем нажмите «Проверить доступ».

Base URL и токен. Токен записывается в локальный файл с правами 600 и никуда не уходит.

Шаг 2. Проекты

Агент сходит к вашей Jira и покажет, что нашёл: версию, редакцию и от чьего имени он вошёл. Ниже — список проектов галочками: ключи проектов вводить руками не нужно, опечатки исключены.

«Доступ есть ✓», версия и учётная запись — и проекты на выбор.

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

Здесь же задаются:

  • Название интеграции — под ним идут списания и им подписаны ответы. Понадобится, если у вас несколько привязок.
  • Проект разработки — тот проект в Buff, куда попадают вопросы и задачи из этой Jira.

Одна интеграция = один проект разработки. Если Jira одна, а проектов разработки несколько — заведите несколько интеграций с разными наборами проектов Jira.

Шаг 3. Как получать события

Два независимых способа, оба можно включать и выключать галочкой:

Опрос работает всегда; вебхуки быстрее, но требуют доступного порта.

Опрос — агент сам раз в несколько секунд спрашивает Jira, что изменилось. Работает всегда и не требует ничего открывать наружу. Это вариант по умолчанию и подходящий для закрытых сетей.

Вебхуки — Jira сама сообщает агенту об изменении. Отвечает быстрее, но нужен порт, до которого Jira дотянется. Включив вебхуки, укажите:

  • Слушать на — адрес и порт на этой машине (например 0.0.0.0:8766);
  • Адрес, по которому Jira достучится сюда — как этот порт виден со стороны Jira. Агент не может это угадать: за NAT или обратным прокси адрес другой.

Выключить оба способа нельзя — интеграция стала бы глухой, и мастер это не даст сохранить.

Шаг 4. Ссылка для вебхука

После сохранения интеграция появится в списке — с готовой ссылкой и кнопкой «Скопировать».

Готовая ссылка: скопируйте её в настройки вебхука вашей Jira.

Вставьте её в Jira: Администрирование → Система → Вебхуки → Создать вебхук. Отметьте события «Issue updated» и «Comment created»; при желании сузьте охват JQL-фильтром по нужным проектам.

Эта ссылка — сама по себе пароль: в ней зашит секрет. Не публикуйте её. Старые версии Jira не умеют подписывать свои вызовы, поэтому секрет и живёт в адресе; там, где Jira подпись умеет, агент дополнительно её проверяет.

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

Упоминание в комментарии

Упомяните бота в комментарии и напишите, что нужно. Текст вокруг упоминания тоже учитывается — можно сначала описать контекст, а потом попросить.

Упомянуть можно двумя способами, оба работают одинаково:

  • Через автодополнение Jira — начните печатать @ и выберите учётную запись бота. Jira вставит настоящее упоминание, оно выглядит ссылкой и бот получит уведомление. Так — на скриншоте выше.
  • Просто текстом @buff — короче, но для Jira это обычный текст: ни ссылки, ни уведомления. Бот всё равно ответит.
Что написатьЧто произойдёт
@buff почему падает экспорт?вопрос — бот разберётся в коде и ответит в тикете
@buff research почему растёт задержкаисследование — глубокий разбор, документ придёт сюда же
@buff task починить экспорт CSVчерновик задачи в Buff + ссылка на него
@buff ask где лежит конфигто же, что без команды — вопрос, только явно

Без команды это вопрос — самый частый случай, поэтому он и по умолчанию.

Повторное упоминание в том же тикете продолжает тот же разговор: можно уточнять и переспрашивать, не начиная с нуля.

Метки

Вместо упоминания можно повесить на тикет метку:

МеткаДействие
buff-researchисследование
buff-taskчерновик задачи
buff-askвопрос

Тема тикета при этом и есть запрос. Метки срабатывают в момент, когда их вешают — метка, которая уже висела, ничего не запускает. Поэтому включение интеграции не приводит к лавине запусков по всем открытым тикетам.

Совпадение ищется по целым словам: buff-task-urgent сработает, buff-tasks — нет.

Назначение

Назначьте тикет на учётную запись бота — он возьмётся за него как за вопрос. Как и с метками, срабатывает сам момент назначения.

Что бот пишет в тикет

  1. Сразу — короткое «принял, работаю». Исследование идёт минутами, и без этого непонятно, услышал ли бот вообще.
  2. Ссылку — на черновик, обсуждение или исследование в Buff. Она попадает в блок Links самого тикета, а не тонет в ленте комментариев. Повторный ответ обновляет ту же ссылку, а не плодит дубликаты.
  3. Результат — готовый ответ или документ, комментарием.

Если что-то не получилось, бот об этом тоже напишет: молчание читалось бы как поломка.

Статусы тикета бот не трогает — это ваш рабочий процесс, и лезть в него он не должен.

Что дальше

  • task из Jira создаёт черновик, а не запускает разработку. Согласование формулировки — осознанный шаг, и он остаётся в Buff.
  • Списания идут на интеграцию, а не на человека: пользователи вашей Jira — не пользователи Buff.

Если что-то не работает

СимптомПричина
«Не вышло: … personal access tokens»Jira старше 8.14 — переключитесь на логин и пароль
«Jira Cloud не поддерживается»адрес ведёт в облачную Jira; нужна self-hosted
Бот молчит на упоминаниепроект не отмечен галочкой в настройках интеграции
Бот молчит на меткуметка уже висела раньше — снимите и повесьте заново
Вебхук не доходитпроверьте «адрес, по которому Jira достучится сюда» и что порт открыт; опрос при этом продолжает работать

Состояние интеграций видно там же, где вы их заводили — в веб-интерфейсе агента. Менять список проектов и токен можно на лету, без перезапуска.

On this page