代码扫描是用于分析GitHub存储库中的代码以查找安全漏洞和编码错误的功能。分析发现的任何问题都会显示在存储库中。
您可以使用代码扫描来查找、分类和确定代码中现有问题的修复优先级。代码扫描还可以防止开发人员引入新问题。您可以安排特定日期和时间的扫描,或者在存储库中发生特定事件(如推送)时触发扫描。
如果代码扫描发现代码中存在潜在漏洞或错误,GitHub会在存储库中显示警报。修复触发警报的代码后,GitHub将关闭警报。有关详细信息,请参阅“管理存储库的代码扫描警报."
GitHub Copilot Autofix将为私有存储库中CodeQL分析的警报提供修复建议,使开发人员能够轻松地预防和减少漏洞。有关详细信息,请参阅“关于CodeQL代码扫描的Copilot Autofix."
要监视跨存储库或组织的代码扫描结果,可以使用webhook和代码扫描API。有关代码扫描的webhook的信息,请参阅"Webhook事件和有效负载。“有关API端点的信息,请参阅”用于代码扫描的REST API端点."
要开始代码扫描,请参阅“配置代码扫描的默认设置."
代码扫描使用GitHub Actions,每次运行代码扫描工作流都会花费几分钟的时间来执行GitHubActions。有关详细信息,请参阅“关于GitHub操作的计费."
要在私有存储库上使用代码扫描,还需要GitHub Advanced Security的许可证。有关如何免费试用带有GitHub高级安全性的GitHub Enterprise的信息,请参阅“设置GitHub企业云的试用“和”设置GitHub Advanced Security的试用“在GitHub企业云文档中。
您可以配置代码扫描以使用GitHub或第三方代码扫描工具维护的CodeQL产品。
CodeQL是GitHub开发的代码分析引擎,用于自动化安全检查。您可以使用CodeQL分析代码,并将结果显示为代码扫描警报。有关CodeQL的详细信息,请参阅“关于使用CodeQL进行代码扫描."
代码扫描可以与输出静态分析结果交换格式(SARIF)数据的第三方代码扫描工具进行互操作。SARIF是一个开放标准。有关详细信息,请参阅“SARIF支持代码扫描."
您可以在GitHub中使用操作或在外部CI系统中运行第三方分析工具。有关详细信息,请参阅“配置代码扫描的高级设置“或”将SARIF文件上载到GitHub."
工具状态页显示有关所有代码扫描工具的有用信息。如果代码扫描没有按预期工作,那么工具状态页是调试问题的良好起点。有关详细信息,请参阅“关于代码扫描的工具状态页".