Verbinding maken Azure Boards naar GitHub (cloud)

Azure DevOps Services

Gebruik GitHub.com opslagplaatsen voor uw softwareontwikkeling en uw Azure Boards-project om uw werk te plannen en bij te houden. Verbinding maken uw project en opslagplaats zodat uw GitHub-doorvoeringen en pull-aanvragen worden gekoppeld aan uw werkitems in Azure Boards.

Notitie

Azure Boards en Azure DevOps Services ondersteunen integratie met GitHub.com- en GitHub Enterprise Server-opslagplaatsen. Als u verbinding wilt maken vanaf een on-premises Azure DevOps-server, raadpleegt u Verbinding maken Azure DevOps Server met GitHub Enterprise Server.

Vereisten

  • U moet een Azure Boards- of Azure DevOps-project hebben. Als u nog geen project hebt, maakt u er een.
  • U moet lid zijn van de groep Project Beheer istrators. Als u het project hebt gemaakt, hebt u machtigingen.
  • U moet een beheerder of eigenaar van de GitHub-opslagplaats zijn om verbinding mee te maken. U kunt verbinding maken met meerdere GitHub-opslagplaatsen zolang u een beheerder bent voor deze opslagplaatsen.

Verificatieopties

De volgende verificatieopties worden ondersteund op basis van het GitHub-platform waarmee u verbinding wilt maken.

GitHub.com

GitHub Enterprise Server

Notitie

Als u ervoor kiest om Github te verbinden met PAT, moet u eenmalige aanmelding (SSO) configureren voor de PAT in uw GitHub-account. Dit is nodig om een lijst met opslagplaatsen van een organisatie op te halen waarvoor SAML-verificatie (Security Assertion Markup Language) is geconfigureerd.

Verbinding maken Azure Boards naar een GitHub-opslagplaats.

  1. Meld u aan bij uw Azure DevOps-project.

  2. Selecteer Project-instellingen>GitHub-verbindingen.

    Screenshot of open Project Settings>GitHub connections.

  3. Als het de eerste keer is dat u verbinding maakt vanuit het project, kiest u Verbinding maken uw GitHub-account om uw Referenties voor uw GitHub-account te gebruiken.

    Screenshot of first time connecting with GitHub credentials.

    Anders kiest u Nieuwe verbinding en selecteert u uw verificatiemethode in het dialoogvenster Nieuwe Verbinding maken ion.

    Wanneer u verbinding maakt met uw GitHub-account, gebruikt u de referenties van uw GitHub-account om te verifiëren. Als u PAT wilt gebruiken, raadpleegt u Een GitHub-verbinding toevoegen met behulp van PAT. Als u verbinding wilt maken met een GitHub Enterprise Server, raadpleegt u Azure DevOps registreren in GitHub als een OAuth-app.

Een GitHub-verbinding met GitHub-referenties toevoegen

U kunt maximaal 500 GitHub-opslagplaatsen verbinden met een Azure Boards-project.

  1. Als u voor het eerst verbinding maakt met GitHub vanuit Azure Boards, wordt u gevraagd u aan te melden met uw GitHub-referenties. Kies een account waarvoor u een opslagplaatsbeheerder bent.

  2. Kies het GitHub-account of de organisatie waarmee u verbinding wilt maken. Alleen organisaties waarvoor u de eigenaar bent of waarvoor u een beheerder bent, worden vermeld.

    Als alle opslagplaatsen voor een organisatie al zijn verbonden met Azure Boards, ziet u het volgende bericht.

    Screenshot of message where no more repositories exist to connect.

  3. Voer uw GitHub-referenties in. Als u tweeledige verificatie hebt ingeschakeld, voert u de verificatiecode in die u door GitHub hebt verzonden en kiest u Verifiëren. Anders herkent het systeem uw GitHub-organisatie automatisch als uw GitHub-account is gekoppeld aan uw Azure DevOps Services-account.

De opslagplaatsen kiezen

Zodra u bent geverifieerd, kunt u de opslagplaatsen selecteren waarmee u verbinding wilt maken.

  1. Het dialoogvenster GitHub-opslagplaatsen toevoegen wordt automatisch weergegeven en selecteert alle GitHub.com opslagplaatsen waarvoor u een beheerder bent voor de organisatie die u hebt geselecteerd. Hef de selectie van opslagplaatsen op die u niet wilt opnemen in de integratie.

    Screenshot showing GitHub repos.

    Tip

    U wordt aangeraden alleen een GitHub-opslagplaats te verbinden met projecten die zijn gedefinieerd in één Azure DevOps-organisatie. Verbinding maken dezelfde GitHub-opslagplaats naar projecten die zijn gedefinieerd in twee of meer Azure DevOps-organisaties, kunnen leiden tot onverwachte AB#-vermelding koppelen. Zie Problemen met GitHub & Azure Boards-integratie oplossen voor meer informatie.

    Als alle opslagplaatsen al zijn verbonden met de huidige of andere organisatie, wordt het volgende bericht weergegeven.

    Screenshot of message where no more repositories exist to connect.

  2. Selecteer Opslaan als u klaar bent.

