运行代码的初始分析时使用默认设置,然后可以更改配置以更好地满足需求。 可以在用户界面中自定义配置,也可以使用存储库属性添加自定义查询 或应用自定义配置文件。 请参阅 关于代码扫描的设置类型 和 存储库属性 code scanning。
自定义现有默认设置配置
-
在 GitHub 上,导航到存储库的主页面。
-
在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

-
在边栏的“安全和质量”部分中,单击 Advanced Security。
-
在“CodeQLCode Security分析”部分的“分析”行中,选择,然后单击“查看CodeQL配置”。
-
在“CodeQL 默认配置”窗口中,单击“ 编辑”。
-
(可选)在“语言”部分中,选择或取消选择用于分析的语言。
-
(可选)在“Scan settings”部分的“Query suite”行中,选择要对代码运行的其他查询套件。
-
(可选)若要使用标记的运行程序,请在“CodeQL 默认配置”模式对话框的“运行程序类型”部分中,选择 “标准 GitHub 运行程序 ”以打开下拉菜单,然后选择 “标记运行程序”。 然后,在“运行器标签”旁边,输入现有自托管或 GitHub 托管运行器的标签。 有关详细信息,请参阅“配置代码扫描的默认设置”。
-
(公共预览可选)在“扫描设置”部分的“威胁模型”行中,选择 “远程和本地源”。 此选项仅适用于具有支持语言的代码的存储库: Java/Kotlin 和 C#。
-
要更新配置,并使用新配置运行对代码初始分析,请单击“保存更改”。**** 将来的所有分析都将使用新配置。
定义导致拉取请求检查失败的警报严重性
当满足以下条件之一时,可以使用规则集防止合并拉取请求:
- 某个必需的工具发现了一个 code scanning 警报,且该警报的严重程度符合规则集中的定义。
- 所需的工具分析仍在进行中。
- 未为存储库配置所需的工具。
有关详细信息,请参阅“设置代码扫描合并保护”。 有关规则集的更多常规信息,请参阅“关于规则集”。
在默认设置中包含受污染数据的本地源
注意
风险模型功能目前为 公开预览,可能随时更改。 在 公开预览 期间,风险模型仅支持 Java/Kotlin 和 C# 分析。
如果代码库只将远程网络请求视为受污染数据的潜在来源,则建议使用默认的威胁模型。 如果代码库认为网络请求以外的源可能包含受污染的数据,则可以使用威胁模型将这些其他源添加到 CodeQL 分析中。 在公开预览期间,您可以添加您的代码库可能视为受污染数据附加来源的本地源(例如:命令行参数、环境变量、文件系统和数据库)。
可以编辑默认设置配置中使用的威胁模型。 有关更多信息,请参阅“自定义现有的默认设置配置”。
在默认设置中使用 CodeQL 模型包扩展 CodeQL 覆盖范围
注意
CodeQL 模型包目前包含在 公开预览 中,可能会更改。 C/C++、C#、Java/Kotlin、Python、Ruby 和 Rust 分析支持模型包。
CodeQL 的 CodeQL 扩展中的 Visual Studio Code 支持对 C#、Java/Kotlin、Python 和 Ruby 的依赖项建模。
如果 上,则使用 CodeQL 中包含的标准库无法识别的框架和库,你可以对依赖关系进行建模并扩展 code scanning 分析。 有关详细信息,请参阅文档中受支持语言和框架CodeQL。
对于默认设置,您需要在 CodeQL 模型包中定义附加依赖项的模型。 可以使用单个存储库的模型包在默认设置 CodeQL 中扩展覆盖范围,也可以大规模扩展组织中所有存储库的覆盖范围。
有关模型包和编写自己的模型包的详细信息 CodeQL ,请参阅 使用 CodeQL 模型编辑器。
扩展存储库的覆盖范围
- 在存储库的
.github/codeql/extensions目录中,复制模型包目录,该目录应包含一个codeql-pack.yml文件和任何.yml文件,后者包含要包含在分析中的库或框架的其他模型。 - 模型包将在您的 code scanning 分析中被自动检测并使用。
- 如果以后将配置更改为使用高级设置,则
.github/codeql/extensions目录中的任何模型包也将被识别和使用。
扩展组织中所有存储库的覆盖范围
注意
如果扩展了CodeQL组织中所有存储库的模型包的覆盖范围,则必须将指定的模型包发布到GitHubContainer registry并且可供运行code scanning的存储库访问。 有关详细信息,请参阅“使用容器注册表”。
-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在边栏的“Security”部分中,依次单击“ Advanced Security”和“Global settings”********。
-
查找“Code scanning”部分。
-
在“展开 CodeQL 分析”旁边,单击“ 配置”。
-
输入对要使用的已发布模型包的引用,每行一个应用,然后单击“保存”。

