GitHubとの統合
GitHubとの統合により、Adobe Commerce on cloud infrastructure環境をGitHub リポジトリから直接管理できます。 この統合により、既にGitHubにあるコンテンツが管理され、Adobe Commerce on cloud infrastructureのコードリポジトリと同期されます。 本質的には、コードリポジトリはGitHub リポジトリのミラーになります。
この統合により、次のことが可能になります。
- ブランチの作成時に環境を作成する
- プルリクエストをマージするときに環境を再デプロイする
- ブランチを削除するときに環境を削除する
プロセスを続行するには、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 プロジェクトの既存の環境やブランチが失われることはありません。
-
ターミナルから、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 on cloud infrastructure プロジェクトの_all_ コードを上書きします。 この操作は瞬時におこなわれ、元に戻すことはできません。 ベストプラクティスとして、GitHub統合を追加する前に、Adobe Commerce on cloud infrastructure プロジェクトからすべてのブランチを複製し、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 リポジトリで、「設定」タブをクリックします。
-
左側のナビゲーションバーで、Webhookをクリックします。
-
Webhook ペインで、「Webhookを追加」をクリックします。
-
Webhook/Add 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 アカウントにログインし、リポジトリ 設定の「Webhook」タブにあるweb フックを削除することで、GitHub統合を削除できます。