GitHub整合

GitHub整合可讓您直接從GitHub存放庫在雲端基礎結構環境中管理Adobe Commerce。 此整合可管理GitHub中的內容,並在雲端基礎結構程式碼存放庫上與您的Adobe Commerce同步。 本質上,程式碼存放庫會成為GitHub存放庫的映象。

NOTE
Adobe強烈建議您在雲端基礎結構專案上為Adobe Commerce使用私人存放庫,以保護任何專屬資訊或開發工作,例如擴充功能和敏感設定。

此整合可讓您:

  • 建立分支時建立環境
  • 合併提取請求時重新部署環境
  • 刪除分支時刪除環境

您必須取得GitHub權杖和webhook才能繼續此程式。

先決條件

  • 雲端基礎結構專案上Adobe Commerce的管理員存取權
  • GitHub存放庫
  • GitHub個人存取權杖

產生GitHub代號

在GitHub開發人員設定中建立傳統個人存取權杖。 您必須是具有寫入GitHub存放庫存取權的群組的成員,才能​ 推送 ​至存放庫。 建立您的Token時包含下列範圍:

  • admin:repo_hook — 建立Web鉤點
  • repo — 與您的存放庫整合
  • read:org — 與您的組織存放庫整合

請參閱GitHub:建立

準備您的存放庫

從現有環境複製雲端基礎結構專案上的Adobe Commerce,並將專案分支移轉至新的空GitHub存放庫,保留相同的分支名稱。 關鍵​在於要保留相同的Git樹狀結構,這樣您就不會遺失雲端基礎結構專案中Adobe Commerce的任何現有環境或分支。

  1. 從終端機,在雲端基礎結構專案上登入您的Adobe Commerce。

    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上雲端基礎結構專案中的​_所有_​程式碼,其中包含所有分支,包括production分支。 此動作會立即發生且無法還原。 最佳實務是從Adobe Commerce在雲端基礎結構專案上複製所有分支,並在新增GitHub整合之前​推送到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
可選
在合併提取請求(預設為true)之後,指示雲端基礎結構上的Adobe Commerce進行部署
--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. 在​ Webhook ​窗格中,按一下​新增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。

  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
commerce-on-cloud-help-cloud-guide