Verbinden von Azure Boards mit GitHub (Cloud)

Azure DevOps Services

Verwenden Sie GitHub.com-Repositorys für Ihre Softwareentwicklung und Ihre Azure Boards zum Planen und Nachverfolgen Ihrer Arbeit. Verbinden Sie Ihr Projekt und Repository, sodass Ihr GitHub committet und Pull Requests mit Ihren Arbeitselementen in Azure Boards verbunden werden.

Hinweis

Azure Boards und Azure DevOps Services unterstützen die Integration mit GitHub.com und GitHub Enterprise Server-Repositorys. Wenn Sie eine Verbindung von einer lokalen Azure DevOps Server-Instanz aus herstellen möchten, lesen Sie Verbinden von Azure DevOps Server mit GitHub Enterprise Server.

Voraussetzungen

  • Ein Azure Boards oder Azure DevOps-Projekt ist obligatorisch. Wenn Sie noch kein Projekt haben, erstellen Sie eins.
  • Sie müssen Mitglied der Gruppe Projektadministrator*innen sein. Wenn Sie das Projekt erstellt haben, verfügen Sie über Berechtigungen.
  • Sie müssen Administrator*in oder Besitzer*in des GitHub-Repositorys sein, mit dem Sie eine Verbindung herstellen. Sie können eine Verbindung mit mehreren GitHub-Repositorys herstellen, solange Sie Administrator*in für diese Repositorys sind.

Authentifizierungsoptionen

Die folgenden Authentifizierungsoptionen werden basierend auf der GitHub-Plattform unterstützt, mit der Sie eine Verbindung herstellen möchten.

GitHub.com

GitHub Enterprise Server

Hinweis

Wenn Sie Github mit PAT verbinden möchten, stellen Sie sicher, dass Sie das einmalige Anmelden (Single Sign-On, SSO) für das PAT in Ihrem GitHub-Konto konfigurieren. Dies ist erforderlich, um eine Liste der Repositorys einer Organisation mit konfigurierter SAML-SSO-Authentifizierung (Security Assertion Markup Language) abzurufen.

Verbinden von Azure Boards mit einem GitHub-Repository.

  1. Melden Sie sich bei Ihrem Azure DevOps-Projekt an.

  2. Wählen Sie „Projekteinstellungen>GitHub-Verbindungen“ aus.

    Screenshot of open Project Settings>GitHub connections.

  3. Wenn Sie zum ersten Mal eine Verbindung über das Projekt herstellen, wählen Sie Verbindung mit Ihrem GitHub-Konto herstellen aus, um Ihre GitHub-Kontoanmeldeinformationen zu verwenden.

    Screenshot of first time connecting with GitHub credentials.

    Wählen Sie andernfalls Neue Verbindung und im Dialogfeld Neue Verbindung Ihre Authentifizierungsmethode aus.

    Wenn Sie über Ihr GitHub-Konto eine Verbindung herstellen, authentifizieren Sie sich mit Ihren GitHub-Kontoanmeldeinformationen. Über die Verwendung von PAT, siehe „Hinzufügen einer GitHub-Verbindung mithilfe von PAT“. Informationen zum Herstellen einer Verbindung mit einer GitHub Enterprise Server-Instanz finden Sie unter Registrieren von Azure DevOps in GitHub als OAuth-App.

Hinzufügen einer GitHub-Verbindung mit GitHub-Anmeldeinformationen

Sie können bis zu 500 GitHub-Repositorys mit einem Azure Boards-Projekt verbinden.

  1. Wenn Sie zum ersten Mal von Azure Boards aus eine Verbindung mit GitHub herstellen, werden Sie aufgefordert, sich mit Ihren GitHub-Anmeldeinformationen anzumelden. Wählen Sie ein Konto aus, für das Sie Repository-Administrator*in sind.

  2. Wählen Sie das GitHub-Konto oder die Organisation aus, das Sie verbinden möchten. Nur die Organisationen, die Sie besitzen oder für die Sie Administrator*in sind, werden aufgeführt.

    Wenn alle Repositorys für eine Organisation bereits mit Azure Boards verbunden wurden, wird die folgende Meldung angezeigt.

    Screenshot of message where no more repositories exist to connect.

  3. Geben Sie Ihre Anmeldeinformationen für GitHub ein. Wenn Sie die zweistufige Authentifizierung aktiviert haben, geben Sie den von GitHub gesendeten Authentifizierungscode ein, und wählen Sie Überprüfen aus. Andernfalls erkennt das System automatisch Ihre GitHub-Organisation, da Ihr GitHub-Konto zuvor Ihrem Azure DevOps Services-Konto zugeordnet wurde.

