Code scanning 是一项功能,可用于分析 GitHub 仓库中的代码,以查找安全漏洞和编码错误。 分析标识的任何问题都显示在存储库中。
你可以使用 code scanning 来查找代码中现有的问题,并且对其进行分类和确定修复的优先级。 Code scanning 还可防止开发者引入新问题。 你可安排在特定日期和时间进行扫描,或在存储库中发生特定事件(例如推送)时触发扫描。
如果 code scanning 发现你的代码中可能存在漏洞或错误,GitHub 会在仓库中显示警报。 在修复触发警报的代码之后,GitHub 将关闭警报。 有关详细信息,请参阅“管理存储库的代码扫描警报”。
GitHub Copilot Autofix 将针对专用存储库中的 CodeQL 分析发出的警报提供修复建议,从而让开发人员能够更轻松地避免和减少漏洞。 有关详细信息,请参阅“Responsible use of Copilot Autofix for code scanning”。
要监控你的仓库或组织的 code scanning 结果,你可以使用 web 挂钩和 code scanning API。 有关用于 code scanning 的 Webhook 的信息,请参阅“Webhook 事件和有效负载”。 有关 API 终结点的信息,请参阅“适用于代码扫描的 REST API 终结点”。
若要开始使用 code scanning,请参阅“配置代码扫描的默认设置”。
关于 code scanning 的计费
Code scanning 使用 GitHub Actions,且 code scanning 工作流的每次运行将耗用 GitHub Actions 的分钟数。 有关详细信息,请参阅“About billing for GitHub Actions”。
若要在专用存储库中使用 code scanning,还需要 GitHub Advanced Security 许可证。 有关如何免费试用 GitHub Advanced Security 的信息,请参阅“Setting up a trial of GitHub Advanced Security”。
关于 code scanning 的工具
可以将 code scanning 配置为使用由 GitHub 或第三方 code scanning 工具维护的 CodeQL 产品。
关于 CodeQL 分析
CodeQL 是 GitHub 开发的代码分析引擎,用于自动执行安全检查。 可使用 CodeQL 分析代码,并将结果显示为 code scanning 警报。有关 CodeQL 的详细信息,请参阅“关于使用 CodeQL 进行代码扫描”。
关于第三方 code scanning 工具
Code scanning 可与输出静态分析结果交换格式 (SARIF) 数据的第三方代码扫描工具互操作。 SARIF 是一个开放的标准。 有关详细信息,请参阅“对代码扫描的 SARIF 支持”。
你可以使用操作在 GitHub Enterprise Cloud 内或者在外部 CI 系统内运行第三方分析工具。 有关详细信息,请参阅“配置代码扫描的高级设置”或“将 SARIF 文件上传到 GitHub”。
关于 工具状态页
工具状态页 显示有关所有代码扫描工具的有用信息。 如果代码扫描未按预期运行,则 工具状态页 是调试问题的一个很好的起点。 有关详细信息,请参阅“关于代码扫描的工具状态页”。