关于默认设置
代码扫描的默认设置是启用存储库代码扫描最快、最简单、维护成本最低的方法。根据存储库中的代码,默认设置将自动创建自定义代码扫描配置。启用默认设置后,将扫描存储库中使用 CodeQL 支持的语言编写的代码。
- 每次推送到存储库的默认分支或任何受保护的分支时。有关受保护分支的更多信息,请参阅“关于受保护的分支”。
- 在创建或提交基于存储库的默认分支或任何受保护分支的拉取请求时,不包括来自 fork 的拉取请求。
- 每周计划。
注意
如果启用了默认设置的存储库在 6 个月内未发生任何推送和拉取请求,则将禁用每周计划以节省您的 GitHub Actions 分钟数。
您还可以同时为组织中的多个或所有存储库启用默认设置。有关批量启用信息,请参阅“大规模配置代码扫描的默认设置”。
如果您需要更精细地控制代码扫描配置,则应改为配置高级设置。有关更多信息,请参阅“配置代码扫描的高级设置”。
使用默认设置的要求
如果您的存储库符合以下条件,则有资格使用代码扫描的默认设置
- 启用了 GitHub Actions。
- 它是公开可见的。
我们建议为符合条件的存储库启用默认设置,如果将来存储库有任何可能包含至少一种 CodeQL 支持的语言。如果您在不包含任何 CodeQL 支持的语言的存储库上启用默认设置,则默认设置不会运行任何扫描或使用任何 GitHub Actions 分钟数。如果将 CodeQL 支持的语言添加到存储库中,则默认设置将自动开始扫描 CodeQL 支持的语言并使用 GitHub Actions 分钟数。有关 CodeQL 支持的语言的更多信息,请参阅“关于使用 CodeQL 进行代码扫描”。
自定义默认设置
我们建议您使用默认设置开始使用代码扫描。在您最初配置了默认设置之后,您可以评估代码扫描以查看其对您的工作效果。如果您发现某些内容没有按预期工作,您可以自定义默认设置以更好地满足您的代码安全需求。有关更多信息,请参阅“评估代码扫描的默认设置”。
为存储库配置默认设置
当您最初为存储库配置代码扫描的默认设置时,存储库中所有 CodeQL 支持的语言都将自动进行分析。成功分析的语言将保留在新默认设置配置中。未成功分析的语言将自动从默认设置配置中取消选择。
注意
如果存储库中所有 CodeQL 支持的语言的分析都失败,则仍将启用默认设置,但它不会运行任何扫描或使用任何 GitHub Actions 分钟数,直到将另一个 CodeQL 支持的语言添加到存储库中或手动重新配置默认设置,并且 CodeQL 支持的语言的分析成功。
-
在 GitHub 上,导航到存储库的主页。
注意
如果您在 fork 上配置默认设置,则必须先启用 GitHub Actions。要启用 GitHub Actions,请在您的存储库名称下单击 **操作**,然后单击**我了解我的工作流程,请继续启用它们**。请注意,这将启用 fork 上的所有现有工作流程。
-
在您的存储库名称下,单击 **设置**。如果您看不到“设置”选项卡,请选择****下拉菜单,然后单击**设置**。
-
在侧边栏的“安全”部分,点击 代码安全和分析。
-
在“代码扫描”部分,选择设置,然后点击默认。
然后,您将看到一个“CodeQL 默认配置”对话框,其中总结了默认设置自动创建的代码扫描配置。
- 可选地,在“CodeQL 默认配置”模态对话框的“查询套件”部分,选择默认下拉菜单,然后点击您想要使用的 CodeQL 查询套件。
如果您选择扩展查询套件,则除了包含在默认查询套件中的查询之外,您的代码扫描配置还将运行较低严重性和精度的查询。有关可用查询套件的更多信息,请参阅“CodeQL 查询套件”。
注意
如果您将代码扫描配置为使用扩展查询套件,则可能会遇到更高的误报率。
-
查看存储库上默认设置的设置,然后点击启用 CodeQL。这将触发一个工作流,用于测试新的、自动生成的配置。
注意
如果您要从高级设置切换到默认设置,您将看到一条警告,通知您默认设置将覆盖现有的代码扫描配置。此警告表示默认设置将禁用现有的工作流文件并阻止任何 CodeQL 分析 API 上传。
-
可选地,要在启用后查看您的默认设置配置,请选择,然后点击 查看 CodeQL 配置.
后续步骤
在您的配置至少成功运行一次后,您可以开始检查和解决代码扫描警报。有关代码扫描警报的更多信息,请参阅“关于代码扫描警报”和“评估存储库的代码扫描警报”。
配置代码扫描的默认设置后,您可以了解如何评估其对您的工作效果以及您可以采取的下一步自定义步骤。有关更多信息,请参阅“评估代码扫描的默认设置”。
您可以在工具状态页面上找到有关代码扫描配置的详细信息,包括每次扫描的时间戳和扫描的文件百分比。有关更多信息,请参阅“关于代码扫描的工具状态页面”。
配置默认设置时,您可能会遇到错误。有关排查特定错误的信息,请参阅“代码扫描疑难解答”。