Skip to main content

在 JetBrains IDE 中使用 GitHub Codespaces

可以使用 JetBrains 网关连接到 codespace,并在你喜欢的 JetBrains IDE 中工作。

Note

  • 将 GitHub Codespaces 与 JetBrains IDE 结合使用的功能目前为 公共预览版,可能随时更改。
  • 若要在 JetBrains IDE 中处理 Codespace,必须使用 2023.3.* 或 2024.1.* 版本的 JetBrains 网关。

关于 JetBrains IDE 中的 Codespaces

如果使用 JetBrains IDE 来处理代码,则可以利用在 codespace 中工作的优势。 可以使用 JetBrains 网关应用程序执行此操作。

安装 JetBrains 网关后,可以将 JetBrains 设置为 Codespaces 的默认编辑器。 如果这样做,那么每当从 GitHub 打开 codespace 时,JetBrains 网关将启动,以允许选择 JetBrains IDE 并连接到 codespace。

在 codespace 中工作时,可以在本地计算机上使用 JetBrains 瘦客户端应用程序。 这为所选的完整 JetBrains IDE 提供了图形界面,该 IDE 在托管 codespace 的远程虚拟机上运行。 即使本地安装了完整的 JetBrains IDE,也始终使用瘦客户端。 任何本地 JetBrains IDE 设置均由瘦客户端导入并使用。

注意:JetBrains 网关中只有现有的 codespace 可用。 可以在 GitHub 中或使用 GitHub CLI 创建 codespace。 有关详细信息,请参阅“为存储库创建 codespace”。

JetBrains 远程开发连接过程

在 JetBrains IDE 中使用 codespace 的基本过程如下所示。

  1. 在 JetBrains 网关应用程序中,选择一个活动或已停止的 codespace。
  2. 然后选择要使用的 JetBrains IDE。
  3. 然后将所选 JetBrains IDE 下载到托管 codespace 和源代码的远程虚拟机。
  4. 然后将 JetBrains 瘦客户端应用程序下载到本地计算机并启动。
  5. 客户端应用程序连接到完整的后端 IDE。
  6. 可以在客户端应用程序中以与在本地环境中相同的方式处理代码。

先决条件

若要在 JetBrains IDE 中的 codespace 中工作,需要:

  • 有效的 JetBrains 许可证
  • JetBrains 网关应用程序版本 2023.3.* 或 2024.1.*
  • 在至少有 4 个核心的虚拟机上运行的现有 codespace。 codespace 也必须运行 SSH 服务器。 有关详细信息,请参阅“运行 SSH 服务器的 Codespace”。

JetBrains 许可证

必须具有支持在 JetBrains Gateway 中选择的 IDE 的 JetBrains 许可证。

JetBrains 网关

可以从 JetBrains 工具箱应用程序安装和更新 JetBrains 网关。

  1. 下载并安装 JetBrains 工具箱

  2. 打开 JetBrains 工具箱。

  3. 在可用工具列表中找到“网关”。

    JetBrains Toolbox 的屏幕截图,其中“Gateway”位于应用程序列表底部。 每个应用程序旁边都有一个“安装”按钮。

  4. 在“网关”右侧,单击省略号 (...),然后单击“可用版本”。

  5. 在版本列表中,除了受支持的版本(请参阅“先决条件”)外,单击“安装”。

运行 SSH 服务器的 codespace

必须具有要连接的现有 codespace,且托管该 codespace 的虚拟机必须至少具有 4 个核心。 可以在 GitHub 上、Visual Studio Code 中或使用 GitHub CLI 创建代码空间。 有关详细信息,请参阅“为存储库创建 codespace”。

连接到的 codespace 必须运行 SSH 服务器。 默认开发容器映像包含一个可自动启动的 SSH 服务器。 如果未通过默认映像创建 codespace,可以通过将以下内容添加到 devcontainer.json 文件中的 features 对象来安装和启动 SSH 服务器。

"features": {
    // ...
    "ghcr.io/devcontainers/features/sshd:1": {
        "version": "latest"
    },
    // ...
}

有关 devcontainer.json 文件和默认容器映像的详细信息,请参阅“开发容器简介”。

注意:如需有关通过 SSH 连接到 codespace 的帮助,请参阅“GitHub Codespaces 客户端故障排除”。

设置 JetBrains 网关

