{"meta":{"title":"关于代码扫描的设置类型","intro":"根据你的需求， GitHub 提供 code scanning默认或高级设置。","product":"安全性和代码质量","breadcrumbs":[{"href":"/zh/enterprise-server@3.19/code-security","title":"安全性和代码质量"},{"href":"/zh/enterprise-server@3.19/code-security/concepts","title":"Concepts"},{"href":"/zh/enterprise-server@3.19/code-security/concepts/code-scanning","title":"代码扫描"},{"href":"/zh/enterprise-server@3.19/code-security/concepts/code-scanning/setup-types","title":"安装类型"}],"documentType":"article"},"body":"# 关于代码扫描的设置类型\n\n根据你的需求， GitHub 提供 code scanning默认或高级设置。\n\n## 关于默认设置\n\ncode scanning默认设置是为存储库启用code scanning的最快、最简单、最低维护的方法。 根据存储库中的代码，默认设置将自动创建自定义 code scanning 配置。 还可以自定义此配置，包括在整个组织中大规模进行自定义，而无需创建或维护工作流文件。 请参阅 [默认设置的自定义](#customization-of-default-setup)。 启用默认设置后，存储库中使用CodeQL支持的语言编写的代码将会通过CodeQL进行扫描。\n\n* 每次推送到存储库的默认分支或任何受保护的分支时。 有关受保护分支的详细信息，请参阅“[关于受保护分支](/zh/enterprise-server@3.19/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)”。\n* 根据存储库的默认分支或任何受保护的分支创建或提交拉取请求时，不包括分支中的拉取请求。\n* 每周一次。\n\n### 支持的语言\n\n如果存储库将来可能至少包含一种 CodeQL受支持的语言，我们建议为符合条件的存储库启用默认设置。 如果在不包含任何 CodeQL受支持语言的存储库上启用默认设置，则默认设置不会运行任何扫描或使用任何 GitHub Actions 分钟。 如果将 CodeQL-supported 语言添加到存储库的默认分支，则默认设置将自动开始扫描 CodeQL支持的语言并使用 GitHub Actions 分钟数。 有关支持的语言的详细信息 CodeQL，请参阅 [使用 CodeQL 扫描代码](/zh/enterprise-server@3.19/code-security/concepts/code-scanning/codeql/codeql-code-scanning#about-codeql)。\n\n如果存储库中的代码更改为包含任何 CodeQL受支持的语言， GitHub 则会自动更新 code scanning 配置以包含新语言。 如果 code scanning 新配置失败，将自动恢复以前的配置， GitHub 以便存储库不会丢失 code scanning 覆盖范围。\n\n## 自定义默认设置\n\n运行代码的初始分析时使用默认设置，然后可以更改配置以更好地满足需求。\n\n### 配置选项\n\n对于默认设置的现有配置，可编辑：\n\n* 语言默认设置会进行分析。\n* 分析期间运行的查询套件。 有关可用查询套件的详细信息，请参阅“[CodeQL 查询套件](/zh/enterprise-server@3.19/code-security/concepts/code-scanning/codeql/codeql-query-suites)”。\n* 要用于分析的威胁模型（公开预览）。 所选的威胁模型将决定哪些受污染数据的来源被视为应用程序的风险。 在 公开预览 期间，仅支持用于 Java/Kotlin 和 C# 分析的威胁模型。 有关威胁模型的更多信息，请参阅“[在默认设置中包含受污染数据的本地源](/zh/enterprise-server@3.19/code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/edit-default-setup#including-local-sources-of-tainted-data-in-default-setup)”。\n\n如果你的代码库依赖于标准库CodeQL未识别的库或框架，还可以通过使用CodeQL模型包，在默认设置中扩展CodeQL的覆盖范围。 有关详细信息，请参阅[在默认设置中使用 CodeQL 模型包扩展 CodeQL 覆盖率](/zh/enterprise-server@3.19/code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/edit-default-setup#extending-codeql-coverage-with-codeql-model-packs-in-default-setup)。\n\n### 可用运行程序\n\n可以对自托管运行器或 CodeQL 托管运行器上使用所有 GitHub 支持的语言的默认设置。\n\n可以通过为运行程序提供默认 `code-scanning` 标签来为默认设置分配自承载运行程序，也可以选择为它们提供自定义标签，以便单个存储库可以使用不同的运行程序。\n\n除非有特定用例，否则建议为运行程序只分配默认的 `code-scanning` 标签。 但是，你可能想要使用自定义标签来：\n\n* 将更强大的自托管运行程序分配给关键存储库，以便更快地进行 code scanning 分析。\n* 在特定平台上运行你的code scanning分析（例如 macOS）。\n* 对您的 GitHub 托管和自托管运行器的工作负荷进行精细控制。\n\n## 关于高级设置\n\n对配置code scanning进行更精细的控制，则应改为配置高级设置。 需要定义自己的code scanning工作流（例如生成编译的语言、使用矩阵生成或更改分析计划）时，高级设置GitHub Actions非常有用。 可以通过 code scanning 或外部的持续集成或持续交付/部署 (CI/CD) 系统设置 GitHub Actions。\n\n如果使用多个配置运行代码扫描，则警报有时会有多个分析源。 如果警报有多个分析源，你可在警报页上查看每个分析源的警报状态。 有关详细信息，请参阅“[代码扫描警报](/zh/enterprise-server@3.19/code-security/concepts/code-scanning/code-scanning-alerts#about-alerts-from-multiple-configurations)”。\n\n### 有 GitHub Actions\n\n通过创建和编辑 GitHub Actions 工作流文件，可以定义如何生成编译的语言、选择要运行的查询、选择要扫描的语言、使用矩阵生成等。 还可以访问用于控制工作流的所有选项，例如：更改扫描日程安排、定义工作流触发器、指定要使用的专业运行器。\n\n站点管理员还可以通过设置 code scanning，向用户提供执行 GitHub Connect 的第三方操作。 有关详细信息，请参阅“[为设备配置代码扫描](/zh/enterprise-server@3.19/code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/configuring-code-scanning-for-your-appliance#configuring-github-connect-to-sync-github-actions)”。\n\n### 使用第三方 CI/CD 系统\n\n作为在code scanning中使用GitHub运行GitHub Actions的替代方案，可以在外部 CI/CD 系统中分析代码，然后将结果上传到GitHub。\n\nCodeQL CLI这是一种独立的命令行工具，可用于分析代码。 可以将结果 CodeQL CLI 添加到第三方系统，或使用另一个第三方静态分析工具，该工具可以生成静态分析结果交换格式 （SARIF） 2.1.0 数据。 有关详细信息，请参阅 [CodeQL命令行界面 (CLI)](/zh/enterprise-server@3.19/code-security/concepts/code-scanning/codeql/codeql-cli) 和 [对代码扫描的 SARIF 支持](/zh/enterprise-server@3.19/code-security/reference/code-scanning/sarif-files/sarif-support)。\n\n在外部生成的code scanning警报与在code scanningGitHub内部生成的警报显示方式相同。\n\n## 后续步骤\n\n可以同时为组织中的单个存储库、多个存储库或所有存储库启用默认设置。\n\n* 有关单个存储库，请参阅 [配置代码扫描的默认设置](/zh/enterprise-server@3.19/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configure-code-scanning)。\n* 有关批量启用，请参阅 [配置大规模代码扫描的默认设置](/zh/enterprise-server@3.19/code-security/how-tos/secure-at-scale/configure-organization-security/configure-specific-tools/code-scanning-at-scale)。\n\n若要改为配置高级设置，请参阅 [配置代码扫描的高级设置](/zh/enterprise-server@3.19/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configuring-advanced-setup-for-code-scanning)。"}