De verbinding bevestigen

  1. Controleer de GitHub-pagina die wordt weergegeven en kies goedkeuren, installeren en autoriseren.

    Screenshot showing confirming GitHub repositories.

  2. Geef uw GitHub-wachtwoord op om te bevestigen.

  3. Wanneer u klaar bent, ziet u de nieuwe verbinding met de geselecteerde opslagplaatsen.

Screenshot of list of connected repositories.

Zie Opslagplaatstoegang tot Azure Boards wijzigen om de configuratie te wijzigen of de Azure Boards-app voor GitHub te beheren.

Een GitHub-verbinding toevoegen met pat

U wordt aangeraden uw GitHub-accountreferenties te gebruiken om verbinding te maken met uw GitHub-opslagplaats. Als u echter een PAT wilt gebruiken, doet u dit door deze procedures te volgen.

Tip

Wanneer u uw GitHub PAT maakt, moet u ervoor zorgen dat u deze bereiken opneemt: repo, read:user, user:email, admin:repo_hook.

  1. Kies persoonlijk toegangstoken.

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

    Als u een GitHub PAT wilt maken, gaat u naar GitHub Developer Instellingen > Persoonlijke toegangstokens.

  2. Voer de PAT in en kies Verbinding maken.

    Screenshot showing entered PAT.

  3. Kies de opslagplaatsen die u met het project wilt verbinden door de procedures te volgen die eerder in dit artikel worden beschreven in De opslagplaatsen kiezen.

  4. Als het de eerste keer is dat u verbinding maakt met een GitHub-account of -organisatie vanuit Azure Boards, moet u ook de Azure Boards-app voor GitHub installeren. Bevestig de verbinding eerder in dit artikel.

Azure DevOps registreren in GitHub als een OAuth-app

Als u van plan bent om OAuth te gebruiken om Azure DevOps te verbinden met uw GitHub Enterprise Server, moet u de toepassing eerst registreren als een OAuth-app. Zie Een OAuth-app maken voor meer informatie.

Azure DevOps Services registreren

  1. Meld u aan bij de webportal voor uw GitHub Enterprise-server.

    Screenshot of sign in for GitHub Enterprise server.

  2. Open Instellingen> Ontwikkelingsinstellingen>Oauth-apps>nieuwe OAuth-app.

    Screenshot showing sequence for New OAuth App.

  3. Voer gegevens in om uw toepassing te registreren.

    Geef voor de URL van de startpagina de organisatie-URL van uw organisatie op.
    Gebruik voor de callback-URL voor autorisatie het volgende patroon om de URL samen te stellen.

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

    Voorbeeld:

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

    Screenshot showing app to register.

  4. Selecteer Toepassing registreren.

  5. De client-id en het clientgeheim voor uw geregistreerde OAuth-toepassing worden weergegeven.

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

Uw OAuth-configuratie registreren in Azure DevOps Services

  1. Meld u aan bij de webportal voor Azure DevOps Services.

  2. Voeg de GitHub Enterprise Oauth-configuratie toe aan uw organisatie.

  3. Selecteer Oauth-configuraties>toevoegen in organisatie-instellingen.

    Screenshot of Open Organization Settings, OAuth configurations.

  4. Voer uw gegevens in en selecteer Vervolgens Maken.

    OAuth configurations dialog.

Verbinding maken Azure DevOps Services naar GitHub Enterprise Server

Belangrijk

Als u Azure DevOps Services wilt verbinden met uw GitHub Enterprise Server, moet uw GitHub Enterprise Server voldoende toegankelijk zijn vanaf internet. Zorg ervoor dat Azure DNS de naam van uw GitHub Enterprise Server kan omzetten en dat uw firewall toegang toestaat vanuit IP-adressen van Azure Data Center. Zie IP-adresbereiken van Microsoft Azure Data Center om het IP-adresbereik te bepalen. Er is een veelvoorkomend foutbericht opgetreden wanneer er verbindingsproblemen zijn:

De externe naam kan niet worden omgezet: 'github-enterprise-server.contoso.com'

