Issue-Tracker
Aus einer Sitzung ein Ticket machen, während man sie ansieht - ein Knopf im Player, Ihre eigenen Worte in der Beschreibung, und der Link zur Aufzeichnung hängt schon dran.
1. Warum ausgerechnet diese Brücke von Hand ausgelöst wird
Jede andere Brücke in MousePlayer feuert von selbst. Diese nicht, und darin besteht der ganze Entwurf.
Ein Ticket ist Arbeit für einen Menschen. Legten wir für jeden Wutklick eines an, füllte sich Ihr Board mit Einträgen, die niemand gesichtet hat - und binnen einer Woche filtert Ihr Team sie weg. Ab dann sind auch die echten weggefiltert.
Der Auslöser sind deshalb Sie. Sie sehen die Sitzung, Sie sehen die Stelle, Sie drücken den Knopf und schreiben hin, was Sie gesehen haben. Der Link steht schon in der Beschreibung; das Urteil steuern Sie bei.
Der Knopf erscheint nur für Eigentümer und Administratoren und niemals in einer Ansicht über einen Freigabe-Link. Wem Sie eine Aufzeichnung geschickt haben, der soll keine Tickets in Ihrem Tracker anlegen können.
2. Die fünf Tracker und was jeder braucht
| Wo es landet | Sie hinterlegen | |
|---|---|---|
| Jira | ein Vorgang in einem Projekt | Site-URL, Konto-E-Mail, API-Token, Projektschlüssel, Vorgangstyp |
| Linear | ein Issue in einem Team | API-Schlüssel, Team-ID |
| Asana | eine Aufgabe in einem Projekt | Personal Access Token, Projekt-ID |
| Trello | eine Karte in einer Liste | Key, Token, Listen-ID |
| GitHub | ein Issue in einem Repository | Personal Access Token, owner/repo |
Eine Kachel, ein ausgewählter Anbieter. Später auf einen zweiten Tracker zu wechseln ist eine andere Auswahl, keine Migration.
Woher die Kennungen kommen
Die Team-ID von Linear und die Projekt-ID von Asana stehen in der Adresse, wenn Sie Team oder Projekt im Browser öffnen. Die Listen-ID von Trello ist die unhandlichste der fünf: hängen Sie .json an eine Board-Adresse und suchen Sie die gewünschte Liste heraus. Der Projektschlüssel von Jira ist das Kürzel vor jeder Vorgangsnummer - ACME in ACME-1234.
3. Den Link im Ticket baut unser Server
Die Beschreibung, die Sie tippen, gehört Ihnen. Der Link zur Aufzeichnung nicht - er wird auf unserer Seite aus der Sitzung zusammengesetzt, die Sie tatsächlich angesehen haben, und das Formular kann daran nichts ändern.
Das ist wichtig, weil ein Ticket etwas ist, worauf andere Leute klicken. Käme der Link aus dem Browser, könnte eine gebastelte Anfrage Ihrem Team eine beliebige Adresse in etwas vorlegen, das aussieht wie Ihr eigenes Werkzeug.
HTTP 200 heißt nicht, dass das Ticket existiert
Linear antwortet über GraphQL, und GraphQL antwortet auch bei einer Ablehnung mit 200 OK und einem errors-Feld. Eine Brücke, die nur den Statuscode ansieht, meldet Erfolg für ein Ticket, das nie entstanden ist. Wir lesen den Rumpf.
Wo ein Tracker die Kennung des neuen Vorgangs zurückgibt, steht sie in der Bestätigung - damit Sie nachsehen können, ob er wirklich da ist, statt einer grünen Meldung zu glauben.
4. Was hier bewusst nicht ist
Keine automatischen Tickets
Siehe oben. Wer Automatik will, kann über die Webhook-Brücke Frustrationssignale an Zapier oder Make schicken und dort entscheiden, was ein Ticket verdient.
Keine Synchronisation in beide Richtungen
Das Ticket zu schließen ändert in MousePlayer nichts, und nichts in MousePlayer öffnet es wieder. Eine Synchronisation, die anderthalb Richtungen läuft, ist schlechter als keine, weil man sich auf sie zu verlassen beginnt.
Keine Anhänge
Die Aufzeichnung bleibt bei uns und wird bei uns angesehen. Ein Video in einen Tracker zu exportieren schöbe personenbezogene Daten in ein System mit anderen Aufbewahrungsregeln als denen, die Sie Ihren Besuchern zugesagt haben.
Der Token liegt AES-256-GCM verschlüsselt und wird nie wieder angezeigt. Er kommt außerdem nie in die interne Warteschlange - dieser Aufruf geschieht, während Sie warten, unmittelbar aus der Anfrage heraus.
5. GitLab, Azure DevOps und ClickUp
Drei weitere Tracker, derselbe Knopf, dieselbe Auslösung von Hand.
| Sie hinterlegen | |
|---|---|
| GitLab | Host, Projekt-ID und ein Token - Ihr eigenes GitLab geht auch |
| Azure DevOps | Organisation, Projekt, Vorgangstyp und ein PAT |
| ClickUp | Listen-ID und ein persönliches Token |
GitLab fragt nach einem Host, weil er Ihnen gehören könnte
Anders als die übrigen wird GitLab oft selbst betrieben, der Host ist deshalb ein Feld und keine Konstante. Tragen Sie gitlab.com ein, wenn Sie dort sind.
Azure DevOps hat zwei Eigenheiten auf einmal
Sein Rumpf ist ein JSON-Patch-Dokument statt eines Objekts, und der Inhaltstyp muss application/json-patch+json lauten - alles andere antwortet mit 415. Das Dollarzeichen vor dem Vorgangstyp in der Adresse ist Teil der Adresse und kein Platzhalter, den wir vergessen hätten zu füllen.
ClickUp will das Token nackt
Ohne Bearer davor. Ein Token mit dem Wort davor wird mit 401 abgewiesen, und das sieht aus wie ein falsches Token.
Alle genannten Marken gehören ihren jeweiligen Inhabern. MousePlayer steht in keiner geschäftlichen Verbindung zu diesen Anbietern.