Como administrador ou desenvolvedor do Code Stream, você pode integrar o Code Stream ao ciclo de vida do Git usando o gatilho Git. Quando você faz uma alteração de código no GitHub, GitLab ou Bitbucket Enterprise, o evento se comunica com o Code Stream por meio de um webhook e dispara um pipeline. O webhook funciona com versões empresariais locais do GitLab, do GitHub e Bitbucket quando o Cloud Assembly e a versão empresarial estão ambos acessíveis na mesma rede.

Ao adicionar o webhook para Git no Code Stream, ele também cria um webhook no repositório do GitHub, GitLab ou Bitbucket. Se você atualizar ou excluir o webhook posteriormente, essa ação também atualizará ou excluirá esse webhook no GitHub, GitLab ou Bitbucket.

Sua definição de webhook deve incluir um endpoint do Git na ramificação do repositório que será monitorado. Para criar o webhook, o Code Stream usa o endpoint do Git. Se o endpoint não existir, você poderá criá-lo ao adicionar o webhook. Este exemplo pressupõe que você tenha um endpoint predefinido do Git no GitHub.

Observação: "Como criar um webhook, seu endpoint do Git deve usar um token privado para autenticação, mas ele não pode usar uma senha."

Você pode criar vários webhooks para ramificações diferentes usando o mesmo endpoint Git e fornecendo diferentes valores para o nome da ramificação na página de configuração do webhook. Para criar outro webhook para outra ramificação no mesmo repositório Git, não é necessário clonar o endpoint Git várias vezes para várias ramificações. Em vez disso, forneça o nome da ramificação no webhook, o que permite reutilizar o endpoint Git. Se a ramificação no webhook Git for a mesma que a ramificação no endpoint, você não precisará fornecer o nome da ramificação na página do webhook Git.

Este exemplo mostra como usar o gatilho Git com um repositório GitHub, mas os pré-requisitos incluem as preparações necessárias se outro tipo de servidor Git for usado.

Pré-requisitos

  • Verifique se você é membro de um projeto no Code Stream. Se não for, peça a um administrador do Code Stream para adicioná-lo como membro de um projeto. Consulte Como adicionar um projeto no Code Stream.
  • Verifique a existência de um endpoint do Git na ramificação do GitHub que deseja monitorar. Consulte Como integrar o Code Stream ao Git.
  • Verifique se você tem direitos para criar um webhook no repositório Git.
  • Se estiver configurando um webhook no GitLab, altere as configurações de rede padrão no GitLab Enterprise para habilitar solicitações de saída e permitir a criação de webhooks locais.
    Observação: Essa alteração só é necessária para o GitLab Enterprise. Essas configurações não se aplicam ao GitHub ou Bitbucket.
    1. Faça login na instância do GitLab Enterprise como administrador.
    2. Acesse as configurações de rede usando uma URL, como http://{gitlab-server}/admin/application_settings/network.
    3. Expanda Solicitações de saída e clique em:
      • Permita solicitações para a rede local a partir de webhooks e serviços Web.
      • Permita solicitações para a rede local a partir de um gancho de sistema.
  • Para os pipelines que você deseja disparar, verifique se você definiu as propriedades de entrada para injetar parâmetros Git quando o pipeline for executado.

    Ao configurar seu pipeline para usar o gatilho para Git, você configura os parâmetros de entrada na guia Entrada.

    Para obter informações sobre os parâmetros de entrada, consulte Planejando uma compilação nativa de CICD no Code Stream antes de adicionar tarefas manualmente.

