[Solo PaaS]{class="badge informative" title="Applicabile solo ai progetti Adobe Commerce on Cloud (infrastruttura PaaS gestita da Adobe) e ai progetti on-premise."}

Integrazione GitHub

L’integrazione GitHub consente di gestire Adobe Commerce negli ambienti dell’infrastruttura cloud direttamente dall’archivio GitHub. L’integrazione gestisce i contenuti già in GitHub e si sincronizza con il tuo Adobe Commerce nell’archivio del codice dell’infrastruttura cloud. In sostanza, l’archivio del codice diventa un mirror dell’archivio GitHub.

NOTE
Adobe consiglia vivamente di utilizzare un archivio privato per il progetto di infrastruttura cloud di Adobe Commerce per proteggere informazioni proprietarie o attività di sviluppo, come estensioni e configurazioni sensibili.

Questa integrazione consente di:

  • Creare un ambiente quando si crea un ramo
  • Ridistribuire l’ambiente quando si unisce una richiesta di pull
  • Elimina l’ambiente quando elimini il ramo

Per continuare il processo, è necessario ottenere un token GitHub e un webhook.

Prerequisiti

  • Accesso amministratore al progetto di infrastruttura cloud Adobe Commerce on
  • Archivio GitHub
  • Token di accesso personale GitHub

Generare un token GitHub

Crea un token di accesso personale classico nelle impostazioni per gli sviluppatori GitHub. Devi essere membro di un gruppo con accesso in scrittura all'archivio GitHub, in modo da poter inviare all'archivio. Includi i seguenti ambiti durante la creazione del token:

  • admin:repo_hook - Crea hook Web
  • repo: integrazione con l'archivio
  • read:org: integrazione con il repository aziendale

Vedere GitHub: Create.

Preparare l’archivio

Clona il progetto Adobe Commerce on cloud infrastructure da un ambiente esistente e migra i rami del progetto in un nuovo archivio GitHub vuoto, mantenendo gli stessi nomi di ramo. È fondamentale mantenere una struttura Git identica, in modo da non perdere ambienti o rami esistenti nel progetto Adobe Commerce su infrastruttura cloud.

  1. Dal terminale, accedi al tuo progetto di infrastruttura cloud Adobe Commerce on.

    code language-bash
    magento-cloud login
    
  2. Elencare i progetti e copiare l’ID del progetto.

    code language-bash
    magento-cloud project:list
    
  3. Clona il progetto nell’ambiente locale.

    code language-bash
    magento-cloud project:get <project-ID>
    
  4. Aggiungi l’archivio GitHub come remoto.

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

    Il nome predefinito per la connessione remota può essere origin o magento. Se origin esiste, è possibile scegliere un nome diverso oppure rinominare o eliminare il riferimento esistente. Consulta la documentazione Git-Remote.

  5. Verifica di aver aggiunto correttamente il remoto GitHub.

    code language-bash
    git remote -v
    

    Risposta prevista:

    code language-none
    origin git@github.com:<user-name>/<repo-name>.git (fetch)
    origin git@github.com:<user-name>/<repo-name>.git (push)
    
  6. Invia i file di progetto al nuovo archivio GitHub. Ricordati di mantenere invariati tutti i nomi dei rami.

    code language-bash
    git push -u origin master
    

    Se si sta iniziando con un nuovo archivio GitHub, potrebbe essere necessario utilizzare l'opzione -f, perché l'archivio remoto non corrisponde alla copia locale.

  7. Verifica che l’archivio GitHub contenga tutti i file di progetto.

Abilitare l’integrazione con GitHub

Prima di iniziare, il codice del progetto e gli ambienti devono trovarsi nell’archivio GitHub. Dopo aver abilitato l’integrazione, l’archivio GitHub diventa l’origine del codice. Se si inviano modifiche al codice all'archivio magento originale, queste vengono sovrascritte dall'integrazione quando si inviano modifiche al codice nell'archivio GitHub.

Di seguito viene abilitata l’integrazione GitHub e viene fornito un URL di payload da utilizzare durante la creazione di un webhook.

WARNING
Il comando seguente sovrascrive il codice all nel progetto di infrastruttura cloud di Adobe Commerce con il codice dell'archivio GitHub, che include tutti i rami, incluso il ramo production. Questa azione si verifica immediatamente e non può essere annullata. Come best practice, è importante clonare tutti i rami dal progetto Adobe Commerce on cloud infrastructure e inviarli all'archivio GitHub prima dell'aggiunta dell'integrazione GitHub.

