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