Als deze fout optreedt, controleert u of uw server toegankelijk is. Zie De veelgestelde vragen over Azure DNS voor meer informatie.

  1. Selecteer Project-instellingen>GitHub-verbindingen>GitHub Enterprise Server voor een eerste keer verbinding.

    First connection, choose GitHub Enterprise Server.

    U kunt ook in het dialoogvenster Nieuwe GitHub-verbinding GitHub Enterprise Server selecteren.

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

  2. Selecteer de verificatiemethode.

    Screenshot showing authentication method dialog.

    Verbinding maken met OAuth

    Kies de configuratie die u hebt ingesteld in stap 4 van Het registreren van uw OAuth-configuratie in Azure DevOps Services en kies vervolgens Verbinding maken.

    Screenshot of New GitHub Enterprise connection, OAuth connection dialog.

    Verbinding maken met een persoonlijk toegangstoken

    Voer de URL in voor uw GitHub Enterprise-server en de referenties voor het persoonlijke toegangstoken die door die server worden herkend. En kies Verbinding maken.

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

    Verbinding maken met een gebruikersnaam en wachtwoord

    Voer de URL in voor uw GitHub Enterprise-server en de beheerdersaccountreferenties die door die server worden herkend en selecteer vervolgens Verbinding maken.

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

  3. Het dialoogvenster bevat alle opslagplaatsen waarvoor u GitHub-beheerrechten hebt. U kunt schakelen tussen Mine en All om te bepalen of anderen worden weergegeven en controleer vervolgens de waarden die u wilt toevoegen. Kies Opslaan wanneer u klaar bent.

    Screenshot of repositories listed.

    Tip

    U kunt alleen verbinding maken met opslagplaatsen die zijn gedefinieerd in één GitHub-organisatie. Als u een project wilt verbinden met andere opslagplaatsen die zijn gedefinieerd in een andere GitHub-organisatie, moet u een andere verbinding toevoegen.

  4. Als het uw eerste keer is dat u verbinding maakt met een GitHub-account of -organisatie vanuit Azure Boards, installeert u ook de Azure Boards-app voor GitHub. Bevestig de verbinding eerder in dit artikel.

Verbindingsproblemen oplossen

De Integratie van Azure Boards-GitHub is afhankelijk van verschillende verificatieprotocollen ter ondersteuning van de verbinding. Wijzigingen in het machtigingsbereik of de verificatiereferenties van een gebruiker kunnen leiden tot intrekking van de GitHub-opslagplaatsen die zijn verbonden met Azure Boards.

Zie Azure Boards-GitHub-integratie voor een overzicht van de integratie die door de Azure Boards-app voor GitHub wordt ondersteund.

Ondersteunde verificatieopties

De volgende verificatieopties worden ondersteund op basis van het GitHub-platform waarmee u verbinding wilt maken.

Platform

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

  • GitHub.com gebruikersaccount
  • Persoonlijk toegangstoken (PAT)
  • OAuth
  • PAT
  • Gebruikersnaam plus wachtwoord

Azure DevOps Server 2020

Niet van toepassing

  • PAT
  • Gebruikersnaam plus wachtwoord

Azure DevOps Server 2019

Niet van toepassing

  • OAuth
  • PAT
  • Gebruikersnaam plus wachtwoord

Notitie

Met de Azure Boards-app voor GitHub ondersteunen Azure Boards en Azure DevOps Services integratie met GitHub.com- en GitHub Enterprise Server-opslagplaatsen. Azure DevOps Servers 2019 en latere versies ondersteunen alleen integratie met GitHub Enterprise Server-opslagplaatsen. Integratie met andere Git-opslagplaatsen wordt niet ondersteund.

Organisatietoegang tot Azure Boards verlenen

Als de integratie tussen Azure Boards en GitHub niet werkt zoals verwacht, controleert u of u toegang hebt verleend tot de organisatie.

  1. Open Instellingen vanuit de GitHub-webportal vanuit het profielmenu.
    Screenshot of open profile, choose Settings.

  2. Selecteer Toepassingen onder Geautoriseerde OAuth-apps>voor Integraties>Azure Boards.

  3. Los onder Toegang van de organisatie eventuele problemen op die kunnen worden weergegeven. Selecteer Verlenen om toegang te verlenen aan organisaties die een toegangsaanvraag in behandeling hebben.

    Screenshot of Organization access with organizations without access.

Toegangsproblemen oplossen

Wanneer de Azure Boards-verbinding met GitHub geen toegang meer heeft, wordt er een waarschuwingsstatus weergegeven in de gebruikersinterface met een red-X. Beweeg de muisaanwijzer over de waarschuwing en geeft aan dat de referenties niet meer geldig zijn. U kunt het probleem oplossen door de verbinding te verwijderen en een nieuwe verbinding opnieuw te maken.

Screenshot of failed connection.

