Conectar o Azure DevOps Server ao GitHub (no local)
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
Ao conectar seu projeto do Azure DevOps Server aos seus repositórios do GitHub, você dá suporte à vinculação entre confirmações do GitHub e solicitações de pull para itens de trabalho. Você pode usar o GitHub para desenvolvimento de software ao usar Azure Boards para planejar e acompanhar seu trabalho.
Observação
O Azure DevOps Server 2020 local dá suporte à integração com repositórios do GitHub.com e do GitHub Enterprise Server. Se você quiser se conectar do Azure DevOps Services, confira Conectar o Azure Boards ao GitHub.
Ao conectar seu projeto do Azure DevOps Server com seus repositórios do GitHub Enterprise Server, você dá suporte à vinculação entre confirmações do GitHub e solicitações de pull para itens de trabalho. Você pode usar o GitHub para desenvolvimento de software enquanto usa o Azure Boards para planejar e acompanhar seu trabalho.
Observação
O Azure DevOps Server 2019 local dá suporte à integração com repositórios do GitHub Enterprise Server. Se você quiser se conectar do Azure DevOps Services, confira Conectar o Azure Boards ao GitHub.
Pré-requisitos
- Conecte-se aos repositórios do GitHub.com instalando o Azure DevOps Server 2020.1.1 Patch 2. Sem esse patch, você só pode se conectar aos repositórios do GitHub Enterprise Server.
- Instale o aplicativo Azure Boards para GitHub na conta ou nas organizações do GitHub.
- Conecte-se a 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 Coleção de Projetos e do grupo Colaboradores do projeto. Se você criou o projeto, terá permissões.
- Você deve ser um administrador do GitHub Enterprise Server ao qual se conectará.
Opções de autenticação
As seguintes opções de autenticação têm suporte.
Observação
O OAuth não tem suporte para o Azure DevOps Server 2020.
Registrar o Azure DevOps no GitHub como um aplicativo OAuth
Se você planeja usar o OAuth para conectar o Azure DevOps Server 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 Server
Entre no portal da Web do seu GitHub Enterprise Server.
Selecione Configurações>Configurações do desenvolvedor>Aplicativos OAuth>Novo aplicativo OAuth.
Insira suas informações para registrar seu aplicativo Azure DevOps Server.
Para a URL da Página Inicial, especifique a URL pública da coleção de projetos. Você pode encontrar essa URL ao abrir o Console de Administração do Azure DevOps e exibindo o nó Camada de Aplicativo.
Para a URL de retorno de chamada de autorização, use o padrão a seguir para construir a URL.
{Azure DevOps Server Public Url}/{Collection Name}/_admin/oauth2/callback
Por exemplo:
http://contoso/DefaultCollection/_admin/oauth2/callback
https://tfs.contoso.com/MyCollection/_admin/oauth2/callback
Selecione Registrar aplicativo.
É exibida uma página que fornece a ID do cliente e o Segredo do Cliente para seu aplicativo OAuth registrado.
Registrar a configuração do OAuth no Azure DevOps Server
Entre no portal da Web para seu Azure DevOps Server.
Adicione a configuração do OAuth do GitHub Enterprise à sua coleção do Azure DevOps Server.
Selecione Configurações do administrador>Configurações do Oauth>Adicionar configuração do Oauth.
Insira as informações, selecione Criar.
Conectar o Azure DevOps Server ao GitHub Enterprise Server
Você pode conectar até 250 repositórios do GitHub a um projeto do Azure Boards.
Observação
A conexão com mais de 100 repositórios do GitHub requer o Azure DevOps Server atualização 2020.1 ou versão posterior.
A conexão com repositórios do GitHub.com requer o Azure DevOps Server 2020.1.1 Patch 2 ou versão posterior.
Você pode conectar até 100 repositórios GitHub a um projeto do Azure Boards. Esse limite não pode ser alterado.
Abra o portal da Web para seu Azure DevOps Server.
Selecione o logotipo do Azure DevOps para abrir Projetos e escolha o projeto do Azure Boards que deseja configurar para conectar aos seus repositórios do GitHub Enterprise.
Selecione Configurações do projeto>Conexões do GitHub.
Se for a primeira vez que você faz uma conexão com o projeto, escolha o método de autenticação que deseja usar para fazer a conexão:
- Token de Acesso Pessoal, para obter detalhes, confira Conectar usando um token de acesso pessoal.
- Nome de usuário e senha, confira Conectar usando um nome de usuário e senha.
Caso contrário, selecione Nova conexão e selecione o método de autenticação na caixa de diálogo Nova Conexão.
Selecione Configurações do projeto>Conexões do GitHub>Conecte sua conta do GitHub Enterprise.
Ou escolha um token de acesso pessoal ou nome de usuário e senha, se estiver usando essas credenciais.
Conectar-se ao OAuth
Escolha a configuração que definiu na Etapa 4 de Registrar sua configuração do OAuth no Azure DevOps Server. Em seguida, selecione Conectar.
Conectar-se por meio de um Token de Acesso Pessoal
Para criar um PAT, confira Criar um token de acesso pessoal.
Dica
Ao criar seu PAT do GitHub, inclua estes escopos:
repo, admin:repo_hook, read:user, user:email
.Insira a URL do seu servidor GitHub Enterprise e as credenciais do token de acesso pessoal reconhecidas por esse servidor. E depois, selecione Conectar.
Conectar com um nome de usuário e senha
- Insira a URL do servidor GitHub Enterprise e as credenciais de conta de administrador reconhecidas por esse servidor. Em seguida, escolha Conectar.
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 quando terminar.
Para se conectar a uma conta ou organização do GitHub a partir do Azure Boards pela primeira vez, você também instalará o aplicativo Azure Boards para GitHub. Conclua a integração seguindo os procedimentos descritos em Confirmar a conexão.
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 se integram aos repositórios do GitHub.com e do GitHub Enterprise Server. Azure DevOps Server 2019 e versões posteriores dão suporte à integração somente com repositórios GitHub Enterprise Server. Não há suporte para a integração com outros repositórios Git.
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.
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 red-X que tem uma dica de ferramenta como, Não é possível se conectar ao GitHub.
Considere as seguintes resoluções:
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:
O PAT pode ter sido revogado ou os escopos de permissão necessários foram alterados e são insuficientes.
O usuário pode ter perdido permissões de administrador no repositório 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
.
Atualizar definições XML para selecionar tipos de item de trabalho
Se a sua organização usar o modelo de processo XML hospedado ou XML local para personalizar a experiência de acompanhamento de trabalho e você quiser vincular e exibir os tipos de link do GitHub da seção Desenvolvimento nos formulários do item de trabalho, você precisará atualizar as definições XML para os tipos 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" />
Após a atualização, a seção deve aparecer conforme mostrado.
<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>