[仅限PaaS]{class="badge informative" title="仅适用于云项目(Adobe管理的PaaS基础架构)和内部部署项目上的Adobe Commerce 。"}
GitHub集成
通过GitHub集成,您可以直接从GitHub存储库在云基础架构环境中管理Adobe Commerce。 该集成管理GitHub中已有的内容,并在云基础架构代码存储库上与Adobe Commerce同步。 本质上,代码存储库是GitHub存储库的镜像。
通过此集成,您可以:
- 创建分支时创建环境
- 合并拉取请求时重新部署环境
- 删除分支时删除环境
您必须获取GitHub令牌和webhook才能继续此过程。
先决条件
- 对云基础架构项目上Adobe Commerce的管理员访问权限
- GitHub存储库
- github个人访问令牌
生成GitHub令牌
在GitHub开发人员设置中创建经典个人访问令牌。 您必须是具有对GitHub存储库的写入权限的组的成员,这样您就可以 将 推送到存储库。 创建令牌时包括以下范围:
admin:repo_hook— 创建Web挂接repo— 与您的存储库集成read:org— 与您的组织存储库集成
请参阅GitHub:创建。
准备存储库
从现有环境克隆Adobe Commerce on cloud infrastructure项目,并将项目分支迁移到空的新的GitHub存储库,并保留相同的分支名称。 关键是要保留相同的Git树,以便您不会丢失云基础架构项目上的Adobe Commerce中的任何现有环境或分支。
-
从终端,登录到您的Adobe Commerce on cloud infrastructure项目。
code language-bash magento-cloud login -
列出您的项目并复制项目ID。
code language-bash magento-cloud project:list -
将项目克隆到本地环境。
code language-bash magento-cloud project:get <project-ID> -
将您的GitHub存储库添加为远程存储库。
code language-bash git remote add origin git@github.com:<user-name>/<repo-name>.git远程连接的默认名称可以是
origin或magento。 如果origin存在,则可以选择其他名称,也可以重命名或删除现有引用。 请参阅git-remote文档。 -
验证是否正确添加了GitHub远程设备。
code language-bash git remote -v预期响应:
code language-none origin git@github.com:<user-name>/<repo-name>.git (fetch) origin git@github.com:<user-name>/<repo-name>.git (push) -
将项目文件推送到新的GitHub存储库。 请记住保持所有分支名称相同。
code language-bash git push -u origin master如果您从新的GitHub存储库开始,则可能需要使用
-f选项,因为远程存储库与您的本地副本不匹配。 -
验证GitHub存储库是否包含所有项目文件。
启用GitHub集成
在开始之前,您的项目代码和环境必须位于GitHub存储库中。 启用集成后,GitHub存储库将成为代码源。 如果将代码更改推送到原始magento存储库,则在将代码更改推送到GitHub存储库时,该集成会覆盖该更改。
以下内容启用GitHub集成,并提供在创建webhook时使用的有效负载URL。
production分支。 此操作立即发生且无法撤消。 作为最佳实践,在添加GitHub集成之前**,请务必从Adobe Commerce在云基础架构项目中克隆所有分支并将其推送到GitHub存储库**。您可以选择使用magento-cloud integration:add逐步完成CLI提示,也可以使用以下选项生成集成命令:
--base-urlhttps://github.com/或自定义。 如果您的存储库使用公共Github托管,或者您的存储库不是在专用服务器上托管,请忽略此选项。 如果您的存储库URL类似于https://github.com/{account}/{repository-name},请忽略此选项。 这可能会导致Unable to connect to GitHub: repository not found等错误。--token--repositoryowner-or-organisation/repository--build-pull-requeststrue)后进行部署--fetch-branchestrue)--prune-branchestrue)还有许多选项,您可以使用帮助选项查看这些选项:
magento-cloud integration:add --help
启用GitHub集成:
-
启用集成。
code language-bash magento-cloud integration:add --type=github --project=<project-ID> --token=<your-GitHub-token> {--repository=USER/REPOSITORY | --repository=ORGANIZATION/REPOSITORY} [--build-pull-requests={true|false} --fetch-branches={true|false}示例1:为个人专用存储库启用GitHub集成:
code language-bash magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=myUserName/myrepo示例2:为组织存储库启用GitHub集成:
code language-bash magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=Magento/teamrepo -
出现提示时输入所需信息。
-
复制返回输出显示的有效负载URL。
code language-none Created integration <integration-ID> (type: github) Repository: myUserName/myrepo Build PRs: yes Fetch branches: yes Payload URL: https://us.magento.cloud/api/projects/<project-id>/integrations/wO8a0eoamxwcg/hook
在GitHub中添加webhook
要通过Cloud Git服务器传达事件(例如推送),您必须为GitHub存储库创建一个webhook:
-
在GitHub存储库中,单击 设置 选项卡。
-
在左侧导航栏中,单击Webhooks。
-
在 Webhooks 窗格中,单击添加webhook。
-
在 Webhooks/添加webhook 表单中,编辑以下字段:
- 负载URL:输入启用GitHub集成时返回的URL。
- 内容类型:从列表中选择application/json。
- 密码:输入验证密码。
- 您要触发此webhook的哪些事件?:选择向我发送所有内容。
- 选中 活动 复选框。
-
单击添加webhook。
测试集成
配置GitHub集成后,您可以使用magento-cloud CLI验证集成是否可正常工作:
magento-cloud integration:validate
或者,您也可以通过将简单的更改推送到GitHub存储库来进行测试。
-
创建测试文件。
code language-bash touch test.md -
提交更改并将其推送到GitHub存储库。
code language-bash git add . && git commit -m "Testing GitHub integration" && git push -
登录到Cloud Console并验证是否显示提交消息以及是否部署项目。
删除集成
您可以安全地从项目中删除GitHub集成,而不会影响代码。
要删除GitHub集成:
-
从终端,登录到您的Adobe Commerce on cloud infrastructure项目。
-
列出您的集成。 您需要GitHub集成ID才能完成下一步。
code language-bash magento-cloud integration:list -
删除集成。
code language-bash magento-cloud integration:delete <int-ID>
此外,您可以通过登录到GitHub帐户并删除存储库 设置 的 Webhooks 选项卡中的Web挂接来删除GitHub集成。