sync_state.py: Push Retry bei Ref-Konflikt
This commit is contained in:
parent
487ad075a0
commit
1b6519a3d7
1 changed files with 23 additions and 12 deletions
|
|
@ -404,18 +404,29 @@ def git_commit_and_push(cfg: config.HomelabConfig, forgejo_url: str):
|
||||||
capture_output=True, timeout=15,
|
capture_output=True, timeout=15,
|
||||||
)
|
)
|
||||||
|
|
||||||
r = subprocess.run(
|
for _push_attempt in range(3):
|
||||||
["git", "-C", str(REPO), "push", forgejo_url, "main", "--quiet"],
|
r = subprocess.run(
|
||||||
capture_output=True, text=True, timeout=30,
|
["git", "-C", str(REPO), "push", forgejo_url, "main", "--quiet"],
|
||||||
)
|
capture_output=True, text=True, timeout=30,
|
||||||
if r.returncode == 0:
|
)
|
||||||
log("Push erfolgreich")
|
if r.returncode == 0:
|
||||||
(DEBOUNCE_DIR / "git_push.lock").unlink(missing_ok=True)
|
log("Push erfolgreich")
|
||||||
else:
|
(DEBOUNCE_DIR / "git_push.lock").unlink(missing_ok=True)
|
||||||
err = r.stderr.split("\n")[0] if r.stderr else "unbekannt"
|
return
|
||||||
log(f"Push FEHLER: {err}")
|
log(f"Push Retry {_push_attempt + 1}/3 — re-sync...")
|
||||||
tg_alert(cfg, "git_push",
|
subprocess.run(
|
||||||
f"*Homelab Git-Sync fehlgeschlagen*%0A%0AFehler: {err}%0AZeit: {DATE}")
|
["git", "-C", str(REPO), "fetch", forgejo_url, "main", "--quiet"],
|
||||||
|
capture_output=True, timeout=30,
|
||||||
|
)
|
||||||
|
subprocess.run(
|
||||||
|
["git", "-C", str(REPO), "rebase", "FETCH_HEAD"],
|
||||||
|
capture_output=True, timeout=15,
|
||||||
|
)
|
||||||
|
|
||||||
|
err = r.stderr.split("\n")[0] if r.stderr else "unbekannt"
|
||||||
|
log(f"Push FEHLER nach 3 Versuchen: {err}")
|
||||||
|
tg_alert(cfg, "git_push",
|
||||||
|
f"*Homelab Git-Sync fehlgeschlagen*%0A%0AFehler: {err}%0AZeit: {DATE}")
|
||||||
|
|
||||||
|
|
||||||
# ── Main ──────────────────────────────────────────────
|
# ── Main ──────────────────────────────────────────────
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue