Conectar o Azure Boards ao GitHub (nuvem)

Azure DevOps Services

Use os repositórios do GitHub.com para seu desenvolvimento de software e seu projeto do Azure Boards para planejar e acompanhar seu trabalho. Conecte seu projeto e repositório para que seus commits e pull requests do GitHub sejam vinculados aos seus itens de trabalho no Azure Boards.

Observação

O Azure Boards e o Azure DevOps Services dão suporte à integração com GitHub.com e repositórios do GitHub Enterprise Server. Se você quiser se conectar de um Azure DevOps Server local, confira Conectar o Servidor do Azure DevOps ao GitHub Enterprise Server.

Pré-requisitos

  • Você deve ter um projeto do Azure Boards ou do Azure DevOps. Se você não tiver um projeto ainda, crie um.
  • Você deve ser membro do grupo Administradores de Projeto. Se você criou o projeto, tem permissões.
  • Você deve ser um administrador ou proprietário do repositório GitHub ao qual se conectará. Você pode se conectar a vários repositórios do GitHub desde que seja administrador desses repositórios.

Opções de autenticação

As opções de autenticação a seguir têm suporte com base na plataforma GitHub à qual você deseja se conectar.

GitHub.com

GitHub Enterprise Server

Observação

Se você optar por conectar o Github ao PAT, configure o SSO (logon único) para o PAT em sua conta do GitHub. Isso é necessário para obter uma lista de repositórios de uma organização com a autenticação de SSO do SAML (Security Assertion Markup Language) configurada.

Conecte o Azure Boards a um repositório do GitHub.

  1. Entre em seu projeto do Azure DevOps.

  2. Selecione Configurações do projeto>Conexões do GitHub.

    Captura de tela de Configurações do Projeto abertas>Conexões do GitHub.

  3. Se for a primeira vez que faz uma conexão com o projeto, escolha Conectar sua conta do GitHub para usar suas credenciais de conta do GitHub.

    Captura de tela da primeira conexão com as credenciais do GitHub.

    Caso contrário, escolha Nova conexão e selecione o método de autenticação na caixa de diálogo Nova Conexão.

    Ao se conectar usando sua conta do GitHub, use suas credenciais de conta do GitHub para se autenticar. Para usar o PAT, consulte Adicionar uma conexão do GitHub usando PAT. Se estiver se conectando a um GitHub Enterprise Server, confira Registrar o Azure DevOps no GitHub como um aplicativo OAuth.

Adicionar uma conexão do GitHub com as credenciais do GitHub

Você pode conectar até 500 repositórios GitHub a um projeto do Azure Boards.

  1. Se for a primeira vez que se conectar ao GitHub do Azure Boards, você será solicitado a entrar usando suas credenciais do GitHub. Escolha uma conta da qual você seja administrador do repositório.

  2. Escolha a conta ou organização do GitHub que você deseja conectar. Somente as organizações que você possui ou é administrador estão listadas.

    Se todos os repositórios de uma organização já estiverem conectados ao Azure Boards, você verá a seguinte mensagem.

    Captura de tela da mensagem em que não existem mais repositórios para se conectar.

  3. Insira suas credenciais do GitHub. Se você tiver a autenticação de dois fatores habilitada, insira o código de autenticação que o GitHub enviou e escolha Verificar. Caso contrário, o sistema reconhece automaticamente sua organização do GitHub, pois sua conta do GitHub está associada à sua conta do Azure DevOps Services.

Escolher os repositórios

