| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(cmdutil): SetFlagEnum returns error, no panic + spec rule (#415) #415: SetFlagEnum 在注解失败时 panic 让 CLI 崩溃,绕过 error 语义。spec 此前 无「禁止裸 panic」规则(issue 引用条文不存在),先补规则再修: - spec/foundations/coding-standards.md: 错误处理节加「禁止裸 panic」规则 (业务/运行期 error 返回;构造期非功能性元数据无法传播 error 时降级 stderr 告警+继续,不得崩溃;Must* 前缀显式 fail-fast;cobra 第三方不在范围) - pkg/cmdutil/flag_annotations.go: SetFlagEnum 改返 error(去 panic); 新增 SetFlagEnumOrWarn(构造期降级告警+继续,不崩溃) - pkg/cmdutil/format.go: AddFormatFlag/AddTimeFormatFlag 同包调用改 OrWarn - 18 处命令构造调用点 cmdutil.SetFlagEnum( → cmdutil.SetFlagEnumOrWarn( - pkg/cmdutil/flag_annotations_test.go: 新增 4 测试(注册 flag 注解成功; 未注册 flag 返 error 不 panic;OrWarn 不崩溃+stderr 告警;OrWarn 成功静默) 正确代码行为不变(注解照常设置);仅编程错误(注解未注册 flag)时从崩溃改为告警。 Closes #415 | 2 个月前 | |
fix(security): scan inline --body/--comment/--description/--notes for secrets 10 inline flag paths bypassed ScanContentForSecrets, allowing AI agents to accidentally submit content containing the current GC_TOKEN value. Fixed paths (issue #424): - issue comment --body (local getBody: add scan to inline branch) - issue comment edit --body (same) - issue edit --body (same) - pr comment --body (same) - pr comment edit --body (same) - pr edit --body (add scan before direct assignment) - pr review --comment (scan after --comment-file block, before API calls) - milestone edit --description (scan before HTTP client creation) - release create --notes (scan before HTTP client creation) - release edit --notes (scan after GetRelease, before PATCH) Preventive: ReadText (text_file.go) now calls ScanContentForSecrets. Tests: - cmdutil: 5 integration tests (ReadBody/ReadText/ReadTextFile/ ReadTextFromFlag reject token content) - 10 command-level unit tests (one per bypass path) - System test (secret-scan.txtar): 9 inline paths verified end-to-end with fake token, plus negative control - docs/REGRESSION.md: documented secret scanning regression Refs #424 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 3 个月前 |