关于 code scanning
Code scanning 可帮助你捕获存储库中代码的漏洞。 使用 CodeQL code scanning,可以选择用于分析的自定义或内置查询套件、设置特定的扫描计划、选择触发扫描的事件等。
还可以使用第三方工具配置 code scanning。 有关详细信息,请参阅“使用第三方操作配置 code scanning”。
如果使用多个配置运行代码扫描,则警报有时会有多个分析源。 如果警报有多个分析源,你可在警报页上查看每个分析源的警报状态。 有关详细信息,请参阅“关于代码扫描警报”。
注意:本文介绍了此版 GitHub AE 的初始发行版中包含的 CodeQL 操作版本和相关 CodeQL CLI 捆绑包中可用的功能。 如果企业使用较新版本的 CodeQL 操作,请参阅本文的 GitHub Enterprise Cloud 版本,了解有关最新功能的信息。
先决条件
如果你的存储库满足以下条件,则其符合使用code scanning的条件:
- 使用 CodeQL 支持的语言,或者你计划使用第三方工具生成代码扫描结果。
- 已启用 GitHub Actions。
- GitHub Advanced Security 已启用。
在为存储库配置 code scanning 之前,必须确保存储库至少有一个自托管 GitHub Actions 运行器可用。
企业所有者、组织和存储库管理员可以添加自托管运行器。 有关详细信息,请参阅“关于自托管运行程序”和“添加自托管的运行器”。
使用 CodeQL 操作配置 code scanning
-
在 你的企业 上,导航到存储库的主页。
-
在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。
-
在“Code scanning 警报”右侧,单击“设置 code scanning”。如果“code scanning 警报”缺失,则需要让组织所有者或存储库管理员启用 GitHub Advanced Security。有关详细信息,请参阅“管理组织的安全和分析设置”或“管理存储库的安全和分析设置”。
-
在“开始使用 code scanning”下,单击 CodeQL 分析工作流程 或第三方工作流上的“设置此工作流”。
只有在工作流与在存储库中检测到的编程语言相关时,才会显示工作流。 CodeQL 分析工作流程 始终显示,但仅在 CodeQL 分析支持存储库中存在的语言时才启用“设置此工作流”按钮。
-
要自定义 code scanning 扫描代码的方式,请编辑工作流程。
通常,可以提交 CodeQL 分析工作流程 而无需对其进行任何更改。 但是,许多第三方工作流需要额外的配置,因此请在提交之前读取工作流中的注释。
有关详细信息,请参阅“自定义 代码扫描的高级设置”和“对编译语言进行 CodeQL 代码扫描”。
-
单击“提交更改…”以显示提交更改窗体。
-
在“提交消息”字段中,键入提交消息。
-
选择是直接提交到默认分支,还是创建新分支并启动拉取请求。
-
单击“提交新文件”或“建议新文件”。
在建议的 CodeQL 分析工作流程 中,code scanning 配置为在每次将更改推送到默认分支或任何受保护分支或者对默认分支提出拉取请求时分析代码。 因此,code scanning 将立即开始。
用于代码扫描的 on:pull_request
和 on:push
触发器各自用于不同的目的。 有关详细信息,请参阅“自定义 代码扫描的高级设置”。
有关批量启用的信息,请参阅“使用 CodeQL 大规模为代码扫描配置”。
后续步骤
配置 code scanning 并允许其操作完成后,你可以:
- 查看为此仓库生成的所有 code scanning 警报。 有关详细信息,请参阅“管理存储库的代码扫描警报”。
- 查看在配置 code scanning 后提交的拉取请求生成的任何警报。 有关详细信息,请参阅“鉴定拉取请求中的代码扫描警报”。
- 为已完成的运行配置通知。 有关详细信息,请参阅“配置通知”。
- 了解拉取请求的 code scanning 检查。 有关详细信息,“鉴定拉取请求中的代码扫描警报”。
- 查看由 code scanning 分析生成的日志。 有关详细信息,请参阅“查看代码扫描日志”。
- 调查初始配置 code scanning 时发生的任何问题。 有关详细信息,请参阅“代码扫描疑难解答”。
- 自定义 code scanning 如何扫描您的仓库中的代码。 有关详细信息,请参阅“自定义 代码扫描的高级设置”。