Depois de uma nova autenticação, você pode selecionar os repositórios que deseja conectar.

  1. A caixa de diálogo Adicionar Repositórios do GitHub é exibida automaticamente e seleciona todos os repositórios GitHub.com para os quais você é administrador da organização selecionada. Desmarque todos os repositórios que você não deseja que participem da integração.

    Captura de tela mostrando os repositórios do GitHub.

    Dica

    Por esse motivo, recomendamos que você conecte apenas um repositório GitHub a projetos definidos em uma única organização do Azure DevOps. Conectar o mesmo repositório GitHub a projetos definidos em duas ou mais organizações do Azure DevOps, poderá levar a uma vinculação de menção inesperada AB#. Para obter mais informações, consulte Solução de problemas de integração do GitHub e Azure Boards.

    Se todos os repositórios já estiverem conectados à organização atual ou a outra organização, a mensagem a seguir será exibida.

    Captura de tela da mensagem em que não existem mais repositórios para se conectar.

  2. Quando terminar, selecione Salvar.

Confirmar a conexão

  1. Examine a página do GitHub exibida e escolha Aprovar, Instalar e autorizar.

    Captura de tela mostrando confirmação de repositórios do GitHub.

  2. Forneça sua senha do GitHub para confirmar.

  3. Quando terminar, você deverá ver a nova conexão com os repositórios selecionados listados.

Captura de tela da lista dos repositórios conectados.

Para alterar a configuração ou gerenciar o aplicativo Azure Boards para GitHub, confira Alterar o acesso do repositório ao Azure Boards.

Adicionar uma conexão do GitHub usando PAT

Recomendamos que você use suas credenciais de conta do GitHub para se conectar ao repositório GitHub. No entanto, se você precisar usar um PAT, faça isso seguindo esses procedimentos.

Dica

Ao criar seu PAT do GitHub, inclua estes escopos: repo, read:user, user:email, admin:repo_hook.

  1. Escolha Token de acesso pessoal.

    Captura de tela da caixa de diálogo Nova conexão do GitHub, escolhendo Token de Acesso Pessoal.

    Para criar um PAT do GitHub, acesse Configurações de Desenvolvedor do GitHub > tokens de acesso pessoal.

  2. Insira o PAT e escolha Conectar.

    Captura de tela mostrando a PAT inserida.

  3. Escolha os repositórios que você deseja conectar ao projeto seguindo os procedimentos descritos anteriormente neste artigo em Escolher os repositórios.

  4. Se for a primeira vez que se conectar a uma conta do GitHub ou a uma organização do Azure Boards, você também instalará o aplicativo Azure Boards para GitHub. Confirme a conexão anteriormente neste artigo.

Registrar o Azure DevOps no GitHub como um aplicativo OAuth

Se você planeja usar o OAuth para conectar o Azure DevOps com o GitHub Enterprise Server, primeiro precisa registrar o aplicativo como um aplicativo OAuth. Para obter mais informações, consulte Criar um Aplicativo OAuth.

Registrar o Azure DevOps Services

  1. Entre no portal da Web para o servidor GitHub Enterprise.

    Captura de tela mostrando início de sessão no servidor GitHub Enterprise.

  2. Abra Configurações>Configurações do desenvolvedor>Aplicativos OAuth>Novo aplicativo OAuth.

    Captura de tela mostrando a sequência do novo aplicativo OAuth.

  3. Digite as informações de registro.

    Para a de URL da página inicial, especifique o URL da Organização de sua organização.
    Para a URL de retorno de chamada de autorização, use o padrão a seguir para construir a URL.

    {Azure DevOps Services Organization URL}/_admin/oauth2/callback

    Por exemplo:

    https://dev.azure.com/fabrikam/_admin/oauth2/callback

    Captura de tela mostrando o aplicativo para se registrar.

  4. Selecione Registrar aplicativo.

  5. O ID do Cliente e Segredo do Cliente para seu aplicativo OAuth registrado.

    Captura de tela do ID do cliente e do Segredo do cliente para o aplicativo OAuth registrado.

Registrar sua configuração do OAuth no Azure DevOps Services

  1. Entre no portal da Web para o Azure DevOps Services.

  2. Adicione a configuração do GitHub Enterprise Oauth à sua organização.

  3. Em Configurações da organização, selecione Configurações do Oauth>Adicionar configuração Oauth.

    Captura de tela de Abrir Configurações da Organização aberta, configurações do OAuth.

  4. Insira as informações, selecione Criar.

    caixa de diálogo de Configuração do OAuth.

