代码扫描疑难解答
使用 code scanning 分析代码时,可能需要排查意外问题。
特定语言导致默认设置失败
启用默认设置后,必须成功分析已选择用于分析的所有语言,否则默认设置的配置将失败。
错误:“必须为此存储库启用高级安全性才能使用代码扫描”
如果看到此错误,请确保 GitHub Advanced Security 已启用。
在生成的代码中找到的警报
使用 code scanning 分析代码时,你可能希望仅生成要分析的代码。
编译的语言的自动生成失败
如果自动生成失败,可以将 code scanning 配置为使用编译的语言的特定生成步骤。
代码扫描分析耗时过长
可以微调 code scanning 配置,以最大程度地减少分析时间。
CodeQL 扫描的行数少于预期
如果 CodeQL 分析的代码少于预期,可能需要使用自定义生成命令。
启用默认设置耗时过长
如果认为启用默认设置耗时过长,可以重启该过程。
数据库中的提取错误
可以检查提取错误是否会影响所创建的 CodeQL 数据库的运行状况。
日志不够详细
如果要提高日志中的详细信息级别,请尝试执行以下步骤。
错误:“生成期间未看到源代码”或“进程 '/opt/hostedtoolcache/CodeQL/0.0.0-20200630/x64/codeql/codeql' 失败,退出代码为 32”
当 CodeQL 找不到任何源代码时,需要解决此问题以取消阻止 code scanning 分析。
错误:“不是 .ql 文件、.qls 文件、目录或查询包规范”
CodeQL 未能找到为分析指定的查询或查询集之一。
错误:“磁盘空间不足”或错误:“内存不足”
如果系统针对 GitHub Actions 显示其中某一错误,你可以尝试使用替代运行器。
某些语言未使用 CodeQL 高级设置进行分析
如果某些语言未分析,则可以修改 code scanning 工作流,以添加指定要分析的语言的矩阵。
错误:403“无法通过集成访问资源”
此错误可能在 Dependabot 创建的拉取请求上出现,可以通过几种不同的方式解决。
结果与预期不同
如果 code scanning 结果与预期不同,可以检查哪些配置处于活动状态。
平台之间存在结果差异
根据是在 Linux、macOS 还是 Windows 上运行 CodeQL 分析工作流程,可能会看到不同的结果。
错误:“服务器错误”
如果看到此错误,请尝试执行以下步骤。
两个 CodeQL 工作流
如果看到两个名为“CodeQL”的工作流,那么其中一个工作流可能是预先存在的 CodeQL 工作流文件(在默认设置下被禁用)。
不确定是什么触发了工作流运行
如果不知道是什么触发了分析,查看上次扫描的日志。
警告:“此工作流检测到 1 个问题:不再需要 git checkout HEAD^2”
如果看到此警告,应更新工作流以遵循当前的最佳做法。