Połączenie azure DevOps Server do usługi GitHub (lokalnie)

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

Po połączeniu projektu usługi Azure DevOps Server z repozytoriami GitHub można łączyć się między zatwierdzeniami usługi GitHub i żądaniami ściągnięcia do elementów roboczych. Usługi GitHub można używać do tworzenia oprogramowania podczas planowania i śledzenia pracy przy użyciu usługi Azure Boards.

Uwaga

Lokalna usługa Azure DevOps Server 2020 obsługuje integrację z repozytoriami GitHub.com i GitHub Enterprise Server. Jeśli chcesz nawiązać połączenie z usług Azure DevOps Services, zobacz Połączenie Azure Boards do usługi GitHub.

Po połączeniu projektu usługi Azure DevOps Server z repozytoriami serwera GitHub Enterprise Server można łączyć się między zatwierdzeniami usługi GitHub i żądaniami ściągnięcia do elementów roboczych. Usługi GitHub Enterprise można używać do tworzenia oprogramowania podczas planowania i śledzenia pracy przy użyciu usługi Azure Boards.

Uwaga

Lokalna usługa Azure DevOps Server 2019 obsługuje integrację z repozytoriami GitHub Enterprise Server. Jeśli chcesz nawiązać połączenie z usług Azure DevOps Services, zobacz Połączenie Azure Boards do usługi GitHub.

Wymagania wstępne

Opcje uwierzytelniania

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

Uwaga

Protokół OAuth nie jest obsługiwany w przypadku usługi Azure DevOps Server 2020.

Rejestrowanie usługi Azure DevOps w usłudze GitHub jako aplikacji OAuth

Jeśli planujesz używać protokołu OAuth do łączenia serwera Azure DevOps Server z serwerem GitHub Enterprise Server, najpierw musisz zarejestrować aplikację jako aplikację OAuth. Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji OAuth.

Rejestrowanie usługi Azure DevOps Server

  1. Zaloguj się do portalu internetowego dla serwera GitHub Enterprise.

    Screenshot of sign in for GitHub Enterprise Server.

  2. Wybierz pozycję Ustawienia> Ustawienia>Oauthoper>— nowa aplikacja OAuth.

    Screenshot showing sequence for getting to New OAuth App screen.

  3. Wprowadź informacje, aby zarejestrować aplikację usługi Azure DevOps Server.

    Screenshot of Azure DevOps Server project registration.

    W polu Adres URL strony głównej określ publiczny adres URL kolekcji projektu. Ten adres URL można znaleźć po otwarciu konsoli usługi Azure DevOps Administracja istration i wyświetleniu węzła Warstwa aplikacji.

    Screenshot of Azure DevOps Server Administration Console, Application Tier.

    W przypadku adresu URL wywołania zwrotnego autoryzacji użyj następującego wzorca, aby utworzyć adres URL.

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

    Na przykład:

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

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

  4. Wybierz pozycję Zarejestruj aplikację.

  5. Zostanie wyświetlona strona zawierająca identyfikator klienta i klucz tajny klienta dla zarejestrowanej aplikacji OAuth.

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

Rejestrowanie konfiguracji protokołu OAuth na serwerze Azure DevOps Server

  1. Zaloguj się do portalu internetowego dla serwera Usługi Azure DevOps.

  2. Dodaj konfigurację Oauth usługi GitHub Enterprise do kolekcji usługi Azure DevOps Server.

  3. Wybierz pozycję Administracja ustawienia>Konfiguracje>uwierzytelniania Oauth Dodaj konfigurację protokołu Oauth.

    Screenshot showing step sequence to add OAuth configuration.

  4. Wprowadź informacje, a następnie wybierz pozycję Utwórz.

    Screenshot of OAuth configuration dialog.

Połączenie serwera Azure DevOps Server do usługi GitHub Enterprise Server

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

Uwaga

Połączenie ion do ponad 100 repozytoriów GitHub wymaga aktualizacji serwera Azure DevOps Server 2020.1 lub nowszej.
Połączenie do repozytoriów GitHub.com wymaga usługi Azure DevOps Server 2020.1.1 Patch 2 lub nowszej wersji.

Możesz połączyć maksymalnie 100 repozytoriów GitHub z projektem usługi Azure Boards. Tego limitu nie można zmienić.

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

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

  1. Wybierz pozycję Ustawienia>projektu Połączenia GitHub.

    Screenshot of open Project Settings>GitHub connections.

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

    Screenshot of first time connecting with GitHub credentials.

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

  1. Wybierz pozycję Ustawienia>projektu Połączenia> GitHub Połączenie konto usługi GitHub Enterprise.

    Screenshot of Project settings, selected Integrations.

    Możesz też wybrać osobisty token dostępu lub nazwę użytkownika i hasło, jeśli używasz tych poświadczeń.

Połączenie z uwierzytelnianiem OAuth

