已合并
fix(api): remove third batch of dead api functions #612
aflyingto创建于 5 天前
fix(api): remove third batch of dead api functions #612
已合并
aflyingto创建于 5 天前
aflyingto成员
5 天前

变更内容

api 死代码清理第三批(issue 635,源于 !610 评审第 N 扫;13 文件 +1/-519 纯删除零新增):

  • 删除 14 符号(issue 15 项中的 13 项 + 连带 helper):AddLabelsToIssue/RemoveLabelFromIssue(label 命令族走存活的 AddIssueLabels/RemoveIssueLabel)、CloseMilestone/OpenMilestone(milestone/edit 走 UpdateMilestone)、UpdateReleaseByTag/DeleteReleaseByTag(release 命令走 direct/Known 变体)、ResolveUserIDs、BuildURL + 其私有 helper replacePath、ParseActionsPluginsList/ParseActionsPluginsListRaw/CountPluginsEntries(plugin list 命令直接用 ParseActionsPluginsPage,三个高层包装无人用)、NewDownloadHTTPClient/NewUploadHTTPClient
  • 删除 19 个测试函数(按文件 delta 对账 1+2+1+6+3+2+4=19 精确吻合)+ 2 个孤儿 import(strings/json)
  • 缓删 2 符号(设计裁定,显式披露):DeleteIssueComment(issue 543 正文明言"API 均已就绪"点名认领)、DeleteRepoDiscussionComment(issue 565 api-only 已规划命令)——开放特性 issue 的预建管线,删除会被既定计划立即回加
  • 误判纠正(编译器即红当场抓获):SetIssueLabels/ClearIssueLabels 曾被纳入删除面(扫描完整性抽查的"漏网发现")——build 失败揭示存活的 RemoveIssueLabel(issue/label/label.go:245 实调)在包内消费二者,已恢复;此前生产引用 grep 只扫 pkg/cmd/internal、漏了 api 包内互调
  • 顺带:DeleteReleaseByTagKnown 的 doc 注释去悬空(原"like DeleteReleaseByTag"改为自含描述)

过程如实披露(删除工具事故与恢复)

