Minimal GitHub Traffic Telemetry System. Sammelt Views, Clones, Pull Requests und Package-Downloads via GitHub API und stellt sie als Dashboard (uPlot) bereit.
export GITHUB_TOKEN=ghp_...
export REPOS=owner/repo,owner/repo2
make runpodman-compose up --buildHinweis: Das Projekt ist auf Podman ausgelegt (rootless). Docker funktioniert ebenfalls, ist aber nicht der primäre Workflow.
Benötigte Scopes für den PAT:
| Scope | Zweck |
|---|---|
repo | Traffic-Daten (Views, Clones) – erfordert Push-Zugriff auf das Repo |
read:packages | Package-Download-Statistiken (optional) |
GitHub erlaubt Traffic-Abfragen nur für Repos, auf die der Token-Inhaber Push-Zugriff hat. Für reine Lesezwecke reicht
public_reponicht –repoist Pflicht.
| Variable | Beschreibung | Default |
|---|---|---|
GITHUB_TOKEN | GitHub PAT (siehe oben) | – |
REPOS | Kommagetrennte Repo-Liste (owner/repo) | – |
DB_PATH | Pfad zur SQLite-Datenbank | ./data/tracegit.db |
PORT | HTTP-Port | 8855 |
FETCH_INTERVAL | Abruf-Intervall (Cron-kompatibel, z.B. 6h) | 6h |
Token und Repos können alternativ über die Web-UI unter /settings konfiguriert werden.
# Views für ein Repo (letzte 7 Tage)
curl "http://localhost:8855/api/views?repo=owner/repo&range=7d"# Clones für ein Repo (letzte 30 Tage)
curl "http://localhost:8855/api/clones?repo=owner/repo&range=30d"# Pull Requests
curl "http://localhost:8855/api/pulls?repo=owner/repo&range=7d"# Package Downloads
curl "http://localhost:8855/api/packages?repo=owner/repo&range=7d"# Gespeicherte Repos auflisten
curl "http://localhost:8855/api/repos"# Verfügbare GitHub-Repos des Token-Inhabers auflisten
curl "http://localhost:8855/api/github/repos"# Health Check
curl "http://localhost:8855/health"# Manuellen Fetch auslösen
curl -X POST "http://localhost:8855/api/fetch"# Datenbank-Backup herunterladen
curl -o backup.db "http://localhost:8855/api/backup"# Backup wiederherstellen
curl -X POST "http://localhost:8855/api/restore" \
-F "file=@backup.db"Zwei Workflows laufen bei jedem Push/PR auf main:
| Workflow | Datei | Was wird geprüft |
|---|---|---|
| Build & Test | .github/workflows/build-test.yml | go build, go test, go vet, govulncheck |
| Container Release | .github/workflows/release-container.yml | Container-Image bauen und pushen |
Das Dashboard läuft unter http://localhost:8855/ und zeigt Views, Clones, PRs und Package-Downloads als interaktive uPlot-Graphen. Einstellungen (Token, Repos, Fetch-Intervall) sind über /settings erreichbar.