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
Melden Sie sich beim Webportal für Ihre GitHub Enterprise Server-Instanz an.
Wählen Sie „Einstellungen>Developer-Einstellungen>Oauth Apps>New OAuth-App“ aus.
Geben Sie Ihre Informationen ein, um Ihre Azure DevOps Server-Anwendung zu registrieren.
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.
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
Wählen Sie Anwendung registrieren aus.
Eine Seite wird angezeigt, die die Client-ID und den Geheimen Clientschlüssel für Ihre registrierte OAuth-Anwendung enthält.
Registrieren Ihrer OAuth-Konfiguration in Azure DevOps Server
Melden Sie sich beim Webportal für Ihre Azure DevOps Server-Instanz an.
Fügen Sie Ihrer Azure DevOps Server-Sammlung die GitHub Enterprise-OAuth-Konfiguration hinzu.
Wählen Sie „Administratoreneinstellungen>Oauth-Konfigurationen>Oauth-Konfiguration hinzufügen“ aus.
Geben Sie Ihre Informationen ein, und wählen Sie dann „Erstellen“ aus.
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.
Öffnen Sie das Webportal für Ihre Azure DevOps Server-Instanz.
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.
Wählen Sie „Projekteinstellungen>GitHub-Verbindungen“ aus.
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:
- Persönliches Zugriffstoken, sieheHerstellen einer Verbindung mit einem persönlichen Zugriffstoken.
- Benutzername und Kennwort, siehe Herstellen einer Verbindung mit Benutzername und Kennwort.
Wählen Sie andernfalls
Neue Verbindung und im Dialogfeld Neue Verbindung Ihre Authentifizierungsmethode aus.
Wählen Sie „Projekteinstellungen>GitHub-Verbindungen>Verbinden Sie Ihr GitHub Enterprise-Konto“ aus.
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.
Mit einem persönlichen Zugriffstoken eine Verbindung herzustellen
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
.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.
Mit einem 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. Wählen Sie dann Verbinden aus.
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.
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.
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>