Системи за проследяване на задачи

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

1. Защо тази интеграция е ръчна

Всеки друг мост в MousePlayer се задейства сам. Този не го прави и това е съзнателният замисъл.

Задачата означава работа за човек. Ако отваряхме задача за всяко яростно кликване, таблото ви би се напълнило с елементи, които никой не е прегледал, и до седмица екипът би започнал да ги филтрира — заедно с истинските проблеми.

Затова вие задействате действието. Гледате сесия, виждате проблема, натискате бутона и описвате видяното. Връзката към записа вече е в описанието; преценката е ваша.

Бутонът се показва само на собственици и администратори и никога в изглед чрез споделена връзка. Човек, на когото сте изпратили запис, не трябва да може да отваря задачи в системата ви.

2. Петте системи и какво изисква всяка

Къде се създаваВие предоставяте
Jiraзадача в проектURL адрес на сайта, имейл на акаунта, токен за API, ключ на проекта, тип задача
Linearзадача в екипключ за API, идентификатор на екипа
Asanaзадача в проектличен токен за достъп, идентификатор на проекта
Trelloкарта в списъкключ, токен, идентификатор на списъка
GitHubзадача в хранилищеличен токен за достъп, owner/repo

Една плочка, един избран доставчик в даден момент. Добавянето на втора система по-късно е промяна на избора, а не миграция.

Откъде идват идентификаторите

Идентификаторът на екипа в Linear и този на проекта в Asana се виждат в URL адреса, когато отворите екипа или проекта в браузър. Идентификаторът на списъка в Trello е най-трудният от петте: добавете .json към URL адреса на таблото и потърсете желания списък. Ключът на проекта в Jira е префиксът пред всеки номер на задача — ACME в ACME-1234.

3. Връзката в задачата се изгражда от сървъра ни

Въведеното описание е ваше. Връзката за възпроизвеждане не е — сглобява се от наша страна от сесията, която действително сте гледали, и формулярът не може да ѝ влияе.

Това има значение, защото задачата е нещо, върху което други хора кликват. Ако връзката идваше от браузъра, специално подготвена заявка би могла да постави произволен адрес пред екипа ви в нещо, което изглежда като собствените ви инструменти.

HTTP 200 не означава, че задачата съществува

Linear отговаря чрез GraphQL, а GraphQL отговаря с 200 OK с масив errors, когато отказва. Мост, който гледа само кода за състояние, би отчел успех за задача, която никога не е създадена. Прочитаме тялото.

Когато системата върне идентификатора на новата задача, го включваме в потвърждението — така можете да проверите, че действително съществува, вместо да вярвате на зелено съобщение.

4. Какво умишлено липсва

Без автоматични задачи

Вижте по-горе. Ако искате автоматизация, webhook мостът може да изпраща сигнали за неудовлетвореност към Zapier или Make и там можете да решите кое заслужава задача.

Без двупосочна синхронизация

Затварянето на задачата не променя нищо в MousePlayer и нищо в MousePlayer не я отваря отново. Синхронизация, която работи в една и половина посоки, е по-лоша от никаква, защото хората започват да разчитат на нея.

Без прикачени файлове

Записът остава при нас и се гледа при нас. Експортиране на видео в система за задачи би изпратило лични данни в система с различни правила за съхранение от договорените с посетителите ви.

Токенът се съхранява шифрован с AES-256-GCM и никога не се показва отново. Освен това никога не се включва във вътрешната опашка — това извикване се изпълнява, докато чакате, директно от заявката.

5. GitLab, Azure DevOps и ClickUp

Още три системи, същият бутон, същото ръчно задействане.

Вие предоставяте
GitLabхост, идентификатор на проекта и токен — работи и собственият ви GitLab
Azure DevOpsорганизация, проект, тип работен елемент и PAT
ClickUpидентификатор на списъка и личен токен

GitLab пита за хост, защото може да е ваш

За разлика от останалите GitLab често е самостоятелно хостван, затова хостът е поле, а не константа. Поставете gitlab.com, ако използвате него.

Azure DevOps има две особености едновременно

Тялото му е JSON Patch документ, а не обект, а типът на съдържанието трябва да е application/json-patch+json — всичко друго връща 415. Знакът за долар пред типа на работния елемент в URL адреса е част от адреса, а не забравен непопълнен заместител.

ClickUp иска токена без префикс

Без Bearer пред него. Токен с добавена отпред дума се отхвърля с 401, което изглежда точно като грешен токен.

Всички споменати тук търговски марки принадлежат на съответните им собственици. MousePlayer няма търговски отношения с тези доставчици.