Wybierz konfigurację skonfigurowaną w kroku 4 sekcji Rejestrowanie konfiguracji OAuth na serwerze Azure DevOps Server. Następnie wybierz pozycję Połączenie.

Screenshot fo New GitHub Enterprise connection, OAuth dialog.

Połączenie z osobistym tokenem dostępu

  1. Aby utworzyć osobisty token dostępu, zobacz Tworzenie osobistego tokenu dostępu.

    Napiwek

    Podczas tworzenia identyfikatora PAT usługi GitHub upewnij się, że zostały uwzględnione następujące zakresy: repo, admin:repo_hook, read:user, user:email.

  2. Wprowadź adres URL serwera GitHub Enterprise i poświadczenia osobistego tokenu dostępu rozpoznane przez ten serwer. A następnie wybierz pozycję Połączenie.

Screenshot of sign in with PAT.

Połączenie z nazwą użytkownika i hasłem

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

Screenshot of sign in with username and password.

  1. W oknie dialogowym są wyświetlane wszystkie repozytoria, dla których masz uprawnienia administracyjne usługi GitHub. 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 .

    Screenshot of repositories to select to add.

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

Rozwiązywanie problemów z połączeniem

Integracja usługi 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 usługą Azure Boards.

Aby zapoznać się z omówieniem integracji obsługiwanej przez aplikację Usługi Azure Boards dla usługi GitHub, zobacz Integracja z usługą Azure Boards-GitHub.

Obsługiwane opcje uwierzytelniania

Poniższe opcje uwierzytelniania są obsługiwane na podstawie platformy GitHub, z którą chcesz nawiązać połączenie.

Platforma

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

  • konto użytkownika GitHub.com
  • Osobisty token dostępu (PAT)
  • OAuth
  • Osobisty token dostępu
  • Nazwa użytkownika i hasło

Oprogramowanie Azure DevOps Server 2020

Nie dotyczy

  • Osobisty token dostępu
  • Nazwa użytkownika i hasło

Azure DevOps Server 2019

Nie dotyczy

  • OAuth
  • Osobisty token dostępu
  • Nazwa użytkownika i hasło

Uwaga

Dzięki aplikacji Azure Boards dla usług GitHub usługi Azure Boards i Azure DevOps Services obsługują integrację z repozytoriami GitHub.com i GitHub Enterprise Server. Serwery Azure DevOps Server 2019 i nowsze obsługują integrację tylko z repozytoriami GitHub Enterprise Server. Integracja z innymi repozytoriami Git nie jest obsługiwana.

Rozwiązywanie problemów z dostępem

Gdy połączenie usługi Azure Boards z usługą GitHub nie ma już dostępu, wyświetla stan alertu w interfejsie użytkownika z czerwonym-X. Umieść kursor na alercie i wskazuje, że poświadczenia nie są już prawidłowe. Aby rozwiązać ten problem, usuń połączenie i utwórz ponownie nowe połączenie.

Screenshot of failed connection.

Gdy połączenie usługi Azure Boards z usługą GitHub nie ma już dostępu, w interfejsie użytkownika jest wyświetlany stan alertu z czerwoną etykietką narzędzia, taką jak Nie można nawiązać połączenia z usługą GitHub.

Rozważ następujące rozwiązania:

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

    • Aplikacja usługi Azure Boards nie mogła uzyskać dostępu do jednego z repozytoriów.

    • Usługa 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. To ponowne utworzenie połączenia powoduje, że usługa GitHub wyświetli monit o ponowne uwierzytelnienie usługi Azure Boards.

  • Jeśli połączenie korzysta z patu:

    • Być może identyfikator pat został odwołany lub zmienione wymagane zakresy uprawnień i są niewystarczające.

    • Użytkownik mógł utracić uprawnienia administratora w repozytorium GitHub.

      Utwórz ponownie identyfikator 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 organizacja używa hostowanego kodu XML lub lokalnego modelu przetwarzania XML w celu dostosowania środowiska śledzenia pracy, a następnie chcesz połączyć się z typami linków usługi GitHub z sekcji Programowanie w formularzach elementów roboczych, musisz zaktualizować definicje XML dla typów elementów roboczych.

Jeśli na przykład chcesz połączyć historie użytkowników i usterki z zatwierdzeniami i żądaniami ściągnięcia usługi GitHub z sekcji Programowanie , musisz zaktualizować definicje XML dla scenariuszy użytkowników i usterek.

Postępuj zgodnie z sekwencją zadań udostępnionych w modelu procesów hostowanego XML, aby zaktualizować definicje XML. Dla każdego typu elementu roboczego znajdź sekcję Group Label="Development" i dodaj następujące dwa wiersze w następującej składni kodu, aby obsługiwać typy linków zewnętrznych: Zatwierdzenie usługi GitHub i żądanie ściągnięcia w usłudze GitHub.

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

Następne kroki