Einsatzbeispiele

Vier Arten, GitPulse zu nutzen, jeweils zum Kopieren. Alle gehen von derselben Config aus — einmal anlegen mit gitpulse init ~/code.

1. Der Morgen-Check

Du öffnest das Terminal und willst wissen, was du gestern offen gelassen hast.

gitpulse --compact

Gelistet werden nur Repositories mit nicht committeten Änderungen, ungepushten oder fehlenden Commits oder Stashes. Eine leere Liste heißt: alles erledigt.

Mit -v siehst du zusätzlich jeden Branch mit Sync-Stand und Alter — praktisch vor dem Aufräumen:

gitpulse --compact -v

2. Die tägliche Status-Mail

Lass dir die Übersicht per Cron an jedem Werktag um 8:00 schicken. --compact --html erzeugt eine eigenständige Seite nur mit den Repositories, die Aufmerksamkeit brauchen — mit Inline-Styles, damit sie auch in Outlook und Gmail richtig aussieht.

# crontab -e
0 8 * * 1-5  /usr/local/bin/gitpulse --compact --html | mail -a "Content-Type: text/html" -s "Repo-Status" du@example.com

Läuft Cron unter einem anderen Benutzer, gib die Config mit --config /pfad/zu/repos.ini an.

3. Mehrere Server per SSH

remote_gitpulse kopiert das passende gitpulse-Binary und eine Config auf einen Linux- oder macOS-Server, scannt dort und entfernt danach alles wieder. Auf dem Server bleibt nichts installiert.

# server-repos.ini enthält die Pfade, wie sie auf dem Server liegen
remote_gitpulse -host deploy@web01 -config server-repos.ini -arch linux-amd64
remote_gitpulse -host deploy@pi    -config pi-repos.ini     -arch linux-arm64

Typischer Fund: Jemand hat eine Config direkt auf dem Server geändert und nie committet.

4. Skripte, Dashboards und CI

--json liefert den vollständigen Stand — jedes Repository, jeden lokalen Branch, Ahead/Behind-Zähler, Stashes, letzten Commit und letzten Fetch.

# Namen aller Repositories mit nicht committeten Änderungen
gitpulse --json | jq -r '.results[] | select(.is_clean == false) | .name'

# CI-Job scheitern lassen, wenn irgendetwas ungepusht ist
gitpulse --json | jq -e '.summary.ahead == 0'

Die Feldreferenz steht im JSON-Schema. Go-Entwickler können den Scanner direkt als Bibliothek nutzen — siehe Bibliotheks-Doku.