Conectar painéis do Azure ao GitHub (nuvem)

Serviços de DevOps do Azure

Use repositórios GitHub.com para seu desenvolvimento de software e seu projeto de Painéis do Azure para planejar e acompanhar seu trabalho. Conecte seu projeto e repositório para que suas confirmações do GitHub e solicitações pull sejam vinculadas aos seus itens de trabalho nos Painéis do Azure.

Nota

Os Painéis do Azure e os Serviços de DevOps do Azure suportam a integração com os repositórios GitHub.com e GitHub Enterprise Server. Se você quiser se conectar de um Servidor de DevOps do Azure local, consulte Conectar o Servidor de DevOps do Azure ao GitHub Enterprise Server.

Pré-requisitos

  • Você deve ter um Azure Boards ou um projeto do Azure DevOps. Se você ainda não tem um projeto, crie um.
  • Tem de ser membro do grupo Administradores de Projeto. Se você criou o projeto, você 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 um administrador desses repositórios.

Opções de autenticação

As seguintes opções de autenticação são suportadas com base na plataforma GitHub à qual você deseja se conectar.

GitHub.com

Servidor GitHub Enterprise

Nota

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

Conecte o Azure Boards a um repositório GitHub.

  1. Entre em seu projeto do Azure DevOps.

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

    Captura de tela das conexões GitHub abertas das Configurações>do Project.

  3. Se for a primeira vez que você faz uma conexão do 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 seu método de autenticação na caixa de diálogo Nova conexão .

    Quando você se conectar usando sua conta do GitHub, use as credenciais da sua conta do GitHub para autenticar. Para usar o PAT, consulte Adicionar uma conexão GitHub usando PAT. Para se conectar a um GitHub Enterprise Server, consulte Registrar o Azure DevOps no GitHub como um aplicativo OAuth.

Adicionar uma conexão do GitHub com credenciais do GitHub

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

  1. Se for a primeira vez que você se conecta ao GitHub a partir dos Painéis do Azure, você será solicitado a entrar usando suas credenciais do GitHub. Escolha uma conta para a qual você seja administrador de repositório.

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

    Se todos os repositórios de uma organização já estiverem conectados aos Painéis do Azure, você verá a seguinte mensagem.

    Captura de ecrã da mensagem onde não existem mais repositórios para ligar.

  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 à medida que sua conta do GitHub está associada à sua conta do Azure DevOps Services.

Escolha os repositórios

Depois de autenticado, você pode selecionar os repositórios que deseja conectar.

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

    Captura de tela mostrando os repositórios do GitHub.

    Gorjeta

    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 pode levar a uma vinculação inesperada de menções AB# . Para obter mais informações, consulte Solucionar problemas de integração do GitHub & Azure Boards.

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

    Captura de ecrã da mensagem onde não existem mais repositórios para ligar.

  2. Quando tiver terminado, selecione Guardar.

Confirme a ligação

  1. Revise a página do GitHub exibida e escolha Aprovar, Instalar, & Autorizar.

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

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

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

Captura de ecrã da lista de repositórios ligados.

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

Adicionar uma conexão GitHub usando a PAT

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

Gorjeta

Ao criar seu PAT do GitHub, certifique-se de incluir 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, vá para Configurações do > desenvolvedor do GitHub Tokens de acesso pessoal.

  2. Introduza a PAT e selecione Ligar.

    Captura de tela mostrando o PAT inserido.

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

  4. Se for a primeira vez que se conecta a uma conta ou organização do GitHub a partir dos Painéis do Azure, você também deve 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 ao seu GitHub Enterprise Server, primeiro precisa registrar o aplicativo como um aplicativo OAuth. Para obter mais informações, consulte Criar um aplicativo OAuth.

Registrar os Serviços de DevOps do Azure

  1. Faça login no portal da Web do seu servidor GitHub Enterprise.

    Captura de tela do login no servidor GitHub Enterprise.

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

    Captura de ecrã a mostrar a sequência para a Nova Aplicação OAuth.

  3. Insira as informações de registro.

    Para o URL da página inicial, especifique o URL da organização da 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 ecrã a mostrar a aplicação a registar.

  4. Selecione Registrar aplicativo.

  5. A ID do Cliente e o Segredo do Cliente do seu aplicativo OAuth registrado são exibidos.

    Captura de ecrã do ID do Cliente e do Segredo do Cliente para a aplicação OAuth registada.

Registrar sua configuração OAuth nos Serviços de DevOps do Azure

  1. Entre no portal da Web dos Serviços de DevOps do Azure.

  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 do Oauth.

    Captura de ecrã de Abrir Definições da Organização, Configurações OAuth.

  4. Introduza as suas informações e, em seguida, selecione Criar.

    Caixa de diálogo Configurações do OAuth.

Conectar os Serviços de DevOps do Azure ao GitHub Enterprise Server

Importante

