2026 OpenClaw auf gemietetem Mac Mini: GitHub API mit repository_dispatch — nächtliche Ereignisketten, Stillefenster und Backoff-Alarme
Automatisierungsingenieure, die OpenClaw auf einem 7×24 gemieteten Mac Mini betreiben, brauchen oft einen GitHub-seitigen Steuerpfad, der nicht an einen einzelnen Workflow-Dateinamen gebunden ist. Der REST-Endpunkt repository_dispatch liefert genau das: typisierte event_type-Strings, JSON-client_payload und Workflows mit on.repository_dispatch.types.
Dieses Runbook grenzt sich bewusst vom workflow_dispatch-Nachtbatch ab: dort benennt die API eine YAML-Datei und Input-Map. Hier benennt sie eine Ereigniskette, die OpenClaw starten und später zusammenfassen kann. Ergänzend: Cron, Health und Backoff per launchd, 7×24-Scheduling-Matrix, Gateway-Heartbeat und Blog-Überblick.
- Token-Sprawl: Zu breite PATs verbinden Nachtjobs mit unnötigen Schreibpfaden.
- Ketten ohne Vertrag: Ohne festes client_payload-Schema brechen Folgejobs still.
- Alarm-Hagel: Jede Netztransiente triggert Tickets, wenn kein Backoff und kein OpenClaw-Digest greifen.
Entscheidungsmatrix
| Kriterium | repository_dispatch | workflow_dispatch |
|---|---|---|
| API-Oberfläche | /dispatches mit event_type |
Workflow-Datei plus inputs |
| Typische PAT-Breite | Metadata lesen, Contents lesen/schreiben | häufig Actions schreiben nötig |
| Kettenmodell | Ereignisbus im Repo | Operator-zentrierte Läufe |
| OpenClaw-Rolle | Erster Dispatch, Digest am Ende | Trigger pro definierter Pipeline |
PAT mit Minimalrechten
Für POST https://api.github.com/repos/OWNER/REPO/dispatches genügt bei Fine-grained PAT typischerweise Metadata lesen sowie Contents lesen und schreiben auf genau einem Ziel-Repository. Das ist schmaler als viele workflow_dispatch-Setups, die Actions-Schreibrechte erfordern. Lebensdauer kurz halten, Secret mit chmod einschränken, Rotation mit Gateway-Upgrade-Checkpoints abstimmen.
| Ressource | Empfohlene Stufe | Begründung |
|---|---|---|
| Metadata | Lesen | API-Grundlage ohne Admin |
| Contents | Lesen und schreiben | erfüllt Dispatch-Vertrag laut Doku |
| Actions allgemein | kein Org-weites Schreiben | Blast-Radius für Nachtaufgaben begrenzen |
Payload-Konventionen
Behandeln Sie client_payload als versionierten Vertrag. Pflichtfelder batch_id, segment, correlation_id und issuer erzwingen konsistente Logs auf dem Mac Mini und in GitHub Actions. Große Artefakte nur als Referenz übergeben.
| Feld | Rolle |
|---|---|
| batch_id | Idempotenz auf dem Mietknoten |
| segment | Lesbare Phase für OpenClaw-Digests |
| correlation_id | UUID über Webhooks und Jobs |
| issuer | openclaw_gateway | launchd | manual |
on:
repository_dispatch:
types: [openclaw_nacht_a, openclaw_nacht_b]
Ketten-Statusmaschine
Modellieren Sie WARTE bis der Mini das Fenster bestätigt, dann SEGMENT_A, SEGMENT_B, ERFOLG oder FEHLER. Genau eine Instanz soll die nächste Transition per REST auslösen—entweder letzter Job mit PAT, gh api oder der OpenClaw-Router—sonst entstehen Wettläufe. Vertiefung: Multi-Szenario-Orchestrierung.
Nach erfolgreicher Validierung folgt ein zweiter Dispatch mit gleicher correlation_id. Bei Validierungsfehler einmaliger Alarm-Pfad ohne erneutes POST.
Stillefenster
launchd startet das Skript nur zwischen z. B. 01:00 und 05:00 Ortszeit; außerhalb beendet sich das Skript mit Null ohne GitHub API-Aufruf. Übersprungene Versuche in eine lokale JSONL-Warteschlange schreiben; OpenClaw sendet beim Öffnen des Fensters einen Digest statt vieler Einzelalarme—analog Daemon-Health-Webhooks.
Fehleralarme mit Backoff
Bei 429 immer Retry-After befolgen; bei 5xx exponentielles Warten mit harter Obergrenze und Jitter. Nach Budget-Erschöpfung signierter Webhook an OpenClaw mit batch_id und letztem Status—niemals das PAT. So bleiben Nachtaufgaben auditierbar.
curl und gh reproduzierbar
Zuerst vom Laptop testen, dann dieselbe Zeile in eine root-launchd-Hülle auf dem Mac Mini legen.
curl -sS -X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/ORG/REPO/dispatches \
-d '{"event_type":"openclaw_nacht_a","client_payload":{"batch_id":"20260424","segment":"a","correlation_id":"'"$(uuidgen)"'","issuer":"launchd"}}'
gh api -X POST repos/ORG/REPO/dispatches --input - <<'JSON'
{
"event_type": "openclaw_nacht_b",
"client_payload": {
"batch_id": "20260424",
"segment": "b",
"correlation_id": "UUID_HIER",
"issuer": "openclaw_gateway"
}
}
JSON
Fünf Umsetzschritte
- YAML mit
on.repository_dispatch.typesfür alle Segmente anlegen. - Fine-grained PAT erzeugen, auf dem Mini als Umgebungsvariable injizieren.
- Ersten Dispatch per
curlverifizieren, Lauf in der Actions-UI prüfen. - launchd-Plist mit Zeitfenster und Checkpoint-Datei aktivieren.
- Webhook oder Collector-Endpunkt für Eskalation nach Backoff an OpenClaw anbinden.
Zitierfähige Leitplanken
- Fünf HTTP-Versuche mit exponentiellem Backoff als Startbudget vor menschlicher Eskalation.
- Vier Stunden Stillefenster als pragmatische APFS- und API-schonende Nachtbandbreite.
- Ein primärer Scheduler pro Knoten, niemals parallel cron und launchd für dieselbe Kette.
FAQ
- Warum nicht nur workflow_dispatch?
- Weil repository_dispatch maschinelle event_type-Ströme ohne Dateinamen in der URL bevorzugt und oft schmalere Tokens erlaubt.
- Trifft dispatch immer den Feature-Branch?
- Standardläufe folgen dem Default-Branch; planen Sie Test-Repos oder klar getrennte Workflows.
- Welche Rolle hat OpenClaw?
- Kanten-Orchestrierung: erster Aufruf, Checkpoint, Sammelalarm statt Chat-Spam.
Nächster Schritt: Dedizierten Apple-Silicon-Mac Mini für OpenClaw und repository_dispatch-Ketten mieten — Preise, kaufen.html ohne Anmeldung, Hilfe-Center für SSH/VNC, Blog für weitere Runbooks.
Mac-Knoten für OpenClaw + repository_dispatch
GitHub API-Ketten stabil von einem Miet-Mac Mini aus feuern. Startseite, Pakete, Jetzt mieten, SSH und VNC, Blog.
repository_dispatch dauerhaft betreiben: Bestellen, Hilfe, Blog.