Conectar o Azure DevOps Services ao GitHub Enterprise Server

Importante

Para conectar o Azure DevOps Services ao GitHub Enterprise Server, o GitHub Enterprise Server deve estar suficientemente acessível pela Internet. Verifique se o DNS do Azure pode resolver o nome do GitHub Enterprise Server e se o firewall permite o acesso de endereços IP do Data Center do Azure. Para determinar o intervalo de endereços IP, confira Intervalos de IP do Datacenter do Microsoft Azure. Uma mensagem de erro comum encontrada quando há problemas de conectividade é:

O nome remoto não pôde ser resolvido: 'github-enterprise-server.contoso.com'

Se você encontrar esse erro, verifique se o servidor está acessível. Para obter mais informações, confira Perguntas Frequentes sobre o DNS do Azure.

  1. Selecione Configurações do projeto>Conexões GitHub>GitHub Enterprise Server para uma conexão pela primeira vez.

    Primeira conexão, escolha GitHub Enterprise Server.

    Ou, na caixa de diálogo Nova Conexão do GitHub, selecione GitHub Enterprise Server.

    Captura de tela da caixa de diálogo Nova conexão do GitHub, GitHub Enterprise Server selecionado.

  2. Selecione o método de autenticação.

    Captura de tela mostrando a caixa de diálogo do método de autenticação.

    Conectar-se ao OAuth

    Escolha a configuração que você configurou na Etapa 4 de Registrar sua configuração do OAuth no Azure DevOps Servicese escolha Conectar.

    Captura de tela da nova conexão do GitHub Enterprise, caixa de diálogo de conexão OAuth.

    Conectar-se por meio de um Token de Acesso Pessoal

    Insira a URL do servidor GitHub Enterprise e as credenciais de token de acesso pessoal reconhecidas por esse servidor. Escolha Conectar.

    Captura de tela de Nova conexão do GitHub Enterprise, caixa de diálogo Conexão de token de acesso pessoal.

    Conectar com nome de usuário e senha

    Insira a URL do servidor GitHub Enterprise e as credenciais de conta de administrador reconhecidas por esse servidor e selecione Conectar.

    Captura da tela Nova conexão do GitHub Enterprise, caixa de diálogo de conexão de Nome de Usuário.

  3. A caixa de diálogo lista todos os repositórios para os quais você tem direitos de administração do GitHub. Você pode alternar entre Meu e Todos para determinar se outras pessoas aparecem e, em seguida, marcar as que deseja adicionar. Selecione Salvar ao terminar.

    Captura de tela dos repositórios listados.

    Dica

    Você só pode fazer uma conexão com repositórios definidos em uma organização do GitHub. Para conectar um projeto a outros repositórios definidos em outra organização do GitHub, você deve adicionar outra conexão.

  4. Se for a primeira vez que se conectar a uma conta ou organização do GitHub do Azure Boards, você também instalará o aplicativo Azure Boards para GitHub. Confirme a conexão anteriormente neste artigo.

Resolver problemas de conexão

A integração do Azure Boards-GitHub depende de vários protocolos de autenticação para dar suporte à conexão. Alterações no escopo de permissão ou credenciais de autenticação de um usuário podem causar revogação dos repositórios do GitHub conectados ao Azure Boards.

Para obter uma visão geral da integração compatível com o aplicativo Azure Boards para GitHub, confira Integração do Azure Boards-GitHub.

Opções de autenticação com suporte

As opções de autenticação a seguir têm suporte com base na plataforma GitHub à qual você deseja se conectar.

Plataforma

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

  • GitHub.com conta de usuário
  • PAT (token de acesso pessoal)
  • OAuth
  • PAT
  • Nome de usuário mais senha

Azure DevOps Server 2020

Não aplicável

  • PAT
  • Nome de usuário mais senha