Auswählen der Repositorys

Nachdem Sie authentifiziert wurden, können Sie die Repositorys auswählen, mit denen Sie eine Verbindung herstellen möchten.

  1. Im Dialogfeld GitHub-Repositorys hinzufügen werden automatisch alle GitHub.com-Repositorys, für die Sie Administrator*in sind, für die von Ihnen ausgewählte Organisation angezeigt und ausgewählt. Heben Sie die Auswahl aller Repositorys auf, die nicht an der Integration teilnehmen sollen.

    Screenshot showing GitHub repos.

    Tipp

    Sie sollten ein GitHub-Repository nur mit Projekten verbinden, die in einer einzelnen Azure DevOps-Organisation definiert sind. Das Verbinden des gleichen GitHub-Repositorys mit Projekten, die in zwei oder mehr Azure DevOps-Organisationen definiert sind, kann zu unerwarteten Verknüpfungen von AB# -Erwähnungen führen. Weitere Informationen finden Sie unter „Fehlerbehebung bei der Integration von GitHub und Azure Boards“.

    Wenn alle Repositorys bereits mit der aktuellen oder einer anderen Organisation verbunden sind, wird die folgende Meldung angezeigt.

    Screenshot of message where no more repositories exist to connect.

  2. Klicken Sie auf Speichern, wenn Sie fertig sind.

Bestätigen der Verbindung

  1. Lesen Sie die angezeigte GitHub-Seite, und wählen Sie dann Genehmigen, Installieren und Autorisieren aus.

    Screenshot showing confirming GitHub repositories.

  2. Geben Sie ihr GitHub-Kennwort zur Bestätigung an.

  3. Wenn Sie fertig sind, sollte die neue Verbindung mit den ausgewählten Repositorys aufgeführt werden.

Screenshot of list of connected repositories.

Informationen zum Ändern der Konfiguration oder Verwalten der Azure Boards-App für GitHub finden Sie unter Ändern des Repositoryzugriffs auf Azure Boards.

Hinzufügen einer GitHub-Verbindung mithilfe von PAT

Sie sollten Ihre GitHub-Kontoanmeldeinformationen verwenden, um eine Verbindung mit Ihrem GitHub-Repository herzustellen. Wenn Sie jedoch ein PAT verwenden müssen, führen Sie dazu die folgenden Verfahren aus.

Tipp

Achten Sie beim Erstellen Ihres persönlichen Zugriffstokens für GitHub darauf, dass Sie die folgenden Bereiche einschließen: repo, read:user, user:email, admin:repo_hook.

  1. Wählen Sie Persönliches Zugriffstoken aus.

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

    Um ein GitHub-PAT zu erstellen, wechseln Sie zu GitHub-Entwicklereinstellungen > Persönliche Zugriffstoken.

  2. Geben Sie das PAT ein, und wählen Sie Verbinden aus.

    Screenshot showing entered PAT.

  3. Wählen Sie die Repositorys aus, die Sie mit dem Projekt verbinden möchten, indem Sie die unter Auswählen der Repositorys weiter oben in diesem Artikel beschriebenen Verfahren befolgen.

  4. Wenn Sie zum ersten Mal eine Verbindung mit GitHub-Konten oder -organisationen über Azure Boards herstellen, installieren Sie auch die Azure Boards-App für GitHub. Bestätigen Sie die Verbindung weiter oben in diesem Artikel.

Registrieren von Azure DevOps in GitHub als OAuth-App

Wenn Sie Azure DevOps über OAuth mit Ihrer GitHub Enterprise Server-Instanz verbinden möchten, müssen Sie die Anwendung zunächst als OAuth-App registrieren. Weitere Informationen finden Sie unter „Erstellen einer OAuth-App“.

Registrieren von Azure DevOps Services

  1. Melden Sie sich beim Webportal für Ihre GitHub Enterprise Server-Instanz an.

    Screenshot of sign in for GitHub Enterprise server.

  2. Öffnen Sie „Einstellungen“>„Entwicklereinstellungen“>„Oauth-Apps“>„Neue OAuth-App“.

    Screenshot showing sequence for New OAuth App.

  3. Geben Sie Informationen zur Registrierung Ihrer Anwendung ein.

    Geben Sie für URL für Startseite die Organisations-URL Ihrer Organisation an.
    Verwenden Sie für die Autorisierungsrückruf-URL das folgende Muster, um die URL zu erstellen.

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

    Beispiel:

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

    Screenshot showing app to register.

  4. Wählen Sie Anwendung registrieren aus.

  5. Client-ID und geheimer Clientschlüssel für Ihre registrierte OAuth-Anwendung werden angezeigt.

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

