Verbinden eines Azure DevOps Servers mit GitHub (lokal)

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

Wenn Sie Ihr Azure DevOps Server-Projekt mit Ihren GitHub-Repositorys verbinden, unterstützen Sie die Verknüpfung von GitHub-Commits und -Pull Requests mit Arbeitselementen. Sie können GitHub für die Softwareentwicklung verwenden, während Sie Azure Boards zum Planen und Nachverfolgen Ihrer Arbeit nutzen.

Hinweis

Lokale Azure DevOps Server 2020-Instanzen unterstützen die Integration in GitHub.com- und GitHub Enterprise Server-Repositorys. Wenn Sie eine Verbindung von Azure DevOps Services aus herstellen möchten, finden Sie weitere Informationen unter Verbinden von Azure Boards mit GitHub.

Wenn Sie Ihr Azure DevOps Server-Projekt mit Ihren GitHub Enterprise Server-Repositorys verbinden, unterstützen Sie die Verknüpfung von GitHub-Commits und -Pull Requests mit Arbeitselementen. Sie können GitHub Enterprise für die Softwareentwicklung verwenden, während Sie Azure Boards zum Planen und Nachverfolgen Ihrer Arbeit nutzen.

Hinweis

Lokale Azure DevOps Server 2019-Instanzen unterstützen die Integration in GitHub Enterprise Server-Repositorys. Wenn Sie eine Verbindung von Azure DevOps Services aus herstellen möchten, finden Sie weitere Informationen unter Verbinden von Azure Boards mit GitHub.

Voraussetzungen

  • Zur Verbindungsherstellung mit GitHub.com-Repositorys müssen Sie Azure DevOps Server 2020.1.1 Patch 2 installieren. Ohne diesen Patch können Sie sich nur mit Ihren GitHub Enterprise Server-Repositorys verbinden.
  • Installieren Sie die Azure Boards-App für GitHub für die GitHub-Organisationen oder das GitHub-Konto.
  • Stellen Sie eine Verbindung mit einem Azure Boards- oder Azure DevOps-Projekt her. Wenn Sie noch kein Projekt haben, erstellen Sie eins.
  • Sie müssen Mitglied der Gruppe Projektsammlungsadministratoren und der Gruppe Mitwirkende des Projekts sein. Wenn Sie das Projekt erstellt haben, verfügen Sie über die erforderlichen Berechtigungen.
  • Sie müssen Administrator*in der GitHub Enterprise Server-Instanz sein, mit der Sie eine Verbindung herstellen.

Authentifizierungsoptionen

Es stehen folgende Authentifizierungsoptionen zur Verfügung:

Hinweis

OAuth wird für Azure DevOps Server 2020 nicht unterstützt.

Registrieren von Azure DevOps in GitHub als OAuth-App

Wenn Sie Azure DevOps Server ü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 Server

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

    Screenshot of sign in for GitHub Enterprise Server.

  2. Wählen Sie „Einstellungen>Developer-Einstellungen>Oauth Apps>New OAuth-App“ aus.

    Screenshot showing sequence for getting to New OAuth App screen.

  3. Geben Sie Ihre Informationen ein, um Ihre Azure DevOps Server-Anwendung zu registrieren.

    Screenshot of Azure DevOps Server project registration.

    Geben Sie für die Homepage-URL die öffentliche URL Ihrer Projektsammlung an. Sie können diese URL einsehen, indem Sie die Azure DevOps-Verwaltungskonsole öffnen und den Knoten Anwendungsebene anzeigen.

    Screenshot of Azure DevOps Server Administration Console, Application Tier.

    Verwenden Sie für die Autorisierungsrückruf-URL das folgende Muster, um die URL zu erstellen.

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

    Beispiel:

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

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

  4. Wählen Sie Anwendung registrieren aus.

  5. Eine Seite wird angezeigt, die die Client-ID und den Geheimen Clientschlüssel für Ihre registrierte OAuth-Anwendung enthält.

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

Registrieren Ihrer OAuth-Konfiguration in Azure DevOps Server

  1. Melden Sie sich beim Webportal für Ihre Azure DevOps Server-Instanz an.

  2. Fügen Sie Ihrer Azure DevOps Server-Sammlung die GitHub Enterprise-OAuth-Konfiguration hinzu.

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

    Screenshot showing step sequence to add OAuth configuration.

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

    Screenshot of OAuth configuration dialog.

Verbinden von Azure DevOps Server mit GitHub Enterprise Server

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

Hinweis

Für die Verbindung mit mehr als 100 GitHub-Repositorys müssen Sie Azure DevOps Server 2020.1 oder höher verwenden.
Für die Verbindungsherstellung mit GitHub.com-Repositorys wird Azure DevOps Server 2020.1.1 Patch 2 oder höher benötigt.

Sie können bis zu 100 GitHub-Repositorys mit einem Azure Boards-Projekt verbinden. Dieser Grenzwert kann nicht geändert werden.

  1. Öffnen Sie das Webportal für Ihre Azure DevOps Server-Instanz.

  2. Wählen Sie das Azure DevOps-Logo , um die Projekte zu öffnen, und wählen Sie dann das Azure Boards-Projekt aus, das Sie für die Verbindung mit Ihren GitHub Enterprise-Repositorys konfigurieren möchten.

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

    Screenshot of open Project Settings>GitHub connections.

  2. Wenn Sie zum ersten Mal eine Verbindung über das Projekt herstellen, wählen Sie die Authentifizierungsmethode aus, die Sie für die Verbindungsherstellung verwenden möchten:

    Screenshot of first time connecting with GitHub credentials.

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

  1. Wählen Sie „Projekteinstellungen>GitHub-Verbindungen>Verbinden Sie Ihr GitHub Enterprise-Konto“ aus.

    Screenshot of Project settings, selected Integrations.

    Oder wählen Sie ein persönliches Zugriffstoken oder Benutzername und Kennwort aus, wenn Sie diese Anmeldeinformationen verwenden.

Verbinden mit OAuth

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

Screenshot fo New GitHub Enterprise connection, OAuth dialog.

Mit einem persönlichen Zugriffstoken eine Verbindung herzustellen

  1. Informationen zum Erstellen eines persönlichen Zugriffstokens finden Sie unter Erstellen eines persönlichen Zugriffstokens.

    Tipp

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

  2. 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 sign in with PAT.

Mit einem Benutzername und Kennwort verbinden

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

Screenshot of sign in with username and password.

  1. 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 to select to add.

  2. 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. Schließen Sie die Integration ab, indem Sie die unter Bestätigen der Verbindung beschriebenen Verfahren befolgen.

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.

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.

Wenn die Azure Boards-Verbindung mit GitHub keinen Zugriff mehr hat, wird in der Benutzeroberfläche ein Warnstatus mit einem roten X und eine QuickInfo wie z. B. Verbindung mit GitHub kann nicht hergestellt werden angezeigt.

Beachten Sie die folgenden Lösungen:

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

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

Nach der Aktualisierung sollte der Abschnitt folgendermaßen aussehen.

<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