代码扫描是一项功能,可用于分析 GitHub 仓库中的代码,以发现安全漏洞和编码错误。分析识别的任何问题都会显示在您的仓库中。
您可以使用代码扫描来查找、分流并优先修复代码中已有的问题。代码扫描还能防止开发者引入新问题。您可以为特定的日期和时间安排扫描,或在仓库中发生特定事件(如 push)时触发扫描。
如果代码扫描在您的代码中发现潜在的漏洞或错误,GitHub 会在仓库中显示警报。您在修复触发警报的代码后,GitHub 会关闭该警报。更多信息,请参阅 解决代码扫描警报。
GitHub Copilot Autofix 将为代码扫描分析产生的警报提供修复建议,使开发者能够以更少的工作量防止和降低漏洞。更多信息,请参阅 代码扫描中负责任地使用 Copilot Autofix。
要跨仓库或跨组织监控代码扫描的结果,您可以使用 Webhook 和代码扫描 API。有关代码扫描的 Webhook 信息,请参阅 Webhook 事件和负载。有关 API 端点的信息,请参阅 代码扫描的 REST API 端点。
代码扫描使用 GitHub Actions,每次工作流运行都会消耗 GitHub Actions 分钟。如果要在私有仓库中使用代码扫描,需要拥有 GitHub 代码安全许可证。更多信息,请参阅 GitHub Actions 计费。有关免费试用 GitHub Enterprise 与 GitHub Advanced Security 的方法,请参阅 设置 GitHub Enterprise Cloud 试用 和 设置 GitHub Advanced Security 试用(位于 GitHub Enterprise Cloud 文档中)。
如果您想在购买许可证前评估组织面临的漏洞风险,可以进行免费代码安全风险评估。请参阅 代码安全风险评估。
要开始使用代码扫描,请参阅 为代码扫描配置默认设置。
关于代码扫描的工具
您可以配置代码扫描以使用由 GitHub 维护的 CodeQL 产品或第三方代码扫描工具。
关于 CodeQL 分析
CodeQL 是 GitHub 开发的代码分析引擎,用于自动化安全检查。您可以使用 CodeQL 对代码进行分析,并将结果显示为代码扫描警报。有关 CodeQL 的更多信息,请参阅 关于使用 CodeQL 进行代码扫描。
关于第三方代码扫描工具
代码扫描可以与输出静态分析结果交换格式(SARIF)数据的第三方工具互操作。SARIF 是一种开放标准。更多信息,请参阅 代码扫描的 SARIF 支持。
您可以使用 Actions 在 GitHub 中运行第三方分析工具,或在外部 CI 系统中运行。更多信息,请参阅 配置代码扫描的高级设置 或 将 SARIF 文件上传到 GitHub。
关于工具状态页面
工具状态页面显示有关您所有代码扫描工具的有用信息。如果代码扫描未按预期工作,工具状态页面是排查问题的良好起点。更多信息,请参阅 使用工具状态页面进行代码扫描。