Azure DevOps Server 2019

Não aplicável

  • OAuth
  • PAT
  • Nome de usuário mais senha

Observação

Com o aplicativo Azure Boards para GitHub, o Azure Boards e o Azure DevOps Services dão suporte à integração com repositórios do GitHub.com e do GitHub Enterprise Server. O Azure DevOps Servers 2019 e versões posteriores dão suporte apenas à integração com repositórios do GitHub Enterprise Server. Não há suporte para a integração com outros repositórios Git.

Conceder acesso à organização Azure Boards

Se a integração entre o Azure Boards e o GitHub não estiver funcionando conforme o esperado, verifique se você concedeu acesso à organização.

  1. No portal da Web do GitHub, abra Configurações no menu de perfil.
    Captura de tela do perfil aberto, escolha Configurações.

  2. Selecione Aplicativos em Integrações>Aplicativos OAuth Autorizados>Azure Boards.

  3. Em Acesso à organização, resolva possíveis problemas que possam aparecer. Selecione Conceder para conceder acesso a todas as organizações que aparecem com uma solicitação de Acesso pendente.

    Captura de tela do acesso da Organização com organizações sem acesso.

Resolver problemas de acesso

Quando a conexão do Azure Boards com o GitHub não tem mais acesso, ela mostra um status de alerta na interface do usuário com um X vermelho. Passar o mouse sobre o alerta e indica que as credenciais não são mais válidas. Para corrigir o problema, remova a conexão e recrie uma nova conexão.

Captura de tela da conexão com falha.

Para resolver esse problema, considere os itens a seguir:

  • Se a conexão estiver usando o OAuth:

    • O aplicativo Azure Boards teve seu acesso negado para um dos repositórios.

    • O GitHub pode estar indisponível/inacessível. Essa indisponibilidade pode ser devido a uma interrupção no serviço ou em um problema de infraestrutura/rede local. Você pode verificar o status do serviço nos seguintes links:

      Exclua e recrie a conexão com o repositório GitHub. Essa conexão recriada faz com que o GitHub solicite a reautorização do Azure Boards.

  • Se a conexão estiver usando um PAT:

    • A PAT pode ter sido revogada ou os escopos de permissão necessários podem ter sido alterados e são insuficientes.

    • O usuário pode não ter permissões de administrador no repositório do GitHub.

      Recrie o PAT e verifique se o escopo do token inclui as permissões necessárias: repo, read:user, user:email, admin:repo_hook.

Resolver a conexão do GitHub Enterprise Server interrompida

Se você tiver migrado do Azure DevOps Server para o Azure DevOps Services com uma conexão existente do GitHub Enterprise Server, sua conexão existente não funcionará conforme o esperado. As menções de item de trabalho no GitHub podem ser atrasadas ou nunca aparecer no Azure DevOps Services. Esse problema ocorre porque a URL de retorno de chamada associada ao GitHub não é mais válida.

Considere as seguintes resoluções:

  • Remova e recrie a conexão: remova e recrie a conexão com o repositório do GitHub Enterprise Server. Siga a sequência de etapas fornecidas na documentaçãoConectar pelo Azure Boards.

  • Corrigir a URL do webhook: vá para a página de configurações do repositório do GitHub e edite a URL do webhook, apontando para a URL da organização de Azure DevOps migrada: https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

Conectar-se a várias organizações do Azure DevOps

Se você conectar seu repositório do GitHub a dois ou mais projetos definidos em mais de uma organização de Azure DevOps, como dev.azure.com/Contoso e dev.azure.com/Fabrikam, poderá obter resultados inesperados ao usar menções de AB# vinculando a itens de trabalho. Esse problema ocorre porque as IDs de item de trabalho não são exclusivas em organizações do Azure DevOps, portanto, AB#12 podem se referir a um item de trabalho na organização Contoso ou Fabrikam. Quando um item de trabalho é mencionado em uma mensagem de confirmação ou solicitação pull, ambas as organizações podem tentar criar um link para um item de trabalho com uma ID correspondente, se houver.

