[仅限PaaS]{class="badge informative" title="仅适用于云项目(Adobe管理的PaaS基础架构)和内部部署项目上的Adobe Commerce 。"}

GitHub集成

通过GitHub集成,您可以直接从GitHub存储库在云基础架构环境中管理Adobe Commerce。 该集成管理GitHub中已有的内容,并在云基础架构代码存储库上与Adobe Commerce同步。 本质上,代码存储库是GitHub存储库的镜像。

NOTE
Adobe强烈建议为Adobe Commerce on cloud infrastructure项目使用专用存储库来保护任何专有信息或开发工作,如扩展和敏感配置。

通过此集成,您可以:

  • 创建分支时创建环境
  • 合并拉取请求时重新部署环境
  • 删除分支时删除环境

您必须获取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中的任何现有环境或分支。

  1. 从终端,登录到您的Adobe Commerce on cloud infrastructure项目。

    code language-bash
    magento-cloud login
    
  2. 列出您的项目并复制项目ID。

    code language-bash
    magento-cloud project:list
    
  3. 将项目克隆到本地环境。

    code language-bash
    magento-cloud project:get <project-ID>
    
  4. 将您的GitHub存储库添加为远程存储库。

    code language-bash
    git remote add origin git@github.com:<user-name>/<repo-name>.git
    

    远程连接的默认名称可以是originmagento。 如果origin存在,则可以选择其他名称,也可以重命名或删除现有引用。 请参阅git-remote文档

  5. 验证是否正确添加了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)
    
  6. 将项目文件推送到新的GitHub存储库。 请记住保持所有分支名称相同。

    code language-bash
    git push -u origin master
    

    如果您从新的GitHub存储库开始,则可能需要使用-f选项,因为远程存储库与您的本地副本不匹配。

  7. 验证GitHub存储库是否包含所有项目文件。

启用GitHub集成

在开始之前,您的项目代码和环境必须位于GitHub存储库中。 启用集成后,GitHub存储库将成为代码源。 如果将代码更改推送到原始magento存储库,则在将代码更改推送到GitHub存储库时,该集成会覆盖该更改。

以下内容启用GitHub集成,并提供在创建webhook时使用的有效负载URL。

WARNING
以下命令使用GitHub存储库中的代码覆盖Adobe Commerce on cloud infrastructure项目中的​_所有_​代码,该存储库包括所有分支,包括production分支。 此操作立即发生且无法撤消。 作为最佳实践,在添加GitHub集成之前​**,请务必从Adobe Commerce在云基础架构项目中克隆所有分支并将其推送到GitHub存储库**。

您可以选择使用magento-cloud integration:add逐步完成CLI提示,也可以使用以下选项生成集成命令:

选项
必需?
描述
--base-url
服务器安装的基本URL,可能是https://github.com/或自定义。 如果您的存储库使用公共Github托管,或者您的存储库不是在专用服务器上托管,请忽略此选项。 如果您的存储库URL类似于https://github.com/{account}/{repository-name},请忽略此选项。 这可能会导致Unable to connect to GitHub: repository not found等错误。
--token
您为GitHub生成的个人访问令牌
--repository
存储库名称: owner-or-organisation/repository
--build-pull-requests
可选
指示云基础架构上的Adobe Commerce在您合并拉取请求(默认情况下为true)后进行部署
--fetch-branches
可选
导致云基础架构上的Adobe Commerce跟踪分支并在您更新分支后进行部署(默认情况下为true
--prune-branches
可选
删除远程上不存在的分支(默认为true

还有许多选项,您可以使用帮助选项查看这些选项:

magento-cloud integration:add --help

启用GitHub集成

  1. 启用集成。

    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
    
  2. 出现提示时输入所需信息。

  3. 复制返回输出显示的​有效负载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:

  1. 在GitHub存储库中,单击​ 设置 ​选项卡。

  2. 在左侧导航栏中,单击​Webhooks

  3. 在​ Webhooks ​窗格中,单击​添加webhook

  4. 在​ Webhooks/添加webhook ​表单中,编辑以下字段:

    • 负载URL:输入启用GitHub集成时返回的URL。
    • 内容类型:从列表中选择​application/json
    • 密码:输入验证密码。
    • 您要触发此webhook的哪些事件?:选择​向我发送所有内容
    • 选中​ 活动 ​复选框。
  5. 单击​添加webhook

测试集成

配置GitHub集成后,您可以使用magento-cloud CLI验证集成是否可正常工作:

magento-cloud integration:validate

或者,您也可以通过将简单的更改推送到GitHub存储库来进行测试。

  1. 创建测试文件。

    code language-bash
    touch test.md
    
  2. 提交更改并将其推送到GitHub存储库。

    code language-bash
    git add . && git commit -m "Testing GitHub integration" && git push
    
  3. 登录到Cloud Console并验证是否显示提交消息以及是否部署项目。

删除集成

您可以安全地从项目中删除GitHub集成,而不会影响代码。

要删除GitHub集成

  1. 从终端,登录到您的Adobe Commerce on cloud infrastructure项目。

  2. 列出您的集成。 您需要GitHub集成ID才能完成下一步。

    code language-bash
    magento-cloud integration:list
    
  3. 删除集成。

    code language-bash
    magento-cloud integration:delete <int-ID>
    

此外,您可以通过登录到GitHub帐户并删除存储库​ 设置 ​的​ Webhooks ​选项卡中的Web挂接来删除GitHub集成。

recommendation-more-help
7c2b03ac-000c-497d-aba3-2c6dc720a938