注意: 网站管理员必须启用 code scanning,然后你才能使用此功能。 有关详细信息,请参阅“为设备配置代码扫描”。
如果企业所有者在企业级别设置了 GitHub Advanced Security (GHAS) 策略,则你可能无法启用或禁用 code scanning。 有关详细信息,请参阅“强制实施企业的代码安全性和分析策略”。
关于 工具状态页
工具状态页 显示有关所有 code scanning 工具的有用信息。 如果 code scanning 未按预期运行,则 工具状态页 是调试问题的一个很好的起点。
使用 工具状态页,可以查看代码扫描工具对存储库的运行情况、存储库中文件首次扫描和最近扫描的时间,以及计划扫描的时间。 对于 CodeQL 等集成工具,还可以查看更详细的信息,包括已扫描文件的百分比和特定的错误消息。
还可以查看 code scanning 工具的每个配置检查代码所依据的规则,并下载结果摘要。
注意:工具状态页 显示工具在存储库级别(而非组织级别)的运行方式。 工具状态仅针对为其配置了该工具的存储库的默认分支显示。
查看存储库的 工具状态页
每个存储库的代码扫描警报页都包含一个工具横幅,其中包含代码扫描分析的运行状况摘要,并且可以访问 工具状态页 以浏览设置。
- 在 GitHub 上,导航到存储库的主页面。
- 在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。
- 在左侧边栏中,单击 Code scanning。
- 单击工具横幅中的“工具状态”。
使用 工具状态页
在 工具状态页 中,你将看到某一个工具的摘要,并在边栏中突出显示。 可以使用边栏查看不同工具的摘要。
对于 CodeQL 等集成工具,可以查看存储库中最近扫描的所有文件的总百分比(按编程语言分类)。 有关 CodeQL 认为哪些文件已被扫描的信息,请参阅“CodeQL 如何定义已扫描的文件”。 还可以下载 CSV 格式的详细语言报表。 有关详细信息,请参阅“下载已分析文件的详细信息”。
三种可能的工具状态是:所有配置均正常运行、某些配置需要引以关注、某些配置未运行。
访问有关工具的详细信息
如果想查看当前显示工具的更多详细信息,可以在“设置类型”下选择特定设置。
在屏幕左侧的“配置”下,可以看到按此设置类型运行的每个分析的信息,以及任何相关的错误消息。 若要查看有关最近分析运行的详细信息,请在边栏中选择一个配置。 可以下载详细信息,了解在该代码扫描中具体运行了哪些规则,以及每个规则发现的警报数。 有关详细信息,请参阅“下载使用的规则列表”。
此视图还将显示错误消息。 有关详细信息,请参阅“使用工具状态页进行调试”。
CodeQL 如何定义已扫描的文件
如果文件中的某些代码行已被处理,则 CodeQL 将该文件报告为已扫描。 如果使用 CodeQL 操作的标准配置,则 工具状态页 中显示的已扫描文件将包括 CodeQL 可以分析的所有语言的源代码文件。 如果使用高级设置,可以选择使用 paths
和 paths-ignore
配置属性来定义应扫描哪些解释性语言文件。 有关详细信息,请参阅“关于使用 CodeQL 进行代码扫描”和“自定义代码扫描的高级设置”。
对于编译语言,工具状态页 会报告在运行自动生成或任何手动生成步骤之前存在的文件。 这意味着在生成过程中生成的文件不会显示在 工具状态页 中。 有关详细信息,请参阅“对编译语言进行 CodeQL 代码扫描”。
工具状态页将计算 CodeQL 针对 CodeQL 支持的每种语言扫描的文件百分比。 此百分比遵循 paths
和 paths-ignore
配置属性排除的任何文件。
下载已分析文件的详细信息
对于 CodeQL 等集成工具,可以从 工具状态页 下载 CSV 格式的详细报表。 它将显示:
- 使用了哪个配置扫描每个文件。
- 文件路径。
- 文件的编程语言。
- 是否已成功提取文件。
若要下载报表,请选择一个感兴趣的工具。 然后在页面右上角,单击 按钮。
下载使用的规则列表
可以 CSV 格式下载 code scanning 正在检查的规则列表。 它将显示:
- 使用的配置。
- 规则源。
- SARIF 标识符。
- 已找到的警报数。
若要下载报表,请选择一个感兴趣的配置。 然后,单击页面右上角的“”,选择“ 下载使用的规则列表” 。
删除配置
可以删除存储库默认分支的过时、重复或不需要的配置。
若要删除配置,请选择要删除的配置。 然后,单击页面右上角的“”,选择“ 删除配置” 。 阅读有关警报的警告后,若要确认删除,请单击“删除”按钮。
注意:只能使用 工具状态页 删除存储库默认分支的配置。 有关从非默认分支中删除配置的信息,请参阅“解决代码扫描警报”。
使用 工具状态页 进行调试
如果在 code scanning 警报页发现分析存在问题,可以使用 工具状态页 来识别问题。 对于集成工具,可以在详细信息部分查看与特定 code scanning 工具相关的特定错误消息。 这些错误消息包含有关工具未按预期执行的原因以及你可以采取的措施的信息。 有关如何访问 工具状态页 的这一部分的详细信息,请参阅“访问有关工具的详细信息”。
对于 CodeQL 等集成工具,还可以使用文件覆盖率信息来改进分析。 对于 工具状态页 上显示的每种语言:
- 如果语言的扫描百分比较高,则表明代码扫描正在按预期扫描该语言。
- 如果语言的扫描百分比较低,则可能需要调查 CodeQL 针对该语言生成的诊断输出:有关详细信息,请参阅“CodeQL 扫描的行数少于预期”。
- 如果语言的扫描百分比为零,则存储库中的源代码可能是采用 CodeQL 支持的语言编写的,但当前未使用 CodeQL 进行分析。 在这种情况下,你可能希望更新设置,以开始分析这些额外的语言。 有关详细信息,请参阅“自定义代码扫描的高级设置”。
注意:如果使用高级设置设置了 CodeQL,然后在同一存储库上设置了默认设置,则 工具状态页 将仅显示默认设置。
有关详细信息,请参阅“代码扫描疑难解答”和“排查 SARIF 上传问题”。