已关闭
refactor: unify 5 duplicated getBody() functions to cmdutil.ReadBody delegation #427
aflyingto创建于  7月9日关闭于  7月9日
aflyingto成员
7月9日 创建

来源

PR !368(#424)第二轮架构一致性评审发现。

问题

5 条命令的本地 getBody() 函数是 cmdutil.ReadBody 的近乎完整副本(仅缺少 ScanContentForSecrets 调用),共 ~125 行重复代码:

命令 位置
issue comment pkg/cmd/issue/comment/comment.go:170
issue comment edit pkg/cmd/issue/comment/edit/edit.go:124
issue edit pkg/cmd/issue/edit/edit.go:267
pr comment pkg/cmd/pr/comment/comment.go:220
pr comment edit pkg/cmd/pr/comment/edit/edit.go:126

参考实现(issue create、pr create)已简化为一行委托:return cmdutil.ReadBody(opts.Body, opts.BodyFile, opts.IO.In)。

影响

重复是 #424 bug 的根因——cmdutil.ReadBody 加了扫描但本地副本未同步。若未来 ReadBody 新增安全检查,这 5 条路径会再次遗漏。

修复方向

将 5 个本地 getBody() 替换为 return cmdutil.ReadBody(opts.Body, opts.BodyFile, opts.IO.In),删除重复逻辑。注意保留 strings.TrimSpace 行为差异(本地版对 file/stdin 内容做 TrimSpace,ReadBody 不做)——需评估是否统一。

likedislike
Aaflyingto成员
7月9日 关联了里程碑:M2 Review Follow-ups
Aaflyingto成员
7月9日 添加了label:risk/medium, status/triage,type/refactor
Aaflyingto成员
7月9日 添加了label:status/in-progress, status/verified
Aaflyingto成员
7月9日 关联了pull request:refactor: unify 5 duplicated getBody() to cmdutil.ReadBody delegation (#427)
Aaflyingto成员
7月9日 关闭了 issue
Aaflyingto成员
7月9日 添加了label:status/merged
Aaflyingto成员
7月9日 关联了pull request:fix: error message quality (ErrSecretDetected wrapping + 401 guidance) (#428, #432)