-
在组织中启用了默认设置的任何存储库上运行code scanning时,将自动检测和使用模型包。
使用配置文件自定义默认设置
可以使用存储库属性应用配置文件CodeQL来进一github-codeql-config-file步自定义默认设置。 文件中的配置与配置默认设置的合并会自动生成,因此可以添加额外的查询或排除路径,而无需切换到高级设置。 有关可以在配置文件中 CodeQL 配置的内容以及如何将其与默认设置合并的详细信息,请参阅 存储库属性 code scanning。
将配置文件应用于组织中的所有存储库
自定义大规模默认设置的建议方法是为 github-codeql-config-file 存储库属性设置组织范围的默认值,以便在将更多存储库添加到组织时不需要更新各个存储库。
-
在 CodeQL 中央存储库中创建配置文件。 可以为此创建新存储库,也可以将文件添加到现有存储库。 然后,可以在一个位置维护组织范围的配置。 有关配置文件的格式的信息,请参阅 代码扫描的工作流配置选项。
包含配置文件的存储库可以是公共、内部或专用的。 若要使用内部或专用存储库中的文件,而不是使用默认设置进行分析的文件,必须设置 Git 源 专用注册表配置。 建议将注册表 URL 设置为包含配置文件(而不是组织 URL)的存储库的完整 URL,以便凭据仅用于向该存储库发出的请求。 请参阅“授予安全功能访问专用注册表的权限”。
-
github-codeql-config-file为组织创建存储库属性,并将其默认值设置为配置文件的路径。 例如,如果已将配置文件codeql.yml提交到main分支octo-org/config,则会将存储库属性的值设置为remote=octo-org/config@main:codeql.yml。建议先在单个存储库上测试配置文件,然后再设置组织范围的默认值。 请参阅“存储库属性 code scanning”。
-
将自动检测配置文件并将其与配置默认设置合并,将在 code scanning 组织中每个存储库上下次运行时生成。 已为
github-codeql-config-file属性设置显式值的存储库继续使用该值,而不是组织范围的默认值。 有关默认和显式存储库属性值如何交互的详细信息,请参阅 管理组织中存储库的自定义属性。
将配置文件应用到存储库
如果只需自定义单个存储库的默认设置,或者在将其部署到组织之前测试配置,则可以直接在该存储库上设置该属性。
-
创建 CodeQL 配置文件。 可以是要分析的存储库中的文件,也可以是单独存储库中的文件。 有关配置文件的格式的信息,请参阅 代码扫描的工作流配置选项。
包含配置文件的存储库可以是公共、内部或专用的。 若要使用内部或专用存储库中的文件,而不是使用默认设置进行分析的文件,必须设置 Git 源 专用注册表配置。 建议将注册表 URL 设置为包含配置文件(而不是组织 URL)的存储库的完整 URL,以便凭据仅用于向该存储库发出的请求。 请参阅“授予安全功能访问专用注册表的权限”。
-
将
github-codeql-config-file存储库的存储库属性设置为配置文件的本地或远程路径。 有关如何设置存储库属性值的详细信息,请参阅 存储库属性 code scanning,了解有关此属性可接受的值的详细信息。 -
配置文件将自动检测并与配置默认设置合并,将在下次 code scanning 在存储库上运行时生成。
在非活动存储库上继续扫描
默认情况下, code scanning 默认设置会在未推送或拉取请求已打开 180 天的存储库上暂停每周计划的扫描。 不过,您可以在组织中覆盖这一行为,但扫描周期不可配置。
-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在边栏的“Security”部分中,依次单击“ Advanced Security”和“Global settings”********。
-
在“Code scanning”部分,启用为非活跃存储库保留每 30 天运行一次计划扫描设置。
进一步自定义
如果需要更改 code scanning 配置的任何其他方面,请考虑配置高级设置。 请参阅“配置代码扫描的高级设置”。