Merge: resolve conflict in agent_poller.py
CI / test (push) Successful in 9s

This commit is contained in:
2026-06-02 16:21:23 +08:00
+6 -4
View File
@@ -57,7 +57,9 @@ def _req(method, path, data=None):
def _req_safe(method, path, data=None): def _req_safe(method, path, data=None):
"""Like _req but returns None on HTTPError. Safe for probing existence.""" """Like _req but returns None on HTTPError instead of crashing.
Used for probing issue/PR existence where the caller can handle absence.
"""
url = f"{BASE}{path}" url = f"{BASE}{path}"
payload = json.dumps(data).encode("utf-8") if data else None payload = json.dumps(data).encode("utf-8") if data else None
req = urllib.request.Request(url, data=payload, method=method) req = urllib.request.Request(url, data=payload, method=method)
@@ -103,7 +105,7 @@ def _get_blocking_refs(issue_num: int) -> set[int]:
# Body # Body
issue = _req_safe("GET", f"/issues/{issue_num}") issue = _req_safe("GET", f"/issues/{issue_num}")
if issue is None: if issue is None:
return refs return refs # API error → return empty set, keep blocked
body = issue.get("body", "") or "" body = issue.get("body", "") or ""
refs.update(int(m.group(1)) for m in re.finditer(r'#(\d+)', body)) refs.update(int(m.group(1)) for m in re.finditer(r'#(\d+)', body))
# Comments # Comments
@@ -135,7 +137,7 @@ def blocked_check():
for blk in blocking_nums: for blk in blocking_nums:
blk_issue = _req_safe("GET", f"/issues/{blk}") blk_issue = _req_safe("GET", f"/issues/{blk}")
if blk_issue is None: if blk_issue is None:
all_resolved = False all_resolved = False # API error → keep blocked
break break
if blk_issue.get("state") != "closed": if blk_issue.get("state") != "closed":
all_resolved = False all_resolved = False
@@ -209,7 +211,7 @@ def _unblock_issues_blocked_by(closed_num):
continue continue
blk_issue = _req_safe("GET", f"/issues/{blk}") blk_issue = _req_safe("GET", f"/issues/{blk}")
if blk_issue is None: if blk_issue is None:
all_resolved = False all_resolved = False # API error → keep blocked
break break
if blk_issue.get("state") != "closed": if blk_issue.get("state") != "closed":
all_resolved = False all_resolved = False