Skip to main content

配置代码扫描的高级设置

可以为存储库配置高级设置,以使用高度可自定义的 code scanning 配置查找代码中的安全漏洞。

谁可以使用此功能?

具有管理员角色的存储库所有者、组织所有者、安全管理员和用户

Code scanning 可用于以下存储库类型:

  • GitHub.com 上的公共存储库
  • GitHub Team、GitHub Enterprise Cloud 或 GitHub Enterprise Server 上的组织拥有的存储库,已启用 GitHub Code Security

如果不需要高度可自定义的 code scanning 配置,请考虑使用 code scanning 的默认设置。 有关详细信息,请参阅“关于代码扫描的设置类型”。

先决条件

如果存储库满足这些要求,则其符合使用高级设置的条件。

  • 使用 CodeQL 支持的语言,或者你计划使用第三方工具生成代码扫描结果。
  • 已启用 GitHub Actions。
  • 它公开可见,或已启用 GitHub Code Security。

使用 CodeQL 为 code scanning 配置高级设置

可以通过创建和编辑工作流文件来自定义 CodeQL 分析。 选择高级设置会生成一个基础工作流文件,让你可以使用标准工作流语法以及指定用于进行 CodeQL 操作的选项来进行自定义。 请参阅“工作流”和“自定义代码扫描的高级设置”。

使用操作运行 code scanning 将消耗分钟数。 有关详细信息,请参阅“GitHub Actions 计费”。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“Security”部分中,单击“ Advanced Security”****。

  4. 向下滚动到“Code Security”,在“CodeQL analysis”行中,选择“Set up”,然后单击“Advanced”********。

    注意

    如果要从默认设置切换到高级设置,请在“CodeQL analysis”行中,选择 ,然后单击“ Switch to advanced”。 在弹出的窗口中,单击“禁用 CodeQL”

    “Advanced Security”设置的“Code Security”部分的屏幕截图。 “高级设置”按钮以橙色轮廓突出显示。

  5. 要自定义 code scanning 扫描代码的方式,请编辑工作流程。

    通常,可以提交 CodeQL 分析工作流程 而无需对其进行任何更改。 但是,许多第三方工作流需要额外的配置,因此请在提交之前读取工作流中的注释。

    有关详细信息,请参阅 自定义代码扫描的高级设置对编译语言进行 CodeQL 代码扫描

  6. 单击“提交更改...”**** 以显示提交更改表单。

    用于创建新文件的窗体的屏幕截图。 在文件名右侧,标有“提交更改...”的绿色按钮以深橙色框出。

  7. 在“提交消息”字段中,键入提交消息。

  8. 选择是直接提交到默认分支,还是创建新分支并启动拉取请求。

  9. 单击“提交新文件”**** 将工作流文件提交到默认分支,或单击“提议新文件”**** 将文件提交到新分支。

  10. 如果创建了新分支,单击“创建拉取请求”**** 并打开一个拉取请求,将你的更改合并到默认分支。

在建议的 CodeQL 分析工作流程 中,code scanning 配置为在每次将更改推送到默认分支或任何受保护分支或者对默认分支提出拉取请求时分析代码。 因此,code scanning 将立即开始。

用于代码扫描的 on:pull_requeston:push 触发器各自用于不同的目的。 请参阅“自定义代码扫描的高级设置”和“触发工作流程”。

有关批量启用的信息,请参阅 使用 CodeQL 大规模为代码扫描配置高级设置

后续步骤

当工作流至少成功运行一次后,可以开始检查并解决 code scanning 警报。 有关 code scanning 警报的更多信息,请参阅 关于代码扫描警报评估存储库的代码扫描警报

了解 code scanning 运行如何作为拉取请求的检查项工作,请参阅 鉴定拉取请求中的代码扫描警报

可以在工具状态页上找到有关 code scanning 配置的详细信息,包括每次扫描的时间戳和扫描的文件百分比。 有关详细信息,请参阅“关于代码扫描的工具状态页”。

延伸阅读

  •         [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests)。
    
  •         [AUTOTITLE](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#github-actions-notification-options)。
    
  •         [AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning)。
    
  •         [AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/viewing-code-scanning-logs)。