译者 | 明知山
策划 | 丁晓昀
GitHub Copilot Extensions 允许开发者使用自然语言在 IDE 中查询文档、生成代码、检索数据以及在外部服务上执行操作,现已正式普遍可用。除了使用来自 Docker、MongoDB、Sentry 等公司的公共扩展外,开发者还可以创建自己的扩展实现与内部库或 API 发生交互。
GitHub Marketplace 已经提供了数十种扩展,涵盖了广泛的开发相关服务。例如,你可以使用 Stack Overflow 扩展在不离开编辑器的情况下直接提问编程相关问题;而 GitBook 扩展则允许你查询有关 GitBook 文档的问题。
除了提供文档访问外,Copilot 扩展还可以让开发者直接在 IDE 中与服务发生交互。例如,Docker 扩展可帮助生成 Docker 相关文件并分析漏洞;LambdaTest 扩展可用于管理测试工作流,并简化测试执行、自动化和洞察生成;Mermaid Chart 扩展可以根据你当前 IDE 中的 GitHub Actions、SQL 或其他文件生成各种图表。
如前所述,开发者还可以创建自己的扩展来访问私有数据或内部服务。为了方便开发者创建扩展,GitHub 发布了多个示例代码库,演示如何构建一个 基本的 “Hello World” 扩展、如何从扩展的测试用户那里收集反馈,等等。
构建 Copilot 扩展有两种方式。一种是定义技能集,Copilot 负责处理所有与扩展的 AI 交互,而扩展只需提供几个可调用端点的描述,用于处理用户请求。目前,一个扩展最多可配置五个不同的技能。
另一种你可以使用自己的 AI 智能体,在这种情况下,你需要将用户上下文中的某些信息传给智能体,例如用户当前文件、选中文本和代码库的详细信息。智能体接收包含用户消息及其当前环境引用的服务器发送事件(SSE)。实际的上下文信息会因托管扩展的客户端而异。例如,Visual Studio 和 Visual Studio Code 会传递当前选中内容或整个文件内容,而 GitHub.com 则不会,但会提供用户当前访问的页面 URL。
为了方便扩展开发者管理身份验证,GitHub 最近增加了对 OpenID Connect (OIDC) 的支持。开发者无需在每个请求中验证 GitHub 令牌的有效性,而是可以使用预交换的令牌。
GitHub Copilot 扩展可以在多种客户端中使用,包括 Visual Studio 和 Visual Studio Code、GitHub.com 和 GitHub 移动应用,以及 JetBrains 的 IDE。不过,它们目前不支持 Xcode 或 GitHub Codespaces,也不支持 vim 或 emacs。
查看英文原文:
https://www.infoq.com/news/2025/02/github-copilot-extensions/
声明:本文由 InfoQ 翻译,未经许可禁止转载。