Problembehandlung bei einer Azure-Boards-GitHub-Integration

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019

Die Azure-Boards-GitHub-Integration basiert auf verschiedenen Authentifizierungsprotokollen, um die Verbindung zu unterstützen. Änderungen des Berechtigungsbereichs eines Benutzers oder der Authentifizierungsanmeldeinformationen können einen Widerruf der GitHub Repositorys verursachen, die mit Azure Boards verbunden sind.

Eine Übersicht über die Integration, die die Azure Boards-App für GitHub unterstützt, finden Sie unter Azure Boards-GitHub Integration.

Unterstützte Authentifizierungsoptionen

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

Plattform

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

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

Azure DevOps Server 2020

Nicht verfügbar

  • Persönliche Zugriffstoken
  • Benutzername plus Kennwort

Azure DevOps Server 2019

Nicht verfügbar

  • OAuth
  • Persönliche Zugriffstoken
  • Benutzername plus 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. Die Integration mit anderen Git-Repositorys wird nicht unterstützt.

Hinweis

Mit der Azure Boards-App für GitHub unterstützen Azure DevOps Servers 2019 und höher die Integration mit GitHub Enterprise Server-Repositorys. Die Integration mit anderen Git-Repositorys wird nicht unterstützt.

Beheben von Verbindungsproblemen

Wenn die Azure Boards Verbindung mit GitHub keinen Zugriff mehr hat, wird ein Warnungsstatus in der Benutzeroberfläche mit einem roten X angezeigt. Zeigen Sie auf die Warnung, und es gibt an, dass die Anmeldeinformationen nicht mehr gültig sind. Um das Problem zu beheben, entfernen Sie die Verbindung, und erstellen Sie eine neue Verbindung neu.

Screenshot of failed connection.

Wenn die Azure Boards Verbindung mit GitHub keinen Zugriff mehr hat, wird ein Warnungsstatus in der Benutzeroberfläche mit einer Red-X angezeigt, die eine Toolinfo enthält, z. B. eine Verbindung mit GitHub nicht herstellen kann.

Um das Problem zu beheben, sollten Sie die folgenden Elemente berücksichtigen:

  • Wenn die Verbindung OAuth verwendet:

    • Die Azure Boards Anwendung hatte ihren Zugriff auf einen der Repositorys verweigert.

    • GitHub ist möglicherweise nicht verfügbar/nicht erreichbar. Diese Nichtverfügbarkeit könnte aufgrund eines Ausfalls in einem Dienst oder einem Netzwerkproblem vor dem Prem sein. Sie können den Dienststatus über die folgenden Links überprüfen:

      Um das erste Problem zu beheben, löschen Und erstellen Sie die Verbindung mit dem GitHub Repository neu. Diese neu erstellte Verbindung führt dazu, dass GitHub aufgefordert wird, Azure Boards erneut zu authentifizieren.

  • Wenn die Verbindung ein PAT verwendet:

    • Das PAT wurde möglicherweise widerrufen oder die erforderlichen Berechtigungsbereiche geändert und sind unzureichend.

    • Der Benutzer hat möglicherweise Administratorberechtigungen für das GitHub-Repo verloren.

      Um zu beheben, erstellen Sie das PAT 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 Serververbindung

Wenn Sie von Azure DevOps Server zu Azure DevOps Services mit einer vorhandenen GitHub Enterprise Serververbindung migriert haben, funktioniert Ihre vorhandene Verbindung nicht wie erwartet. Arbeitselement-Erwähnungen innerhalb GitHub können verzögert oder nie in Azure DevOps Services angezeigt werden. Dieses Problem tritt auf, da die mit GitHub verknüpfte Rückruf-URL nicht mehr gültig ist.

Um das Problem zu beheben, sollten Sie die folgenden Lösungen berücksichtigen:

  • Entfernen und erneut erstellen Sie die Verbindung: Entfernen und erstellen Sie die Verbindung zum GitHub Enterprise Server-Repository neu. Führen Sie die Reihenfolge der in Verbinden bereitgestellten Schritte aus Azure Boards Dokumentation aus.

  • Beheben Sie die Webhook-URL: Wechseln Sie zur Seite "Repositoryeinstellungen" GitHub, und bearbeiten Sie die Webhook-URL, um auf die migrierte Azure DevOps Services Organisations-URL hinzuweisen:https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

Herstellen einer Verbindung mit mehreren Azure DevOps Organisationen

Wenn Sie Ihr GitHub-Repository mit zwei oder mehreren 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 eine Verknüpfung mit Arbeitselementen herzustellen. Dieses Problem tritt auf, da Arbeitselement-IDs nicht in Azure DevOps Organisationen eindeutig sind, sodass AB#12 auf ein Arbeitselement in der Contoso- oder Fabrikam-Organisation verweisen kann. Wenn also ein Arbeitselement in einer Commitnachricht oder Pullanforderung erwähnt wird, versuchen beide Organisationen, einen Link zu einem Arbeitselement mit einer übereinstimmenden ID (falls vorhanden) zu erstellen.

Im Allgemeinen beabsichtigt ein Benutzer eine AB# -Erwähnung, um einen Link zu einem einzelnen Arbeitselement in einem der Projekte zu verknüpfen. Wenn jedoch ein Arbeitselement derselben ID in beiden Konten vorhanden ist, werden Links für beide Arbeitselemente erstellt, wahrscheinlich zu Verwirrung.

Derzeit gibt es keine Möglichkeit, um dieses Problem zu umgehen, daher empfehlen wir, dass Sie nur ein einzelnes GitHub-Repository mit einer einzigen Azure DevOps Organisation verbinden.

Hinweis

Beim Herstellen der Verbindung mithilfe der Azure Boards-App für GitHub verhindert die App, dass Sie eine Verbindung mit zwei verschiedenen Organisationen herstellen. Wenn ein GitHub-Repository falsch mit der falschen Azure DevOps Organisation verbunden ist, müssen Sie den Besitzer dieser Organisation kontaktieren, um die Verbindung zu entfernen, bevor Sie das Repository zur richtigen Azure DevOps Organisation hinzufügen können.

Aktualisieren von XML-Definitionen für die Auswahl von Arbeitselementtypen

Wenn Ihre Organisation das gehostete XML- oder lokale XML-Prozessmodell verwendet, um die Arbeitsverfolgungsumgebung anzupassen und die GitHub Linktypen aus dem Abschnitt "Entwicklung" in den Arbeitselementformularen anzuzeigen, müssen Sie die XML-Definitionen für die Arbeitselementtypen aktualisieren.

Wenn Sie beispielsweise Benutzergeschichten und Fehler mit GitHub Commits verknüpfen und Anforderungen aus dem Abschnitt "Entwicklung" abrufen möchten, müssen Sie die XML-Definitionen für Benutzergeschichten und Fehler aktualisieren.

Folgen Sie der Reihenfolge der in gehosteten XML-Prozessmodell bereitgestellten Aufgaben, um die XML-Definitionen zu aktualisieren. Suchen Sie für jeden Arbeitselementtyp den Group Label="Development" Abschnitt, und fügen Sie die folgenden beiden Zeilen in der folgenden Codesyntax hinzu, um die externen Linkstypen zu unterstützen: GitHub Commit- und GitHub Pull-Anforderung.

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

Beim Aktualisieren sollte der Abschnitt wie dargestellt 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>