Skip to main content

此版本的 GitHub Enterprise Server 已于以下日期停止服务 2024-07-09. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

配置代码扫描的高级设置

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

谁可以使用此功能?

People with admin permissions to a repository, or the security manager role for the repository, can enable code scanning for that repository.

Code scanning 可用于 GitHub Enterprise Server 中的组织拥有的存储库。 此功能需要 GitHub Advanced Security 的许可证。 有关详细信息,请参阅“关于 GitHub 高级安全性”。

注意:网站管理员必须为 你的 GitHub Enterprise Server 实例 启用 code scanning,然后你才能使用此功能。 如果要使用 GitHub Actions 扫描代码,站点管理员还必须启用 GitHub Actions 并设置所需的基础结构。 有关详细信息,请参阅“为设备配置代码扫描”。

关于 code scanning 的高级设置

需要自定义 code scanning 时,code scanning 的高级设置非常有用。 通过创建和编辑工作流文件,可以定义如何生成已编译语言、选择要运行的查询、选择要扫描的语言、使用矩阵生成等。 还可以访问用于控制工作流的所有选项,例如:更改扫描日程安排、定义工作流触发器、指定要使用的专业运行器。 有关 GitHub Actions 工作流的详细信息,请参阅“关于工作流程”。

网站管理员也可以通过设置 GitHub Connect,使code scanning用户可以使用第三方操作。 有关详细信息,请参阅“为设备配置代码扫描”。

如果使用多个配置运行代码扫描,则有时多个配置会生成相同的警报。 如果警报来自多个配置,你可在警报页上查看每个配置的警报状态。 有关详细信息,请参阅“关于代码扫描警报”。

注意:本文介绍了此版 GitHub Enterprise Server 的初始发行版中包含的 CodeQL 操作版本和相关 CodeQL CLI 捆绑包中可用的功能。 如果企业使用较新版本的 CodeQL 操作,请参阅本文的 GitHub Enterprise Cloud 版本,了解有关最新功能的信息。 有关使用最新版本的信息,请参阅“为设备配置代码扫描”。

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

先决条件

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

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

如果运行 GitHub Enterprise Server 的服务器未连接到 Internet,则站点管理员可以通过在服务器上提供 CodeQL 分析捆绑包来启用 CodeQL code scanning。 有关详细信息,请参阅“为设备配置代码扫描”。

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

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

  1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。

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

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

  3. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  4. 向下滚动到“Code scanning”部分,选择“设置”,然后单击“高级” 。

    注意:如果要从默认设置切换到高级设置,请在“Code scanning”部分中,选择“”,然后单击 “切换到高级” 。 在出现的弹出窗口中,单击“禁用 CodeQL”。

    “代码安全性和分析”设置的“Code scanning”部分的屏幕截图。 “高级设置”按钮以橙色轮廓突出显示。

  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 配置的详细信息,包括每次扫描的时间戳和扫描的文件百分比。 有关详细信息,请参阅“关于代码扫描的工具状态页”。

其他阅读材料