跳至主要内容

在 GitHub Copilot 推出过程中维护代码库标准

通过规则集、安全功能和有效培训,保持对企业代码的控制。

谁可以使用此功能?

企业所有者

大多数企业都了解 AI 编码工具可以带来的生产力提升。然而,许多人担心公司内部的不当使用,例如恶意提示或开发者在未审查的情况下接受 AI 建议,会导致代码库标准受到破坏。

您可以通过设置 GitHub 环境和工作文化,以实现有效治理,从而降低这些风险。GitHub Copilot 的一大优势在于它内置于 GitHub 平台,而该平台已经具备一系列企业级代码治理功能。

1. 要求拉取请求和审查

开发者和恶意行为者绝不应能够单方面将未经审查的 AI 建议或代理工作直接应用于敏感代码库。您应在用户将代码合并到生产代码库及其他重要分支之前,要求 已批准的拉取请求

为此,请创建一个规则集

  1. 识别包含您想要保护的代码库的组织或仓库,并对其 应用自定义属性。这将使您能够在规则集中轻松定位这些资源。请参阅 管理组织中仓库的自定义属性管理组织的自定义属性

    或者,您也可以手动将这些受保护资源添加到规则集,或根据命名约定进行定位。

  2. 为您的企业创建分支规则集。请参阅 使用规则集在企业中实施代码治理

    • 至少启用 合并前要求拉取请求阻止强制推送 规则。在“合并前要求拉取请求”规则下,确保至少需要一次批准。
    • 如有需要可启用其他规则。例如,如果您担心恶意行为者劫持拉取请求,请确保在推送新提交时 撤销过期的拉取请求批准
  3. 鼓励仓库管理员为仓库中的特定文件设置 CODEOWNERS 文件。这将在这些文件被修改时自动请求代码所有者审查。

    然后,您可以返回规则集并启用 要求代码所有者审查 规则。

  4. 鼓励组织所有者和仓库管理员创建更具体的规则集,因为他们更了解自己代码的需求。

    这些规则集将补充您在企业层面定义的基线,但永不覆盖基线。

2. 测试代码

良好的 DevOps 实践可确保代码在合并和部署之前自动进行测试,最大程度降低错误进入默认分支并在生产环境中出现的风险。

  1. 启用 GitHub Actions 或其他 CI/CD 系统。
  2. 鼓励开发者为所有功能编写测试,并将测试集成到 GitHub Actions 工作流中。
  3. 鼓励组织所有者或仓库所有者创建规则集,并将重要工作流添加到 合并前要求工作流通过 规则中。

3. 扫描代码漏洞

Copilot 已经设计为避免向代码库中引入漏洞。例如,Copilot 云代理生成的代码会自动扫描易受攻击的模式和诸如 API 密钥之类的机密信息。

然而,定期扫描所有代码中的漏洞和机密信息,以及防止开发者首次引入漏洞,都是良好实践。

  1. 作为起点,请在您的组织上应用并强制执行基本的 安全配置。这是一组安全功能的启用设置。我们建议包括代码扫描、机密扫描和机密推送保护。请参阅 创建自定义安全配置
  2. 随着对需求的了解加深,您可以创建额外的自定义配置,或在仓库层面应用细粒度设置。
  3. 要在拉取请求上强制代码扫描,请返回规则集并启用 要求代码扫描结果 规则。

4. 为 Copilot 制定指南

为了从根本上提升 Copilot 建议的质量,您应创建自定义指令。这些指令为所有提示添加上下文,告知 Copilot 遵循贵公司的编码标准。

  1. 要建立良好的基线,请在组织层面创建 自定义指令。这些可以是适用于任何仓库的高级标准。但请注意,这些指令仅在 GitHub 网站上生效。请参阅 为 GitHub Copilot 添加组织自定义指令
  2. 为实现更全面的覆盖,鼓励开发者和仓库管理员 为特定仓库编写自定义指令。这些指令比组织指令适用范围更广,并可更详细地说明每个项目及其需求。请参阅 为 GitHub Copilot 添加仓库自定义指令

5. 鼓励最佳实践

在设立了强有力的防护措施后,开发者已经能够有效使用 AI。然而,提供 AI 工具培训并营造鼓励最佳实践的文化同样重要,而不仅仅是强制执行。

  1. 传达您的治理设置以及公司对开发者使用 Copilot 的期望。例如,如果所有代理工作都必须进行彻底审查,请确保该流程已建立并传达。
  2. 创建入职资源,如内部文档或视频。作为起点,可共享已有资源,例如 使用 GitHub Copilot 的最佳实践GitHub Copilot Chat 手册
  3. 提供持续的培训和支持,如工作坊。在成功的推广中,许多公司会挑选“冠军”角色,帮助其他人有效使用 Copilot。

6. 为最坏情况做计划

即使设置了最严格的防护措施,也始终可能出现易受漏洞或错误的代码被合并,无论开发者是否使用 AI 工具。

为应对此类情形,您应制定处理问题的计划并与开发者沟通。例如

  1. 回滚错误的拉取请求并撤销部署。
  2. 创建讨论帖,分析出错原因并阐述未来的避免措施。
  3. 检查审计日志,查看规则集绕过、权限错误或治理设置变更等情况。

7. 检查代码质量

如果您对治理模型有信心,但仍担心 Copilot 随时间降低代码库质量,您可以在 rollout 期间进行衡量。启用后,GitHub Code Quality 可提供仓库代码健康的指标。请参阅 关于 GitHub Code Quality

后续步骤

了解企业如何使用审计日志监控配置设置和许可证分配的变更。请参阅 审阅 GitHub Copilot 的审计日志

© . This site is unofficial and not affiliated with GitHub, Inc.