Udostępnij za pośrednictwem


Łączenie Azure DevOps Server z GitHub (lokalnie)

Azure DevOps Server | Azure DevOps Server 2022

Po połączeniu projektu Azure DevOps Server z repozytoriami GitHub jest obsługiwane łączenie między zatwierdzeniami GitHub a pull requestami z elementami roboczymi. Możesz użyć GitHub do tworzenia oprogramowania podczas planowania i śledzenia pracy przy użyciu Azure Boards.

Note

Azure DevOps Server obsługuje integrację z repozytoriami GitHub.com i GitHub Enterprise Server. Aby nawiązać połączenie z usług Azure DevOps, zobacz Połączenie Azure Boards z GitHub.

Prerequisites

Category Requirements
uprawnienia — Członek grupy Administratorów Kolekcji Projektu oraz grupy Współpracowników Projektu . Jeśli utworzyłeś projekt, masz uprawnienia.
- Administrator serwera GitHub Enterprise Server, z którym nawiązujesz połączenie.
członkostwo w projekcie członek projektu.
Integracja z GitHub - Azure DevOps Server 2020.1.1 Patch 2. Bez tej poprawki można łączyć się tylko z repozytoriami GitHub Enterprise Server.
- Aplikacja Azure Boards dla GitHub zainstalowana w organizacjach lub koncie GitHub.

Opcje uwierzytelniania

Obsługiwane są następujące opcje uwierzytelniania:

Note

Uwierzytelnianie OAuth nie jest obsługiwane w Azure DevOps Server 2020.

Łączenie Azure DevOps Server z serwerem GitHub Enterprise Server

Z projektem Azure Boards można połączyć maksymalnie 250 repozytoriów GitHub.

  1. Otwórz portal internetowy dla Azure DevOps Server.

  2. Wybierz logo Azure DevOps, aby otworzyć Projects, a następnie wybierz projekt Azure Boards, który chcesz skonfigurować w celu nawiązania połączenia z repozytoriami GitHub Enterprise.

  3. Wybierz pozycję Ustawienia projektu>GitHub połączenia.

    Zrzut ekranu otwartych ustawień projektu, połączeń GitHub.

  4. Jeśli po raz pierwszy wykonujesz połączenie z projektu, wybierz metodę uwierzytelniania, której chcesz użyć, aby nawiązać połączenie:

     Zrzut ekranu przedstawiający pierwszy raz nawiązywanie połączenia z GitHub credentials.

    W przeciwnym razie wybierz pozycję Nowe połączenie, a następnie wybierz metodę uwierzytelniania w oknie dialogowym Nowe połączenie.

Łączenie Azure DevOps Server z osobistym tokenem dostępu GitHub

  1. Aby utworzyć GitHub PAT, zobacz Tworzenie GitHub PAT.

    Tip

    Podczas tworzenia GitHub PAT upewnij się, że uwzględniasz następujące zakresy: repo, admin:repo_hook, read:user, user:email.

  2. Wprowadź adres URL serwera GitHub Enterprise oraz dane uwierzytelniające Personal access token akceptowane przez ten serwer. A następnie wybierz pozycję Połącz.

    Ośmień ekranu przedstawiający logowanie za pomocą GitHub PAT.

Połącz Azure DevOps Server przy użyciu poświadczeń GitHub

  1. Wprowadź adres URL serwera GitHub Enterprise i poświadczenia konta administratora rozpoznane przez ten serwer. A następnie wybierz pozycję Połącz.

     Zrzut ekranu przedstawiający logowanie przy użyciu GitHub credentials.

  2. W oknie dialogowym są wyświetlane wszystkie repozytoria, dla których masz GitHub prawa administracyjne. Możesz przełączać się między elementami Mine i All , aby określić, czy inne są wyświetlane, a następnie sprawdzić te, które chcesz dodać. Po zakończeniu wybierz pozycję Zapisz .

    Zrzut ekranu repozytoriów do dodania.

  3. Aby nawiązać połączenie z kontem GitHub lub organizacją z Azure Boards po raz pierwszy, zainstaluj również aplikację Azure Boards dla GitHub. Wykonaj integrację, postępując zgodnie z procedurami opisanymi w temacie Potwierdzanie połączenia.

Rozwiązywanie problemów z połączeniem

Integracja Azure Boards GitHub opiera się na różnych protokołach uwierzytelniania do obsługi połączenia. Zmiany zakresu uprawnień użytkownika lub poświadczeń uwierzytelniania mogą spowodować odwołanie repozytoriów GitHub połączonych z Azure Boards.

Aby zapoznać się z przeglądem integracji aplikacji Azure Boards dla GitHub, zobacz Azure Boards-GitHub integration.

W interfejsie użytkownika jest wyświetlany stan alarmowy z czerwonym X, gdy połączenie Azure Boards z GitHub traci dostęp. Najedź kursorem na komunikat ostrzegawczy, a zobaczysz, że poświadczenia nie są już prawidłowe. Aby rozwiązać ten problem, usuń połączenie i utwórz ponownie nowe połączenie.

Zrzut ekranu przedstawiający nieudane połączenie.

Rozważ następujące postanowienia:

  • Jeśli połączenie korzysta z protokołu OAuth:

    • Aplikacja Azure Boards odmówiła dostępu dla jednego z repozytoriów.

    • GitHub może być niedostępna/nieosiągalna. Ta niedostępność może być przyczyną awarii w usłudze lub problemu z infrastrukturą/siecią lokalną. Stan usługi można sprawdzić za pomocą następujących linków:

      Usuń i ponownie utwórz połączenie z repozytorium GitHub. Ponowne utworzenie tego połączenia powoduje, że GitHub poprosi o ponowne uwierzytelnienie w Azure Boards.

  • Jeśli połączenie korzysta z GitHub PAT:

    • GitHub pat został odwołany lub wymagane zakresy uprawnień zostały zmienione i są niewystarczające.

    • Użytkownik może utracić uprawnienia administracyjne w repozytorium GitHub.

      Utwórz ponownie GitHub pat i upewnij się, że zakres tokenu obejmuje wymagane uprawnienia: repo, read:user, user:email, admin:repo_hook.

Aktualizowanie definicji XML dla wybranych typów elementów roboczych

Jeśli Twoja organizacja dostosowuje śledzenie pracy przy użyciu hostowanego modelu procesów XML lub lokalnego modelu procesu XML i chce zintegrować typy łączy GitHub z sekcją Tworzenie formularzy elementów roboczych, musisz zaktualizować definicje XML odpowiednich typów elementów roboczych.

Aby, na przykład, połączyć historie użytkowników i błędy z zatwierdzeniami i żądaniami ściągnięcia w GitHub w sekcji Development formularzy elementów roboczych, należy zaktualizować definicje XML dla tych typów elementów roboczych.

Aby zmodyfikować definicje XML, wykonaj kroki opisane w temacie Hostowany model przetwarzania XML. Dla każdego typu elementu roboczego:

  1. Znajdź sekcję Group Label="Development" .
  2. Aby obsługiwać typy linków zewnętrznych, GitHub Commit i GitHub Pull Request dodaj następujące wiersze kodu:

Ta integracja umożliwia bezproblemowe śledzenie działań GitHub z poziomu elementów roboczych w Azure Boards.

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

Po zaktualizowaniu sekcja powinna być wyświetlana w następujący sposób.

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

Dalsze kroki