首次对 GitHub Codespaces 使用 JetBrains 网关时,必须安装 Codespaces 插件。 还必须允许 JetBrains 网关使用 GitHub 帐户访问 GitHub。

  1. 打开 JetBrains Toolbox 应用程序。

  2. 在已安装的工具列表中,单击“网关”。

  3. 在“安装更多提供程序”下,单击 GitHub Codespaces 的“安装”链接 。

    “欢迎使用 JetBrains 网关”页的屏幕截图,其中“安装更多提供程序”下列出了“GitHub Codespaces”。

  4. 单击“连接到 Codespace”。

    网关的屏幕截图,其中包含“连接到 Codespaces”按钮。

  5. 首次连接时,系统会提示你选择是否允许 GitHub 收集匿名使用情况数据,以改善功能和用户体验。 单击“允许”或“拒绝”。

    如果需要,稍后可以在 GitHub Codespaces 插件的设置中更改你的选择,可以在 JetBrains 网关设置中访问该插件。

  6. 在“欢迎使用 JetBrains Gateway”对话框中,单击“使用 GitHub 登录”。

  7. 单击一次性代码旁边的图标进行复制。

    一次性登录代码的屏幕截图。 代码旁的复制图标以深橙色边框突出显示。

  8. 单击登录代码下方的登录链接。

  9. 如果当前未登录到 GitHub,则会显示登录页面。

    • 输入详细信息,然后单击“登录”。
    • 进行身份验证,例如输入双因素身份验证代码。
  10. 在“设备激活”页上,粘贴复制的代码,然后单击“继续”。

  11. 如果你属于组织,则会显示“单一登录到组织”页。 单击要授权 JetBrains 网关访问的组织旁边的“授权”,然后单击“继续” 。

  12. 在“为 JetBrains 授权 GitHub Codespaces”页上,单击“授权 GitHub”。

  13. 返回到 JetBrains 网关应用程序,并从当前活动或已停止的 codespace 列表中打开一个 codespace,请参阅以下过程的步骤 3。

在 JetBrains IDE 中打开一个 codespace

如果已将 JetBrains 网关设置为默认编辑器,则在从 GitHub 打开 codespace 时,网关将自动启动。

如果 JetBrains 网关不是默认编辑器,你仍然可以在 JetBrains 中打开 codespace,方法是转到 github.com/codespaces 的“你的 codespace”页,然后单击要打开的 codespace 右侧的省略号 (...)。 有关详细信息,请参阅“打开现有 codespace”。

或者,也可以打开 JetBrains 网关并选择现有 codespace,如以下过程所述。

  1. 打开 JetBrains 网关应用程序。

  2. 单击“连接到 Codespaces”。

    JetBrains Gateway 主页的屏幕截图,其中显示了“连接到 Codespaces”按钮。

  3. 在“你的 Codespace”列表中,单击要处理的 codespace。

    JetBrains Gateway 中的“你的 Codespace”列表的屏幕截图。

  4. 在“可用 IDE”列表中,单击要使用的 JetBrains IDE。 下次连接到 codespace 时,网关将记住你的选择。

    JetBrains Gateway 中的“选择 IDE”下拉列表的屏幕截图。 鼠标指针指向“IntelliJ IDEA”。

  5. 单击“连接” 。

    Note

    • 如果选择了 Rider 作为 JetBrains IDE,并且存储库包含多个解决方案文件,则将显示“设置解决方案路径”对话框,提示你选择要使用的解决方案。 从下拉菜单中选择一个解决方案文件,然后单击“确定”。

      如果存储库没有解决方案文件,则 Rider 将在基本项目目录视图中打开,并且功能受限。 例如,你不会获得特定于 .NET 的代码导航。 如果存储库中只有一个解决方案文件,则会自动使用该文件,不会显示提示。 有关详细信息,请参阅 JetBrains 文档中的“创建和打开项目和解决方案”。

    • 如果运行的是防火墙,则在首次连接到远程资源时,系统可能会提示允许 JetBrains Gateway 跨网络通信。

    首次连接到 codespace 时,后端 IDE 将下载到远程计算机。 这可能需要几分钟的时间。 下次连接到同一 codespace 时不需要执行此步骤,从而加快连接过程。

    然后启动后端 IDE。 同样,如果将来要重新连接到保持运行的后端 IDE,则不需要执行此步骤。

    然后启动客户端应用程序。

延伸阅读