Workbench
Fristen, Milestones und Merge Requests über alle GitLab-Projekte hinweg auf einem Board.
- Im Betrieb
- Rails 8.1, PostgreSQL, GoodJob, React 19, TypeScript, TanStack Router, WorkOS, Playwright
Das Problem
GitLab weiss alles über ein Projekt und nichts über die Lage. Wer zwanzig Projekte in vier Gruppen betreibt, sieht zwanzig Issue-Listen und keine Antwort auf die einzige Frage, die zählt: Was ist diese Woche fällig, und woran hängt es. Die üblichen Auswege sind ein Spreadsheet daneben oder ein zweites Ticketsystem, das dann gepflegt werden will.
Wie es das löst
Workbench indexiert Fristen, Milestones, Work Items und Merge Requests über Projekte, Gruppen und mehrere freigegebene GitLab-Instanzen hinweg. GitLab bleibt dabei die Wahrheit. Workbench hält nur eine wegwerfbare Projektion, die an einen Workspace gebunden ist, und speichert weder Beschreibungen noch Kommentare, weder Quellcode noch Diffs, weder Tokens noch rohe Webhook-Rümpfe.
Darüber liegt ein Kanban aus React, das projektübergreifende Arbeit als Spalten zeigt.
Was es kann
Spalten sind Regeln, keine Zugehörigkeitstabellen. Eine Spalte ist ein Prädikat über die Projektion. Eine Karte zu verschieben schreibt nach GitLab; in welcher Spalte sie danach liegt, ergibt sich aus der erneuten Auswertung der Regeln. Vor dem Schreiben läuft eine Simulation, und ein Zug, der nicht ankäme, wird abgelehnt statt halb ausgeführt.
Mandantentrennung in der Datenbank. Jede Tabelle trägt eine workspace_id mit erzwungenem
Row Level Security. Jeder Zugriff läuft durch WorkspaceContext.with, und fehlender Kontext
scheitert laut. Achtzehn Tabellen sind so inventarisiert und werden zur Laufzeit geprüft.
Sessions für Coding-Agenten. Ein CLI namens wb meldet eine Arbeitssitzung an, überlebt den
Neustart des Agenten und verfällt nach einem Tag Stille von selbst. Die Sitzungen erscheinen als
Flotten-Dashboard und als Badge auf der Board-Karte.
Geteilte Pläne mit unratbarem Link. wb plan push legt unveränderliche Plan-Revisionen ab,
wb plan share erzeugt dazu einen öffentlichen Link. Das ist der einzige unauthentifizierte
Lesezugriff der Anwendung, und er wird nicht von einer Controller-Prüfung eingegrenzt, sondern
von einer eigenen RLS-Policy.
CI-Historie als bewusste Ausnahme. Pipeline- und Job-Zeiten werden 400 Tage aufbewahrt, obwohl die Projektion sonst wegwerfbar ist. Der Grund steht in einem ADR: selbstverwaltetes GitLab bietet keine abfragbare Job-Historie mit Wartezeit und P50/P95.
Was es nicht tut
Es ist kein Ersatz für GitLab und will keiner sein. Ohne GitLab hat Workbench nichts zu zeigen.
Es läuft heute als internes Produktionssystem bei uns selbst. Wir haben keine externen Nutzer, über die wir etwas behaupten könnten, und es gibt keine Self-Service-Registrierung.
Es unterstützt GitLab ab 19.1 und nur freigegebene Instanzen. GitHub, Jira und Azure DevOps sind nicht angebunden.
Workbench
Auf die Warteliste
Schreiben Sie uns, was Sie damit vorhaben. Wir melden uns, sobald Workbench für Sie bereitsteht.
Auf die Warteliste