代码质量与安全 | 如何使用SonarQube自动检测与审查GitHub Copilot生成的代码?

本文来源sonarsource.com,由SonarQube & GitHub中国授权合作伙伴-创实信息翻译整理。

代码质量与安全 | 如何使用SonarQube自动检测与审查GitHub Copilot生成的代码?

GitHub Copilot,一个拥有超过1亿用户的AI编码助手,改变了游戏规则。确保由AI生成的代码达到高质量标准——安全、可维护且无问题,这是至关重要的。Sonar能够提供有力支持,让您能够放心地将AI生成的代码整合到GitHub项目中。

现在,Sonar可以自动检测和审查GitHub项目中由GitHub Copilot生成的代码。该项功能已在SonarQube Server 2025.1 长期支持版本(LTA)中可用,并将于4月上线SonarQube Cloud。

SonarQube会评估用户对GitHub Copilot的使用情况和代码贡献模式,当检测到Copilot的使用时,它生成的代码可以通过Sonar严格的AI Code Assurance工作流进行自动检查,快速发现潜在问题,从而帮助开发团队借助AI大幅提升生产力,同时保持代码库的清洁和安全。

如何使用SonarQube自动检测和审查GitHub Copilot生成的代码?

直接优势:

  • 查看AI的工作成果:Sonar会自动识别任何可能包含GitHub Copilot生成代码的项目。 
  • 自动化代码审查:一旦项目绑定到AI质量门,Sonar会彻底检查其代码,提前发现潜在问题,避免它们成为隐患。  
  • 无缝集成:该功能可轻松融入您现有的流程和工具中,提供可操作的洞察,而不会打断您的工作流。  
  • 放心编码:使用GitHub Copilot时,您无需担心代码质量问题——Sonar会为您保驾护航。

分步使用指南:

如何检测GitHub Copilot的使用情况?

自动检测Copilot使用情况的功能在SonarQube中默认开启,但需要SonarQube管理员在SonarQube GitHub应用中设置权限来启用访问。这允许SonarQube能够使用GitHub的API来查看何时使用了Copilot。

设置权限的步骤如下:

  • 首先,确保您的GitHub账户中已设置SonarQube GitHub应用。您可以通过点击右上角账户头像下拉菜单中的“设置”来检查。然后,在Public Profile页面左侧菜单中的Integrations(集成)部分下,点击Applications(应用程序)。在应用列表中,您应该会看到一个SonarQube应用程序。如果SonarQube尚未注册为GitHub应用,请按照该链接进行操作:https://bit.ly/43P57ur

  • 请具有GitHub访问权限的项目管理员导航至您的SonarQube GitHub应用 > 应用设置 > 权限与事件 > 组织权限 > GitHub Copilot Business,并将访问级别设置为“只读”。请注意,GitHub会发送一封确认邮件,您需要确认。

一旦SonarQube获得对GitHub API的访问权限,在检测到Copilot的使用时,它会主动标记项目,添加一个“CONTAINS AI CODE”的状态徽章。

但是,为了让这些代码通过Sonar的AI代码质量保证工作流,还需要一些额外步骤。

  • 将项目的质量门切换到符合AI代码质量保证条件的质量门,例如Sonar提供的“Sonar way for AI Code”。您也可以使用自己符合AI标准的质量门。了解如何设置质量门以符合AI代码质量保证资格,请参照链接:https://bit.ly/3Fxjycz

  • 触发新的分析。就这样!在下一次分析中,您的项目将使用专为AI生成代码设置的分析工作流进行检查。当完成工作流并且代码通过质量门后,您将在项目组合看板和项目概览页面上看到“AI代码质量保证通过”的徽章。

随着GitHub Copilot等AI编码工具日益普及,确保其输出代码的质量和安全至关重要。Sonar对GitHub Copilot生成的AI代码进行自动检测和审查,满足了这一需求,使开发人员能够满足现代软件开发的严格要求。

立即行动,借助SonarQube和GitHub Copilot提升您的代码质量!

了解更多,请咨询创实信息——我们是SonarQube、GitHub的中国授权合作伙伴,提供SonarQube企业版GitHub企业版以及GitHub Copilot的产品咨询、试用、销售、安装部署、技术支持等一站式服务。

了解SonarQube:https://www.shcsinfo.com/sonarqube

了解GitHub Copilot:https://www.shcsinfo.com/github/copilot

联系方式:021-61210910、customer@shcsinfo.com