Сістэмы задач

Ператварыце сеанс у задачу падчас прагляду — адна кнопка ў плэеры, вашыя словы ў апісанні і ўжо далучаная спасылка на запіс.

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
ClickUpID спіса і асабісты токен

GitLab пытае хост, бо ён можа быць вашым

У адрозненне ад іншых, GitLab часта размешчаны самастойна, таму хост — поле, а не канстанта. Устаўце gitlab.com , калі карыстаецеся ім.

Azure DevOps мае дзве асаблівасці адразу

Цела — дакумент JSON Patch, а не аб'ект, і тып змесціва павінен быць application/json-patch+json — інакш адказ 415. Знак долара перад тыпам працоўнага элемента ў URL — частка адраса, а не незапоўнены запаўняльнік.

ClickUp патрабуе голы токен

Без Bearer перад ім. Токен з гэтым словам адхіляецца з 401, што выглядае як няправільны токен.

Усе згаданыя таварныя знакі належаць адпаведным уладальнікам. MousePlayer не мае дзелавых адносін з гэтымі пастаўшчыкамі.