[Nur PaaS]{class="badge informative" title="Gilt nur für Adobe Commerce in Cloud-Projekten (von Adobe verwaltete PaaS-Infrastruktur) und lokale Projekte."}

GitLab-Integration

Sie können ein GitLab-Repository so konfigurieren, dass automatisch eine Umgebung erstellt und bereitgestellt wird, wenn Sie Code-Änderungen per Push übertragen. Diese Integration synchronisiert Ihr GitLab-Repository mit Ihrem Adobe Commerce on Cloud Infrastructure-Konto.

NOTE
Adobe empfiehlt dringend die Verwendung eines privaten Repositorys für Ihr Adobe Commerce in einem Cloud-Infrastrukturprojekt, um proprietäre Informationen oder Entwicklungsarbeiten wie Erweiterungen und vertrauliche Konfigurationen zu schützen.

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 GitLab-Token und einen Webhook abrufen, um den Prozess fortzusetzen.

Voraussetzungen

  • Administratorzugriff auf das Adobe Commerce on Cloud-Infrastrukturprojekt
  • magento-cloud CLI-Tool in Ihrer lokalen Umgebung
  • Ein GitLab-Konto
  • Ein persönliches GitLab-Zugriffstoken mit Schreibzugriff auf das GitLab-Repository. Ausgewählte Bereiche müssen mindestens sein: api und read_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 GitLab-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.

  1. Melden Sie sich vom Terminal aus bei Ihrem Adobe Commerce on Cloud-Infrastrukturprojekt an.

    code language-bash
    magento-cloud login
    
  2. Listen Sie Ihre Projekte auf und kopieren Sie die Projekt-ID.

    code language-bash
    magento-cloud project:list
    
  3. Klonen Sie das Projekt in Ihrer lokalen Umgebung.

    code language-bash
    magento-cloud project:get <project-id>
    
  4. Fügen Sie Ihr GitLab-Repository als Remote hinzu (vorausgesetzt, GitLab wird in der zugehörigen SaaS-Version verwendet).

    code language-bash
    git remote add origin git@gitlab.com:<user-name>/<repo-name>.git
    

    Der Standardname für die Remoteverbindung kann origin oder magento sein. Wenn origin vorhanden ist, können Sie einen anderen Namen auswählen oder den vorhandenen Verweis umbenennen oder löschen. Siehe Git-Remote-Dokumentation.

  5. Stellen Sie sicher, dass Sie die GitLab-Fernbedienung korrekt hinzugefügt haben.

    code language-bash
    git remote -v
    

    Erwartete Antwort:

    code language-none
    origin git@gitlab.com:<user-name>/<repo-name>.git (fetch)
    origin git@gitlab.com:<user-name>/<repo-name>.git (push)
    
  6. Übertragen Sie die Projektdateien in das neue GitLab-Repository. Denken Sie daran, alle Verzweigungsnamen gleich zu halten.

    code language-bash
    git push -u origin master
    

    Wenn Sie mit einem neuen GitLab-Repository beginnen, müssen Sie möglicherweise die Option -f verwenden, da das Remote-Repository nicht mit Ihrer lokalen Kopie übereinstimmt.

  7. Stellen Sie sicher, dass das GitLab-Repository alle Ihre Projektdateien enthält.

Aktivieren der GitLab-Integration

Verwenden Sie den Befehl magento-cloud integration , um die GitLab-Integration zu aktivieren, und rufen Sie die Payload-URL für den GitLab-Webhook ab, um Aktualisierungen von GitLab an Ihr Adobe Commerce on Cloud Infrastructure-Projekt zu senden.

