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.

    Screenshot of open Project Settings>GitHub connections.

  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.

    Screenshot of first time connecting with GitHub credentials.

    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á tiverem sido conectados aos Painéis do Azure, você verá a seguinte mensagem.

    Screenshot of message where no more repositories exist to connect.

  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 foi associada anteriormente à sua conta dos Serviços de DevOps do Azure.

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.

    Screenshot showing GitHub repos.

    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.

    Screenshot of message where no more repositories exist to connect.

  2. Quando tiver terminado, selecione Guardar.

Confirme a ligação

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

    Screenshot showing confirming GitHub repositories.

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

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

Screenshot of list of connected repositories.

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.

    Screenshot of New GitHub connection dialog, choosing Personal Access Token.

    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.

    Screenshot showing entered PAT.

  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.

    Screenshot of sign in for GitHub Enterprise server.

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

    Screenshot showing sequence for New OAuth App.

  3. Introduza as informações para registar a sua candidatura.

    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

    Screenshot showing app to register.

  4. Selecione Registrar aplicativo.

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

    Screenshot of Client ID and Client Secret for the registered OAuth application.

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.

    Screenshot of Open Organization Settings, OAuth configurations.

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

    OAuth configurations dialog.

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.

    First connection, choose GitHub Enterprise Server.

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

    Screenshot of New GitHub connection dialog, choose GitHub Enterprise Server.

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

    Screenshot showing authentication method dialog.

    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.

    Screenshot of New GitHub Enterprise connection, OAuth connection dialog.

    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.

    Screenshot of New GitHub Enterprise connection, Personal access token connection dialog.

    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.

    Screenshot of New GitHub Enterprise connection screen, User Name connection dialog.

  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.

    Screenshot of repositories listed.

    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.
    Screenshot of open profile, choose Settings.

  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.

    Screenshot of Organization access with organizations without access.

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.

Screenshot of failed connection.

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 ter sido revogada ou os escopos de permissão necessários alterados e são insuficientes.

    • O usuário pode ter perdido 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 ser 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 para apontar para a URL da organização dos Serviços de DevOps do Azure 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# para vincular 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. Assim, quando um item de trabalho é mencionado em uma mensagem de confirmação ou solicitação pull, ambas as organizações tentam 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

Se sua organização usa o modelo de processo XML hospedado ou 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, será necessário atualizar as definições XML para os tipos 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 seção e adicione as duas linhas a Group Label="Development" 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 for atualizada, a seção deverá 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>  

Próximos passos