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()

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…