You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub CodeQL代码扫描未检测TODO注释及死代码问题排查

GitHub CodeQL 未检测TODO注释与死代码的问题解决

一、TODO注释未被检测的原因及解决

CodeQL默认的security-extended和security-and-quality查询包核心聚焦安全漏洞与关键质量问题,不包含TODO注释这类代码管理类规则。要检测TODO注释,需添加对应的查询集:

  • 修改.github/workflows/codeql.yml中的queries配置,加入code-style查询包:
    queries:
      - security-extended
      - security-and-quality
      - code-style # 包含TODO注释、代码风格类检测规则
    
  • 重新运行CodeQL扫描Workflow,即可识别代码中的// TODO注释。

二、死代码未被检测的原因及解决

核心原因

CodeQL的死代码检测依赖静态数据流与控制流分析,存在场景限制:

  1. ASP.NET控制器方法特殊处理:CarsController.cs中的公共方法,CodeQL会默认认为可能被ASP.NET路由系统动态调用,不会标记为死代码。
  2. 查询包覆盖范围:security-and-quality中的死代码查询仅针对明确不可达的分支、无任何调用的私有方法(无反射/动态调用)等场景。

解决方法

  • 若死代码是私有方法且无任何调用:在codeql.yml中单独引入死代码相关查询:
    queries:
      - security-extended
      - security-and-quality
      - github/codeql/csharp-queries/src/DeadCode/UnusedMethod.ql
    
  • 若死代码是控制器公共方法:需手动确认是否真的无路由映射,CodeQL无法自动识别未配置路由的控制器方法为死代码,这类场景建议结合IDE(如Visual Studio)的死代码检测功能补充排查。
  • 检查codeql.yml中的paths/paths-ignore配置,确保CarsController.cs未被排除在分析范围外。

内容的提问来源于stack exchange,提问作者EnigmaticJohn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:15:18