fix: agent_poller merge-pr 处理 Gitea 空响应体 - Closes #3
CI / test (pull_request) Successful in 7s

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-31 14:41:23 +08:00
parent 884848f15f
commit c31ddd0bb3
+9 -2
View File
@@ -33,7 +33,10 @@ def _req(method, path, data=None):
req.add_header("Content-Type", "application/json") req.add_header("Content-Type", "application/json")
try: try:
with urllib.request.urlopen(req) as resp: 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: except urllib.error.HTTPError as e:
body = e.read().decode() body = e.read().decode()
print(f"API Error {e.code}: {body}", file=sys.stderr) print(f"API Error {e.code}: {body}", file=sys.stderr)
@@ -153,7 +156,11 @@ def merge_pr(pr_num):
sys.exit(1) sys.exit(1)
result = _req("POST", f"/pulls/{pr_num}/merge", {"Do": "merge"}) 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") print(f"PR #{pr_num} merged successfully")
else: else:
print(f"Merge result: {result.get('message', 'unknown')}") print(f"Merge result: {result.get('message', 'unknown')}")