Integrar repositórios do GitHub ao Azure Pipelines

Concluído

A integração de repositórios do GitHub ao Azure Pipelines combina os recursos colaborativos do GitHub com os robustos recursos de CI/CD do Azure Pipelines. Essa integração permite que as equipes usem o GitHub para controle do código-fonte, aproveitando o Azure Pipelines para builds, testes e implantações automatizados.

Planejando sua integração

O GitHub e o Azure Pipelines são serviços separados com modelos independentes de gerenciamento de usuário e permissão. Considere estes aspectos principais ao planejar sua integração:

Convenções de nomenclatura

Estabeleça padrões de nomenclatura consistentes entre os repositórios do GitHub e o Azure Pipelines para melhorar a organização e a clareza:

Organização do Azure DevOps: crie uma organização do Azure DevOps com o mesmo nome da sua organização do GitHub. Por exemplo:

  • Organização do GitHub: contoso
  • Organização do Azure DevOps: https://dev.azure.com/contoso

Nomenclatura de projeto: crie projetos do Azure DevOps que correspondam aos nomes do repositório GitHub. Por exemplo:

  • Repositório GitHub: contoso/webapp
  • Projeto do Azure DevOps: https://dev.azure.com/contoso/webapp

Nomenclatura de pipeline: use nomes descritivos que fazem referência à organização do GitHub e ao repositório, como contoso.webapp.ci ou contoso.webapp.deploy.

Embora esse alinhamento não seja obrigatório, ele ajuda as equipes a entender a relação entre repositórios e seus pipelines associados.

Gerenciamento de usuários

Os usuários do GitHub não têm acesso automático ao Azure Pipelines e o Azure Pipelines não reconhece identidades do GitHub por padrão. Essa separação significa que o Azure Pipelines não pode enviar automaticamente notificações aos usuários do GitHub sobre eventos de build ou implantação.

Para habilitar as notificações de usuário adequadas:

  1. Adicionar usuários do GitHub à sua organização do Azure DevOps
  2. Configurar suas permissões para corresponder aos níveis de acesso do repositório GitHub
  3. Configurar regras de notificação para informar os usuários sobre eventos de pipeline

Essa abordagem garante que os membros da equipe recebam notificações apropriadas sobre builds, implantações e outras atividades de pipeline.

Métodos de autenticação

O Azure Pipelines precisa de acesso aos repositórios do GitHub para disparar builds e buscar código. Escolha entre estes métodos de autenticação:

Autenticação do aplicativo GitHub (recomendado):

  • Usa a identidade do Azure Pipelines em vez de contas pessoais
  • Dá suporte a verificações do GitHub para exibir resultados de build, teste e cobertura
  • Mais seguro e não depende de contas de usuário individuais

Autenticação OAuth:

  • Adequado para contas pessoais do GitHub
  • As atualizações de status do GitHub aparecem em sua identidade pessoal
  • Fácil de configurar para desenvolvedores individuais

PAT (Token de Acesso Pessoal):

  • Oferece controle de permissão granular
  • Usa sua identidade pessoal do GitHub
  • Requer manutenção regular devido à expiração e à possível revogação

Passos de implementação

Configurando a autenticação do Aplicativo GitHub:

  1. Instalar o Aplicativo GitHub do Azure Pipelines em sua organização do GitHub
  2. Conceder acesso a todos os repositórios ou específicos (requer direitos de administrador de repositório ou proprietário da organização)
  3. Novos pipelines automaticamente usam esse método de autenticação

Configurando a autenticação OAuth:

  1. Durante a criação do pipeline, selecione "Escolher uma conexão diferente"
  2. Selecione "Autorizar" para entrar no GitHub com o OAuth
  3. A conexão OAuth é salva para reutilização em pipelines adicionais

Usando tokens de acesso pessoal:

  1. Gere um PAT nas configurações do GitHub com estas permissões: repo, , admin:repo_hook, read:useruser:email
  2. Criar uma conexão de serviço do GitHub nas configurações do projeto do Azure DevOps
  3. Ao criar pipelines, referencie a conexão de serviço

Configuração do pipeline

Ao criar seu pipeline:

  1. Selecione o repositório GitHub de destino
  2. Escolha um arquivo YAML no repositório (o repositório que contém o arquivo YAML torna-se o repositório "self")
  3. Configurar repositórios adicionais, se necessário

Importante

Quando várias organizações do Azure DevOps acessam o mesmo repositório GitHub, somente o primeiro pipeline pode usar gatilhos automáticos. Pipelines adicionais exigem gatilhos manuais ou agendados.