Łączenie usługi Azure Boards z usługą GitHub (w chmurze)

Azure DevOps Services

Użyj repozytoriów GitHub.com do tworzenia oprogramowania i projektu usługi Azure Boards, aby zaplanować i śledzić swoją pracę. Połącz projekt i repozytorium, aby zatwierdzenia i żądania ściągnięcia usługi GitHub zostały połączone z elementami roboczymi w usłudze Azure Boards.

Uwaga

Usługi Azure Boards i Azure DevOps Services obsługują integrację z repozytoriami GitHub.com i GitHub Enterprise Server. Jeśli chcesz nawiązać połączenie z lokalnego serwera Azure DevOps Server, zobacz Connect Azure DevOps Server to GitHub Enterprise Server (Łączenie serwera Azure DevOps Server z serwerem GitHub Enterprise Server).

Wymagania wstępne

  • Wymagania dotyczące projektu: masz projekt usługi Azure DevOps. Jeśli nie masz projektu, utwórz go.

  • Uprawnienia:

    • Być członkiem grupy Administratorzy projektu. Jeśli projekt został utworzony, masz uprawnienia.
    • Być administratorem lub właścicielem repozytorium GitHub, z którymi chcesz się połączyć. Możesz nawiązać połączenie z wieloma repozytoriami GitHub, o ile jesteś administratorem tych repozytoriów.

Opcje uwierzytelniania

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

GitHub.com

GitHub Enterprise Server

Uwaga

Jeśli zdecydujesz się nawiązać połączenie z usługą GitHub przy użyciu tokenu PAT, skonfiguruj logowanie jednokrotne dla tokenu dostępu na koncie usługi GitHub. Ta konfiguracja jest niezbędna do pobrania listy repozytoriów z organizacji z włączonym uwierzytelnianiem jednokrotnym usługi Security Assertion Markup Language (SAML).