Para conectar os Serviços de DevOps do Azure ao seu GitHub Enterprise Server, o GitHub Enterprise Server deve estar suficientemente acessível a partir da Internet. Verifique se o DNS do Azure pode resolver seu nome do GitHub Enterprise Server e se seu firewall permite o acesso a partir de endereços IP do Data Center do Azure. Para determinar o intervalo de endereços IP, consulte Intervalos de IP do Data Center do Microsoft Azure. Uma mensagem de erro comum encontrada quando existem 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, consulte Perguntas frequentes sobre DNS do Azure.

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

    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, escolha GitHub Enterprise Server.

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

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

    Conecte-se com OAuth

    Escolha a configuração que você definiu na Etapa 4 de Registrar sua configuração OAuth nos Serviços de DevOps do Azure e escolha Conectar.

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

    Conecte-se com um token de acesso pessoal

    Insira a URL do seu servidor GitHub Enterprise e as credenciais do token de acesso pessoal reconhecidas por esse servidor. E, em seguida, escolha Conectar.

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

    Conecte-se com um nome de usuário e senha

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

    Captura de tela da tela Nova conexão do GitHub Enterprise, caixa de diálogo de conexão 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 outros aparecem e, em seguida, verificar os que você deseja adicionar. Quando terminar, selecione Guardar.

    Captura de ecrã dos repositórios listados.

    Gorjeta

    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 você se conecta a uma conta ou organização do GitHub a partir dos Painéis do Azure, você também instala o aplicativo Painéis do Azure para o GitHub. Confirme a conexão anteriormente neste artigo.

Resolver problemas de ligação

A integração 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 a revogação dos repositórios do GitHub conectados aos Painéis do Azure.

Para obter uma visão geral da integração suportada pelo aplicativo Azure Boards for GitHub, consulte Integração Azure Boards-GitHub.

Opções de autenticação suportadas

As seguintes opções de autenticação são suportadas com base na plataforma GitHub à qual você deseja se conectar.

Plataforma

GitHub.com

Servidor GitHub Enterprise

Serviços de DevOps do Azure

  • GitHub.com conta de utilizador
  • Token de acesso pessoal (PAT)
  • OAuth
  • PAT
  • Nome de utilizador mais palavra-passe

Azure DevOps Server 2020

Não aplicável

  • PAT
  • Nome de utilizador mais palavra-passe

Azure DevOps Server 2019

Não aplicável

  • OAuth
  • PAT
  • Nome de utilizador mais palavra-passe

Nota

Com a aplicação Azure Boards para GitHub, os Azure Boards e os Azure DevOps Services suportam a integração com os repositórios GitHub.com e GitHub Enterprise Server. Os Servidores de DevOps do Azure 2019 e versões posteriores suportam apenas a integração com repositórios do GitHub Enterprise Server. A integração com outros repositórios Git não é suportada.

Conceder acesso à organização dos Painéis do Azure

Se a integração entre os Painéis do Azure 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 do seu perfil.
    Captura de tela do perfil aberto, escolha Configurações.

  2. Selecione Aplicativos em Integrations>Authorized OAuth Apps>Azure Boards.

  3. Em Acesso à organização, resolva quaisquer problemas que possam aparecer. Selecione Conceder para conceder acesso a todas as organizações que mostram ter 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. Passe o cursor sobre o alerta e ele 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 ecrã da ligação falhada.

Para resolver esse problema, considere os seguintes itens:

  • Se a conexão estiver usando 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 a um problema de infraestrutura/rede no 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 ser revogada ou os escopos de permissão necessários alterados e são insuficientes.

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

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

Resolver conexão do GitHub Enterprise Server quebrada

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

Considere as seguintes resoluções:

  • Remover e recriar a conexão: remova e recrie a conexão com o repositório do GitHub Enterprise Server. Siga a sequência de etapas fornecida na documentação do Connect from Azure Boards .

  • Corrija 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 do 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 GitHub a dois ou mais projetos definidos em mais de uma organização do Azure DevOps, como dev.azure.com/Contoso e dev.azure.com/Fabrikam, poderá obter resultados inesperados ao usar menções AB# vinculadas a itens de trabalho. Esse problema ocorre porque as IDs de item de trabalho não são exclusivas entre as organizações de DevOps do Azure, portanto , AB#12 pode 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 existir.

Em geral, um usuário pretende uma menção AB# para vincular a um único item de trabalho em um dos projetos. Mas, se um item de trabalho do mesmo ID existir em ambas as contas, os links serão criados para ambos os itens de trabalho, provavelmente causando confusão.

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

Nota

Quando você faz 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ê deverá 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 tipos de item de trabalho selecionados

Atualize as definições XML para os tipos de item de trabalho, se sua organização usa o XML hospedado ou o modelo de processo XML local para personalizar a experiência de acompanhamento de trabalho e você deseja 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ários e bugs a confirmações do GitHub e solicitações pull da seção Desenvolvimento , será necessário atualizar as definições XML para histórias de usuários e bugs.

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

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

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

<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>  

FAQs (Perguntas frequentes)

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

R: Não. Peça aos usuários para sair e, em seguida, a partir de uma nova sessão do navegador, entre novamente na organização com suas credenciais do GitHub. Essa ação ajudará a estabelecer os usuários como tendo identidades GitHub válidas.

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, em seguida, de 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: Eu entrei com minhas credenciais do GitHub, mas por que não posso convidar usuários do GitHub?

R: Somente os administradores da organização ou do 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-lhe para adicionar o usuário para você.

Próximos passos