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.
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 Webrepo: integrazione con l'archivioread: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.
-
Dal terminale, accedi al tuo progetto di infrastruttura cloud Adobe Commerce on.
code language-bash magento-cloud login -
Elencare i progetti e copiare l’ID del progetto.
code language-bash magento-cloud project:list -
Clona il progetto nell’ambiente locale.
code language-bash magento-cloud project:get <project-ID> -
Aggiungi l’archivio GitHub come remoto.
code language-bash git remote add origin git@github.com:<user-name>/<repo-name>.gitIl nome predefinito per la connessione remota può essere
originomagento. Seoriginesiste, è possibile scegliere un nome diverso oppure rinominare o eliminare il riferimento esistente. Consulta la documentazione Git-Remote. -
Verifica di aver aggiunto correttamente il remoto GitHub.
code language-bash git remote -vRisposta prevista:
code language-none origin git@github.com:<user-name>/<repo-name>.git (fetch) origin git@github.com:<user-name>/<repo-name>.git (push) -
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 masterSe si sta iniziando con un nuovo archivio GitHub, potrebbe essere necessario utilizzare l'opzione
-f, perché l'archivio remoto non corrisponde alla copia locale. -
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.
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:
--base-urlhttps://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--repositoryowner-or-organisation/repository--build-pull-requeststrue per impostazione predefinita)--fetch-branchestrue per impostazione predefinita)--prune-branchestrue 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:
-
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/myrepoEsempio 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 -
Immetti le informazioni richieste quando richiesto.
-
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:
-
Nell'archivio GitHub, fai clic sulla scheda Impostazioni.
-
Nella barra di navigazione a sinistra, fai clic su Webhook.
-
Nel riquadro Webhook fare clic su Aggiungi webhook.
-
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.
-
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.
-
Creare un file di test.
code language-bash touch test.md -
Esegui il commit e invia la modifica all’archivio GitHub.
code language-bash git add . && git commit -m "Testing GitHub integration" && git push -
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:
-
Dal terminale, accedi al tuo progetto di infrastruttura cloud Adobe Commerce on.
-
Elencare le integrazioni. Per completare il passaggio successivo, è necessario l’ID integrazione GitHub.
code language-bash magento-cloud integration:list -
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.