Registrieren Ihrer OAuth-Konfiguration in Azure DevOps Services

  1. Melden Sie sich beim Webportal für Azure DevOps Services an.

  2. Fügen Sie ihrer Organisation die GitHub Enterprise Oauth-Konfiguration hinzu.

  3. Wählen Sie in den OrganisationseinstellungenOauth-Konfigurationen>„Oauth-Konfiguration hinzufügen“ aus.

    Screenshot of Open Organization Settings, OAuth configurations.

  4. Geben Sie Ihre Informationen ein, und wählen Sie dann „Erstellen“ aus.

    OAuth configurations dialog.

Verbinden von Azure DevOps Server mit GitHub Enterprise Server

Wichtig

Um Azure DevOps Services mit Ihrer GitHub Enterprise Server-Instanz zu verbinden, muss Ihre GitHub Enterprise Server-Instanz ausreichend über das Internet zugänglich sein. Stellen Sie sicher, dass Azure DNS Ihren GitHub Enterprise Server-Namen auflösen kann, und Ihre Firewall den Zugriff über Azure-Rechenzentrum-IP-Adressen zulässt. Informationen zum Ermitteln des IP-Adressbereichs finden Sie unter IP-Bereiche des Microsoft Azure-Rechenzentrums. Folgende Fehlermeldung tritt häufig bei Problemen mit der Konnektivität auf:

Der Remotename konnte nicht aufgelöst werden: „github-enterprise-server.contoso.com“

Wenn dieser Fehler auftritt, überprüfen Sie, ob auf den Server zugegriffen werden kann. Weitere Informationen finden Sie unter Azure DNS – häufig gestellte Fragen.

  1. Wählen Sie Project-Einstellungen>GitHub-Verbindungen>GitHub Enterprise Server für eine erstmalige Verbindung aus.

    First connection, choose GitHub Enterprise Server.

    Alternativ können Sie im Dialogfeld Neue GitHub-Verbindung die Option GitHub Enterprise Server auswählen.

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

  2. Wählen Sie die Authentifizierungsmethode aus.

    Screenshot showing authentication method dialog.

    Verbinden mit OAuth

    Wählen Sie die Konfiguration aus, die Sie in Schritt 4 von „Registrieren Ihrer OAuth-Konfiguration in Azure DevOps Services“ eingerichtet haben, und wählen Sie dann Verbinden aus.

    Screenshot of New GitHub Enterprise connection, OAuth connection dialog.

    Mit einem persönlichen Zugriffstoken eine Verbindung herstellen

    Geben Sie die URL für Ihre GitHub Enterprise Server-Instanz und die Anmeldeinformationen für das persönliche Zugriffstoken ein, die von diesem Server erkannt werden. Wählen Sie dann Verbinden aus.

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

    Mit Benutzername und Kennwort verbinden

    Geben Sie die URL für Ihre GitHub Enterprise Server-Instanz und die Administratoranmeldeinformationen ein, die von diesem Server erkannt werden und wählen Sie dann „Verbinden“.

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

  3. Im Dialogfeld werden alle Repositorys aufgelistet, für die Sie über GitHub-Verwaltungsrechte verfügen. Sie können zwischen Meine und Alle umschalten, um festzustellen, ob weitere Repositorys angezeigt werden, und dann die Repositorys aktivieren, die Sie hinzufügen möchten. Wählen Sie Speichern aus, wenn Sie fertig sind.

    Screenshot of repositories listed.

    Tipp

    Sie können nur eine Verbindung mit Repositorys herstellen, die unter einer GitHub-Organisation definiert sind. Um ein Projekt mit anderen Repositorys zu verbinden, die in einer anderen GitHub-Organisation definiert sind, müssen Sie eine weitere Verbindung hinzufügen.

  4. Wenn Sie zum ersten Mal eine Verbindung mit GitHub-Konten oder -organisationen über Azure Boards herstellen, installieren Sie auch die Azure Boards-App für GitHub. Bestätigen Sie die Verbindung weiter oben in diesem Artikel.

Beheben von Verbindungsproblemen

