为主题集成 Shopify GitHub

注意事项:
有关 Shopify Github app和Hydrogen storefront一起使用的的信息,请参阅 Oxygen documentation for the Shopify GitHub app

Shopify GitHub 集成可让您将 GitHub 账户或组织与 Shopify 登录连接起来。这种连接可以帮助您对网店主题代码进行修改和跟踪。它还能帮助您与其他开发人员协作,实时分享进度。

功能

通过Shopify GitHub集成,您可以实现以下功能:

  • 从任何与您的GitHub账户相关联的组织或仓库中自动提取和推送主题代码
  • 从版本库连接一个或多个分支,轻松开发和测试新主题功能或活动
  • 根据提交到分支的内容更新主题,并跟踪在Shopify后台中的编辑,包括代码编辑器和主题编辑器
  • 将分支连接到未发布或已发布的主题

如何工作

每当连接的分支更新时,Shopify GitHub集成都会更新您在Shopify后台中的主题。它还会将通过 Shopify 后台所做的更改提交到分支,以确保分支和后台中的主题始终匹配。

注意事项
每当连接的主题发生变化时,GitHub 都会更新文件。这是无法禁用的。如果您想将 Shopify 可以访问的代码与其他代码分开,请考虑使用多个版本库或子树。有关详细信息,请参阅 Shopify 主题的版本控制最佳实践。

Shopify 提交

通过 Shopify后台编辑主题时,Shopify 会自动将任何更改提交到您的版本库。当任何所有者、员工或合作者进行修改时,都会创建一个提交。更改保存后,会作为提交添加到连接的分支。

您可以在 Shopify 后台的以下区域编辑主题:

  • 主题编辑器。当您使用主题编辑器自定义主题时,这些自定义设置会存储在设置文件中,这些文件是主题代码的一部分。
  • 代码编辑器。
  • 在线商店中安装的主题应用程序。

连接到 GitHub

只有连接为主题的分支中的代码才对商店中的其他用户可见。分支连接为主题后,任何拥有主题权限的用户都可以断开连接。

您的 Shopify 登录只能连接一个 GitHub 账户。将 Shopify 登录连接到 GitHub 账户后,Shopify 登录就可以连接 Shopify GitHub 应用程序可以访问的版本库和分支。

如果多个用户需要管理与一个仓库的连接,则每个用户都需要为自己的账户授权 Shopify GitHub 应用程序。

要断开 GitHub 账户或组织与 Shopify 商店的连接,可以通过 GitHub 卸载 Shopify GitHub 应用程序。

提示
如果您没有为您的组织安装应用程序的权限,那么您可以发送请求,请您的管理员批准安装,或代表您的组织进行安装。在管理员完成安装之前,您不能连接任何库。

组织访问

如果授予 Shopify GitHub 应用程序访问 GitHub 组织内仓库的权限,那么任何拥有该组织内 GitHub 账户的用户,只要拥有 “管理主题 “权限或 “主题 “权限,就可以在可用仓库列表中查看该应用程序可以访问的任何仓库。不过,这些用户只能连接有写入权限的分支,而且分支必须与所需的版本库结构相匹配。

如果您想阻止用户查看某些版本库,那么您应该只授予 Shopify 的 GitHub 应用程序访问您想连接到 Shopify 商店的版本库的权限。如果您只授予特定版本库的访问权限,而您又创建了一个新版本库,并希望与 Shopify 一起使用,那么您需要通过 GitHub 授予应用程序访问版本库的权限。

将 GitHub 账户更改为 GitHub 组织

如果您在安装 Shopify GitHub 应用程序时将 GitHub 用户更改为 GitHub 组织,则需要卸载并重新安装该应用程序,以便 Shopify 可以连接到新的仓库。

GitHub 权限

Shopify GitHub 应用程序需要以下权限才能访问 GitHub 账户或组织中的某些数据:

只读访问deployments, metadata
读写权限administration, code, pull requests, secrets, workflows

注意事项
访问部署、加密和工作流程是支持使用Hydrogen.构建自定义商店页面的必要条件。出于安全考虑,Shopify 建议按仓库授予权限,而不是为账户或组织中的所有仓库授予权限。

冲突和错误处理

如果用户正在主题编辑器中编辑一个打开的文件,而 GitHub 或代码编辑器中正在编辑同一个文件,那么用户在保存时会收到覆盖新更改的警告。

代码编辑器中目前没有冲突警告。代码编辑器中的文件版本会覆盖 GitHub 中的文件版本。

如果在 Shopify 外部提交或推送时发生冲突,开发者有机会在 GitHub 解决,或强制推送更改以覆盖 Shopify 中的文件。

在有限的情况下,如果在主题编辑器或代码编辑器中保存文件,同时向 GitHub 分支推送变更,可能会发生冲突。在这种情况下,来自 Shopify 的提交可能会被视为过时并被 GitHub 拒绝。

如果怀疑推送或拉取更改时发生了错误,可以点击主题卡上最后保存时间戳旁边的查看日志,查看最近几次版本控制事件的日志。

如果你认为主题与分支已经过时,那么你可以进入主题,选择操作 > 重置为上次提交,手动拉取分支的最新版本。

限制

  • 从 GitHub 到 Shopify 的分支连接和提交总容量最大为 50 MB,每个文件最大为 5 MB。
  • 使用 Shopify GitHub 集成进行推送和拉取的次数受标准 GitHub 应用程序速率限制的控制。

入门

要了解如何将您的账户或组织连接到 GitHub 并将分支连接为主题,请参阅《Shopify GitHub 集成入门》。

仓库结构

您只能连接符合默认 Shopify 主题文件夹结构的分支。该结构代表未构建的主题,或已完成必要文件转换的主题。

.
├── assets
├── config
├── layout
├── locales
├── sections
├── snippets
└── templates
└── customers

提示
版本库中与此结构不匹配的文件夹将被忽略。

版本库中的 .github 文件夹会被忽略。因此,使用此方法仍可使用任务自动化和持续集成工具,如 Lighthouse CI。

如果您想将 Shopify GitHub 集成到使用构建管道的主题中,可以将源代码和生成的代码分隔到两个独立的仓库中,或者将生成的代码存储为子树或子模块,然后将其连接到 Shopify 主题。您还可以使用这些方法防止 Shopify 更改遵循默认文件夹结构的源代码。

使用这些模型时,您需要将 Shopify 对生成代码所做的更改回填到源代码中。要了解有关这些版本控制方法的更多信息,参阅版本控制最佳实践

分支管理策略

在 Shopify 中管理连接到 GitHub 仓库的主题时,请考虑以下几点:

  • 断开连接后,无法重新连接主题的分支。如果重新连接一个分支,它就会被添加为一个新主题。
  • 如果一个未发布的主题连接到了一个分支,然后又发布了,那么它就会保持与分支的连接。


要了解分支和主题之间的关系,以及如何优化工作流程以有效使用分支,请参考我们的版本控制最佳实践。

原文链接:https://shopify.dev/docs/themes/tools/github

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注