È possibile scegliere di esaminare i prompt CLI utilizzando magento-cloud integration:add oppure creare il comando di integrazione con le opzioni seguenti:

Opzione
Obbligatorio
Descrizione
--base-url
URL di base dell'installazione del server, che può essere https://github.com/ o personalizzato. Ometti questa opzione se l’archivio è ospitato con Github pubblico o se l’archivio non è ospitato su server privati. Ometti questa opzione se l'URL dell'archivio è simile a https://github.com/{account}/{repository-name}. Questo può causare errori come Unable to connect to GitHub: repository not found.
--token
Token di accesso personale generato per GitHub
--repository
Nome repository: owner-or-organisation/repository
--build-pull-requests
Facoltativo
Indica ad Adobe Commerce su infrastruttura cloud di distribuire dopo l'unione di una richiesta di pull (true per impostazione predefinita)
--fetch-branches
Facoltativo
Fa sì che Adobe Commerce su infrastruttura cloud tenga traccia dei rami e distribuisca dopo l'aggiornamento di un ramo (true per impostazione predefinita)
--prune-branches
Facoltativo
Elimina rami inesistenti nel remoto (true per impostazione predefinita)

Sono disponibili molte altre opzioni che possono essere visualizzate tramite l’opzione di aiuto:

magento-cloud integration:add --help

Per abilitare l'integrazione GitHub:

  1. Abilita l’integrazione.

    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}
    

    Esempio 1: abilita l'integrazione GitHub per un archivio personale privato:

    code language-bash
    magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=myUserName/myrepo
    

    Esempio 2: abilitare l'integrazione GitHub per un repository dell'organizzazione:

    code language-bash
    magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=Magento/teamrepo
    
  2. Immetti le informazioni richieste quando richiesto.

  3. Copia l'URL payload visualizzato dall'output restituito.

    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
    

Aggiungere il webhook in GitHub

Per comunicare eventi, come un push, con il server Cloud Git, devi creare un webhook per l’archivio GitHub:

  1. Nell'archivio GitHub, fai clic sulla scheda Impostazioni.

  2. Nella barra di navigazione a sinistra, fai clic su Webhook.

  3. Nel riquadro Webhook fare clic su Aggiungi webhook.

  4. Nel modulo Webhook/Aggiungi webhook, modifica i campi seguenti:

    • URL payload: immetti l'URL restituito quando abiliti l'integrazione GitHub.
    • Tipo di contenuto: scegli application/json dall'elenco.
    • Segreto: immetti un segreto di verifica.
    • Quali eventi attivare questo webhook?: Seleziona Invia tutto.
    • Selezionare la casella di controllo Attivo.
  5. Fai clic su Aggiungi webhook.

Testare l’integrazione

Dopo aver configurato l'integrazione GitHub, è possibile verificare che l'integrazione sia operativa utilizzando CLI magento-cloud:

magento-cloud integration:validate

Oppure puoi testarlo inviando una semplice modifica all’archivio GitHub.

  1. Creare un file di test.

    code language-bash
    touch test.md
    
  2. Esegui il commit e invia la modifica all’archivio GitHub.

    code language-bash
    git add . && git commit -m "Testing GitHub integration" && git push
    
  3. Accedi a Cloud Console e verifica che il messaggio di commit sia visualizzato e che il progetto sia in fase di distribuzione.

Rimuovere l’integrazione

Puoi rimuovere in modo sicuro l’integrazione GitHub dal progetto senza influire sul codice.

Per rimuovere l'integrazione GitHub:

  1. Dal terminale, accedi al tuo progetto di infrastruttura cloud Adobe Commerce on.

  2. Elencare le integrazioni. Per completare il passaggio successivo, è necessario l’ID integrazione GitHub.

    code language-bash
    magento-cloud integration:list
    
  3. Elimina l’integrazione.

    code language-bash
    magento-cloud integration:delete <int-ID>
    

Inoltre, puoi rimuovere l'integrazione GitHub accedendo al tuo account GitHub e rimuovendo l'hook Web nella scheda Webhook dell'archivio Impostazioni.

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