Systemy zgłoszeń

Zamień sesję w zgłoszenie, oglądając ją - jeden przycisk w odtwarzaczu, Twoje własne słowa w opisie i już dołączony odnośnik do nagrania.

1. Dlaczego akurat ten mostek uruchamiasz ręcznie

Każdy inny mostek w MousePlayerze działa sam. Ten nie - i na tym polega cały pomysł.

Zgłoszenie to praca dla człowieka. Gdybyśmy zakładali je przy każdym kliknięciu ze złości, Twoja tablica zapełniłaby się pozycjami, których nikt nie przejrzał - a w ciągu tygodnia zespół zacząłby je odfiltrowywać. Od tej chwili odfiltrowane są też te prawdziwe.

Wyzwalaczem jesteś więc Ty. Oglądasz sesję, widzisz to miejsce, naciskasz przycisk i piszesz, co zobaczyłeś. Odnośnik jest już w opisie; osąd dokładasz Ty.

Przycisk pojawia się tylko dla właścicieli i administratorów i nigdy w widoku przez link udostępniony. Ktoś, komu wysłałeś nagranie, nie powinien móc zakładać zgłoszeń w Twoim systemie.

2. Pięć systemów i czego wymaga każdy

Gdzie trafiaPodajesz
Jirazadanie w projekcieadres site, e-mail konta, token API, klucz projektu, typ zadania
Linearzgłoszenie w zespoleklucz API, identyfikator zespołu
Asanazadanie w projekciepersonal access token, identyfikator projektu
Trellokarta na liściekey, token, identyfikator listy
GitHubzgłoszenie w repozytoriumpersonal access token, owner/repo

Jeden kafelek, jeden wybrany dostawca. Przejście później na inny system to zmiana wyboru, a nie migracja.

Skąd wziąć identyfikatory

Identyfikator zespołu w Linear i projektu w Asanie widać w adresie, gdy otworzysz je w przeglądarce. Identyfikator listy w Trello jest najbardziej kłopotliwy z całej piątki: dopisz .json do adresu tablicy i odszukaj właściwą listę. Klucz projektu w Jirze to przedrostek przed każdym numerem zadania - ACME w ACME-1234.

3. Odnośnik w zgłoszeniu buduje nasz serwer

Opis, który wpisujesz, należy do Ciebie. Odnośnik do nagrania nie - powstaje po naszej stronie z sesji, którą faktycznie oglądałeś, a formularz nie ma na niego wpływu.

To ważne, bo zgłoszenie jest czymś, w co klikają inni ludzie. Gdyby odnośnik pochodził z przeglądarki, spreparowane żądanie mogłoby podsunąć Twojemu zespołowi dowolny adres w czymś, co wygląda jak Wasze własne narzędzie.

HTTP 200 nie znaczy, że zgłoszenie istnieje

Linear odpowiada przez GraphQL, a GraphQL także przy odmowie odpowiada 200 OK z tablicą errors. Mostek patrzący wyłącznie na kod statusu zgłosiłby sukces dla zgłoszenia, które nigdy nie powstało. My czytamy treść.

Tam, gdzie system zwraca identyfikator nowego zadania, umieszczamy go w potwierdzeniu - żebyś mógł sprawdzić, że naprawdę tam jest, zamiast wierzyć zielonemu komunikatowi.

4. Czego tu świadomie nie ma

Żadnych automatycznych zgłoszeń

Patrz wyżej. Kto chce automatyzacji, może przez mostek webhooków wysyłać sygnały frustracji do Zapiera lub Make i tam decydować, co zasługuje na zgłoszenie.

Żadnej synchronizacji w obie strony

Zamknięcie zgłoszenia nic nie zmienia w MousePlayerze, a nic w MousePlayerze go nie otwiera ponownie. Synchronizacja działająca w półtora kierunku jest gorsza niż żadna, bo ludzie zaczynają na niej polegać.

Żadnych załączników

Nagranie zostaje u nas i u nas jest oglądane. Eksport wideo do systemu zgłoszeń przeniósłby dane osobowe do systemu o innych zasadach przechowywania niż te, które obiecałeś swoim odwiedzającym.

Token jest przechowywany z szyfrowaniem AES-256-GCM i nigdy więcej nie pokazywany. Nigdy też nie trafia do wewnętrznej kolejki - to wywołanie dzieje się, gdy czekasz, wprost z żądania.

5. GitLab, Azure DevOps i ClickUp

Trzy kolejne systemy, ten sam przycisk, to samo ręczne uruchamianie.

Podajesz
GitLabhost, identyfikator projektu i token - własny GitLab też działa
Azure DevOpsorganizację, projekt, typ elementu pracy i PAT
ClickUpidentyfikator listy i token osobisty

GitLab pyta o host, bo może należeć do Ciebie

W odróżnieniu od pozostałych GitLab bywa często prowadzony samodzielnie, więc host jest polem, a nie stałą. Wpisz gitlab.com, jeśli tam jesteś.

Azure DevOps ma dwie osobliwości naraz

Jego treść to dokument JSON Patch, a nie obiekt, a typ zawartości musi brzmieć application/json-patch+json - wszystko inne odpowiada 415. Znak dolara przed typem elementu pracy w adresie jest częścią adresu, a nie zapomnianym przez nas symbolem zastępczym.

ClickUp chce token nagi

Bez Bearer z przodu. Token z tym słowem zostaje odrzucony z 401, co wygląda dokładnie jak zły token.

Wszystkie wymienione znaki towarowe należą do ich właścicieli. MousePlayer nie pozostaje w żadnych relacjach biznesowych z tymi dostawcami.