INNER CODE UNIT · Python
classify_issue
zachlagden/Pi-hole-Optimized-Blocklists · .github/triage/triage/__main__.py:126
def classify_issue(issue: dict, api_key: str | None) -> tuple[ai_review.Classification | None, LabelPlan]:
current = {label["name"] for label in issue.get("labels", [])}
if not api_key:
return None, LabelPlan()
result = ai_review.classify(issue.get("title", ""), issue.get("body") or "", sorted(current), api_key)
if result.error:
print(f"::warning::classification failed: {result.error}", file=sys.stderr)
return result, LabelPlan()
return result, plan_type(current, result.type, result.type_reason)
def with_labels(issue: dict, plan: LabelPlan) -> dict:
names = ({label["name"] for label in issue.get("labels", [])} - plan.remove) | plan.add
return {**issue, "labels": [{"name": name} for name in sorted(names)]}
def run_issue(options: argparse.Namespace) -> int:
github = GitHub.from_env()