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。

配置 code scanning 的高级设置,使用 CodeQL

可以自定义 CodeQL 分析,通过创建和编辑工作流文件。 选择高级配置会生成一个基本工作流文件,以便您使用标准工作流语法自定义并指定 CodeQL 动作的选项。 请参阅 工作流代码扫描的工作流配置选项

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

注意

可以为任何您有写入访问权限的公共存储库配置 code scanning。

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

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

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

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

  4. 向下滚动到“Code Security”,在“CodeQL 分析”行中选择“ 设置”,然后单击“ 高级”。

    注意

    如果要从默认设置切换到高级设置,请在“分析”CodeQL 行 中选择,然后单击“ 切换到高级”。 在显示的弹出窗口中,单击“ 禁用 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

          GitHub 包括用于第三方操作的工作流模板,以及 CodeQL 操作。 使用工作流模板比徒手编写工作流容易得多。

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

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

  2. 在仓库名称下,单击“ Actions”****。

    “github/docs”存储库的选项卡的屏幕截图。 “操作”选项卡以橙色边框突出显示。

  3. 如果存储库已经配置并运行了至少一个工作流,单击“新建工作流”**** 以显示工作流模板。 如果当前没有为存储库配置工作流程,请转到下一步。

    存储库的“操作”选项卡的屏幕截图。 “新建工作流”按钮用深橙色框标出。

  4. 在“选择工作流”或“开始使用 GitHub Actions”视图中,向下滚动到“安全性”类别,然后单击要配置的工作流下的“ 配置 ”。 你可能需要单击“查看全部”**** 才能找到要配置的安全工作流。

    工作流模板的“安全”类别的屏幕截图。 “配置”按钮和“查看全部”链接通过橙色轮廓突出显示。

  5. 按照工作流中的任何说明,根据你的需要对其进行自定义。 有关工作流的更多一般帮助,请单击工作流页面右侧窗格中的“文档”****。

    显示正在编辑的工作流模板文件的屏幕截图。 “文档”按钮以橙色轮廓突出显示。

  6. 完成配置定义后,将新工作流添加到默认分支。

    有关详细信息,请参阅 使用工作流模板代码扫描的工作流配置选项

后续步骤

工作流成功运行至少一次后,即可开始检查和解决 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)。