GitHub最新推出了代码扫描自动修复(Code Scanning Autofix)功能的首个测试版。这个新功能结合了GitHub Copilot的实时功能和CodeQL语义分析引擎,可以帮助开发者在编码的同时自动发现并修复安全漏洞。
据GitHub介绍,这个功能能够修复三分之二以上的代码漏洞,而且大多数情况下开发者甚至无需自己动手修改代码。目前,代码扫描自动修复功能支持JavaScript、TypeScript、Java和Python等主流编程语言,能够覆盖这些语言中90%以上的常见漏洞类型。
这个功能的核心技术是GitHub从代码分析公司Semmle收购而来的CodeQL引擎,这个引擎能够在代码运行前对其进行语义分析,找出潜在的安全问题。除了CodeQL,该功能还采用了一系列启发式算法和GitHub Copilot API来提出修复建议,并使用了OpenAI的GPT-4语言模型来生成补丁代码和解释。
不过,GitHub也坦言这个功能并非完美无缺,少数情况下它提出的修复建议可能并不准确,或者对代码的理解存在偏差。开发者在采纳自动修复建议时仍需自行甄别,而不能完全依赖这一自动化流程。
代码扫描自动修复功能现已向GitHub高级安全服务的付费用户开放。