Software · Engineering-Management
Engineering-Analytics: Lieferfluss und DORA-Metriken aus GitLab- und Tracker-Daten, nur lesend und auditiert
Ein internes Analysesystem, das GitLab und Issue-Tracker eines Unternehmens über einen Read-only-Connector ausliest und der Engineering-Leitung Lieferfluss, DORA-Metriken und Prozessqualität zeigt, mit MFA und Append-only-Audit-Log.
- Branche
- Software · Engineering-Management
- Technologien
- Python 3.12 · FastAPI · SQLAlchemy 2 + Alembic
Ausgangslage
Die Engineering-Leitung wollte einen faktenbasierten Blick auf Entwicklungsaktivität, Lieferfluss und Prozessqualität, über ein grosses selbst gehostetes GitLab und einen Issue-Tracker hinweg. Zwei Vorgaben prägten das ganze System. Es durfte in GitLab nichts verändern können, egal welches Token jemand hinterlegt. Und es sollte Entscheide des Managements unterstützen, ohne zu einer automatischen Bewertung von Menschen zu werden; jede Zahl brauchte deshalb ihren Kontext, ihre Stichprobengrösse und einen klaren Hinweis, wenn Daten fehlten.
Lösung
Wir haben einen einzigen Connector gebaut, über den jeder GitLab-Aufruf läuft. Er verweigert standardmässig alles, erlaubt nur GET- und HEAD-Anfragen, akzeptiert GraphQL nur als feste Query-Dokumente, schützt vor SSRF und Weiterleitungen und lehnt Admin-Tokens, Tokens mit Schreibrechten und Maintainer-Tokens ab, bevor sie gespeichert werden. Importe sind idempotente Upserts, und die täglichen Aggregate werden nach jedem Lauf neu berechnet. Commit-Autoren werden über begrenzte Abfragen und Push-Ereignisse Personen zugeordnet; rund 98 % der Commits sind zugeordnet. Code berechnet jede Metrik; das Sprachmodell fasst nur berechnete Aggregate in Worte.
Wie es zusammenhängt
- 01 Import nur lesend
- 02 Identitätsabgleich
- 03 Normalisieren & aggregieren
- 04 Metriken & DORA
- 05 Dashboard & Fragen
Was wir geliefert haben
- Import von Gruppen, Projekten, Commits, Merge Requests, Kommentaren und Pipelines
- Identitätsabgleich von der Commit-E-Mail zum Konto
- Periodenvergleich, der Datenabdeckung und Arbeitstage berücksichtigt, mit der Stichprobengrösse bei jedem Verhältniswert
- DORA-Liefermetriken: Deployment-Frequenz, Lead Time, Change Failure Rate und Rework; ein DORA-Level wird nur angezeigt, wenn alle Eingangsdaten vorliegen
- Anbindung des Issue-Trackers: mit Merge Requests verknüpfte Aufgaben, Incidents, Zeit bis zur Wiederherstellung und Anteil ungeplanter Arbeit
- Rollen und Abwesenheiten aus der API eines HR-Systems oder aus einem CSV-Export
- Dashboard mit Ansichten für Teams, Projekte und nicht zugeordnete Autoren sowie Exporte
- Ein MCP-Server und ein Panel «Fragen an die Daten»
- Rund 630 automatisierte Tests
Funktionen
- Connector nach dem Default-Deny-Prinzip: nur GET und HEAD, feste GraphQL-Dokumente, Mutationen werden abgelehnt
- Token-Prüfung vor dem Speichern: Admin-Tokens, Tokens mit Schreibrechten und Maintainer-Tokens werden abgelehnt
- Obligatorische Anmeldung mit TOTP-Multi-Faktor-Authentifizierung, ohne öffentliche Registrierung
- Append-only-Audit-Log, in PostgreSQL erzwungen
- Secrets mit Fernet verschlüsselt und in Logs geschwärzt
- Versionierte Prompts; an das Modell gehen nur Aggregate
Integrationen
- GitLab REST- und GraphQL-APIs, nur lesend
- API des Issue-Trackers
- API eines HR-Systems oder CSV-Export
- Google Gemini API
Technologien
Ergebnis
Läuft mit den echten Daten des Unternehmens, ein ganzes Jahr ist importiert. Synchronisierungen werden bei Bedarf gestartet.
Warum fasst das Modell Zahlen nur in Worte?
Die Leitung handelt auf Basis dieser Zahlen, also muss jede einzelne reproduzierbar sein. Code berechnet jede Metrik aus gespeicherten Daten, mit Zeitraum, Abdeckung und Stichprobengrösse. Das Sprachmodell erhält nur diese Aggregate, mit einem versionierten Prompt, und macht daraus eine lesbare Zusammenfassung oder eine Antwort auf eine Frage. Es sieht nie rohe Commits oder Kommentare und erzeugt nie eine eigene Zahl. Sind die Daten für einen Zeitraum unvollständig, sagt das Dashboard das, statt eine scheinbar sichere Zahl anzuzeigen.
Projekt besprechen
Erzählen Sie uns von Ihrem Projekt