GitHubとの統合

GitHubとの統合により、Adobe Commerce on cloud infrastructure環境をGitHub リポジトリから直接管理できます。 この統合により、既にGitHubにあるコンテンツが管理され、Adobe Commerce on cloud infrastructureのコードリポジトリと同期されます。 本質的には、コードリポジトリは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: Createを参照してください。

リポジトリの準備

既存の環境からAdobe Commerce on cloud infrastructure プロジェクトを複製し、同じブランチ名を保持しながら、プロジェクトのブランチを新しい空のGitHub リポジトリに移行します。 同一のGit ツリーを保持することは​ 重要 ​であるため、Adobe Commerce on cloud infrastructure プロジェクトの既存の環境やブランチが失われることはありません。

  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
    

    リモート接続の既定の名前はoriginまたはmagentoです。 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
次のコマンドは、production ブランチを含むすべてのブランチを含むGitHub リポジトリのコードで、Adobe Commerce on cloud infrastructure プロジェクトの​_all_ コードを上書きします。 この操作は瞬時におこなわれ、元に戻すことはできません。 ベストプラクティスとして、GitHub統合を追加する前に、Adobe Commerce on cloud infrastructure プロジェクトからすべてのブランチを複製し、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. 左側のナビゲーションバーで、Webhook​をクリックします。

  3. Webhook ペインで、「Webhookを追加」をクリックします。

  4. Webhook/Add 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 アカウントにログインし、リポジトリ 設定​の「Webhook」タブにあるweb フックを削除することで、GitHub統合を削除できます。

recommendation-more-help
commerce-on-cloud-help-cloud-guide