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.

Remarque

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

  • Intégration à GitHub :
    • 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.
  • Connexion au projet : se connecter à un projet Azure Boards ou Azure DevOps. Si vous n’avez pas encore de projet, créez-en un.
  • Autorisations :
    • Soyez membre du groupe Administrateurs de collection de projets et du groupe Contributeurs du projet. Si vous avez créé le projet, vous disposez d’autorisations.
    • Soyez administrateur de GitHub Enterprise Server auquel vous vous connectez.

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.

    Capture d'écran de la connexion au serveur GitHub Enterprise.

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

    Capture d’écran montrant la séquence pour accéder à l’écran Nouvel OAuth App.

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

    Capture d’écran de l’enregistrement du projet Azure DevOps Server.

    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.

    Capture d’écran de la Console d’administration d’Azure DevOps Server, 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.

    Capture d’écran de l’ID client et du secret client pour votre application OAuth enregistrée.

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.

    Capture d’écran montrant la séquence d’étapes pour ajouter une configuration OAuth.

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

    Capture d’écran de la boîte de dialogue de configuration OAuth.

Connecter Azure DevOps Server à GitHub Enterprise Server

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

Remarque

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.

    Capture d’écran de l’ouverture de Paramètres du projet>Connexions GitHub.

  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 :

    Capture d’écran de la première connexion avec les informations d’identification GitHub.

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

  1. Sélectionnez paramètres de projet>connexions GitHub>Connectez votre compte GitHub Enterprise ou choisissez parmi les autres options d’authentification que nous ne recommandons pas.

    Capture d’écran des paramètres du projet, intégrations sélectionnées.

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.

Capture d’écran de la nouvelle connexion GitHub Enterprise, boîte de dialogue OAuth.

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.

Capture d’écran de la connexion avec PAT.

Se connecter avec les informations d’identification GitHub

  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.

Capture d’écran de la connexion avec les informations d’identification GitHub.

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

    Capture d’écran des référentiels à sélectionner pour ajouter.

  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
  • Informations d’identification GitHub

Azure DevOps Server 2020

Non applicable

  • Jeton d’accès personnel
  • Informations d’identification GitHub

Azure DevOps Server 2019

Non applicable

  • OAuth
  • Jeton d’accès personnel
  • Informations d’identification GitHub

Remarque

Avec l’application Azure Boards pour GitHub, Azure Boards et Azure DevOps Services s’intègrent aux référentiels GitHub.com et GitHub Enterprise Server. Azure DevOps Server 2019 et les versions ultérieures prennent en charge l’intégration avec les référentiels GitHub Enterprise Server uniquement. L’intégration à d’autres dépôts 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.

Capture d’écran de la connexion ayant échoué.

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 PAT a été révoqué ou les étendues d’autorisation requises ont été modifiées et sont insuffisantes.

    • L’utilisateur a peut-être perdu des autorisations d’administration 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. Pour plus d’informations, consultez Bonnes pratiques pour l’utilisation des PAT.

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

Si votre organisation personnalise le suivi des travaux à l’aide du modèle de processus XML hébergé ou local et souhaite intégrer des types de liens GitHub dans la section Développement des formulaires d’éléments de travail, vous devez mettre à jour les définitions XML pour les types d’éléments de travail correspondants.

Par exemple, pour lier des récits utilisateur et des bogues à GitHub commits et des demandes de tirage dans la section Développement des formulaires d’éléments de travail, vous devez mettre à jour les définitions XML pour ces types d’éléments de travail.

Pour modifier les définitions XML, effectuez les étapes décrites dans le modèle de processus XML hébergé. Pour chaque type d’élément de travail :

  1. Recherchez la section Group Label="Development".
  2. Pour prendre en charge les types de liens externes, GitHub Commit et GitHub Pull Request, ajoutez les lignes de code suivantes :

Cette intégration permet un suivi transparent des activités GitHub directement à partir de vos éléments de travail dans Azure Boards.

             <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