Partager via


Connecter Azure DevOps Server à GitHub (local)

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

En connectant votre projet Azure DevOps Server aux référentiels GitHub, vous prenez en charge la liaison entre les validations (commits) GitHub et les demandes de tirage (pull requests) vers des éléments de travail. Vous pouvez utiliser GitHub pour le développement de logiciels tout en utilisant Azure Boards pour planifier et suivre votre travail.

Remarque

Azure DevOps Server 2020 local prend en charge l’intégration avec les dépôts GitHub.com et GitHub Enterprise Server. Si vous souhaitez vous connecter à partir d’Azure DevOps Services, consultez Connecter Azure Boards à GitHub.

En connectant votre projet Azure DevOps Server aux référentiels GitHub Enterprise Server, vous prenez en charge la liaison entre les validations (commits) GitHub et les demandes de tirage (pull requests) vers des éléments de travail. Vous pouvez utiliser GitHub Enterprise pour le développement de logiciels tout en utilisant Azure Boards pour planifier et suivre votre travail.

Notes

Azure DevOps Server 2019 local prend en charge l’intégration avec les dépôts GitHub Enterprise Server. Si vous souhaitez vous connecter à partir d’Azure DevOps Services, consultez Connecter Azure Boards à GitHub.

Prérequis

  • Pour vous connecter à des référentiels GitHub.com, vous devez installer Azure DevOps Server 2020.1.1 Patch 2. Sans ce correctif, vous pouvez uniquement vous connecter à vos dépôts GitHub Enterprise Server.
  • Installez l’application Azure Boards pour GitHub sur le compte ou les organisations GitHub.
  • Connectez-vous à un projet Azure Boards ou Azure DevOps. Si vous n’avez pas encore de projet, créez-en un.
  • Vous devez être membre du groupe Administrateurs de collection de projets et du groupe Contributeurs du projet. Si vous avez créé le projet, vous disposez d’autorisations.
  • Vous devez être administrateur du serveur GitHub Enterprise Server auquel vous allez vous connecter.

Options d’authentification

Les options d’authentification suivantes sont prises en charge.

Remarque

OAuth n’est pas pris en charge pour Azure DevOps Server 2020.

Inscrire Azure DevOps dans GitHub en tant qu’application OAuth

Si vous envisagez d’utiliser OAuth pour vous connecter à Azure DevOps avec GitHub Enterprise Server, vous devez d’abord inscrire l’application en tant qu’application OAuth. Pour plus d’informations, consultez Créer une application OAuth.

Inscrire Azure DevOps Server

  1. Connectez-vous au portail web pour votre serveur GitHub Enterprise.

    Screenshot of sign in for GitHub Enterprise Server.

  2. Sélectionnez Paramètres>Paramètres développeur>Applications Oauth>Nouvelle Application OAuth.

    Screenshot showing sequence for getting to New OAuth App screen.

  3. Saisissez vos informations pour inscrire votre application Azure DevOps Server.

    Screenshot of Azure DevOps Server project registration.

    Pour URL de la page d’accueil, spécifiez l’URL publique de votre collection de projets. Vous pouvez trouver cette URL en ouvrant la console d’administration Azure DevOps et en affichant le nœud Couche Application.

    Screenshot of Azure DevOps Server Administration Console, Application Tier.

    Pour URL de rappel d’autorisation, utilisez le modèle suivant pour construire l’URL.

    {Azure DevOps Server Public Url}/{Collection Name}/_admin/oauth2/callback

    Par exemple :

    http://contoso/DefaultCollection/_admin/oauth2/callback

    https://tfs.contoso.com/MyCollection/_admin/oauth2/callback

  4. Sélectionnez Register application (Inscrire l’application).

  5. En cas de réussite, vous verrez une page qui fournit l’ID client et la Clé secrète client pour votre application OAuth inscrite.

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

