Трекеры задач
Превратите сеанс в задачу во время просмотра: кнопка в плеере, ваше описание и уже добавленная ссылка на запись.
1. Почему вручную
Остальные мосты MousePlayer срабатывают сами. Этот намеренно нет.
Задача — работа для человека. Если создавать на каждый яростный клик, доска заполнится неразобранным, команда начнёт отфильтровывать всё, включая реальные проблемы.
Триггер — вы. Смотрите сеанс, замечаете проблему, нажимаете кнопку и описываете увиденное. Ссылка уже есть; решение за вами.
Кнопка лишь у владельцев и администраторов, никогда по общей ссылке. Получатель записи не должен создавать задачи в вашем трекере.
2. Пять трекеров и требования
| Куда попадает | Вы указываете | |
|---|---|---|
| Jira | задача в проекте | URL сайта, почта аккаунта, API-токен, ключ проекта, тип задачи |
| Linear | задача в команде | API-ключ, ID команды |
| Asana | задача в проекте | личный токен доступа, ID проекта |
| Trello | карточка в списке | ключ, токен, ID списка |
| GitHub | задача в репозитории | личный токен доступа, owner/repo |
Одна плитка, один поставщик одновременно. Второй трекер позже — смена выбора, а не миграция.
Откуда идентификаторы
ID команды Linear и проекта Asana видны в URL команды или проекта. ID списка Trello сложнее: добавьте .json к URL доски и найдите список. Ключ проекта Jira — префикс перед номером каждой задачи: ACME в ACME-1234.
3. Ссылку задачи строит сервер
Ваше описание принадлежит вам. Ссылка собирается нами по действительно просматриваемому сеансу; форма не может её изменить.
Задачи открывают другие люди. Если бы ссылка приходила из браузера, поддельный запрос мог бы подставить любой адрес в привычный инструмент команды.
HTTP 200 не означает существование задачи
Linear отвечает GraphQL, а GraphQL возвращает 200 OK с массивом errors при отказе. Только проверка статуса дала бы успех для несуществующей задачи. Мы читаем тело.
Если трекер возвращает ID новой задачи, мы показываем его в подтверждении для проверки, а не слепого доверия зелёному сообщению.
4. Чего намеренно нет
Автоматических задач
См. выше. Для автоматизации мост вебхуков передаёт признаки затруднений Zapier или Make, где вы решаете, что заслуживает задачи.
Двусторонней синхронизации
Закрытие задачи не меняет MousePlayer, MousePlayer её не открывает заново. Синхронизация в полтора направления хуже отсутствия: люди начинают на неё полагаться.
Вложений
Запись хранится и смотрится у нас. Экспорт видео в трекер передал бы персональные данные в систему с другими сроками хранения, чем согласовано с посетителями.
Токен хранится с шифрованием AES-256-GCM и не показывается повторно. Не попадает в очередь: вызов происходит прямо из запроса, пока вы ждёте.
5. GitLab, Azure DevOps и ClickUp
Ещё три трекера, та же кнопка и ручной триггер.
| Вы указываете | |
|---|---|
| GitLab | хост, ID проекта и токен — свой GitLab тоже подходит |
| Azure DevOps | организацию, проект, тип рабочего элемента и PAT |
| ClickUp | ID списка и личный токен |
GitLab спрашивает хост, потому что он может быть вашим
GitLab часто размещают самостоятельно, поэтому хост — поле, а не константа. Вставьте gitlab.com , если используете его.
У Azure DevOps две особенности
Тело — документ JSON Patch, не объект; тип содержимого должен быть application/json-patch+json — иначе 415. Знак доллара перед типом элемента в URL — часть адреса, не забытый заполнитель.
ClickUp нужен голый токен
Без Bearer перед ним. Добавленное слово приводит к 401, как неверный токен.
Все названные товарные знаки принадлежат владельцам. У MousePlayer нет деловых отношений с поставщиками.