This commit is contained in:
@@ -57,7 +57,9 @@ def _req(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}"
|
||||
payload = json.dumps(data).encode("utf-8") if data else None
|
||||
req = urllib.request.Request(url, data=payload, method=method)
|
||||
@@ -103,7 +105,7 @@ def _get_blocking_refs(issue_num: int) -> set[int]:
|
||||
# Body
|
||||
issue = _req_safe("GET", f"/issues/{issue_num}")
|
||||
if issue is None:
|
||||
return refs
|
||||
return refs # API error → return empty set, keep blocked
|
||||
body = issue.get("body", "") or ""
|
||||
refs.update(int(m.group(1)) for m in re.finditer(r'#(\d+)', body))
|
||||
# Comments
|
||||
@@ -135,7 +137,7 @@ def blocked_check():
|
||||
for blk in blocking_nums:
|
||||
blk_issue = _req_safe("GET", f"/issues/{blk}")
|
||||
if blk_issue is None:
|
||||
all_resolved = False
|
||||
all_resolved = False # API error → keep blocked
|
||||
break
|
||||
if blk_issue.get("state") != "closed":
|
||||
all_resolved = False
|
||||
@@ -209,7 +211,7 @@ def _unblock_issues_blocked_by(closed_num):
|
||||
continue
|
||||
blk_issue = _req_safe("GET", f"/issues/{blk}")
|
||||
if blk_issue is None:
|
||||
all_resolved = False
|
||||
all_resolved = False # API error → keep blocked
|
||||
break
|
||||
if blk_issue.get("state") != "closed":
|
||||
all_resolved = False
|
||||
|
||||
Reference in New Issue
Block a user