Skip to content

安全扫描功能说明 ​

本文档面向管理员

安全扫描功能由管理员在审核流程中统一配置。开发者无需自行开启,提交项目审核后管理员会自动处理。

自动开启的功能 ​

在管理员执行安全预检时,以下功能会通过 GitHub API 自动开启:

功能方式说明
Secret Scanning自动开启扫描仓库中已存在的密钥和凭证
Push Protection自动开启在推送时阻止包含密钥的提交

预检流程会调用 GitHub API 自动启用 Secret Scanning 和 Push Protection,无需任何手动操作。

需要手动开启的功能 ​

Code Scanning (CodeQL) 无法通过 API 自动开启,需要管理员手动在 GitHub Settings 中配置。

Swift 项目不要使用 Default 模式

Swift 项目必须走 Advanced CodeQL workflow,不要在 GitHub Code scanning 中启用 Default setup。若 Default setup 与仓库内 .github/workflows/codeql.yml 同时存在,GitHub 会报错:CodeQL analyses from advanced configurations cannot be processed when the default setup is enabled。

审核 Swift 项目时,管理员应检查仓库是否存在 .github/workflows/codeql.yml,并确认该 workflow 已成功运行。若缺失或失败,请让用户按 CodeQL workflow(Swift - Xcode 工程) 或同页 Swift SPM 模板配置。

操作步骤 ​

管理员在预检结果中如果看到 Code Scanning 未开启,可以点击预检弹窗底部的「开启 Code Scanning」按钮,系统会在新窗口打开对应仓库的安全设置页面。

以下是在 GitHub 上手动开启 CodeQL Default setup 的详细步骤,仅适用于非 Swift 项目:

第 1 步:进入项目设置 ​

打开 GitHub 项目页面,点击顶部导航栏中的 Settings(设置)选项卡。

点击 Settings 进入项目设置

第 2 步:进入 Advanced Security 页面 ​

在 Settings 左侧菜单中,找到 Security 分组下的 Advanced Security,点击进入。

点击 Advanced Security

第 3 步:找到 Code Scanning 区域 ​

向下滚动页面,找到 Code scanning 区域。在 CodeQL analysis 部分,点击 Set up 按钮。

点击 Set up 按钮

第 4 步:选择 Default 配置 ​

在弹出的下拉菜单中,选择 Default。Default 模式会自动为仓库选择最佳配置,适合大多数项目。

Default vs Advanced:

  • Default:CodeQL 自动检测仓库语言并应用高精度查询规则,无需额外配置
  • Advanced:通过 YAML 文件自定义 CodeQL 配置,适合有特殊需求的项目

选择 Default 配置

第 5 步:确认并启用 CodeQL ​

在弹出的配置对话框中,确认配置无误后,点击绿色的 Enable CodeQL 按钮。

点击 Enable CodeQL 启用

第 6 步:启用成功 ​

CodeQL analysis 状态会变为 Setting up,表示正在进行首次全量扫描。首次扫描完成后,按钮状态会变为 Enabled。

启用成功,正在设置中

功能说明 ​

功能作用开启方式
Code Scanning (CodeQL)自动检测代码漏洞和编码错误管理员手动开启
Secret Scanning扫描仓库中已存在的密钥和凭证预检时自动开启
Push Protection在推送时阻止包含密钥的提交预检时自动开启

后续说明 ​

  • Code Scanning 首次扫描可能需要几分钟时间,扫描完成后可以在 Security 选项卡中查看结果
  • 扫描发现的问题会以 Alert 形式展示,建议及时修复
  • 如需自定义扫描规则,可以切换到 Advanced 模式,通过 .github/workflows 目录下的 YAML 文件进行配置