Connecter Azure Boards à GitHub (cloud)

Azure DevOps Services

Utilisez les référentiels GitHub.com pour le développement de logiciels et le projet Azure Boards pour planifier et suivre le travail. Connectez le projet et le référentiel pour que vos commits GitHub et vos demandes de tirage (pull requests) soient liés à vos éléments de travail dans Azure Boards.

Remarque

Azure Boards et Azure DevOps Services prennent en charge l’intégration aux dépôts GitHub.com et GitHub Enterprise Server. Si vous souhaitez vous connecter à partir d’une instance Azure DevOps Server locale, consultez Connecter Azure DevOps Server à GitHub Enterprise Server.

Prérequis

  • Conditions requises pour le projet : Avoir un projet Azure DevOps. Si vous n’avez pas de projet, créez-en un.

  • Autorisations :

    • Être membre du groupe Administrateurs du projet. Si vous avez créé le projet, vous disposez d’autorisations.
    • Être administrateur ou propriétaire du référentiel GitHub à connecter. Vous pouvez vous connecter à plusieurs référentiels GitHub tant que vous êtes administrateur de ces référentiels.

Options d’authentification

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

GitHub.com

GitHub Enterprise Server

Remarque

Si vous choisissez de connecter GitHub avec un PAT, configurez l’authentification unique (SSO) pour le PAT sur votre compte GitHub. Cette configuration est nécessaire pour récupérer une liste de référentiels d’une organisation avec l’authentification SSO SAML (Security Assertion Markup Language) activée.

