用途:把“关闭 GitHub Issue 并记录经验”变成结构化流程。它先校验总结文本,再通过 GitHub API 发布评论并关闭 Issue,最后可选执行后置回调。
主要能力:validate=must_have_synthesis_text 对原始输入做校验,空或仅空白会直接失败且不调用 GitHub API;close_github_issue 先发布总结评论,再 PATCH 为 state=closed、state_reason=completed,返回 issue URL 与 comment URL;post_close_callback 可选且分离执行,可接入记忆系统、追踪器或 webhook,失败进入 result["detached_failures"],不会导致关闭失败。
使用方式:from closing_issues import close_issue,调用 close_issue(repo="owner/repo", number=42, synthesis="..."),可传 post_close_callback。回调接收 synthesis、issue_url、repo、number 关键字参数,返回值进入 result["callback_result"]。结果含 issue_url、comment_url、comment_id、callback_result、detached_failures。仅 GitHub 关闭本身失败时抛 RuntimeError。
认证:环境需 GH_TOKEN 或 GITHUB_TOKEN,使用 classic PAT 或具备 repo 范围(具体 issues:write)的细粒度 PAT。
适用场景:需要留下“学到了什么”的关闭评论,强调 why 而非 what,记录失败模式、约束与被拒方案。
限制:不适合无总结的关闭,可直接用 gh issue close N;批量关闭可用循环调用,但每次流程初始化有少量开销。依赖 flowing DAG 运行器。