Inscrire votre configuration OAuth dans Azure DevOps Server

  1. Connectez-vous au portail web pour votre serveur Azure DevOps Server.

  2. Ajoutez la configuration OAuth de GitHub Enterprise à votre collection Azure DevOps Server.

  3. Sélectionnez Paramètres d’administrateur>Configurations Oauth>Ajouter une configuration Oauth.

    Screenshot showing step sequence to add OAuth configuration.

  4. Saisissez vos informations, puis sélectionnez Créer.

    Screenshot of OAuth configuration dialog.

Connecter Azure DevOps Server à GitHub Enterprise Server

Vous pouvez connecter jusqu’à 250 dépôts GitHub à un projet Azure Boards.

Notes

La connexion à plus de 100 dépôts GitHub nécessite Azure DevOps Server 2020.1 ou version ultérieure.
La connexion aux dépôts GitHub.com nécessite Azure DevOps Server 2020.1.1 Patch 2 ou version ultérieure.

Vous pouvez connecter jusqu’à 100 dépôts GitHub à un projet Azure Boards. Cette limite ne peut pas être modifiée.

  1. Ouvrez le portail web pour votre serveur Azure DevOps Server.

  2. Choisissez le logo Azure DevOps pour ouvrir Projets, puis choisissez le projet Azure Boards que vous souhaitez configurer pour vous connecter à vos référentiels GitHub Enterprise.

  1. Sélectionnez Paramètres du projet>Connections GitHub.

    Screenshot of open Project Settings>GitHub connections.

  2. S’il s’agit de la première connexion à partir du projet, choisissez la méthode d’authentification que vous souhaitez utiliser pour établir la connexion :

    Screenshot of first time connecting with GitHub credentials.

    Sinon, choisissez Nouvelle connexion, puis sélectionnez votre méthode d’authentification dans la boîte de dialogue Nouvelle connexion.

  1. Choisissez Paramètres du projet>Connexions GitHub>Connecter votre compte GitHub Enterprise.

    Screenshot of Project settings, selected Integrations.

    Vous pouvez également choisir un jeton d’accès personnel ou un nom d’utilisateur et un mot de passe, si vous utilisez ces informations d’identification.

Se connecter avec OAuth

Choisissez la configuration que vous avez définie à l’étape 4 d’Inscrire votre configuration OAuth dans Azure DevOps Server. puis Connecter.

Screenshot fo New GitHub Enterprise connection, OAuth dialog.

Connexion avec un jeton d’accès personnel

  1. Pour créer un jeton d’accès personnel, consultez Création d’un jeton d’accès personnel.

    Conseil

    Lorsque vous créez votre PAT GitHub, assurez-vous d’inclure ces portées : repo, admin:repo_hook, read:user, user:email.

  2. Entrez l’URL de votre serveur GitHub Enterprise et les informations d’identification de jeton d’accès personnel reconnues par ce serveur. Sélectionnez ensuite Se connecter.

Screenshot of sign in with PAT.

Connexion avec un nom d’utilisateur et un mot de passe

  1. Entrez l’URL de votre serveur GitHub Enterprise et les informations d’identification du compte d’administrateur reconnues par ce serveur. Puis choisissez Se connecter.

Screenshot of sign in with username and password.

  1. La boîte de dialogue répertorie tous les dépôts pour lesquels vous disposez de droits d’administration GitHub. Vous pouvez basculer entre Les miens et Tous pour déterminer si d’autres personnes apparaissent, puis vérifier celles que vous souhaitez ajouter. Choisissez Enregistrer quand vous avez terminé.

    Screenshot of repositories to select to add.

  2. Pour vous connecter à un compte ou une organisation GitHub depuis Azure Boards pour la première fois, vous devez également installer l’application Azure Boards pour GitHub. Terminez l’intégration en suivant les procédures décrites dans Confirmer la connexion.

Résoudre les problèmes de connexion

L’intégration d’Azure Boards-GitHub s’appuie sur différents protocoles d’authentification pour prendre en charge la connexion. Les modifications apportées à l’étendue d’autorisation ou aux informations d’authentification d’un utilisateur peuvent entraîner la révocation des dépôts GitHub connectés à Azure Boards.

