Bitbucket-Integration
- Themen:
- Cloud
Erstellt für:
- Admin
- Entwickler
Sie können Ihr Bitbucket-Repository so konfigurieren, dass automatisch eine Umgebung erstellt und bereitgestellt wird, wenn Sie Code-Änderungen per Push übertragen. Diese Integration synchronisiert Ihr Bitbucket-Repository mit Ihrem Adobe Commerce in einem Cloud-Infrastrukturkonto.
Voraussetzungen
- Administratorzugriff auf das Adobe Commerce on Cloud-Infrastrukturprojekt
magento-cloud
CLI-Tool in Ihrer lokalen Umgebung- Ein Bitbucket-Konto
- Administratorzugriff auf das Bitbucket-Repository
- Ein SSH-Zugriffsschlüssel für das Bitbucket-Repository
Repository vorbereiten
Klonen Sie Ihr Adobe Commerce in einem Cloud-Infrastrukturprojekt aus einer bestehenden Umgebung und migrieren Sie die Projektverzweigungen in ein neues, leeres Bitbucket-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.
magento-cloud login
-
Listen Sie Ihre Projekte auf und kopieren Sie die Projekt-ID.
magento-cloud project:list
-
Klonen Sie das Projekt in Ihrer lokalen Umgebung.
magento-cloud project:get <project-ID>
-
Fügen Sie Ihr Bitbucket-Repository als Remote-Datenquelle hinzu.
git remote add origin git@bitbucket.org:<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 den Bitbucket-Remote-Zugriff korrekt hinzugefügt haben.
git remote -v
Erwartete Antwort:
origin git@bitbucket.org:<user-name>/<repo-name>.git (fetch) origin git@bitbucket.org:<user-name>/<repo-name>.git (push)
-
Übertragen Sie die Projektdateien in das neue Bitbucket-Repository. Denken Sie daran, alle Verzweigungsnamen gleich zu halten.
git push -u origin master
Wenn Sie mit einem neuen Bitbucket-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 Ihr Bitbucket-Repository alle Ihre Projektdateien enthält.
Erstellen eines OAuth-Verbrauchers
Die Bitbucket-Integration erfordert einen OAuth-Verbraucher. Sie benötigen die OAuth-key
und secret
von diesem Verbraucher, um den nächsten Abschnitt abzuschließen.
So erstellen Sie einen OAuth-Verbraucher in Bitbucket:
-
Melden Sie sich bei Ihrem Bitbucket-Konto an.
-
Klicken Sie auf Einstellungen > Zugriffsverwaltung > OAuth.
-
Klicken Sie Verbraucher hinzufügen und konfigurieren Sie ihn wie folgt:
WARNING
Eine gültige Callback-URL ist nicht erforderlich, aber Sie müssen einen Wert in dieses Feld eingeben, um die Integration erfolgreich abzuschließen. -
Klicken Sie Speichern.
-
Klicken Sie auf Verbraucher Name, um Ihre OAuth-
key
und -secret
anzuzeigen. -
Kopieren Sie Ihre OAuth-
key
und -secret
zum Konfigurieren der Integration.
Integration konfigurieren
-
Navigieren Sie vom Terminal zu Ihrem Adobe Commerce on Cloud-Infrastrukturprojekt.
-
Erstellen Sie eine temporäre Datei mit dem Namen
bitbucket.json
und fügen Sie Folgendes hinzu. Ersetzen Sie dabei die Variablen in den spitzen Klammern durch Ihre Werte:{ "type": "bitbucket", "repository": "<bitbucket-user-name/bitbucket-repo-name>", "app_credentials": { "key": "<oauth-consumer-key>", "secret": "<oauth-consumer-secret>" }, "prune_branches": true, "fetch_branches": true, "build_pull_requests": true, "resync_pull_requests": true }
TIP
Stellen Sie sicher, dass Sie den Namen Ihres Bitbucket-Repositorys und nicht die URL verwenden. Die Integration schlägt fehl, wenn eine URL verwendet wird. -
Fügen Sie die Integration mithilfe des
magento-cloud
CLI-Tools zu Ihrem Projekt hinzu.WARNING
Der folgende Befehl überschreibt all-Code in Ihrem Adobe Commerce in einem Cloud-Infrastrukturprojekt mit Code aus Ihrem Bitbucket-Repository. Dies umfasst alle Verzweigungen, einschließlich derproduction
. 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 Bitbucket-Repository zu pushen, die Bitbucket Integration hinzuzufügen.magento-cloud project:curl -p '<project-ID>' /integrations -i -X POST -d "$(< bitbucket.json)"
Dadurch wird eine lange HTTP-Antwort mit Kopfzeilen zurückgegeben. Bei einer erfolgreichen Integration wird der Status-Code 200 oder 201 zurückgegeben. Ein Status von 400 oder höher zeigt an, dass ein Fehler aufgetreten ist.
-
Löschen Sie die temporäre
bitbucket.json
. -
Überprüfen Sie die Projektintegration.
magento-cloud integrations -p <project-ID>
+----------+-----------+--------------------------------------------------------------------------------+ | ID | Type | Summary | +----------+-----------+--------------------------------------------------------------------------------+ | <int-id> | bitbucket | Repository: bitbucket_Account/magento-int | | | | Hook URL: | | | | https://magento-url.cloud/api/projects/<project-id>/integrations/<int-id>/hook | +----------+-----------+--------------------------------------------------------------------------------+
Notieren Sie sich die Hook-URL, um einen Webhook in BitBucket zu konfigurieren.
Webhook in BitBucket hinzufügen
Um Ereignisse - z. B. eine Push-Benachrichtigung - mit Ihrem Cloud Git-Server zu kommunizieren, ist ein Webhook für Ihr BitBucket-Repository erforderlich. Die Methode zum Einrichten einer auf dieser Seite beschriebenen Bitbucket-Integration erstellt bei korrekter Befolgung automatisch einen Webhook. Es ist wichtig, den Webhook zu überprüfen, um zu vermeiden, dass mehrere Integrationen erstellt werden.
-
Melden Sie sich bei Ihrem Bitbucket-Konto an.
-
Klicken Sie Repositorys und wählen Sie Ihr Projekt aus.
-
Klicken Sie Repository-Einstellungen > Workflow > Webhooks.
-
Überprüfen Sie den Webhook, bevor Sie fortfahren.
Wenn der Hook aktiv ist, überspringen Sie die verbleibenden Schritte und Sie die Integration. Der Hook sollte einen Namen ähnlich "Adobe Commerce on Cloud Infrastructure <project_id>" und ein Hook-URL-Format ähnlich
https://<zone>.magento.cloud/api/projects/<project_id>/integrations/<id>/hook
haben. -
Klicken Sie Webhook hinzufügen.
-
Bearbeiten in der Ansicht Neuen Webhook hinzufügen“ die folgenden Felder:
- Title: Adobe Commerce-Integration
- URL: Verwenden Sie die Hook-URL aus Ihrer
magento-cloud
-Integrationsliste - Trigger: Der Standardwert ist ein einfacher Repository-Push
-
Klicken Sie Speichern.
Testen der Integration
Nach dem Konfigurieren der Bitbucket-Integration können Sie mithilfe der magento-cloud
CLI überprüfen, ob die Integration funktionsfähig ist:
magento-cloud integration:validate
Sie können es auch testen, indem Sie eine einfache Änderung an Ihr Bitbucket-Repository senden.
-
Erstellen Sie eine Testdatei.
touch test.md
-
Übertragen Sie die Änderung in das Bitbucket-Repository und übertragen Sie sie.
git add . && git commit -m "Testing Bitbucket 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.
Erstellen einer Cloud-Verzweigung
Die Bitbucket-Integration kann keine neuen Umgebungen in Ihrem Adobe Commerce in einem Cloud-Infrastrukturprojekt aktivieren. Wenn Sie eine Umgebung mit Bitbucket erstellen, müssen Sie die Umgebung manuell aktivieren. Um diesen zusätzlichen Schritt zu vermeiden, empfiehlt es sich, Umgebungen mit dem magento-cloud
CLI-Tool oder dem Cloud Console zu erstellen.
So aktivieren Sie eine mit Bitbucket erstellte Verzweigung:
-
Verwenden Sie die
magento-cloud
CLI, um die Verzweigung per Push zu übertragen.magento-cloud environment:push from-bitbucket
Pushing from-bitbucket to the new environment from-bitbucket Activate from-bitbucket after pushing? [Y/n] y Parent environment [master]: integration --- (Validation and activation messages)
-
Stellen Sie sicher, dass die Umgebung aktiv ist.
magento-cloud environment:list
Your environments are: +---------------------+----------------+--------+ | ID | Name | Status | +---------------------+----------------+--------+ | master | Master | Active | | integration | integration | Active | | from-bitbucket * | from-bitbucket | Active | +---------------------+----------------+--------+ * - Indicates the current environment
Nachdem Sie eine Umgebung erstellt haben, können Sie die entsprechende Verzweigung mit regulären Git-Befehlen an Ihr Remote-Bitbucket-Repository pushen. Nachfolgende Änderungen an Ihrer Verzweigung in Bitbucket erstellen und stellen die Umgebung automatisch bereit.
Integration entfernen
Sie können die Bitbucket-Integration sicher aus Ihrem Projekt entfernen, ohne den Code zu beeinflussen.
So entfernen Sie die Bitbucket-Integration:
-
Melden Sie sich vom Terminal aus bei Ihrem Adobe Commerce on Cloud-Infrastrukturprojekt an.
-
Auflisten der Integrationen. Sie benötigen die Bitbucket-Integrations-ID , um den nächsten Schritt abzuschließen.
magento-cloud integration:list
-
Löschen Sie die Integration.
magento-cloud integration:delete <int-ID>
Sie können die Bitbucket-Integration auch entfernen, indem Sie sich bei Ihrem Bitbucket-Konto anmelden und die OAuth-Gewährung auf der Seite „Einstellungen des Kontos.
Bitbucket-Serverintegration
Um die Bitbucket-Server-Integration zu verwenden, benötigen Sie Folgendes:
- Bitbucket-Zugriffstoken - Generieren eines Tokens, das Project
read
Zugriff und Repository-admin
gewährt - Bitbucket-Server-URL - Fügen Sie die Basis-URL Ihrer Bitbucket-Instanz hinzu
Sie können die Cloud-CLI zwar verwenden, um die Schritte zur Integration des Bitbucket-Servers zu durchlaufen, der vollständige Befehl sieht jedoch ähnlich wie der folgende aus:
magento-cloud integration:add --type=bitbucket_server --base-url=<bitbucket-url> --username=<username> --token=<bitbucket-access-token> --project=<project-ID>
Verwenden Sie den Hilfe-Befehl für weitere Nutzungsanforderungen und Optionen: magento-cloud integration:add --help