Integração com o GitHub
A integração do GitHub permite gerenciar o Adobe Commerce em ambientes de infraestrutura em nuvem diretamente do repositório do GitHub. A integração gerencia o conteúdo já existente no GitHub e é sincronizada com o repositório de código da infraestrutura em nuvem do Adobe Commerce. Em essência, o repositório de código se torna um espelho do repositório GitHub.
Essa integração permite:
- Criar um ambiente ao criar uma ramificação
- Reimplante o ambiente ao mesclar uma solicitação de pull
- Excluir o ambiente ao excluir a ramificação
Você deve obter um token do GitHub e um webhook para continuar o processo.
Pré-requisitos
- Acesso de administrador ao projeto de infraestrutura em nuvem do Adobe Commerce
- Repositório do GitHub
- Token de acesso pessoal do GitHub
Gerar um token do GitHub
Crie um token de acesso pessoal clássico nas configurações do desenvolvedor do GitHub. Você deve ser membro de um grupo com acesso de gravação ao repositório GitHub, para poder enviar para o repositório. Inclua os seguintes escopos ao criar o token:
admin:repo_hook—Criar ganchos da Webrepo—Integrar com seu repositórioread:org—Integre com seu repositório organizacional
Consulte GitHub: Create.
Preparar seu repositório
Clonar seu projeto Adobe Commerce na infraestrutura em nuvem de um ambiente existente e migrar as ramificações do projeto para um novo repositório GitHub vazio, preservando os mesmos nomes de ramificação. É crítico manter uma árvore Git idêntica, para que você não perca ambientes ou ramificações existentes no seu projeto do Adobe Commerce na infraestrutura em nuvem.
-
No terminal, faça logon no projeto Adobe Commerce na infraestrutura da nuvem.
code language-bash magento-cloud login -
Liste os projetos e copie a ID do projeto.
code language-bash magento-cloud project:list -
Clona o projeto em seu ambiente local.
code language-bash magento-cloud project:get <project-ID> -
Adicione seu repositório GitHub como remoto.
code language-bash git remote add origin git@github.com:<user-name>/<repo-name>.gitO nome padrão da conexão remota pode ser
originoumagento. Seoriginexistir, você pode escolher um nome diferente ou pode renomear ou excluir a referência existente. Consulte a documentação git-remote. -
Verifique se você adicionou o controle remoto do GitHub corretamente.
code language-bash git remote -vResposta esperada:
code language-none origin git@github.com:<user-name>/<repo-name>.git (fetch) origin git@github.com:<user-name>/<repo-name>.git (push) -
Envie os arquivos do projeto para o novo repositório do GitHub. Lembre-se de manter todos os nomes de ramificação iguais.
code language-bash git push -u origin masterSe você estiver começando com um novo repositório GitHub, talvez precise usar a opção
-f, pois o repositório remoto não corresponde à sua cópia local. -
Verifique se o repositório GitHub contém todos os arquivos do projeto.
Habilitar a integração do GitHub
Antes de começar, o código do projeto e os ambientes devem estar no repositório do GitHub. Depois de habilitar a integração, o repositório GitHub se torna a fonte de código. Se você enviar alterações de código para o repositório magento original, elas serão substituídas pela integração quando você enviar alterações de código para o repositório GitHub.
O código a seguir habilita a integração do GitHub e fornece um URL de carga útil para ser usado ao criar um webhook.
production. Essa ação acontece instantaneamente e não pode ser desfeita. Como prática recomendada, é importante clonar todas as suas ramificações do projeto Adobe Commerce na infraestrutura em nuvem e enviá-las para o repositório GitHub antes de adicionar a integração com o GitHub.Você pode optar por percorrer os prompts da CLI usando o magento-cloud integration:add ou pode criar o comando de integração com as seguintes opções:
--base-urlhttps://github.com/ ou um personalizado. Omita esta opção se seu repositório estiver hospedado com GitHub público ou se não estiver hospedado em servidores privados. Omita esta opção se a URL do repositório for semelhante a https://github.com/{account}/{repository-name}. Isso pode causar erros como Unable to connect to GitHub: repository not found.--token--repositoryowner-or-organisation/repository--build-pull-requeststrue por padrão)--fetch-branchestrue por padrão)--prune-branchestrue por padrão)Há muito mais opções e você pode vê-las usando a opção de ajuda:
magento-cloud integration:add --help
Para habilitar a integração do GitHub:
-
Habilite a integração.
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}Exemplo 1: habilitar a integração do GitHub para um repositório pessoal e privado:
code language-bash magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=myUserName/myrepoExemplo 2: habilitar a integração do GitHub para um repositório de organização:
code language-bash magento-cloud integration:add --type=github --project=ov58dlacU2e --base-url=https://github.com --token=<token> --repository=Magento/teamrepo -
Digite as informações necessárias quando solicitado.
-
Copie a URL de carga exibida pela saída de retorno.
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
Adicionar o webhook no GitHub
Para comunicar eventos (como push) com o servidor Git da nuvem, você deve criar um webhook para o repositório GitHub:
-
No repositório do GitHub, clique na guia Configurações.
-
Na barra de navegação esquerda, clique em Webhooks.
-
No painel Webhooks, clique em Adicionar webhook.
-
No formulário Webhooks/Adicionar webhook, edite os seguintes campos:
- URL de carga: insira a URL retornada quando você habilitou a integração com o GitHub.
- Tipo de conteúdo: escolha application/json na lista.
- Segredo: insira um segredo de verificação.
- Quais eventos você deseja acionar este webhook?: Selecione Enviar tudo para mim.
- Marque a caixa de seleção Ativo.
-
Clique em Adicionar webhook.
Testar a integração
Depois de configurar a integração do GitHub, você pode verificar se a integração está operacional usando a CLI do magento-cloud:
magento-cloud integration:validate
Ou você pode testá-lo enviando uma simples alteração ao seu repositório GitHub.
-
Criar um arquivo de teste.
code language-bash touch test.md -
Confirme e envie a alteração para seu repositório GitHub.
code language-bash git add . && git commit -m "Testing GitHub integration" && git push -
Faça logon no Cloud Console e verifique se a mensagem de confirmação é exibida e se o projeto está sendo implantado.
Remover a integração
Você pode remover com segurança a integração do GitHub do seu projeto sem afetar o código.
Para remover a integração do GitHub:
-
No terminal, faça logon no projeto Adobe Commerce na infraestrutura da nuvem.
-
Liste suas integrações. Você precisa da ID de integração do GitHub para concluir a próxima etapa.
code language-bash magento-cloud integration:list -
Exclua a integração.
code language-bash magento-cloud integration:delete <int-ID>
Além disso, é possível remover a integração do GitHub fazendo logon em sua conta GitHub e removendo o gancho da Web na guia Webhooks do repositório Configurações.