{"meta":{"title":"关于代码扫描警报","intro":"了解不同类型的代码扫描警报以及有助于了解每个警报突出显示的问题的信息。","product":"安全性和代码质量","breadcrumbs":[{"href":"/zh/enterprise-cloud@latest/code-security","title":"安全性和代码质量"},{"href":"/zh/enterprise-cloud@latest/code-security/concepts","title":"Concepts"},{"href":"/zh/enterprise-cloud@latest/code-security/concepts/code-scanning","title":"代码扫描"},{"href":"/zh/enterprise-cloud@latest/code-security/concepts/code-scanning/about-code-scanning-alerts","title":"代码扫描警报"}],"documentType":"article"},"body":"# 关于代码扫描警报\n\n了解不同类型的代码扫描警报以及有助于了解每个警报突出显示的问题的信息。\n\n## 关于来自code scanning的警报\n\n可配置 code scanning 为使用默认 CodeQL 分析、第三方分析或多种类型的分析检查存储库中的代码。 分析完成后，生成的警报将并排显示在仓库的安全视图中。 来自第三方工具或自定义查询的结果可能不包括所有你在默认的GitHubCodeQL分析检测到的警报中看到的属性。 有关详细信息，请参阅 [配置代码扫描的默认设置](/zh/enterprise-cloud@latest/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning) 和 [配置代码扫描的高级设置](/zh/enterprise-cloud@latest/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning)。\n\n默认情况下，code scanning 会在默认分支及拉取请求中定期分析代码。 有关管理拉取请求上警报的信息，请参阅 [鉴定拉取请求中的代码扫描警报](/zh/enterprise-cloud@latest/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests)。\n\n你可以使用 GitHub Copilot自动修复 自动为code scanning警报（包括 CodeQL 警报）生成修复方案。 有关详细信息，请参阅“[解决代码扫描警报](/zh/enterprise-cloud@latest/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts#generating-suggested-fixes-for-code-scanning-alerts)”。\n\n拥有 GitHub Copilot Enterprise 许可证，你也可请求 GitHub Copilot 对话助手 帮助，更好地了解组织存储库中的code scanning警报。 有关详细信息，请参阅“[在GitHub中询问有关GitHub Copilot的问题](/zh/enterprise-cloud@latest/copilot/using-github-copilot/asking-github-copilot-questions-in-githubcom#asking-questions-about-alerts-from-github-advanced-security-features)”。\n\n对于来自 CodeQL 分析的code scanning警报，你可以使用安全概述来查看 CodeQL 在组织内各存储库的拉取请求中的表现，并确定可能需要采取操作的存储库。 有关详细信息，请参阅“[CodeQL 拉取请求警报指标](/zh/enterprise-cloud@latest/code-security/concepts/code-scanning/pull-request-alert-metrics)”。\n\n可以使用 GitHub 工具审核为响应code scanning警报而执行的操作。 有关详细信息，请参阅“[审核安全警报](/zh/enterprise-cloud@latest/code-security/getting-started/auditing-security-alerts)”。\n\n## 关于警报详细信息\n\n每个警报都会高亮显示代码的问题以及识别该问题的工具名称。 你可以看到触发警报的代码行以及警报的属性，例如警报严重性、安全严重性和问题的性质。 警报还会告知该问题第一次被引入的时间。 通过 CodeQL 分析识别的警报，您还会看到有关如何解决问题的信息。\n\n警报页面上的状态和详细信息仅反映存储库默认分支上的警报状态，即使警报存在于其他分支中也是如此。 可以在警报页右侧的“受影响的分支”部分查看非默认分支上的警报状态。 如果默认分支中不存在警报，则警报的状态将显示为“在拉取请求中”或“在分支中”，并将变为灰色。 “开发”部分显示将修复警报的链接分支和拉取请求。\\*\\*\\*\\*\n\n![code scanning 警报的屏幕截图，包括警报标题、左侧的相关代码行、右侧的元数据。](/assets/images/help/repository/code-scanning-alert.png)\n\n还可以查看受影响的分支，以及警报的修复内容和关联的拉取请求。 这有助于你和你的团队随时了解解决警报的进度。\n\n![code scanning 警报的“Development”部分的屏幕截图，其中包含可以修复警报的拉取请求的标题。](/assets/images/help/repository/code-scanning-alert-development-section.png)\n\n如果使用 CodeQL 配置code scanning，还可以在代码中发现数据流问题。 数据流分析将查找代码中的潜在安全问题，例如：不安全地使用数据、将危险参数传递给函数以及泄漏敏感信息。\n\n当 code scanning 报告数据流警报时，GitHub 会显示数据在代码中的流动方式。\nCode scanning 允许识别泄露敏感信息的代码区域，这可能是恶意用户攻击的入口点。\n\n若要在没有离开 GitHub 的情况下跟踪团队工作流中的修正工作，可以将警报链接到问题。 请参阅“[将代码扫描警报链接到 GitHub 议题](/zh/enterprise-cloud@latest/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/linking-code-scanning-alerts-to-github-issues)”。\n\n### 关于来自多个配置的警报\n\n可以使用不同的工具和针对代码的不同语言或区域，在存储库上运行多个代码分析配置。 每个配置都会生成一组唯一的 code scanning 警报。 例如，使用带有 GitHub Actions 的默认 CodeQL 分析生成的警报，其配置不同于外部生成并通过code scanning API 上传的警报。\n\n如果使用多个配置来分析文件，同一查询检测到的任何问题都将报告为多个配置生成的警报。 如果警报存在于多个配置中，则配置数会显示在警报页面右侧“受影响的分支”部分的分支名称旁边。 若要查看警报的配置，请在“受影响的分支”部分中单击分支。 此时将显示“配置分析”模式，其中包含生成该分支警报的每个配置的名称。 在每个配置下，可以看到该配置的警报上次更新的时间。\n\n警报可能会显示不同配置的不同状态。 若要更新警报状态，请重新运行每个过时的配置。 或者，可以从分支中删除过时的配置，以删除过时的警报。 有关删除过时配置和警报的详细信息，请参阅 [解决代码扫描警报](/zh/enterprise-cloud@latest/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts#removing-stale-configurations-and-alerts-from-a-branch)。\n\n### 关于应用程序代码中未找到的警报的标签\n\n```\n          GitHub 将类别标签分配给应用程序代码中找不到的警报。 标签与警报的位置相关。\n```\n\n* Generated：生成过程生成的代码\n* Test：测试代码\n* Library：库或第三方代码\n* Documentation：文档\n\n  ```\n          Code scanning 按文件路径对文件进行分类。 无法手动对源文件进行分类。\n  ```\n\n在此示例中，警报在code scanning 警报列表中被标记为“测试”代码。\n\n![code scanning 列表中的警报的屏幕截图。 标题右侧的“测试”标签以深橙色轮廓突出显示。](/assets/images/help/repository/code-scanning-library-alert-index.png)\n\n单击以查看警报的详细信息时，可以看到文件路径被标记为“测试”代码。\n\n![显示警报详细信息的屏幕截图。 文件路径和“测试”标签以深橙色轮廓突出显示。](/assets/images/help/repository/code-scanning-library-alert-show.png)\n\n> \\[!NOTE]\n> 针对code scanning的实验性警报可在 JavaScript 的公共预览版版本中使用，该版本在 CodeQL 操作中使用了实验性技术。 此功能已已停用。 有关详细信息，请参阅 [CodeQLcode scanning 弃用由 ML 驱动的警报](https://github.blog/changelog/2023-09-29-codeql-code-scanning-deprecates-ml-powered-alerts/)。\n\n## 关于警报严重性和安全严重性级别\n\n警报的 code scanning 严重性级别指示问题对代码库风险的增加程度。\n\n* ```\n          **严重性。** 所有 code scanning 警报的级别为 `Error`、`Warning` 或者 `Note`。\n  ```\n* ```\n          **安全严重性。** 使用CodeQL的每个安全警报都具有安全严重级别`Critical`、`High``Medium`或`Low`。\n  ```\n\n当警报具有安全严重性级别时， code scanning 显示并使用此级别优先于此 `severity`级别。 安全严重性级别遵循行业标准通用漏洞评分系统（CVSS），该系统也用于公告。GitHub Advisory Database 有关详细信息，请参阅 [CVSS：定性严重性评定标准](https://www.first.org/cvss/v3.1/specification-document#Qualitative-Severity-Rating-Scale)。\n\n### 安全严重性级别的计算\n\n将安全查询添加到 CodeQL 默认或扩展查询套件时， CodeQL 工程团队将计算安全严重性，如下所示。\n\n1. 搜索分配了与新安全查询关联的一个或多个 CWE 标记的所有 CVE。\n2. 计算这些 CVE 的 CVSS 分数的第 75 百分位。\n3. 将该分数定义为查询的安全严重性。\n4. 显示查询找到的警报时，使用 CVSS 定义将数值分数转换为 `Critical`、`High`、`Medium` 或 `Low`。\n\n有关详细信息，请参阅文档网站上的[CodeQLCWE 覆盖范围](https://codeql.github.com/codeql-query-help/codeql-cwe-coverage/)CodeQL。\n\n## 关于拉取请求中的警报\n\n```\n          Code scanning 警报可以在拉取请求上显示为检查结果和批注。 在以下任意一种情况下，code scanning 存储库中会发生这种情况：\n```\n\n* 配置为拉取请求检查（默认情况下，这仅限于针对默认分支的拉取请求）\n* 配置为在每次推送代码时进行扫描（结果将被映射到所有打开的拉取请求）\n\n只有当警报标识的代码行**全部**都存在于拉取请求差异中时，才会在拉取请求中看到警报。\n\n根据分支保护规则，“Code scanning结果”检查可能是一项强制性检查，在通过该检查之前将阻止拉取请求被合并。"}