简介
通过设置模板存储库,您可以在 GitHub Codespaces 中帮助人们开始使用您的框架、库或其他项目。用户将能够在基于云的开发环境中立即开始使用您的模板文件,而无需担心克隆您的存储库或安装工具或其他依赖项。通过一些配置,您将能够在代码空间中设置用户,其中重要的文件已打开以便编辑,并且应用程序已在 VS Code Web 编辑器中的预览浏览器选项卡中运行。
任何具有对您的模板存储库的读取访问权限的人都可以从 GitHub 上的存储库页面创建代码空间。您可以将任何现有存储库变成模板,并且您不必更改任何设置即可允许用户从您的模板存储库创建代码空间。有关将存储库变成模板的更多信息,请参阅“创建模板存储库”。
为了帮助用户快速找到您的模板并开始使用,您可以共享指向模板的代码空间创建页面的链接。例如,您可以在入门教程中提供此链接以开始使用您的框架。您可以使用“共享深度链接”选项并选择快速入门来构建一个链接,该链接将用户带到一个页面,他们可以在其中快速创建一个新代码空间或恢复最近的一个代码空间。有关更多信息,请参阅“促进快速创建和恢复代码空间”。
当有人从您的模板创建代码空间时,您的模板存储库的内容将克隆到他们的代码空间中。当用户准备就绪时,他们将能够将他们的工作发布到属于其个人帐户的 GitHub 上的新存储库中。有关更多信息,请参阅“从模板创建代码空间”。
组织可以为组织成员和外部协作者付费,让他们使用 GitHub Codespaces,费用由组织承担。这包括由组织拥有的模板存储库创建的 Codespaces。但是,如果用户将从模板创建的 Codespaces 发布到其个人帐户,则 Codespaces 的所有权和计费将转移给创建 Codespaces 的用户。有关更多信息,请参阅“关于 GitHub Codespaces 的计费”。
描述你的模板
如果你还没有,请为你的模板存储库创建一个自述文件,以描述你的模板的用途以及如何开始使用它。有关更多信息,请参阅“关于自述文件”。
你还可以通过导航到存储库页面并单击
添加启动文件
模板存储库通常包含带有样板代码的启动文件,以便用户可以快速开始使用库、框架或其他技术。
有关要包含的文件类型的指导,您可以查看 GitHub Codespaces 的官方 GitHub 模板中包含的启动文件,如下所示。
-
在 GitHub.com 的左上角,选择 ,然后单击 Codespaces 以转到 github.com/codespaces 上的“您的 Codespaces”页面。
-
要查看模板的完整列表,请在“探索快速入门模板”部分中,单击查看全部。
-
要查看包含模板文件的模板存储库,请单击模板的名称。
配置开发容器
您可以将开发容器配置文件添加到您的模板存储库,以便为使用 GitHub Codespaces 的模板用户自定义开发环境。您可以在 Visual Studio Code 中从预定义的配置设置列表中进行选择,或者通过编写自己的 devcontainer.json
文件创建自定义配置。如果您不添加配置文件,则将使用默认容器映像。有关更多信息,请参阅“开发容器简介”和“向您的存储库添加开发容器配置”。
注意:当用户从模板存储库中的使用此模板按钮创建 Codespaces 时,他们不会获得配置选择。Codespace 将基于 .devcontainer/devcontainer.json
中定义的默认配置或存储库根目录中的 .devcontainer.json
构建。
您应该使用工具和自定义配置您的开发容器,以便为用户提供最佳模板体验。例如,在您的 devcontainer.json
文件中
- 您可以使用
openFiles
属性定义一个文件列表,以便在从您的模板创建 Codespace 时在 VS Code Web 客户端中自动打开这些文件。 - 如果用户需要提供个人机密(例如 API 密钥)才能在您的模板中运行应用程序,您可以提示他们提供这些机密。有关更多信息,请参阅“为存储库指定推荐机密”。
- 如果您的模板包含 Web 应用程序的文件,您可以使应用程序在用户的 Codespace 中自动运行。您可以通过使用
postAttachCommand
属性来运行一个脚本,以便在 VS Code Web 客户端连接到 Codespace 时在本地服务器上启动应用程序,并通过将端口的onAutoForward
属性设置为openPreview
,以便在嵌入在 VS Code Web 客户端中的简单浏览器中显示在该端口上运行的应用程序。
以下 React 模板的配置设置将在用户的编辑器中打开 app.js
文件,运行 npm start
(在 package.json
文件中定义)以启动本地服务器,并将端口 3000
转发到代码空间中的预览浏览器选项卡。
{
"postAttachCommand": {
"server": "npm start"
},
"portsAttributes": {
"3000": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"customizations": {
"codespaces": {
"openFiles": ["src/App.js"]
}
}
}
有关详细信息,请参阅“为存储库中的代码空间自动打开文件”和开发容器网站上的开发容器规范。