Bei der Azure Boards-GitHub-Integration werden verschiedene Authentifizierungsprotokolle verwendet, um die Verbindung zu unterstützen. Änderungen am Berechtigungsumfang oder an den Authentifizierungsdaten der Benutzer*innen können dazu führen, dass die mit Azure Boards verbundenen GitHub Repositorys gesperrt werden.

Eine Übersicht über die von der Azure Boards-App für GitHub unterstützte Integration finden Sie unter Azure Boards-GitHub-Integration.

Unterstützte Authentifizierungsoptionen

Je nachdem, mit welcher GitHub-Plattform Sie die Verbindung herstellen möchten, werden die folgenden Authentifizierungsoptionen unterstützt.

Plattform

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

  • GitHub.com-Benutzerkonto
  • Persönliches Zugriffstoken (Personal Access Token, PAT)
  • OAuth
  • Persönliche Zugriffstoken
  • Benutzername und Kennwort

Azure DevOps Server 2020

Nicht zutreffend

  • Persönliche Zugriffstoken
  • Benutzername und Kennwort

Azure DevOps Server 2019

Nicht zutreffend

  • OAuth
  • Persönliche Zugriffstoken
  • Benutzername und Kennwort

Hinweis

Mit der Azure Boards-App für GitHub unterstützen Azure Boards und Azure DevOps Services die Integration mit GitHub.com- und GitHub Enterprise Server-Repositorys. Azure DevOps Server 2019 und höhere Versionen unterstützen nur die Integration in GitHub Enterprise Server-Repositorys. Die Integration in andere Git-Repositorys wird nicht unterstützt.

Gewähren von Azure Boards-Organisationszugriff

Wenn die Integration zwischen Azure Boards und GitHub nicht wie erwartet funktioniert, überprüfen Sie, ob Sie der Organisation Zugriff gewährt haben.

  1. Öffnen Sie im GitHub-Webportal Einstellungen in Ihrem Profilmenü.
    Screenshot of open profile, choose Settings.

  2. Wählen Sie „Anwendungen“ unter „Integrationen>autorisierte OAuth-Apps>Azure Boards“ aus.

  3. Beheben Sie unter Organisationszugriff alle ggf. angezeigten Probleme. Wählen Sie „Gewähren“ aus, um allen Organisationen Zugriff zu gewähren, für die „Zugriffsanforderung ausstehend“ angezeigt wird.

    Screenshot of Organization access with organizations without access.

Beheben von Probleme beim Zugriff

Wenn die Azure Boards-Verbindung mit GitHub keinen Zugriff mehr hat, wird in der Benutzeroberfläche ein Warnstatus mit einem roten X angezeigt. Wenn Sie den Mauszeiger über die Warnmeldung bewegen, wird angezeigt, dass die Anmeldeinformationen nicht mehr gültig sind. Entfernen Sie zum Beheben des Problems die Verbindung, und stellen Sie eine neue Verbindung her.

Screenshot of failed connection.

Ziehen Sie die folgenden Schritte in Betracht, um das Problem zu lösen:

  • Wenn die Verbindung OAuth verwendet:

    • Der Azure Boards-Anwendung wurde der Zugriff auf eines der Repositorys verweigert.

    • GitHub ist möglicherweise nicht verfügbar/nicht erreichbar. Diese Nichtverfügbarkeit könnte auf einen Dienstausfall oder auf ein Problem mit der lokalen Infrastruktur bzw. dem lokalen Netzwerk zurückzuführen sein. Sie können den Dienststatus über die folgenden Links überprüfen:

      Löschen Sie die Verbindung mit dem GitHub-Repository und stellen Sie sie neu her. Durch diese neu erstellte Verbindung fordert GitHub Sie zur erneuten Autorisierung von Azure Boards auf.

  • Wenn die Verbindung ein persönliches Zugriffstoken verwendet:

    • Das persönliche Zugriffstoken (PAT) wurde möglicherweise widerrufen, oder die erforderlichen Berechtigungsbereiche haben sich geändert und reichen nicht aus.

    • Die Benutzer*innen haben möglicherweise die Administratorrechte für das GitHub-Repository verloren.

      Erstellen Sie das persönliche Zugriffstoken neu und stellen Sie sicher, dass der Bereich für das Token die erforderlichen Berechtigungen enthält: repo, read:user, user:email, admin:repo_hook.

Beheben einer fehlerhaften GitHub Enterprise Server-Verbindung