Connectez Azure Boards à un référentiel GitHub.

  1. Connectez-vous à votre projet (https://dev.azure.com/{Your_Organization/Your_Project}).

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

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

  3. Si c’est la première fois que vous vous connectez depuis le projet, sélectionnez Connectez votre compte GitHub pour utiliser les informations d’identification de votre compte GitHub.

    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.

    Lorsque vous vous connectez avec votre compte GitHub, utilisez vos informations d’identification GitHub pour vous authentifier. Pour utiliser un PAT, veuillez consulter la section Ajouter une connexion GitHub à l’aide d’un PAT Pour vous connecter à un serveur GitHub Enterprise, consultez la section Enregistrer Azure DevOps dans GitHub en tant qu’application OAuth.

Ajouter une connexion GitHub avec des informations d’identification GitHub

Vous pouvez connecter jusqu’à 500 référentiels GitHub à un projet Azure Boards.

  1. Si c’est la première fois que vous vous connectez à GitHub depuis Azure Boards, connectez-vous en utilisant vos informations d’identification GitHub. Choisissez un compte pour lequel vous êtes un administrateur de référentiels.

  2. Sélectionnez le compte ou l’organisation GitHub que vous souhaitez connecter. Seules les organisations dont vous êtes propriétaire ou administrateur sont répertoriées.

    Si tous les référentiels d’une organisation sont déjà connectés à Azure Boards, le message suivant s’affiche :

    Capture d’écran du message où il n’existe plus de dépôts auxquels se connecter.

  3. Saisissez vos informations d’identification GitHub. Si vous avez activé l’authentification à deux facteurs, entrez le code d’authentification envoyé par GitHub et sélectionnez Vérifier. Sinon, le système reconnaîtra automatiquement votre organisation GitHub car votre compte GitHub est associé à votre compte Azure DevOps Services.

Ajouter des référentiels GitHub

Une fois authentifié, vous pouvez sélectionner les référentiels que vous souhaitez connecter.

  1. La boîte de dialogue Ajouter des référentiels GitHub s’affiche automatiquement et sélectionne tous les référentiels GitHub.com pour lesquels vous êtes administrateur dans l’organisation sélectionnée. Désélectionnez les référentiels que vous ne souhaitez pas inclure dans l’intégration.

    Capture d'écran montrant les référentiels GitHub.

    Conseil

    Pour éviter un lien inattendu de mention AB#, nous recommandons de connecter un référentiel GitHub à des projets au sein d’une seule organisation Azure DevOps. Connecter le même référentiel GitHub à des projets dans plusieurs organisations Azure DevOps peut entraîner des problèmes. Pour plus d’informations, consultez Résoudre les problèmes d’intégration GitHub et Azure Boards.

    Si tous les référentiels sont déjà connectés à l’organisation actuelle ou à une autre, le message suivant s’affiche :

    Capture d’écran du message où il n’existe plus de dépôts auxquels se connecter.

  2. Après avoir fait vos sélections, sélectionnez Enregistrer.

Confirmer la connexion

  1. Passez en revue la page GitHub qui s’affiche, puis choisissez Approuver, Installer et Autoriser.

    Capture d'écran montrant la confirmation des référentiels GitHub.

  2. Indiquez votre mot de passe GitHub pour confirmer.

  3. Lorsque vous avez terminé, vous devriez voir la nouvelle connexion avec les référentiels sélectionnés répertoriés.

Capture d'écran de la liste des référentiels connectés.

Pour modifier la configuration ou gérer l’application Azure Boards pour GitHub, consultez Modifier l’accès du dépôt à Azure Boards.

Ajouter une connexion GitHub à l’aide d’un jeton d’accès personnel

Nous vous recommandons d’utiliser les informations d’identification de votre compte GitHub pour vous connecter à votre référentiel GitHub. Si vous avez besoin d’utiliser un PAT, suivez les étapes suivantes.

Conseil

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

  1. Choisissez Jeton d’accès personnels.

    Capture d'écran de la boîte de dialogue Nouvelle connexion GitHub, sélectionnant le jeton d'accès personnel.

    Pour créer un PAT GitHub, accédez à Paramètres du développeur GitHub> Jetons d’accès personnels.

  2. Entrez le PAT et sélectionnez Connecter.

    Capture d'écran montrant le PAT saisi.

  3. Sélectionnez les référentiels que vous souhaitez connecter au projet en suivant les procédures décrites dans la section Choisir les référentiels plus haut dans cet article.

  4. Si c’est la première fois que vous vous connectez à un compte ou une organisation GitHub depuis Azure Boards, installez l’application Azure Boards pour GitHub. Confirmez la connexion précédemment évoquée dans cet article.

Inscrire Azure DevOps dans GitHub en tant qu’application OAuth

Pour utiliser OAuth pour connecter Azure DevOps avec votre serveur GitHub Enterprise, enregistrez d’abord l’application en tant qu’application OAuth. Pour plus d’informations, consultez Créer une application OAuth.

Inscrire Azure DevOps Services

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

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

  2. Ouvrez Paramètres>Paramètres de développeur>Applications Oauth>Nouvelle application OAuth.

    Capture d'écran montrant la séquence pour la nouvelle application OAuth.

  3. Entrez les informations d'enregistrement.

    Pour URL de la page d’accueil, spécifiez l’URL d’organisation de votre organisation.
    Pour URL de rappel d’autorisation, utilisez le modèle suivant pour construire l’URL.

    {Azure DevOps Services Organization URL}/_admin/oauth2/callback

    Par exemple :

    https://dev.azure.com/fabrikam/_admin/oauth2/callback

    Capture d'écran montrant l'application à enregistrer.

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

  5. L’ID client et la clé secrète client pour votre application OAuth inscrite s’affichent.

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

Inscrire votre configuration OAuth dans Azure DevOps Services

  1. Connectez-vous au portail web pour Azure DevOps Services.

  2. Ajoutez la configuration Oauth de GitHub Enterprise à votre organisation.

  3. Dans les paramètres de l’organisation, sélectionnez Configurations Oauth>Ajouter une configuration Oauth.

    Capture d'écran des paramètres de l'organisation ouverte, configurations OAuth.

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

    Boîte de dialogue des configurations OAuth.

Connecter Azure DevOps Services à GitHub Enterprise Server

Important

Pour connecter Azure DevOps Services à votre serveur GitHub Enterprise, assurez-vous que votre serveur GitHub Enterprise est accessible depuis Internet. Vérifiez qu’Azure DNS peut résoudre le nom de votre serveur GitHub Enterprise et que votre pare-feu autorise l’accès depuis les adresses IP du centre de données Azure. Pour déterminer la plage d’adresses IP, consultez Plages d’adresses IP du centre de données Microsoft Azure. Voici un message d’erreur courant pour les problèmes de connectivité :

Impossible de résoudre le nom distant : « github-enterprise-server.contoso.com »

Si vous rencontrez cette erreur, vérifiez l’accessibilité de votre serveur. Pour plus d’informations, consultez Forum aux questions sur Azure DNS.

  1. Sélectionnez Paramètres de projet>Connexions GitHub>GitHub Enterprise Server s’il s’agit de votre première connexion.

    Tout d’abord, choisissez GitHub Enterprise Server.

    Ou, dans la boîte de dialogue Nouvelle connexion GitHub, choisissez GitHub Enterprise Server.

    Capture d'écran de la boîte de dialogue Nouvelle connexion GitHub, choisissez GitHub Enterprise Server.

  2. Sélectionnez la méthode d'authentification.

    Capture d'écran montrant la boîte de dialogue de la méthode d'authentification.

    Se connecter avec OAuth

    Choisissez la configuration que vous avez définie à l’étape 4 d’Inscrire votre configuration OAuth dans Azure DevOps Services, puis Se connecter.

    Capture d'écran de la nouvelle connexion GitHub Enterprise, dialogue de connexion OAuth.

    Connexion avec un jeton d’accès personnel

    Entrez l’URL de votre serveur GitHub Enterprise et les informations d’identification de jeton d’accès personnel reconnues par ce serveur. Puis choisissez Se connecter.

    Capture d'écran de la nouvelle connexion GitHub Enterprise, boîte de dialogue de connexion au jeton d'accès personnel.

    Se connecter avec le nom d’utilisateur et le mot de passe

    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 à New GitHub Enterprise, boîte de dialogue de connexion au nom d'utilisateur.

  3. 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. Lorsque vous avez terminé, sélectionnez Enregistrer.

    Capture d'écran des référentiels listés.

    Conseil

    Vous pouvez uniquement créer une connexion aux dépôts définis sous une organisation GitHub. Pour connecter un projet à d’autres dépôts définis dans une autre organisation GitHub, vous devez ajouter une autre connexion.

  4. Si c’est la première fois que vous vous connectez à un compte ou une organisation GitHub depuis Azure Boards, vous devez également installer l’application Azure Boards pour GitHub. Confirmez la connexion précédemment évoquée dans cet article.

Résoudre les problèmes de connexion

L’intégration Azure Boards-GitHub utilise divers protocoles d’authentification pour maintenir la connexion. Les modifications apportées à l’étendue des autorisations d’un utilisateur ou aux informations d’identification d’authentification peuvent révoquer les référentiels GitHub connectés à Azure Boards.

Pour un aperçu de l’intégration prise en charge par l’application Azure Boards pour GitHub, veuillez consulter la section Intégration Azure Boards-GitHub.

Options d’authentification prises en charge

Les options d’authentification prises en charge dépendent de la plateforme GitHub à laquelle vous vous connectez :

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

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.

Accorder l’accès à l’organisation Azure Boards

Si l'intégration entre Azure Boards et GitHub ne fonctionne pas comme prévu, vérifiez que vous avez accordé un accès à l'organisation.

  1. À partir du portail web GitHub, ouvrez Paramètres dans le menu de votre profil.
    Capture d’écran de l’ouverture du profil, choisissez Paramètres.

  2. Sélectionnez Applications sous Intégrations>Applications OAuth autorisées>Azure Boards.

  3. Sous Accès à l’organisation, résolvez les problèmes qui peuvent survenir. Choisissez Accorder pour accorder l’accès à toutes les organisations qui indiquent avoir une Demande d’accès en attente.

    Capture d’écran de l’accès de l’organisation avec des organisations sans accès.

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

Lorsque la connexion Azure Boards à GitHub perd l’accès, un statut d’alerte avec un X rouge apparaît dans l’interface utilisateur. Passez la souris sur l’alerte pour voir que les informations d’identification ne sont plus valides. Pour résoudre le problème, supprimez la connexion et créez-en une nouvelle.

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

Pour résoudre ce problème, procédez comme suit :

  • 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 pourrait être révoqué ou les portées de permission requises ont changé et sont insuffisantes.

    • L'utilisateur n'a peut-être pas les permissions d'administrateur sur le référentiel 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.

Résoudre une connexion GitHub Enterprise Server rompue

Si vous avez migré d’Azure DevOps Server vers Azure DevOps Services avec une connexion GitHub Enterprise Server existante, il se peut que votre connexion existante ne fonctionne pas comme prévu. Les mentions d’éléments de travail dans GitHub peuvent être retardées ou ne jamais apparaître dans Azure DevOps Services car l’URL de rappel associée à GitHub n’est plus valide. Tenez compte des résolutions suivantes :

  • Supprimer et recréer la connexion : supprimez et recréez la connexion au dépôt GitHub Enterprise Server. Suivez la séquence d’étapes fournie dans Se connecter à partir d’Azure Boards documentation.

  • Corrigez l'URL du webhook : Accédez à la page des paramètres du référentiel de GitHub et modifiez l'URL du webhook, en pointant vers l'URL de l'organisation Azure DevOps migrée : https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

Connexion à plusieurs organisations Azure DevOps

Connecter votre référentiel GitHub à des projets dans plusieurs organisations Azure DevOps, telles que dev.azure.com/Contoso et dev.azure.com/Fabrikam, peut entraîner des résultats inattendus avec les mentions AB#. Les ID des éléments de travail ne sont pas uniques dans les organisations Azure DevOps, donc AB#12 pourrait se référer à un élément de travail soit chez Contoso soit chez Fabrikam. Lorsqu’un élément de travail est mentionné dans un message de commit ou une pull request, les deux organisations pourraient tenter de lier un élément de travail avec l’ID correspondant, ce qui pourrait causer de la confusion.

Pour éviter ce problème, connectez un seul référentiel GitHub à une seule organisation Azure DevOps.

Remarque

Lorsque vous vous connectez à l’aide de l’application Azure Boards pour GitHub, l’application empêche les connexions à plusieurs organisations. Si un référentiel GitHub est connecté à la mauvaise organisation Azure DevOps, contactez le propriétaire de cette organisation pour supprimer la connexion avant d’ajouter le référentiel à la bonne organisation Azure DevOps.

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

Mettez à jour les définitions XML pour les types d’éléments de travail si votre organisation utilise le modèle de processus XML hébergé ou sur site pour personnaliser l’expérience de suivi des travaux et lier et afficher les types de liens GitHub depuis la section Développement dans les formulaires d’éléments de travail.

Par exemple, pour lier des user stories et des bugs aux commits GitHub et pull requests depuis la section Développement, mettez à jour les définitions XML pour les user stories et les bugs.

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, trouvez la section Group Label="Development" et ajoutez les deux lignes suivantes dans la syntaxe du code pour prendre en charge les types de liens externes : GitHub Commit et GitHub Pull Request.

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

Après la 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>  

FAQ

Q : Certains de mes utilisateurs dans Azure DevOps ont des identités GitHub. Dois-je les ajouter en tant que nouveaux utilisateurs GitHub à mon organisation ?

R : Non. Demandez à vos utilisateurs de se déconnecter puis de se reconnecter à l’organisation avec leurs informations d’identification GitHub à partir d’une nouvelle session de navigateur. Cette action établira leur identité GitHub.

Q : Je suis administrateur d’organisation et j’ai activé la politique pour inviter des utilisateurs GitHub. Pourquoi ne puis-je pas inviter de nouveaux utilisateurs GitHub ?

R : Après avoir modifié le paramètre, déconnectez-vous d’Azure DevOps puis reconnectez-vous à l’organisation (dev.azure.com/{organizationName} ou organizationName.visualstudio.com) avec vos informations d’identification GitHub à partir d’une nouvelle session de navigateur.

Q : Je me suis connecté avec mes identifiants GitHub, mais pourquoi ne puis-je pas inviter des utilisateurs GitHub ?

R : Seuls les administrateurs d'une organisation ou d'un projet peuvent inviter de nouveaux utilisateurs à rejoindre l'organisation. Il se peut que vous n’ayez pas les autorisations requises pour ajouter de nouveaux utilisateurs. Travaillez avec votre administrateur pour obtenir les autorisations nécessaires ou demandez-lui d’ajouter l’utilisateur pour vous.

Étapes suivantes