Skip to content

test(github): cover representative command comment variants#36

Open
X-PilotX wants to merge 2 commits into
mainfrom
feat/comment-routing-matrix
Open

test(github): cover representative command comment variants#36
X-PilotX wants to merge 2 commits into
mainfrom
feat/comment-routing-matrix

Conversation

@X-PilotX

@X-PilotX X-PilotX commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

This PR adds regression coverage for representative GitHub PR comment variants:

It is intended as a validation PR for bot routing and reply behavior.

@X-PilotX

X-PilotX commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

1. [高] SQL 风险

  • 文件: src/test/java/com/codepilot/module/review/validation/ReviewBotValidationFixtureTest.java

  • 行号: 11

  • 描述: MyBatis ${} 会进行字符串替换,若参数来自外部输入可能导致 SQL 注入。

  • 建议: 请改用 #{} 参数绑定;确需动态表名或排序字段时必须做白名单校验。

  • Evidence: source=TOOL, rule=SQL_RISK_RULE


2. [低] SQL 风险

  • 文件: src/test/java/com/codepilot/module/review/validation/ReviewBotValidationFixtureTest.java

  • 行号: 11

  • 描述: Diff 中出现 SELECT *,可能导致字段膨胀、索引覆盖失效或接口返回不稳定。

  • 建议: 请明确列出需要查询的字段。

  • Evidence: source=TOOL, rule=SQL_RISK_RULE


3. [低] 测试风险

  • 文件: src/test/java/com/codepilot/module/review/validation/ReviewBotValidationFixtureTest.java

  • 行号: 10

  • 描述: 该测试直接写入了包含 `${id}` 的 SQL 字符串,并断言其必须保留该片段。虽然这是测试代码,但这种构造更像是在保留一个“危险样例”,如果后续被误复用到生产示例或文档中,可能造成误导。 | Evidence: changed line 10 on RIGHT.

  • 建议: 如果目标只是验证占位符处理,建议使用更明确的测试命名和注释说明其仅用于测试夹具;如无必要,可改为更中性的示例字符串,避免直接展示类似动态拼接的 SQL 片段。

  • Evidence: source=LLM, grounding=changed diff line


4. [低] 测试缺失

  • 文件: src/test/java/com/codepilot/module/github/webhook/GitHubWebhookPayloadParserTest.java

  • 行号: 137

  • 描述: 这次新增的用例主要验证了几类评论文本在确定性路由和分类器介入时的正向结果,但没有看到对无效事件类型、非创建动作、空/缺失评论内容、分类器返回异常或空结果等边界分支的覆盖。若解析逻辑在这些情况下发生回退或抛异常,当前测试可能无法及时发现。 | Evidence: changed line 137 on RIGHT.

  • 建议: 补充针对无效 action、非 issue_comment 事件、空 body、classifier 返回非法 JSON/空响应以及 parse 失败时的断言,确保忽略逻辑和异常分支都有稳定回归。

  • Evidence: source=LLM, grounding=changed diff line


@X-PilotX

X-PilotX commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

当前这次 stored review 是可用且最新的(fresh),我先按它总结 4 个发现:

  1. HIGH / SQL 风险

    • 位置:src/test/java/com/codepilot/module/review/validation/ReviewBotValidationFixtureTest.java:11
    • 结论:MyBatis ${} 存在直接拼接风险
    • 依据:source=TOOLrule=SQL_RISK_RULE
    • 建议:改用 #{},动态字段需白名单校验
  2. LOW / SQL 风险

    • 位置:src/test/java/com/codepilot/module/review/validation/ReviewBotValidationFixtureTest.java:11
    • 结论:SQL 使用了 SELECT *
    • 依据:source=TOOLrule=SQL_RISK_RULE
    • 建议:明确列出所需字段
  3. LOW / 测试风险

    • 位置:src/test/java/com/codepilot/module/review/validation/ReviewBotValidationFixtureTest.java:10
    • 结论:测试里硬编码了明显的 SQL 占位片段,可能误导静态检查或维护者
    • 依据:source=LLMgrounding=changed diff line
    • 建议:把它改成更明确的测试夹具表达,避免直接展示类似动态拼接的片段
  4. LOW / 测试缺失

    • 位置:src/test/java/com/codepilot/module/github/webhook/GitHubWebhookPayloadParserTest.java:137
    • 结论:新增测试主要覆盖正向路径,缺少异常/忽略分支回归
    • 依据:source=LLMgrounding=changed diff line
    • 建议:补无效 action、非 issue_comment、空 body、异常返回、parse 失败等断言

如果你要,我也可以继续按“最严重问题优先”帮你展开。

@X-PilotX

X-PilotX commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

CodePilot AI 修复模式未启用。请设置 CODEPILOT_GITHUB_FIX_ENABLED=true 后再试。

@X-PilotX

X-PilotX commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

当前这次 stored review 是可用且最新的,能确认有 4 条发现,风险总评是 HIGH。

简要总结:

  1. src/test/java/com/codepilot/module/review/validation/ReviewBotValidationFixtureTest.java:11
    高危:MyBatis ${} 直接拼接风险。证据来自工具规则 SQL_RISK_RULE,判断为 PUBLISH

  2. 同一位置 :11
    低危:SQL 使用 SELECT *。证据来自工具规则 SQL_RISK_RULE,判断为 PUBLISH

  3. src/test/java/com/codepilot/module/review/validation/ReviewBotValidationFixtureTest.java:10
    低危:测试里硬编码了明显的 SQL 占位片段,可能误导维护者。证据来自变更 diff,来源是 LLM,判断为 PUBLISH

  4. src/test/java/com/codepilot/module/github/webhook/GitHubWebhookPayloadParserTest.java:137
    低危:新增测试主要覆盖正向路径,缺少异常/忽略分支回归。证据来自变更 diff,来源是 LLM,判断为 PUBLISH

如果你想,我也可以继续按“高/低优先级”帮你只列最需要先处理的项。

@X-PilotX

X-PilotX commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

CodePilot AI 修复模式未启用。请设置 CODEPILOT_GITHUB_FIX_ENABLED=true 后再试。

1 similar comment
@X-PilotX

X-PilotX commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

CodePilot AI 修复模式未启用。请设置 CODEPILOT_GITHUB_FIX_ENABLED=true 后再试。

@X-PilotX

X-PilotX commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

我看到了可用的 stored review context,且它是 FRESH,可作为当前 PR 的已保存 review 结果。

如果你是想问“为什么这么评论”或某条 finding 的依据,我可以按以下字段帮你解释:

  • location
  • decision
  • source / grounding
  • 以及对应的 severity / type / score / rule

例如当前有一条高风险结论:

  • src/test/java/com/codepilot/module/review/validation/ReviewBotValidationFixtureTest.java:11
  • severity=HIGH
  • type=SQL_RISK
  • decision=PUBLISH
  • source=TOOL
  • rule=SQL_RISK_RULE

你可以直接问我某一条:
“解释第 1 条为什么是问题”

“哪条最严重,证据是什么”

@X-PilotX

X-PilotX commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

你好!我已收到这条评论。

这条信息只有问候,没有提出具体 review 问题,所以我先不展开发现。
如果你想看这份 PR 的具体风险点、证据或严重级别,我可以继续基于当前 stored review context 说明。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants