fix: agent_poller merge-pr 处理 Gitea 空响应体 - Closes #3
CI / test (pull_request) Successful in 7s
CI / test (pull_request) Successful in 7s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -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')}")
|
||||||
|
|||||||
Reference in New Issue
Block a user