Em geral, um usuário pretende uma menção AB# é vinculada a um único item de trabalho em um dos projetos. Porém, se houver um item de trabalho da mesma ID em ambas as contas, os links serão criados para ambos os itens de trabalho, provavelmente causando confusão.

Atualmente, não há como resolver esse problema, portanto, recomendamos que você conecte um único repositório do GitHub a apenas uma organização do Azure DevOps.

Observação

Ao fazer a conexão usando o aplicativo Azure Boards para GitHub, o aplicativo impede que você se conecte a duas organizações diferentes. Se um repositório GitHub estiver conectado incorretamente à organização errada do Azure DevOps, você precisará entrar em contato com o proprietário dessa organização para remover a conexão antes de poder adicionar o repositório à organização correta do Azure DevOps.

Atualizar definições XML para selecionar tipos de item de trabalho

Atualize as definições XML para os tipos de item de trabalho, caso sua organização use o modelo de processo XML hospedado ou XML local para personalizar a experiência de controle de trabalho e você queira vincular e exibir os tipos de link do GitHub na seção Desenvolvimento nos formulários de item de trabalho.

Por exemplo, se você quiser vincular histórias de usuário e bugs às solicitações de confirmação e pull do GitHub da seção Desenvolvimento, será necessário atualizar as definições XML para histórias de usuário e bugs.

Siga a sequência de tarefas fornecidas em modelo de processo XML hospedado para atualizar as definições XML. Para cada tipo de item de trabalho, localize a seção Group Label="Development" e adicione as duas linhas a seguir na seguinte sintaxe de código para dar suporte aos tipos de links externos: Confirmação do GitHub e Solicitação de Pull do GitHub.

             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  

Quando atualizada, a seção deve aparecer da seguinte maneira.

<Group Label="Development">  
   <Control Type="LinksControl" Name="Development">  
      <LinksControlOptions ViewMode="Dynamic" ZeroDataExperience="Development" ShowCallToAction="true">  
         <ListViewOptions GroupLinks="false">   
         </ListViewOptions>  
         <LinkFilters>  
             <ExternalLinkFilter Type="Build" />  
             <ExternalLinkFilter Type="Integrated in build" />  
             <ExternalLinkFilter Type="Pull Request" />  
             <ExternalLinkFilter Type="Branch" />  
             <ExternalLinkFilter Type="Fixed in Commit" />  
             <ExternalLinkFilter Type="Fixed in Changeset" />  
             <ExternalLinkFilter Type="Source Code File" />  
             <ExternalLinkFilter Type="Found in build" />  
             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  
         </LinkFilters>  
      </LinksControlOptions>  
   </Control>  
</Group>  

Perguntas frequentes (FAQs)

P: Alguns dos meus usuários no Azure DevOps têm identidades do GitHub. Preciso adicioná-los como novos usuários do GitHub à minha organização?

R: Não. Peça que os usuários saiam e, em seguida, em uma nova sessão do navegador, entrem novamente na organização com suas credenciais do GitHub. Isso ajudará a estabelecer os usuários como tendo identidades válidas do GitHub.

P: Sou um administrador da organização e ativei a política que permite convidar usuários do GitHub. Por que não posso convidar novos usuários do GitHub?

R: Depois que a configuração for alterada, saia do Azure DevOps e então, em uma nova sessão do navegador, entre novamente na organização dev.azure.com/{organizationName} ou organizationName.visualstudio.com com suas credenciais do GitHub.

P: Mesmo entrando com minhas credenciais do GitHub, por que não posso convidar usuários do GitHub?

R: Somente administradores de organização ou projeto podem convidar novos usuários para ingressar na organização. Talvez você não tenha a permissão necessária para adicionar novos usuários. Trabalhe com o administrador para obter as permissões corretas ou peça que ele adicione o usuário para você.

Próximas etapas