Bekijk de volgende items om dit probleem op te lossen:

  • Als de verbinding gebruikmaakt van OAuth:

    • De Azure Boards-toepassing heeft de toegang geweigerd voor een van de opslagplaatsen.

    • GitHub is mogelijk niet beschikbaar/onbereikbaar. Deze onbeschikbaarheid kan worden veroorzaakt door een storing in een service of een on-premises probleem met een infrastructuur/netwerk. U kunt de servicestatus controleren via de volgende koppelingen:

      Verwijder en maak de verbinding met de GitHub-opslagplaats opnieuw. Deze opnieuw gemaakte verbinding zorgt ervoor dat GitHub wordt gevraagd om Azure Boards opnieuw te autoriseren.

  • Als de verbinding gebruikmaakt van een PAT:

    • De PAT is mogelijk ingetrokken of de vereiste machtigingsbereiken zijn gewijzigd en zijn onvoldoende.

    • De gebruiker heeft mogelijk beheerdersmachtigingen voor de GitHub-opslagplaats verloren.

      Maak de PAT opnieuw en zorg ervoor dat het bereik voor het token de vereiste machtigingen bevat: repo, read:user, user:email, admin:repo_hook.

Verbroken GitHub Enterprise Server-verbinding oplossen

Als u bent gemigreerd van Azure DevOps Server naar Azure DevOps Services met een bestaande GitHub Enterprise Server-verbinding, werkt uw bestaande verbinding niet zoals verwacht. Vermeldingen van werkitems in GitHub kunnen worden vertraagd of worden nooit weergegeven in Azure DevOps Services. Dit probleem treedt op omdat de callback-URL die is gekoppeld aan GitHub niet meer geldig is.

Houd rekening met de volgende oplossingen:

  • Verwijder de verbinding en maak deze opnieuw: verwijder de verbinding en maak deze opnieuw met de GitHub Enterprise Server-opslagplaats. Volg de volgorde van de stappen in Verbinding maken uit de documentatie van Azure Boards.

  • Corrigeer de url van de webhook: ga naar de pagina met instellingen voor de opslagplaats van GitHub en bewerk de URL van de webhook om te verwijzen naar de url van de gemigreerde Azure DevOps Services-organisatie: https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

Verbinding maken naar meerdere Azure DevOps-organisaties

Als u uw GitHub-opslagplaats verbindt met twee of meer projecten die zijn gedefinieerd in meer dan één Azure DevOps-organisatie, zoals dev.azure.com/Contoso en dev.azure.com/Fabrikam, krijgt u mogelijk onverwachte resultaten wanneer u AB#-vermeldingen gebruikt om een koppeling naar werkitems te maken. Dit probleem treedt op omdat werkitem-id's niet uniek zijn in Azure DevOps-organisaties, dus AB#12 kan verwijzen naar een werkitem in de Contoso- of Fabrikam-organisatie. Als een werkitem dus wordt vermeld in een doorvoerbericht of pull-aanvraag, proberen beide organisaties een koppeling naar een werkitem te maken met een overeenkomende id (indien aanwezig).

Over het algemeen wil een gebruiker een AB# -vermelding koppelen aan één werkitem in een van de projecten. Maar als er in beide accounts een werkitem van dezelfde id bestaat, worden koppelingen gemaakt voor beide werkitems, waardoor er waarschijnlijk verwarring ontstaat.

Op dit moment is er geen manier om dit probleem te omzeilen. Daarom raden we u aan om slechts één GitHub-opslagplaats te verbinden met één Azure DevOps-organisatie.

Notitie

Wanneer u verbinding maakt met behulp van de Azure Boards-app voor GitHub, voorkomt de app dat u verbinding maakt met twee verschillende organisaties. Als een GitHub-opslagplaats onjuist is verbonden met de verkeerde Azure DevOps-organisatie, moet u contact opnemen met de eigenaar van die organisatie om de verbinding te verwijderen voordat u de opslagplaats kunt toevoegen aan de juiste Azure DevOps-organisatie.

XML-definities bijwerken voor geselecteerde typen werkitems

Als uw organisatie het gehoste XML- of on-premises XML-procesmodel gebruikt om de ervaring voor het bijhouden van werk aan te passen en u de GitHub-koppelingstypen wilt koppelen vanuit de sectie Ontwikkeling in de werkitemformulieren, moet u de XML-definities voor de typen werkitems bijwerken.

Als u bijvoorbeeld gebruikersverhalen en bugs wilt koppelen aan GitHub-doorvoeringen en pull-aanvragen uit de sectie Ontwikkeling , moet u de XML-definities voor gebruikersverhalen en bugs bijwerken.

Volg de volgorde van taken in het gehoste XML-procesmodel om de XML-definities bij te werken. Zoek voor elk werkitemtype de Group Label="Development" sectie en voeg de volgende twee regels toe in de volgende codesyntaxis ter ondersteuning van de typen externe koppelingen: GitHub Commit en GitHub Pull Request.

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

Wanneer deze wordt bijgewerkt, wordt de sectie als volgt weergegeven.

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

Volgende stappen