From c31ddd0bb3c50dc027bd8eff6d7e70f51de02aed Mon Sep 17 00:00:00 2001 From: Peter Zhang <18501667167@qq.com> Date: Sun, 31 May 2026 14:41:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20agent=5Fpoller=20merge-pr=20=E5=A4=84?= =?UTF-8?q?=E7=90=86=20Gitea=20=E7=A9=BA=E5=93=8D=E5=BA=94=E4=BD=93=20-=20?= =?UTF-8?q?Closes=20#3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- scripts/agent_poller.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/agent_poller.py b/scripts/agent_poller.py index c9443cf..d54c1e8 100644 --- a/scripts/agent_poller.py +++ b/scripts/agent_poller.py @@ -33,7 +33,10 @@ def _req(method, path, data=None): req.add_header("Content-Type", "application/json") try: with urllib.request.urlopen(req) as resp: - return json.loads(resp.read()) + raw = resp.read() + if not raw: + return {} # Gitea merge returns 200 with empty body + return json.loads(raw) except urllib.error.HTTPError as e: body = e.read().decode() print(f"API Error {e.code}: {body}", file=sys.stderr) @@ -153,7 +156,11 @@ def merge_pr(pr_num): sys.exit(1) result = _req("POST", f"/pulls/{pr_num}/merge", {"Do": "merge"}) - if result.get("merged"): + # Verify merge success by re-checking PR state + pr_after = _req("GET", f"/pulls/{pr_num}") + if pr_after.get("merged"): + print(f"PR #{pr_num} merged successfully") + elif result.get("merged"): print(f"PR #{pr_num} merged successfully") else: print(f"Merge result: {result.get('message', 'unknown')}")