magento-cloud integration:add --type=gitlab --project=<project-ID> --token=<your-GitLab-token> [--base-url=<GitLab-url> --server-project=<GitLab-project> --build-merge-requests={true|false} --merge-requests-clone-parent-data={true|false} --fetch-branches={true|false} --prune-branches={true|false}]
Option
Beschreibung
<project-ID>
Ihre Projekt-ID für Adobe Commerce in der Cloud-Infrastruktur
<your-GitLab-token>
Das persönliche Zugriffstoken, das Sie für GitLab generiert haben
--base-url
GitLab-URL (https://gitlab.com/ wenn GitLab in der SaaS-Version verwendet wird)
--server-project
Projektname in GitLab (Teil nach der Basis-URL)
--build-merge-requests
Ein optionaler Parameter, der Adobe Commerce in der Cloud-Infrastruktur anweist, für jede Zusammenführungsanfrage eine neue Umgebung zu erstellen (standardmäßig true)
--merge-requests-clone-parent-data
Ein optionaler Parameter, der Adobe Commerce in der Cloud-Infrastruktur anweist, die Daten der übergeordneten Umgebung für Zusammenführungsanfragen zu klonen (standardmäßig true)
--fetch-branches
Ein optionaler Parameter, der bewirkt, dass Adobe Commerce in der Cloud-Infrastruktur alle Verzweigungen aus dem Remote abruft (standardmäßig als inaktive Umgebungen true)
--prune-branches
Ein optionaler Parameter, der Adobe Commerce in der Cloud-Infrastruktur anweist, Verzweigungen zu löschen, die nicht auf der Remote-Instanz vorhanden sind (true)
WARNING
Der Befehl magento-cloud integration überschreibt all-Code in Ihrem Adobe Commerce in einem Cloud-Infrastrukturprojekt mit dem Code aus Ihrem GitLab-Repository. Dies umfasst alle Verzweigungen, einschließlich der production. 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 on Cloud-Infrastrukturprojekt zu klonen und in Ihr GitLab-Repository zu pushen, bevor Sie die GitLab-Integration hinzufügen.

So aktivieren Sie die GitLab-Integration:

  1. Fügen Sie vom Terminal aus die GitLab-Integration zu Ihrem Adobe Commerce on Cloud-Infrastrukturprojekt hinzu:

    code language-bash
    magento-cloud integration:add --type gitlab --project=3txxjf32gtryos --token=qVUfeEn4ouze7A7JH --base-url=https://gitlab.com/ --server-project=my-agency/project-name --build-merge-requests=false --merge-requests-clone-parent-data=false --fetch-branches=true --prune-branches=true
    
  2. Geben Sie nach Aufforderung y ein, um die Integration hinzuzufügen.

    code language-none
    Warning: adding a 'gitlab' integration will automatically synchronize code from the external Git repository.
    This means it can overwrite all the code in your project.
    Are you sure you want to continue? [y/N] y
    
  3. Kopieren Sie die Hook-URL, die in der Rückgabeausgabe angezeigt wird.

    code language-none
    Hook URL: https://eu-3.magento.cloud/api/projects/3txxjf32gtryos/integrations/eolmpfizzg9lu/hook
    Created integration eolmpfizzg9lu (type: gitlab)
    +----------------------------------+---------------------------------------------------------------------------------------+
    | Property                         | Value                                                                                 |
    +----------------------------------+---------------------------------------------------------------------------------------+
    | id                               | <integration-id>                                                                      |
    | type                             | gitlab                                                                                |
    | token                            | ******                                                                                |
    | base_url                         | https://gitlab.com/                                                                   |
    | project                          | my-agency/project-name                                                                |
    | fetch_branches                   | true                                                                                  |
    | prune_branches                   | true                                                                                  |
    | build_merge_requests             | false                                                                                 |
    | merge_requests_clone_parent_data | false                                                                                 |
    | hook_url                         | https://eu-3.magento.cloud/api/projects/<project-id>/integrations/<integration-id>/hook |
    +----------------------------------+---------------------------------------------------------------------------------------+
    

Webhook in GitLab hinzufügen

Um Ereignisse - z. B. Push- oder Merge-Anfragen - mit Ihrem Cloud Git-Server zu kommunizieren, müssen Sie Webhook erstellen für Ihr GitLab-Repository erstellen

  1. Klicken Sie in Ihrem GitLab-Repository auf die Registerkarte Einstellungen.

  2. Klicken Sie in der linken Navigationsleiste auf Webhooks.

  3. Bearbeiten Sie im Webhooks-Formular die folgenden Felder:

    • URL: Geben Sie den Hook URL ein, der zurückgegeben wurde, als Sie die GitLab-Integration aktiviert haben.
    • Geheimer Token: Geben Sie bei Bedarf einen Verifizierungsschlüssel ein.
    • Trigger: Überprüfen Sie Merge request events und/oder Push events je nach Bedarf.
    • SSL-Überprüfung aktivieren: Sie müssen diese Option auswählen.
  4. Klicken Sie Webhook hinzufügen.

Testen der Integration

Nach der Konfiguration der GitLab-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 GitLab-Repository senden.

  1. Erstellen Sie eine Testdatei.

    code language-bash
    touch test.md
    
  2. Übertragen Sie die Änderung in das GitLab-Repository und übertragen Sie sie.

    code language-bash
    git add . && git commit -m "Testing GitLab integration" && git push
    
  3. 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

Verwenden Sie den magento-cloud CLI-environment:push, um eine neue Umgebung zu erstellen und zu aktivieren. Siehe Erstellen einer Cloud-Verzweigung.

Integration entfernen

Verwenden Sie den magento-cloud CLI-integration:delete, um die Integration zu entfernen. Siehe Entfernen der Integration.

recommendation-more-help
7c2b03ac-000c-497d-aba3-2c6dc720a938