说明
- 目前,使用 JetBrains IDE 的 GitHub Codespaces 处于公开测试阶段,可能会发生变化。
- 要在 JetBrains IDE 中处理代码空间,必须使用 JetBrains Gateway 的 2023.3.* 或 2024.1.* 版本。
关于已转发的端口
端口转发让你可以访问在代码空间内运行的 TCP 端口。例如,如果你在代码空间的特定端口上运行 Web 应用程序,则可以转发该端口。这让你可以从本地计算机上的浏览器访问该应用程序,以便进行测试和调试。
当在代码空间内运行的应用程序将输出打印到包含 localhost URL 的终端(例如 https://127.0.0.1:PORT
或 http://127.0.0.1:PORT
)时,端口会自动转发。如果你在浏览器或 Visual Studio Code 中使用 GitHub Codespaces,则终端中的 URL 字符串会转换为一个链接,你可以单击该链接以在本地计算机上查看网页。默认情况下,GitHub Codespaces 使用 HTTP 转发端口。
你可以编辑存储库的开发容器配置以自动转发一个或多个端口。你还可以手动转发端口、标记已转发的端口、与组织成员共享已转发的端口、公开共享已转发的端口以及将已转发的端口添加到代码空间配置中。
注意:组织所有者可以限制公开或在组织内提供转发端口的能力。有关更多信息,请参阅“限制已转发端口的可见性”。
转发端口
你可以手动转发未自动转发的端口。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
在端口列表下方,单击添加端口。
-
键入端口号或地址,然后按 Enter。
使用 HTTPS 转发
默认情况下,GitHub Codespaces 使用 HTTP 转发端口,但你可以根据需要更新任何端口以使用 HTTPS。如果你将具有公开可见性的端口更新为使用 HTTPS,则端口的可见性将自动更改为私有。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
右键单击要更新的端口,然后将鼠标悬停在更改端口协议上。
-
选择此端口所需的协议。你选择的协议将在此端口上保留,直至代码空间的生命周期结束。
共享端口
注意:仅当你的组织使用 GitHub 团队或 GitHub Enterprise Cloud 时,你才能将端口设为组织私有。
如果你想与他人共享已转发的端口,你可以将端口设为组织私有或公开。在你将端口设为组织私有后,组织中任何拥有该端口 URL 的人都可以查看正在运行的应用程序。在你将端口设为公开后,任何知道该 URL 和端口号的人都可以查看正在运行的应用程序,而无需进行身份验证。
注意:你的端口可见性选项选择可能受到为你的组织配置的策略限制。有关更多信息,请参阅“限制已转发的端口的可见性”。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
右键单击你想要共享的端口,单击端口可见性,然后单击组织私有或公开。
-
在端口的本地地址右侧,单击复制图标。
-
将复制的 URL 发送给你想要与其共享端口的人。
使用命令行工具和 REST 客户端访问端口
当你转发端口时,你的应用程序将通过 URL https://CODESPACENAME-PORT.app.github.dev
提供。例如,https://monalisa-hot-potato-vrpqrxxrx7x2rxx-4000.app.github.dev
。如果你从 VS Code 桌面应用程序转发私有端口,你的应用程序还将在 localhost 端口(如 127.0.0.1:4000
)提供。
要使用 REST 客户端(如 Postman)或命令行工具(如 curl)访问你的应用程序,如果你使用的是 localhost 端口,或者如果你在远程域中访问的是公共端口,则无需进行身份验证。但是,要连接到远程域中的私有端口,你必须使用请求中的 GITHUB_TOKEN
访问令牌进行身份验证。
注意:当你启动一个 Codespace 时,GITHUB_TOKEN
会自动创建,并且在 Codespace 会话期间保持不变。如果你停止然后重新启动一个 Codespace,将生成一个新的 GITHUB_TOKEN
。
查找要连接的地址
-
在代码空间中打开终端。
-
单击端口选项卡。这会列出你已转发的所有端口。
-
右键单击要连接的端口,然后单击复制本地地址。
-
将复制的地址粘贴到某处以供以后使用。
查找 GITHUB_TOKEN
-
在代码空间的终端中,输入
echo $GITHUB_TOKEN
。令牌是一个以
ghu_
开头的字符串。 -
复制令牌。
重要提示:请勿与任何人共享此访问令牌。
使用 curl 访问已转发的端口
在本地计算机的终端中,输入
curl ADDRESS -H "X-Github-Token: TOKEN"
将ADDRESS
和TOKEN
替换为之前复制的值。
使用 Postman 访问已转发的端口
-
打开 Postman。
-
创建一个新的 GET 请求。
-
将之前复制的地址粘贴为请求 URL。
-
在标头选项卡中,创建一个新条目,其中键为“X-Github-Token”,值为之前复制的
GITHUB_TOKEN
。 -
单击发送。
自动转发端口
你可以将已转发的端口添加到存储库的 GitHub Codespaces 配置中,以便为从该存储库创建的所有代码空间自动转发该端口。更新配置后,必须重建任何先前创建的代码空间才能应用更改。有关 dev 容器配置文件的更多信息,请参阅“dev 容器简介”。
-
在代码空间中,打开要更新的 dev 容器配置文件。通常,此文件为
.devcontainer/devcontainer.json
。 -
添加
forwardPorts
属性。"forwardPorts": [NUMBER],
将
NUMBER
替换为你想要转发的端口号。这可以是端口号的逗号分隔列表。 -
保存文件。
标记端口
在浏览器或 VS Code 桌面应用程序中打开代码空间时,可以标记已转发的端口,以便在列表中更轻松地识别它。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
右键单击要标记的端口,然后单击设置端口标签。
-
为端口键入标签,然后按 Enter。
自动标记已转发的端口
可以标记端口并将更改写入存储库的开发容器配置文件。如果对使用 forwardPorts
属性自动转发的端口执行此操作,则该标签将自动应用于使用该配置文件从存储库创建的所有未来代码空间的该已转发端口。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
右键单击要将标签属性添加到代码空间配置的端口,然后单击设置标签并更新 devcontainer.json。
-
为端口键入标签,然后按 Enter。
-
如果存储库有多个开发容器配置文件,系统将提示选择要更新的文件。
开发容器配置文件已更新,其中包括
portsAttributes
属性中的新标签。例如// Use 'forwardPorts' to make a list of ports inside the container available locally. "forwardPorts": [3333, 4444], "portsAttributes": { "3333": { "label": "app-standard-preview" }, "4444": { "label": "app-pro-preview" } }
当在代码空间内运行的应用程序将输出打印到包含 localhost URL 的终端(例如 https://127.0.0.1:PORT
或 http://127.0.0.1:PORT
)时,端口会自动转发。如果你在浏览器或 Visual Studio Code 中使用 GitHub Codespaces,则终端中的 URL 字符串会转换为一个链接,你可以单击该链接以在本地计算机上查看网页。默认情况下,GitHub Codespaces 使用 HTTP 转发端口。
你可以编辑存储库的开发容器配置以自动转发一个或多个端口。你还可以手动转发端口、标记已转发的端口、与组织成员共享已转发的端口、公开共享已转发的端口以及将已转发的端口添加到代码空间配置中。
注意:组织所有者可以限制公开或在组织内提供转发端口的能力。有关更多信息,请参阅“限制已转发端口的可见性”。
转发端口
你可以手动转发未自动转发的端口。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
在端口列表下方,单击添加端口。
-
键入端口号或地址,然后按 Enter。
共享端口
注意:仅当你的组织使用 GitHub 团队或 GitHub Enterprise Cloud 时,你才能将端口设为组织私有。
如果你想与他人共享已转发的端口,你可以将端口设为组织私有或公开。在你将端口设为组织私有后,组织中任何拥有该端口 URL 的人都可以查看正在运行的应用程序。在你将端口设为公开后,任何知道该 URL 和端口号的人都可以查看正在运行的应用程序,而无需进行身份验证。
注意:你的端口可见性选项选择可能受到为你的组织配置的策略限制。有关更多信息,请参阅“限制已转发的端口的可见性”。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
右键单击要共享的端口,单击端口可见性,然后单击仅组织可见或公开。
-
在端口的本地地址右侧,单击复制图标。
-
将复制的 URL 发送给你想要与其共享端口的人。
使用命令行工具和 REST 客户端访问端口
当你转发端口时,你的应用程序将通过 URL https://CODESPACENAME-PORT.app.github.dev
提供。例如,https://monalisa-hot-potato-vrpqrxxrx7x2rxx-4000.app.github.dev
。如果你从 VS Code 桌面应用程序转发私有端口,你的应用程序还将在 localhost 端口(如 127.0.0.1:4000
)提供。
要使用 REST 客户端(如 Postman)或命令行工具(如 curl)访问你的应用程序,如果你使用的是 localhost 端口,或者如果你在远程域中访问的是公共端口,则无需进行身份验证。但是,要连接到远程域中的私有端口,你必须使用请求中的 GITHUB_TOKEN
访问令牌进行身份验证。
注意:当你启动一个 Codespace 时,GITHUB_TOKEN
会自动创建,并且在 Codespace 会话期间保持不变。如果你停止然后重新启动一个 Codespace,将生成一个新的 GITHUB_TOKEN
。
查找要连接的地址
-
在代码空间中打开终端。
-
单击端口选项卡。这会列出你已转发的所有端口。
-
右键单击要连接的端口,然后单击复制本地地址。
-
将复制的地址粘贴到某处以供以后使用。
查找 GITHUB_TOKEN
-
在代码空间的终端中,输入
echo $GITHUB_TOKEN
。令牌是一个以
ghu_
开头的字符串。 -
复制令牌。
重要提示:请勿与任何人共享此访问令牌。
使用 curl 访问已转发的端口
在本地计算机的终端中,输入
curl ADDRESS -H "X-Github-Token: TOKEN"
将ADDRESS
和TOKEN
替换为之前复制的值。
使用 Postman 访问已转发的端口
-
打开 Postman。
-
创建一个新的 GET 请求。
-
将之前复制的地址粘贴为请求 URL。
-
在标头选项卡中,创建一个新条目,其中键为“X-Github-Token”,值为之前复制的
GITHUB_TOKEN
。 -
单击发送。
自动转发端口
你可以将已转发的端口添加到存储库的 GitHub Codespaces 配置中,以便为从该存储库创建的所有代码空间自动转发该端口。更新配置后,必须重建任何先前创建的代码空间才能应用更改。有关 dev 容器配置文件的更多信息,请参阅“dev 容器简介”。
-
在代码空间中,打开要更新的 dev 容器配置文件。通常,此文件为
.devcontainer/devcontainer.json
。 -
添加
forwardPorts
属性。"forwardPorts": [NUMBER],
将
NUMBER
替换为你想要转发的端口号。这可以是端口号的逗号分隔列表。 -
保存文件。
标记端口
在浏览器或 VS Code 桌面应用程序中打开代码空间时,可以标记已转发的端口,以便在列表中更轻松地识别它。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
右键单击要标记的端口,然后单击设置端口标签。
-
为端口键入标签,然后按 Enter。
自动标记已转发的端口
可以标记端口并将更改写入存储库的开发容器配置文件。如果对使用 forwardPorts
属性自动转发的端口执行此操作,则该标签将自动应用于使用该配置文件从存储库创建的所有未来代码空间的该已转发端口。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
右键单击要将标签属性添加到代码空间配置的端口,然后单击设置标签并更新 devcontainer.json。
-
为端口键入标签,然后按 Enter。
-
如果存储库有多个开发容器配置文件,系统将提示选择要更新的文件。
开发容器配置文件已更新,其中包括
portsAttributes
属性中的新标签。例如// Use 'forwardPorts' to make a list of ports inside the container available locally. "forwardPorts": [3333, 4444], "portsAttributes": { "3333": { "label": "app-standard-preview" }, "4444": { "label": "app-pro-preview" } }
要了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。
要转发端口,请使用 gh codespace ports forward
子命令。将 codespace-port:local-port
替换为要连接的远程和本地端口。输入命令后,从显示的代码空间列表中进行选择。
gh codespace ports forward CODESPACE-PORT:LOCAL-PORT
有关此命令的更多信息,请参阅GitHub CLI 手册。
要查看已转发端口的详细信息,请输入 gh codespace ports
,然后选择一个代码空间。
共享端口
注意:仅当你的组织使用 GitHub 团队或 GitHub Enterprise Cloud 时,你才能将端口设为组织私有。
如果你想与他人共享已转发的端口,你可以将端口设为组织私有或公开。在你将端口设为组织私有后,组织中任何拥有该端口 URL 的人都可以查看正在运行的应用程序。在你将端口设为公开后,任何知道该 URL 和端口号的人都可以查看正在运行的应用程序,而无需进行身份验证。
注意:你的端口可见性选项选择可能受到为你的组织配置的策略限制。有关更多信息,请参阅“限制已转发的端口的可见性”。
要更改已转发端口的可见性,请使用 gh codespace ports visibility
子命令。有三种可见性设置
private
- 仅对你可见。这是转发端口时的默认设置。org
- 对拥有存储库的组织的成员可见。public
- 对知道 URL 和端口号的任何人可见。
将 codespace-port
替换为已转发端口号。将 setting
替换为 private
、org
或 public
。输入命令后,从显示的代码空间列表中进行选择。
gh codespace ports visibility CODESPACE-PORT:SETTINGS
可以使用一个命令设置多个端口的可见性。例如
gh codespace ports visibility 80:private 3000:public 3306:org
有关此命令的更多信息,请参阅GitHub CLI 手册。
使用命令行工具和 REST 客户端访问端口
当你转发端口时,你的应用程序将通过 URL https://CODESPACENAME-PORT.app.github.dev
提供。例如,https://monalisa-hot-potato-vrpqrxxrx7x2rxx-4000.app.github.dev
。如果你从 VS Code 桌面应用程序转发私有端口,你的应用程序还将在 localhost 端口(如 127.0.0.1:4000
)提供。
要使用 REST 客户端(如 Postman)或命令行工具(如 curl)访问你的应用程序,如果你使用的是 localhost 端口,或者如果你在远程域中访问的是公共端口,则无需进行身份验证。但是,要连接到远程域中的私有端口,你必须使用请求中的 GITHUB_TOKEN
访问令牌进行身份验证。
注意:当你启动一个 Codespace 时,GITHUB_TOKEN
会自动创建,并且在 Codespace 会话期间保持不变。如果你停止然后重新启动一个 Codespace,将生成一个新的 GITHUB_TOKEN
。
查找要连接的地址
要查找已转发端口的地址,请输入 gh codespace ports
。如果你有多个代码空间,请从显示的列表中选择适当的代码空间。
复制地址并将其粘贴到其他位置以供以后使用。
查找 GITHUB_TOKEN
-
为你的代码空间启动 SSH 会话。
gh codespace ssh
-
如果你有多个代码空间,请从显示的列表中选择合适的代码空间。
-
显示
GITHUB_TOKEN
。echo $GITHUB_TOKEN
令牌是一个以
ghu_
开头的字符串。 -
复制令牌。
重要提示:请勿与任何人共享此访问令牌。
-
退出 SSH 会话。
exit
使用 curl 访问已转发的端口
在本地计算机的终端中,输入
curl ADDRESS -H "X-Github-Token: TOKEN"
将ADDRESS
和TOKEN
替换为之前复制的值。
使用 Postman 访问已转发的端口
-
打开 Postman。
-
创建一个新的 GET 请求。
-
将之前复制的地址粘贴为请求 URL。
-
在标头选项卡中,创建一个新条目,其中键为“X-Github-Token”,值为之前复制的
GITHUB_TOKEN
。 -
单击发送。
自动转发端口
你可以将已转发的端口添加到存储库的 GitHub Codespaces 配置中,以便为从该存储库创建的所有代码空间自动转发该端口。更新配置后,必须重建任何先前创建的代码空间才能应用更改。有关 dev 容器配置文件的更多信息,请参阅“dev 容器简介”。
-
在代码空间中,打开要更新的 dev 容器配置文件。通常,此文件为
.devcontainer/devcontainer.json
。 -
添加
forwardPorts
属性。"forwardPorts": [NUMBER],
将
NUMBER
替换为你想要转发的端口号。这可以是端口号的逗号分隔列表。 -
保存文件。
标记端口
在浏览器或 VS Code 桌面应用程序中打开代码空间时,可以标记已转发的端口,以便在列表中更轻松地识别它。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
右键单击要标记的端口,然后单击设置端口标签。
-
为端口键入标签,然后按 Enter。
自动标记已转发的端口
可以标记端口并将更改写入存储库的开发容器配置文件。如果对使用 forwardPorts
属性自动转发的端口执行此操作,则该标签将自动应用于使用该配置文件从存储库创建的所有未来代码空间的该已转发端口。
-
在代码空间中打开终端。
-
单击端口选项卡。
-
右键单击要将标签属性添加到代码空间配置的端口,然后单击设置标签并更新 devcontainer.json。
-
为端口键入标签,然后按 Enter。
-
如果存储库有多个开发容器配置文件,系统将提示选择要更新的文件。
开发容器配置文件已更新,其中包括
portsAttributes
属性中的新标签。例如// Use 'forwardPorts' to make a list of ports inside the container available locally. "forwardPorts": [3333, 4444], "portsAttributes": { "3333": { "label": "app-standard-preview" }, "4444": { "label": "app-pro-preview" } }
在命令行上查看端口标签
当你列出代码空间的已转发端口时,你可以看到端口标签。为此,请使用 gh codespace ports
命令,然后选择一个代码空间。