gitpuls

Blog

So entstehen die Zahlen in diesem Blog

Jede Zahl in diesem Blog stammt aus einer laufenden gitpuls-Instanz auf einem VPS, die ein GitHub-Konto liest: das Konto von Cédric Freivogel mit allen öffentlichen und privaten Repos. Zu jeder Zahl steht das Datum im Satz. Namen von Repos, Kunden, Hosts und Adressen erscheinen nie, nur Summen.

Welche Commits zählen?

Die Commits auf dem Default-Branch jedes Repos, gelesen über die GitHub-API ab dem ersten erfassten Commit am 28. Januar 2026. Merge-Commits werden getrennt gezählt und fehlen in allen Aktivitätszahlen. Ein Commit auf einem Feature-Branch zählt, sobald er gemergt ist.

Zu welchem Tag gehört ein Commit?

Zum Tag in der Zeitzone des Servers, Europe/Zurich, von 00:00 bis 23:59:59. Eine Woche beginnt am Montag um 00:00.

Wie werden geänderte Zeilen gezählt?

Je Commit mit git log --numstat und einer festen Ausschlussregel: JSON-Dateien ausser package.json, tsconfig*.json und jsconfig*.json; .geojson, .csv, .tsv, .xml; minifizierte Dateien, Source-Maps, .svg, Snapshots und Lockfiles; alles unter dist, build, vendor, node_modules, coverage und .next auf jeder Pfadebene; dazu jede einzelne Datei mit mehr als 3'000 geänderten Zeilen in einem Commit.

Wie werden Server und Firewall gelesen?

Ein Skript auf dem Host liest den Zustand alle 5 Minuten und schreibt ihn in eine Datei, die gitpuls anzeigt; von aussen ist nichts erreichbar. Für die Firewall zählt es die Regeln in den Ketten INPUT und DOCKER-USER, getrennt für IPv4 und IPv6, prüft, ob netfilter-persistent eingeschaltet ist, vergleicht die laufenden Regeln mit den gespeicherten und das Datum der gespeicherten Datei mit dem letzten Start.

Was wird nicht gemessen?

Andere Konten, andere Server und alles, was Zugriff auf Daten Dritter bräuchte. Ist eine Zahl nicht gemessen, sagt der Artikel das.