批量删除脚本出过两起事故、均被门禁当场拦截并完全恢复:①第二版脚本花括号匹配起点错误(从函数开括号之后找嵌套块开括号),queries_release_test.go 删残(vet 报语法错误)——git checkout 全量重置后以修正版脚本(含"块恰含 1 个 func、以 } 结尾"完备性断言)重删;②TestParseActionsPluginsListInvalid 的原始字符串含不平衡 {(`{invalid json)骗过计数器——断言拦截,改用精确文本块删除。终态经 build/vet/全量 163 包/gofmt 四重验证。

作者自检

  • 作者主体标识: Claude Code 主会话(aflyingto 账号操作);与四角色评审 Agent 为不同执行主体
  • 根因或实现理由: 14 符号零生产引用(逐符号 grep 于 main @ b9e43e8 复核 + 编译器权威证明);重复实现类被存活同类取代、包装类无消费者
  • 主要修改: 13 文件 +1/-519(14 函数 + 19 测试 + 2 孤儿 import + 1 注释去悬空)
  • 影响范围: 纯删除零行为新增;缓删 2 符号与 /milestones/1 mock 路由 PATCH 分支(服务存活 UpdateMilestone、无既有测试——非死函数面具,保留待评审裁定)不动
  • 单元测试: 编译器即红实测两度生效(包内隐藏消费者 SetIssueLabels/ClearIssueLabels 被抓获恢复;脚本删残被 vet 拦截);全量 go test ./... 163 包全过;删除符号全仓 grep 零残留(仅注释性假阳性 2 处已甄别);测试函数 delta 精确 -19
  • 构建: go build ./... 与 go build -o ./gc ./cmd/gc 通过;gofmt 干净
  • 实际命令验证: 无平台端点涉本批(删除依据为零调用方而非端点缺失——与前两批的形态差异);调用方实证含 api 包内互调补扫
  • 安全审查: 纯删除无凭证/权限/secret 变化;删除面含 2 个 HTTP 构造器与 1 个用户名解析工具(均不可达)
  • 文档同步: 无跟随面(14 符号零文档记载——COMMANDS.md 文档化命令全由存活函数支撑,沿 !609/!610 形态)
  • 风险: risk/high(分类器关键词机械命中 release 文件——与前两批同型;实际为纯死代码删除,如实声明供评审与人工裁定)
  • 未覆盖项: 缓删 2 符号的管线归属(issue 543/565);/milestones/1 PATCH 分支保留裁定——均交评审
  • 自检结论: 可进入 ready-for-review

Closes #635

🤖 Generated with Claude Code

likedislike
Pull Request已成功合入, 合并人@aflyingto
(感谢 aflyingto 的贡献)
Aaflyingto成员
5 天前 创建了 pull request,commit 63ee6a27
Aaflyingto成员
5 天前 关联了issue:fix(api): 第三批零引用死代码——9 个重复实现类 + 6 个工具/解析类(!610 评审发现)
Aaflyingto成员
5 天前 添加了label:risk/highscope/apistatus/draftstatus/self-checkedtype/bug
Aaflyingto成员
5 天前 预合并成功(commit_id: bf7f66fcc50a5dbcf602e62e99315a505c7e270b)
Aaflyingto成员
5 天前 推送  1 个提交:ff8c47d4-fix(api): drop UpdateRelease orphaned by the wrapper removal
Aaflyingto成员
5 天前 预合并成功(commit_id: c27d3427b10bf8c0eafbf0fbbad9c19b07aea1c2)
Aaflyingto成员
5 天前 预合并成功(commit_id: df342cc1723f0f283fb4b729ccbbc221c31288e4)
Aaflyingto成员
5 天前 推送  1 个提交:caecd579-test: drop orphaned milestones PATCH mock branch
Aaflyingto成员
5 天前 预合并成功(commit_id: 6b9294b55f966ebe2d5b5ee321e84685c3bc13b1)
aflyingto成员
5 天前 评论:

评审结论

  • 评审主体类型: 四个独立评审 Agent(与作者及彼此互为不同执行主体,各自动手实验验证)
  • 评审主体标识: review-code / review-security / review-test / review-docs(Claude Code 子会话);作者主体为 Claude Code 主会话(aflyingto 账号操作)
  • 评审范围: PR !612(feature/issue-635,6afa8ed 初轮 + ff8c47d/caecd57 两轮修复,GitHub 镜像 PR 121)——api 死代码第三批:14 文件 +2/-543 纯删除(14 函数 + 修复轮连带孤儿对 UpdateRelease/UpdateReleaseOptions + 19 测试 + 2 孤儿 import + 注释去悬空 + 孤儿 mock PATCH 分支);risk/high 档(分类器关键词机械命中 release 文件,四角色加严复核"实际纯删除"定性成立)
  • 发现: 初轮——code 1 项 P2(删 UpdateReleaseByTag 使 UpdateRelease 成自反性孤儿,连带 UpdateReleaseOptions)+ 流程沉淀建议;security / docs 零发现(docs 一条纳米);test approved 含 2 P3(PATCH 孤儿分支 + 记录范围偏差)。修复轮一(ff8c47d)——P2 闭合,四角色零发现。修复轮二(caecd57)——两项 P3 闭合,test 终判零发现、code 改判 PATCH 删除正确。证据要点:①14 符号 + 修复轮孤儿对全仓零引用(含 api 包内互调口径——本批 SetIssueLabels 误判教训的方法论修补);②缓删 2 项(DeleteIssueComment/DeleteRepoDiscussionComment)经 openapi 端点存在 + issue 543/565 原文认领双重支持;③误判纠正实证:SetIssueLabels/ClearIssueLabels 的包内消费者 RemoveIssueLabel(label.go:245)被编译器即红抓获、恢复原位;④删除工具两起事故均被门禁拦截并完全恢复(vet 语法拦截删残 + 断言拦截原始字符串不平衡括号),终态经 build/vet/全量/gofmt 四重验证;⑤测试函数 delta 按文件 1+2+1+6+3+2+4=19 精确对账
  • blocker: 无——P2 以 -20 行最小 diff 随本批闭合(review-code 复核五项验证点逐一实测通过);纳米对账已由 issue 验证记录 edit 闭合
  • 安全检查: approved——纯删除零新增路径;缓删 2 项惰性不可达、实现干净(共享认证中间件)、有存活测试防腐化;攻击面严格缩减
  • 测试与证据检查: approved(初轮含 2 P3 → 两轮修复后零发现闭环)——复活变异零消费者双重证明(父图谱 13 文件闭集 + 干净复活)、逐文件计数精确对账(-19)、两起删除工具事故机理重放属实(vet 拦截删残 + raw-string 括号欺骗被断言拦截)、孤儿 import 独立确认、163 包全量 + gofmt 干净;两轮修复均测试函数中性(api 恒 290、全仓恒 1762)
  • 文档同步检查: approved——14 符号 + 孤儿对零文档命中、四个命令族(issue label/milestone/release/actions plugin)文档行为全由存活函数支撑、记录与 diff 三方对齐、披露质量为三批最高
  • 结论: 可以批准

附带登记

①删包装后对体内 callee 重跑零引用检查(SetIssueLabels 教训的镜像面,review-code 流程沉淀建议,本件已采纳执行);②缓删 2 项的跟踪:issue 543/565 落地时接线、关闭不实施时删除(review-security 建议,将落 issue 备注);③/milestones/1 PATCH 分支:初判保留、review-test 前提更正后经 review-code 改判删除正确(终态 caecd57 已删,与 !610 孤儿路由处置同构)——评审体系自我纠错案例。精确性澄清:SetIssueLabels/ClearIssueLabels 系经包内存活链(RemoveIssueLabel 消费)保留,非缓删——与缓删 2 项(DeleteIssueComment/DeleteRepoDiscussionComment,issue 543/565 认领)性质不同。

likedislike
Aaflyingto成员
5 天前 删除了label:status/self-checkedstatus/draft
Aaflyingto成员
5 天前 添加了label:status/ready-for-review
Aaflyingto成员
1 天前 关闭了关联的issue
Aaflyingto成员
1 天前 合入了pull request,合并节点 SHA:8b510a18c6c36a721c6d847a167c8281843eccbf
Aaflyingto成员
1 天前 添加了label:status/merged
Aaflyingto成员
1 天前 删除了label:status/ready-for-review