Skip to main content

代码扫描疑难解答

使用 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 文件,除非生成代码。