Pour obtenir une vue d’ensemble de l’intégration prise en charge par l’application Azure Boards pour GitHub, consultez Intégration d’Azure Boards-GitHub.

Options d’authentification prises en charge

Les options d’authentification suivantes sont prises en charge en fonction de la plateforme GitHub à laquelle vous souhaitez vous connecter.

Plateforme

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

  • Compte d’utilisateur GitHub.com
  • Un jeton d’accès personnel (PAT)
  • OAuth
  • Jeton d’accès personnel
  • Nom d’utilisateur plus mot de passe

Azure DevOps Server 2020

Non applicable

  • Jeton d’accès personnel
  • Nom d’utilisateur plus mot de passe

Azure DevOps Server 2019

Non applicable

  • OAuth
  • Jeton d’accès personnel
  • Nom d’utilisateur plus mot de passe

Notes

Avec l’application Azure Boards pour GitHub, Azure Boards et Azure DevOps Services prennent en charge l’intégration aux dépôts GitHub.com et GitHub Enterprise Server. Azure DevOps Server 2019 et versions ultérieures prennent en charge l’intégration aux référentiels GitHub Enterprise Server uniquement. L’intégration à d’autres référentiels Git n’est pas prise en charge.

Résoudre les problèmes d’accès

Lorsque la connexion Azure Boards à GitHub n’a plus accès, elle affiche un état d’alerte dans l’interface utilisateur avec un X rouge. Pointez sur l’alerte ; elle indique que les informations d’identification ne sont plus valides. Pour corriger le problème, supprimez la connexion et recréez une nouvelle connexion.

Screenshot of failed connection.

Lorsque la connexion Azure Boards à GitHub n’a plus accès, elle affiche un état d’alerte dans l’interface utilisateur avec un X rouge lié à une info-bulle, par exemple, Impossible de se connecter à GitHub.

Tenez compte des résolutions suivantes :

  • Si la connexion utilise OAuth :

    • L’accès à l’application Azure Boards a été refusé pour l’un des dépôts.

    • GitHub peut être indisponible/inaccessible. Cette indisponibilité peut être due à une panne dans le service ou à un problème d’infrastructure/de réseau local. Vous pouvez vérifier l’état du service à partir des liens suivants :

      Supprimez et recréez la connexion au référentiel GitHub. Cette connexion recréée amène GitHub à demander une nouvelle autorisation pour Azure Boards.

  • Si la connexion utilise un jeton d’accès personnel :

    • Le jeton d’accès personnel a peut-être été révoqué ou les étendues d’autorisation requises ont été modifiées et sont insuffisantes.

    • L’utilisateur a peut-être perdu les autorisations d’administrateur sur le dépôt GitHub.

      Recréez le PAT et assurez-vous que la portée du jeton inclut les autorisations requises : repo, read:user, user:email, admin:repo_hook.

Mettre à jour les définitions XML pour certains types d’éléments de travail

Si votre organisation utilise le modèle de processus XML hébergé ou local pour personnaliser l’expérience de suivi des travaux et que vous souhaitez lier et afficher les types de liens GitHub à partir de la section Développement dans les formulaires d’éléments de travail, vous devez mettre à jour les définitions XML applicables aux types d’éléments de travail.

Par exemple, si vous souhaitez lier des récits utilisateur et des bogues aux validations et aux demandes de tirage GitHub à partir de la section Développement, vous devez mettre à jour les définitions XML pour les récits utilisateur et les bogues.

Suivez la séquence de tâches fournie dans Modèle de processus XML hébergé pour mettre à jour les définitions XML. Pour chaque type d’élément de travail, recherchez la section Group Label="Development" et ajoutez les deux lignes suivantes dans la syntaxe de code suivante pour prendre en charge les types de liens externes : Validation GitHub et Demande de tirage GitHub.

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

Une fois mise à jour, la section devrait apparaître comme suit.

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

Étapes suivantes