GitHub-Integration
Durch die GitHub-Integration können Sie Ihre Adobe Commerce in Cloud-Infrastrukturumgebungen direkt über Ihr GitHub-Repository verwalten. Die Integration verwaltet Inhalte, die sich bereits in GitHub befinden, und synchronisiert sie mit Ihrem Code-Repository für die Adobe Commerce in der Cloud-Infrastruktur. Im Wesentlichen wird das Code-Repository zu einem Spiegel des GitHub-Repositorys.
Diese Integration bietet folgende Möglichkeiten:
- Erstellen einer Umgebung beim Erstellen einer Verzweigung
- Umgebung beim Zusammenführen einer Pull-Anfrage erneut bereitstellen
- Löschen der Umgebung beim Löschen der Verzweigung
Sie müssen ein GitHub-Token und einen Webhook abrufen, um den Prozess fortzusetzen.
Voraussetzungen
- Administratorzugriff auf das Adobe Commerce on Cloud-Infrastrukturprojekt
- GitHub-Repository
- Persönliches GitHub-Zugriffstoken
Generieren eines GitHub-Tokens
Erstellen Sie in den GitHub-Entwicklereinstellungen ein klassisches persönliches Zugriffstoken. Sie müssen Mitglied einer Gruppe mit Schreibzugriff auf das GitHub-Repository sein, damit Sie in das Repository pushen können. Schließen Sie beim Erstellen Ihres Tokens die folgenden Bereiche ein:
admin:repo_hook
- Erstellen von Webhooksrepo
- Integration mit Ihrem Repositoryread:org
- Integration mit dem Repository Ihres Unternehmens
Siehe GitHub: Erstellen.
Repository vorbereiten
Klonen Sie Ihr Adobe Commerce in einem Cloud-Infrastrukturprojekt aus einer bestehenden Umgebung und migrieren Sie die Projektverzweigungen in ein neues, leeres GitHub-Repository, wobei dieselben Verzweigungsnamen beibehalten werden. Es ist wichtig eine identische Git-Struktur beizubehalten, damit Sie keine vorhandenen Umgebungen oder Verzweigungen in Ihrem Adobe Commerce on Cloud-Infrastrukturprojekt verlieren.
-
Melden Sie sich vom Terminal aus bei Ihrem Adobe Commerce on Cloud-Infrastrukturprojekt an.
code language-bash magento-cloud login
-
Listen Sie Ihre Projekte auf und kopieren Sie die Projekt-ID.
code language-bash magento-cloud project:list
-
Klonen Sie das Projekt in Ihrer lokalen Umgebung.
code language-bash magento-cloud project:get <project-ID>
-
Fügen Sie Ihr GitHub-Repository als Remote-Datenquelle hinzu.
code language-bash git remote add origin git@github.com:<user-name>/<repo-name>.git
Der Standardname für die Remoteverbindung kann
origin
odermagento
sein. Wennorigin
vorhanden ist, können Sie einen anderen Namen auswählen oder den vorhandenen Verweis umbenennen oder löschen. Siehe Git-Remote-Dokumentation. -
Stellen Sie sicher, dass Sie die GitHub-Fernbedienung korrekt hinzugefügt haben.
code language-bash git remote -v
Erwartete Antwort:
code language-none origin git@github.com:<user-name>/<repo-name>.git (fetch) origin git@github.com:<user-name>/<repo-name>.git (push)
-
Übertragen Sie die Projektdateien in das neue GitHub-Repository. Denken Sie daran, alle Verzweigungsnamen gleich zu halten.
code language-bash git push -u origin master
Wenn Sie mit einem neuen GitHub-Repository beginnen, müssen Sie möglicherweise die Option
-f
verwenden, da das Remote-Repository nicht mit Ihrer lokalen Kopie übereinstimmt. -
Stellen Sie sicher, dass das GitHub-Repository alle Ihre Projektdateien enthält.
Aktivieren der GitHub-Integration
Bevor Sie beginnen, müssen sich Ihr Projekt-Code und Ihre Umgebungen im GitHub-Repository befinden. Nach der Aktivierung der Integration wird das GitHub-Repository zur Code-Quelle. Wenn Sie Code-Änderungen an das ursprüngliche magento
-Repository pushen, wird es durch die Integration überschrieben, wenn Sie Code-Änderungen an Ihr GitHub-Repository pushen.
Im Folgenden wird die GitHub-Integration aktiviert und eine Payload-URL bereitgestellt, die beim Erstellen eines Webhooks verwendet werden kann.
production
-Verzweigung enthält. Diese Aktion erfolgt sofort und kann nicht rückgängig gemacht werden. Als Best Practice ist es wichtig, alle Ihre Verzweigungen aus Ihrem Adobe Commerce in einem Cloud-Infrastrukturprojekt zu klonen und in Ihr GitHub-Repository zu vor Hinzufügen der GitHub-Integration.Sie können die CLI-Eingabeaufforderungen mithilfe von magento-cloud integration:add
schrittweise durchlaufen oder den Integrationsbefehl mit den folgenden Optionen erstellen:
--base-url
https://github.com/
oder benutzerdefiniert sein kann. Lassen Sie diese Option weg, wenn Ihr Repository mit öffentlichem GitHub gehostet wird oder wenn Ihr Repository nicht auf privaten Servern gehostet wird. Lassen Sie diese Option weg, wenn Ihre Repository-URL https://github.com/{account}/{repository-name}
ähnelt. Dies kann zu Fehlern wie Unable to connect to GitHub: repository not found
führen.--token
--repository
owner-or-organisation/repository
--build-pull-requests
true
)--fetch-branches
true
)--prune-branches
true
)Es gibt viele weitere Optionen, die Sie mithilfe der Hilfeoption sehen können:
magento-cloud integration:add --help
So aktivieren Sie die GitHub-:
-
Aktivieren Sie die Integration.
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}
Beispiel 1: Aktivieren der GitHub-Integration für ein persönliches, privates Repository:
code language-bash magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=myUserName/myrepo
Beispiel 2: Aktivieren der GitHub-Integration für ein Organisations-Repository:
code language-bash magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=Magento/teamrepo
-
Geben Sie bei Aufforderung die erforderlichen Informationen ein.
-
Kopieren Sie die Payload-URL, die in der Rückgabeausgabe angezeigt wird.
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
Hinzufügen des Webhooks in GitHub
Um Ereignisse - z. B. eine Push-Benachrichtigung - mit Ihrem Cloud-Git-Server zu kommunizieren, müssen Sie einen Webhook für Ihr GitHub-Repository erstellen:
-
Klicken Sie in Ihrem GitHub-Repository auf die Registerkarte Einstellungen.
-
Klicken Sie in der linken Navigationsleiste auf Webhooks.
-
Klicken Sie Bereich Webhooks“ auf Webhook hinzufügen.
-
Bearbeiten Sie Formular Webhooks Webhook hinzufügen die folgenden Felder:
- Payload-URL: Geben Sie die URL ein, die zurückgegeben wird, als Sie die GitHub-Integration aktiviert haben.
- Content-Typ: Wählen Sie application/json aus der Liste aus.
- Geheime Daten: Geben Sie einen geheimen Verifizierungsschlüssel ein.
- Welche Ereignisse möchten Sie als Trigger für diesen Webhook verwenden?: Wählen Sie Senden Sie mir alles.
- Aktivieren Sie Kontrollkästchen Aktiv“.
-
Klicken Sie Webhook hinzufügen.
Testen der Integration
Nach dem Konfigurieren der GitHub-Integration können Sie mithilfe der magento-cloud
CLI überprüfen, ob die Integration funktionsfähig ist:
magento-cloud integration:validate
Sie können sie auch testen, indem Sie eine einfache Änderung an Ihr GitHub-Repository senden.
-
Erstellen Sie eine Testdatei.
code language-bash touch test.md
-
Übertragen Sie die Änderung in das GitHub-Repository und übertragen Sie sie.
code language-bash git add . && git commit -m "Testing GitHub integration" && git push
-
Melden Sie sich bei der Cloud Console an und stellen Sie sicher, dass Ihre Commit-Nachricht angezeigt wird und Ihr Projekt bereitgestellt wird.
Integration entfernen
Sie können die GitHub-Integration sicher aus Ihrem Projekt entfernen, ohne den Code zu beeinflussen.
Entfernen der GitHub-Integration:
-
Melden Sie sich vom Terminal aus bei Ihrem Adobe Commerce on Cloud-Infrastrukturprojekt an.
-
Auflisten der Integrationen. Sie benötigen die GitHub-Integrations-ID , um den nächsten Schritt abzuschließen.
code language-bash magento-cloud integration:list
-
Löschen Sie die Integration.
code language-bash magento-cloud integration:delete <int-ID>
Sie können die GitHub-Integration auch entfernen, indem Sie sich bei Ihrem GitHub-Konto anmelden und den Webhook auf der Registerkarte Webhooks des Repositorys ().