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 landetSie hinterlegen
Jiraein Vorgang in einem ProjektSite-URL, Konto-E-Mail, API-Token, Projektschlüssel, Vorgangstyp
Linearein Issue in einem TeamAPI-Schlüssel, Team-ID
Asanaeine Aufgabe in einem ProjektPersonal Access Token, Projekt-ID
Trelloeine Karte in einer ListeKey, Token, Listen-ID
GitHubein Issue in einem RepositoryPersonal 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
GitLabHost, Projekt-ID und ein Token - Ihr eigenes GitLab geht auch
Azure DevOpsOrganisation, Projekt, Vorgangstyp und ein PAT
ClickUpListen-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.