Łączenie usługi Azure Boards z repozytorium GitHub.

  1. Zaloguj się do projektu (https://dev.azure.com/{Your_Organization/Your_Project}).

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

    Zrzut ekranu przedstawiający otwieranie połączeń usługi GitHub ustawień>projektu.

  3. Jeśli po raz pierwszy nawiązujesz połączenie z projektu, wybierz pozycję Połącz konto usługi GitHub, aby użyć poświadczeń konta usługi GitHub.

    Zrzut ekranu przedstawiający nawiązywanie połączenia po raz pierwszy przy użyciu poświadczeń usługi GitHub.

    W przeciwnym razie wybierz pozycję Nowe połączenie i wybierz metodę uwierzytelniania w oknie dialogowym Nowe połączenie.

    Po nawiązaniu połączenia z kontem usługi GitHub użyj poświadczeń usługi GitHub do uwierzytelniania. Aby użyć pat, zobacz Dodawanie połączenia usługi GitHub przy użyciu tokenu PAT. Aby nawiązać połączenie z serwerem GitHub Enterprise Server, zobacz Rejestrowanie usługi Azure DevOps w usłudze GitHub jako aplikacji OAuth.

Dodawanie połączenia usługi GitHub z poświadczeniami usługi GitHub

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

  1. Jeśli po raz pierwszy nawiązujesz połączenie z usługą GitHub z usługi Azure Boards, zaloguj się przy użyciu poświadczeń usługi GitHub. Wybierz konto, dla którego jesteś administratorem repozytorium.

  2. Wybierz konto usługi GitHub lub organizację, z którą chcesz nawiązać połączenie. Wyświetlane są tylko organizacje, których jesteś właścicielem lub administratorem.

    Jeśli wszystkie repozytoria organizacji są już połączone z usługą Azure Boards, zostanie wyświetlony następujący komunikat:

    Zrzut ekranu przedstawiający komunikat, w którym nie ma więcej repozytoriów do nawiązania połączenia.

  3. Wprowadź poświadczenia usługi GitHub. Jeśli masz włączone uwierzytelnianie dwuskładnikowe, wprowadź kod uwierzytelniania wysyłany przez usługę GitHub i wybierz pozycję Weryfikuj. W przeciwnym razie system automatycznie rozpozna organizację usługi GitHub, ponieważ twoje konto usługi GitHub jest skojarzone z kontem usługi Azure DevOps Services.

Dodawanie repozytoriów GitHub

Po uwierzytelnieniu możesz wybrać repozytoria, z którymi chcesz się połączyć.

  1. Zostanie automatycznie wyświetlone okno dialogowe Dodawanie repozytoriów GitHub i wybierze wszystkie GitHub.com repozytoria, dla których jesteś administratorem w wybranej organizacji. Usuń zaznaczenie wszystkich repozytoriów, których nie chcesz uwzględnić w integracji.

    Zrzut ekranu przedstawiający repozytoria GitHub.

    Napiwek

    Aby uniknąć nieoczekiwanych linków do subskrypcji AB# , zalecamy połączenie repozytorium GitHub z projektami w ramach jednej organizacji usługi Azure DevOps. Połączenie tego samego repozytorium GitHub z projektami w wielu organizacjach usługi Azure DevOps może powodować problemy. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z integracją z usługą GitHub i usługą Azure Boards.

    Jeśli wszystkie repozytoria są już połączone z bieżącą lub inną organizacją, zostanie wyświetlony następujący komunikat:

    Zrzut ekranu przedstawiający komunikat, w którym nie ma więcej repozytoriów do nawiązania połączenia.

  2. Po wybraniu zaznaczenia wybierz pozycję Zapisz.

Potwierdzanie połączenia

  1. Przejrzyj wyświetloną stronę usługi GitHub, a następnie wybierz pozycję Zatwierdź, Zainstaluj i Autoryzuj.

    Zrzut ekranu przedstawiający potwierdzanie repozytoriów GitHub.

  2. Podaj hasło usługi GitHub, aby potwierdzić.

  3. Po zakończeniu powinno zostać wyświetlone nowe połączenie z wybranymi repozytoriami.

Zrzut ekranu przedstawiający listę połączonych repozytoriów.

Aby zmienić konfigurację lub zarządzać aplikacją usługi Azure Boards dla usługi GitHub, zobacz Zmienianie dostępu repozytorium do usługi Azure Boards.

Dodawanie połączenia usługi GitHub przy użyciu interfejsu PAT

Zalecamy użycie poświadczeń konta usługi GitHub w celu nawiązania połączenia z repozytorium GitHub. Jeśli musisz użyć tokenu PAT, wykonaj następujące kroki.

Napiwek

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

  1. Wybierz pozycję Osobisty token dostępu.

    Zrzut ekranu przedstawiający okno dialogowe Nowe połączenie usługi GitHub z wybieraniem osobistego tokenu dostępu.

    Aby utworzyć identyfikator PAT usługi GitHub, przejdź do pozycji Ustawienia > dewelopera usługi GitHub Osobiste tokeny dostępu.

  2. Wprowadź pat i wybierz pozycję Połącz.

    Zrzut ekranu przedstawiający wprowadzony token dostępu.

  3. Wybierz repozytoria, które chcesz połączyć z projektem, postępując zgodnie z procedurami opisanymi w artykule Wybieranie repozytoriów we wcześniejszej sekcji tego artykułu.

  4. Jeśli po raz pierwszy nawiąż połączenie z kontem usługi GitHub lub organizacją z usługi Azure Boards, zainstaluj aplikację Usługi Azure Boards dla usługi GitHub. Potwierdź połączenie wcześniej w tym artykule.

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

Aby połączyć usługę Azure DevOps z serwerem GitHub Enterprise Server przy użyciu protokołu OAuth, najpierw zarejestruj aplikację jako aplikację OAuth. Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji OAuth.

Rejestrowanie usług Azure DevOps Services

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

    Zrzut ekranu przedstawiający logowanie do serwera GitHub Enterprise.

  2. Otwórz pozycję Ustawienia Ustawienia Dla>>deweloperów Aplikacje>Oauth Nowa aplikacja OAuth.

    Zrzut ekranu przedstawiający sekwencję dla nowej aplikacji OAuth.

  3. Wprowadź informacje o rejestracji.

    W polu Adres URL strony głównej określ adres URL organizacji organizacji.
    W przypadku adresu URL wywołania zwrotnego autoryzacji użyj następującego wzorca, aby utworzyć adres URL.

    {Azure DevOps Services Organization URL}/_admin/oauth2/callback

    Na przykład:

    https://dev.azure.com/fabrikam/_admin/oauth2/callback

    Zrzut ekranu przedstawiający aplikację do zarejestrowania.

  4. Wybierz pozycję Zarejestruj aplikację.

  5. Zostanie wyświetlony identyfikator klienta i klucz tajny klienta dla zarejestrowanej aplikacji OAuth.

    Zrzut ekranu przedstawiający identyfikator klienta i klucz tajny klienta dla zarejestrowanej aplikacji OAuth.

Rejestrowanie konfiguracji protokołu OAuth w usłudze Azure DevOps Services

  1. Zaloguj się do portalu internetowego dla usług Azure DevOps Services.

  2. Dodaj konfigurację Oauth usługi GitHub Enterprise do swojej organizacji.

  3. W obszarze Ustawienia organizacji wybierz pozycję Konfiguracje Oauth Dodaj konfigurację> protokołu Oauth.

    Zrzut ekranu przedstawiający ustawienia otwórz organizację, konfiguracje protokołu OAuth.

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

    Okno dialogowe konfiguracji protokołu OAuth.

Łączenie usług Azure DevOps Services z serwerem GitHub Enterprise Server

Ważne

Aby połączyć usługi Azure DevOps Services z serwerem GitHub Enterprise Server, upewnij się, że serwer GitHub Enterprise Server jest dostępny z Internetu. Sprawdź, czy usługa Azure DNS może rozpoznać nazwę serwera GitHub Enterprise i czy zapora zezwala na dostęp z adresów IP centrum danych Azure. Aby określić zakres adresów IP, zobacz Zakresy adresów IP centrum danych platformy Microsoft Azure. Typowym komunikatem o błędzie dotyczącym problemów z łącznością jest:

Nie można rozpoznać nazwy zdalnej: "github-enterprise-server.contoso.com"

Jeśli wystąpi ten błąd, sprawdź dostępność serwera. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące usługi Azure DNS.

  1. Wybierz pozycję Ustawienia>projektu Połączenia>GitHub GitHub Enterprise Server dla połączenia po raz pierwszy.

    Najpierw wybierz pozycję GitHub Enterprise Server.

    Ewentualnie w oknie dialogowym Nowe połączenie z usługą GitHub wybierz pozycję GitHub Enterprise Server.

    Zrzut ekranu przedstawiający okno dialogowe Nowe połączenie z usługą GitHub i wybierz pozycję GitHub Enterprise Server.

  2. Wybierz metodę uwierzytelniania.

    Zrzut ekranu przedstawiający okno dialogowe metody uwierzytelniania.

    Nawiązywanie połączenia za pomocą protokołu OAuth

    Wybierz konfigurację skonfigurowaną w kroku 4 sekcji Rejestrowanie konfiguracji OAuth w usługach Azure DevOps Services, a następnie wybierz pozycję Połącz.

    Zrzut ekranu przedstawiający okno dialogowe Nowe połączenie z usługą GitHub Enterprise i połączenie OAuth.

    Nawiązywanie połączenia przy użyciu osobistego tokenu dostępu

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

    Zrzut ekranu przedstawiający okno dialogowe Nowe połączenie z usługą GitHub Enterprise, Osobiste połączenie tokenu dostępu.

    Nawiązywanie połączenia przy użyciu nazwy użytkownika i hasła

    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 ekran Nowe połączenie z usługą GitHub Enterprise, okno dialogowe Połączenie z nazwą użytkownika.

  3. 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ć. Wybierz Zapisz, gdy skończysz.

    Zrzut ekranu przedstawiający wymienione repozytoria.

    Napiwek

    Połączenie z repozytoriami zdefiniowanymi w jednej organizacji usługi GitHub można nawiązać tylko z repozytoriami. Aby połączyć projekt z innymi repozytoriami zdefiniowanymi w innej organizacji usługi GitHub, musisz dodać kolejne połączenie.

  4. Jeśli po raz pierwszy łączysz się z kontem usługi GitHub lub organizacją z usługi Azure Boards, zainstaluj również aplikację Usługi Azure Boards dla usługi GitHub. Potwierdź połączenie wcześniej w tym artykule.

Rozwiązywanie problemów z połączeniem

Integracja usługi Azure Boards-GitHub używa różnych protokołów uwierzytelniania do obsługi połączenia. Zmiany zakresu uprawnień użytkownika lub poświadczeń uwierzytelniania mogą odwoływać repozytoria GitHub połączone 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 usługi Azure Boards-GitHub.

Obsługiwane opcje uwierzytelniania

Następujące obsługiwane opcje uwierzytelniania zależą od platformy GitHub, z którą nawiązujesz 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 integrują się z repozytoriami GitHub.com i GitHub Enterprise Server. Usługa Azure DevOps Server 2019 i nowsze wersje obsługują integrację tylko z repozytoriami GitHub Enterprise Server. Integracja z innymi repozytoriami Git nie jest obsługiwana.

Udzielanie dostępu organizacji w usłudze Azure Boards

Jeśli integracja między usługami Azure Boards i GitHub nie działa zgodnie z oczekiwaniami, sprawdź, czy udzielono ci dostępu do organizacji.

  1. W portalu internetowym usługi GitHub otwórz pozycję Ustawienia z menu profilu.
    Zrzut ekranu przedstawiający otwarty profil, wybierz pozycję Ustawienia.

  2. Wybierz pozycję Aplikacje w obszarze Integracje autoryzowane aplikacje>OAuth w usłudze> Azure Boards.

  3. W obszarze Dostęp do organizacji rozwiąż wszelkie problemy, które mogą się pojawić. Wybierz pozycję Udziel , aby udzielić dostępu do wszystkich organizacji, które są wyświetlane jako oczekujące na żądanie dostępu.

    Zrzut ekranu przedstawiający dostęp do organizacji z organizacjami bez dostępu.

Rozwiązywanie problemów z dostępem

Gdy połączenie usługi Azure Boards z usługą GitHub utraci dostęp, w interfejsie użytkownika pojawi się stan alertu z czerwoną wartością X. Zatrzymaj wskaźnik myszy na alercie, aby zobaczyć, że poświadczenia nie są już prawidłowe. Aby rozwiązać ten problem, usuń połączenie i utwórz nowe.

Zrzut ekranu przedstawiający nieudane połączenie.

Aby rozwiązać ten problem, rozważ następujące elementy:

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

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

    • Użytkownik może nie mieć uprawnień 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.

Rozwiązywanie problemów z przerwanym połączeniem z serwerem GitHub Enterprise Server

Jeśli przeprowadzono migrację z usługi Azure DevOps Server do usług Azure DevOps Services przy użyciu istniejącego połączenia z serwerem GitHub Enterprise Server, istniejące połączenie może nie działać zgodnie z oczekiwaniami. Wzmianki o elementach roboczych w usłudze GitHub mogą być opóźnione lub nigdy nie są wyświetlane w usługach Azure DevOps Services, ponieważ adres URL wywołania zwrotnego skojarzony z usługą GitHub nie jest już prawidłowy. Rozważ następujące rozwiązania:

  • Usuń i ponownie utwórz połączenie: usuń i ponownie utwórz połączenie z repozytorium GitHub Enterprise Server. Postępuj zgodnie z sekwencją kroków podanych w sekcji Łączenie z dokumentacji usługi Azure Boards .

  • Napraw adres URL elementu webhook: przejdź do strony ustawień repozytorium usługi GitHub i zmodyfikuj adres URL elementu webhook wskazujący zmigrowany adres URL organizacji usługi Azure DevOps: https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

Nawiązywanie połączenia z wieloma organizacjami usługi Azure DevOps

Połączenie repozytorium GitHub z projektami w wielu organizacjach usługi Azure DevOps, takich jak dev.azure.com/Contoso i dev.azure.com/Fabrikam, może spowodować nieoczekiwane wyniki z wzmiankami AB# . Identyfikatory elementów roboczych nie są unikatowe w organizacjach usługi Azure DevOps, dlatego ab#12 może odwoływać się do elementu roboczego w firmie Contoso lub Fabrikam. Gdy element roboczy zostanie wymieniony w komunikacie zatwierdzenia lub żądaniu ściągnięcia, obie organizacje mogą próbować połączyć element roboczy z pasującym identyfikatorem, co powoduje zamieszanie.

Aby uniknąć tego problemu, połącz pojedyncze repozytorium GitHub tylko z jedną organizacją usługi Azure DevOps.

Uwaga

Podczas nawiązywania połączenia przy użyciu aplikacji Azure Boards dla usługi GitHub aplikacja uniemożliwia nawiązywanie połączeń z wieloma organizacjami. Jeśli repozytorium GitHub jest połączone z niewłaściwą organizacją usługi Azure DevOps, skontaktuj się z właścicielem tej organizacji, aby usunąć połączenie przed dodaniem repozytorium do właściwej organizacji usługi Azure DevOps.

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

Zaktualizuj definicje XML dla typów elementów roboczych, jeśli organizacja używa hostowanego kodu XML lub lokalnego modelu procesów XML, aby dostosować środowisko śledzenia pracy i połączyć się z typami linków Usługi GitHub z sekcji Programowanie w formularzach elementów roboczych.

Aby na przykład połączyć scenariusze użytkowników i usterki z zatwierdzeniami i żądaniami ściągnięcia usługi GitHub z sekcji Programowanie , zaktualizuj 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 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 zostać wyświetlona 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>  

Często zadawane pytania

.: Niektórzy użytkownicy w usłudze Azure DevOps mają tożsamości usługi GitHub. Czy muszę dodać je jako nowych użytkowników usługi GitHub do mojej organizacji?

Odpowiedź: Nie. Poproś użytkowników o wylogowanie się, a następnie zaloguj się ponownie do organizacji przy użyciu poświadczeń usługi GitHub z nowej sesji przeglądarki. Ta akcja spowoduje ustanowienie tożsamości usługi GitHub.

.: Jestem administratorem organizacji i włączono zasady zapraszania użytkowników usługi GitHub. Dlaczego nie mogę zaprosić nowych użytkowników usługi GitHub?

1: Po zmianie ustawienia wyloguj się z usługi Azure DevOps, a następnie zaloguj się ponownie do organizacji (dev.azure.com/{organizationName} lub organizationName.visualstudio.com) przy użyciu poświadczeń usługi GitHub z nowej sesji przeglądarki.

.: Zalogowałem się przy użyciu poświadczeń usługi GitHub, ale dlaczego nie mogę zaprosić użytkowników usługi GitHub?

1: Tylko administratorzy organizacji lub projektu mogą zapraszać nowych użytkowników do dołączenia do organizacji. Być może nie masz wymaganych uprawnień do dodawania nowych użytkowników. Skontaktuj się z administratorem, aby uzyskać niezbędne uprawnienia lub poprosić go o dodanie użytkownika.

Następne kroki