Procedimento

  1. No Code Stream, clique em Gatilhos > Git.
  2. Clique na guia Webhooks para Git, depois clique em Novo Webhook para Git.
    1. Selecione um projeto.
    2. Digite um nome significativo e uma descrição para o webhook.
    3. Selecione um endpoint Git configurado para a ramificação que você deseja monitorar.
      Quando você cria seu webhook, a definição do webhook inclui os detalhes atuais do endpoint.
      • Mais tarde, se você alterar o tipo Git, o tipo de servidor Git ou a URL do repositório Git no endpoint, o webhook não poderá mais disparar um pipeline, pois ele tentará acessar o repositório Git usando os detalhes do endpoint original. Você deverá excluir o webhook e criá-lo novamente com o endpoint.
      • Mais tarde, se você alterar o tipo de autenticação, o nome do usuário ou o token privado no endpoint, o webhook continuará a funcionar.
      • Se você estiver usando um repositório do BitBucket, a URL do repositório deverá estar em um dos seguintes formatos: https://api.bitbucket.org/{user}/{repo name} ou http(s)://{bitbucket-enterprise-server}/rest/api/1.0/users/{username}/repos/{repo name}.
      Observação: Se você tiver criado anteriormente um webhook usando um endpoint Git que usa uma senha para autenticação básica, deverá excluir e redefinir esse webhook com um endpoint Git que usa um token privado para autenticação.
      Consulte Como integrar o Code Stream ao Git.
    4. (Opcional) Insira a ramificação que você deseja que o webhook monitore.
      Se você deixar a ramificação não especificada, o webhook monitorará a ramificação que você configurou para o endpoint do Git.
    5. (Opcional) Gere um token secreto para o webhook.
      Se você usar um token secreto, o Code Stream gerará um token de string aleatório para o webhook. Depois, quando o webhook recebe os dados de evento do Git, ele os envia com o token secreto. O Code Stream usa as informações para determinar se as chamadas são provenientes da origem esperada, como a instância do GitHub, o repositório e a ramificação configurados. O token secreto fornece uma camada extra de segurança que é usada para verificar se os dados de evento do Git são provenientes da origem correta.
    6. (Opcional) Forneça inclusões de arquivo ou exclusões como condições para o gatilho.
      • Inclusões de arquivos. Se qualquer um dos arquivos em uma confirmação corresponder aos arquivos especificados nos caminhos de inclusão ou no regex, a confirmação vai disparar os pipelines. Quando um regex especificado, o Code Stream apenas dispara os pipelines quando os nomes de arquivo no conjunto de alterações correspondem à expressão fornecida. O filtro Regex é útil ao configurar um gatilho para vários pipelines em um único repositório.
      • Exclusões de arquivos. Quando todos os arquivos em uma confirmação correspondem aos arquivos especificados nos caminhos de exclusão ou no Regex, os pipelines não são disparados.
      • Priorizar exclusões. Quando ativada, a opção Priorizar Exclusão garante que os pipelines não sejam disparados, mesmo que qualquer um dos arquivos em uma confirmação corresponda aos arquivos especificados nos caminhos de exclusão ou no regex. A configuração padrão é desativada.
      Se as condições atenderem tanto às inclusões quanto às exclusões de arquivos, os pipelines não serão disparados.

      No exemplo a seguir, as inclusões e as exclusões de arquivo são condições para o gatilho.

      Inclusões e exclusões de arquivos, e seus respectivos valores, aparecem na guia Webhooks para Git no trigger para Git e podem ser simples ou regex.

      • Para inclusões de arquivo, uma confirmação com qualquer alteração em runtime/src/main/a.java ou qualquer arquivo Java disparará pipelines configurados na configuração de eventos.
      • Para exclusões de arquivos, uma confirmação com alterações somente em ambos os arquivos não disparará os pipelines configurados nas configurações de evento.
    7. Para o evento do Git, selecione uma solicitação Push ou Pull.
    8. Digite o Token de API.
      O token de API do VMware Cloud Services autentica você para conexões de API externas com o Code Stream. Para obter o token de API:
      1. Clique em Gerar Token.
      2. Insira o endereço de e-mail associado ao seu nome de usuário e senha e clique em Gerar.
        O token gerado será válido por seis meses. Ele também é conhecido como token de atualização.
        • Para manter o token como uma variável para uso futuro, clique em Criar Variável, insira um nome para a variável e clique em Salvar.
        • Para manter o token como um valor de texto para uso futuro, clique em Copiar e cole o token em um arquivo de texto para salvar localmente.
        Você pode optar por criar uma variável e armazenar o token em um arquivo de texto para uso futuro.
      3. Clique em Fechar.
    9. Selecione o pipeline para o webhook disparar.
      Se o pipeline incluir parâmetros de entrada personalizados adicionados, a lista Parâmetros de Entrada exibirá parâmetros e valores. É possível digitar valores para os parâmetros de entrada que são passados para o pipeline com o evento de gatilho. Também é possível deixar os valores em branco ou usar os valores padrão, se definidos.

      Para obter informações sobre a inserção automática de parâmetros de entrada para gatilhos do Git, consulte Pré-requisitos.

    10. Clique em Criar.
      O webhook aparece como um novo cartão.
  3. Clique no cartão de webhook.
    Quando o formulário de dados do webhook reaparecer, você verá um URL do webhook adicionado à parte superior do formulário. O Git webhook conecta-se ao repositório do GitHub por meio do URL do webhook.

    A URL do webhook Git, que você copia e usa no seu repositório Git, aparece na guia Webhooks para Git no gatilho para Git.

  4. Em uma nova janela do navegador, abra o repositório GitHub que se conecta por meio do webhook.
    1. Para ver o webhook adicionado por você no Code Stream, clique na guia Configurações e selecione Webhooks.
      No final da lista de webhooks, você verá o mesmo URL do webhook.

      No seu repositório GitHub, a lista de webhooks exibe a mesma URL de webhook do Git na parte inferior da lista.

    2. Para fazer uma alteração no código, clique na guia Código e selecione um arquivo na ramificação. Depois de editar o arquivo, confirme a alteração.
    3. Para verificar se o URL do webhook está funcionando, clique na guia Configurações e selecione Webhooks novamente.
      "Na parte inferior da lista de webhooks, uma marca de seleção verde aparece ao lado da URL do webhook." Quando o Webhook no GitHub for válido, uma marca de seleção verde será exibida.
  5. Volte para o Code Stream para visualizar a atividade no Git webhook. Clique em Gatilhos > Git > Atividade.
    Em Status de Execução, verifique se a execução do pipeline foi iniciada.

    Quando um usuário confirmar um arquivo, este ativará o gatilho para Git, e a guia Atividade exibirá o status do gatilho como INICIADO.

  6. Clique em Execuções e acompanhe seu pipeline à medida que ele é executado.
    Para observar a execução do pipeline, você pode pressionar Atualizar.

    Depois que o pipeline é disparado, seu status de execução é EM EXECUÇÃO.

Resultados

Parabéns! Você usou com sucesso o gatilho para Git.