Wenn Sie mit einer bestehenden GitHub Enterprise Server-Verbindung eine Migration von Azure DevOps Server zu Azure DevOps Services durchgeführt haben, funktioniert die vorhandene Verbindung nicht wie erwartet. Erwähnungen von Arbeitselementen in GitHub werden möglicherweise verzögert oder gar nicht in den Azure DevOps-Diensten angezeigt. Dieses Problem tritt auf, weil die mit GitHub verbundene Rückruf-URL nicht mehr gültig ist.

Beachten Sie die folgenden Lösungen:

  • Entfernen und erneutes Herstellen der Verbindung: Entfernen Sie die Verbindung mit dem GitHub Enterprise Server-Repository, und stellen Sie sie neu her. Befolgen Sie die in der Dokumentation zum Herstellen einer Verbindung aus Azure Boards angegebenen Schritte.

  • Korrigieren der Webhook-URL: Rufen Sie die Seite mit den Einstellungen für das GitHub-Repository auf, und bearbeiten Sie die Webhook-URL so, dass sie auf die URL der migrierten Azure DevOps Services-Organisation verweist: https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

Verbindungsherstellung mit mehreren Azure DevOps-Organisationen

Wenn Sie Ihr GitHub-Repository mit zwei oder mehr Projekten verbinden, die in mehr als einer Azure DevOps-Organisation definiert sind (z. B. „dev.azure.com/Contoso und dev.azure.com/Fabrikam“), erhalten Sie möglicherweise unerwartete Ergebnisse, wenn Sie AB#-Erwähnungen verwenden, um Arbeitselemente zu verknüpfen. Dieses Problem tritt auf, weil die IDs von Arbeitselementen in den Azure DevOps-Organisationen nicht eindeutig sind. AB#12 kann sich daher auf ein Arbeitselement in der Contoso- oder Fabrikam-Organisation beziehen. Wenn also ein Arbeitselement in einer Commitnachricht oder einem Pull Request erwähnt wird, versuchen beide Organisationen, eine Verknüpfung mit einem Arbeitselement mit passender ID zu erstellen (falls eine solche vorhanden ist).

Im Allgemeinen möchten Benutzer*innen mit einer AB#-Erwähnung auf ein einzelnes Arbeitselement in einem der Projekte verweisen. Wenn jedoch in beiden Konten ein Arbeitselement mit identischer ID vorhanden ist, werden für beide Arbeitselemente Verknüpfungen erstellt, was zu Verwirrung führen kann.

Derzeit gibt es keine Möglichkeit zur Umgehung dieses Problems, daher empfehlen wir Ihnen, ein einzelnes GitHub-Repository nur mit einer einzigen Azure DevOps-Organisation zu verbinden.

Hinweis

Wenn Sie die Verbindung über die Azure Boards-App für GitHub herstellen, verhindert die App, dass Sie sich mit zwei verschiedenen Organisationen verbinden. Wenn ein GitHub-Repository irrtümlicherweise mit der falschen Azure DevOps-Organisation verbunden ist, müssen Sie sich an den bzw. die Besitzer*in dieser Organisation wenden, um die Verbindung zu entfernen, damit Sie das Repository der richtigen Azure DevOps-Organisation hinzufügen können.

Aktualisieren von XML-Definitionen für ausgewählte Arbeitselementtypen

Wenn Ihre Organisation zum Anpassen der Arbeitsnachverfolgung das gehostete oder das lokale XML-Prozessmodell verwendet und Sie die GitHub-Verknüpfungstypen über den Abschnitt „Entwicklung“ in den Arbeitselementformularen anzeigen möchten, müssen Sie die XML-Definitionen für die Arbeitselementtypen aktualisieren.

Wenn Sie beispielsweise User Storys und Fehler mit GitHub-Commits und -Pull Requests über den Abschnitt Entwicklung verknüpfen möchten, müssen Sie die XML-Definitionen für User Storys und Fehler aktualisieren.

Beachten Sie beim Aktualisieren der XML-Definitionen die in Gehostetes XML-Prozessmodell angegebene Aufgabereihenfolge. Suchen Sie für jeden Arbeitselementtyp nach dem Abschnitt Group Label="Development", und fügen Sie die folgenden zwei Zeilen in der folgenden Codesyntax hinzu, um die externen Verknüpfungstypen zu unterstützen: GitHub-Commit und GitHub Pull-Request.

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

Wenn sie aktualisiert wird, sollte der Abschnitt wie folgt angezeigt werden.

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

Nächste Schritte