Сістэмы задач
Ператварыце сеанс у задачу падчас прагляду — адна кнопка ў плэеры, вашыя словы ў апісанні і ўжо далучаная спасылка на запіс.
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 не мае дзелавых адносін з гэтымі пастаўшчыкамі.