Połączenie usługi Azure Boards do usługi 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łączenie projektu 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 Połączenie Azure DevOps Server z usługą GitHub Enterprise Server.

Wymagania wstępne

  • Musisz mieć projekt usługi Azure Boards lub Azure DevOps. Jeśli nie masz jeszcze projektu, utwórz go.
  • Musisz być członkiem grupy project Administracja istrators. Jeśli projekt został utworzony, masz uprawnienia.
  • Aby nawiązać połączenie, musisz być administratorem lub właścicielem repozytorium GitHub. 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, upewnij się, że skonfigurowano logowanie jednokrotne dla tokenu DOSTĘPU na koncie usługi GitHub. Jest to konieczne, aby można było uzyskać listę repozytoriów organizacji ze skonfigurowanym uwierzytelnianiem jednokrotnym usługi Security Assertion Markup Language (SAML).

Połączenie usługi Azure Boards do repozytorium GitHub.

  1. Zaloguj się do projektu usługi Azure DevOps.

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

    Zrzut ekranu przedstawiający otwieranie połączeń programu Project Ustawienia> GitHub.

  3. Jeśli po raz pierwszy utworzysz połączenie z projektu, wybierz pozycję Połączenie 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 Nowa Połączenie ion.

    Podczas nawiązywania połączenia przy użyciu konta usługi GitHub użyj poświadczeń konta 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, zostanie wyświetlony monit o zalogowanie 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 te 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 wysłany przez usługę GitHub i wybierz pozycję Weryfikuj. W przeciwnym razie system automatycznie rozpoznaje twoją organizację w usłudze GitHub, ponieważ twoje konto usługi GitHub jest skojarzone z kontem usługi Azure DevOps Services.

Wybieranie repozytoriów

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 wybranej organizacji. Usuń zaznaczenie wszystkich repozytoriów, których nie chcesz uczestniczyć w integracji.

    Zrzut ekranu przedstawiający repozytoria GitHub.

    Napiwek

    Zalecamy połączenie repozytorium GitHub tylko z projektami zdefiniowanymi w jednej organizacji usługi Azure DevOps. Połączenie tego samego repozytorium GitHub do projektów zdefiniowanych w co najmniej dwóch organizacjach usługi Azure DevOps może prowadzić do nieoczekiwanego Łączenie wzmianki w języku AB#. 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 zakończeniu wybierz opcję 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 jednak musisz użyć tokenu dostępu, wykonaj te procedury.

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 GitHub Developer Ustawienia > Osobiste tokeny dostępu.

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

    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 we wcześniejszej sekcji Wybieranie repozytoriów w tym artykule.

  4. Jeśli po raz pierwszy łączysz się z kontem usługi GitHub lub organizacją z usługi Azure Boards, musisz również zainstalować 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

Jeśli planujesz używać protokołu OAuth do łączenia usługi Azure DevOps z serwerem GitHub Enterprise Server, najpierw musisz zarejestrować 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 Ustawienia> Ustawienia>Oauthoper>— 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 konfiguracje open organization Ustawienia i OAuth.

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

    Okno dialogowe konfiguracji protokołu OAuth.

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

Ważne

Aby połączyć usługi Azure DevOps Services z serwerem GitHub Enterprise Server, serwer GitHub Enterprise Server musi być wystarczająco dostępny z Internetu. Upewnij się, że usługa Azure DNS może rozpoznać nazwę serwera GitHub Enterprise, a 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. Typowy komunikat o błędzie napotkany, gdy występują problemy z łącznością:

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

Jeśli wystąpi ten błąd, sprawdź, czy serwer jest dostępny. 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.

    Połączenie z uwierzytelnianiem OAuth

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

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

    Połączenie z osobistym tokenem 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łączenie.

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

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

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

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

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

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 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. Ten problem występuje, 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 Połą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

Połączenie do wielu organizacji usługi Azure DevOps

Jeśli połączysz repozytorium GitHub z co najmniej dwoma projektami zdefiniowanymi w więcej niż jednej organizacji usługi Azure DevOps, na przykład dev.azure.com/Contoso i dev.azure.com/Fabrikam, podczas korzystania z funkcji AB# można uzyskać nieoczekiwane wyniki podczas używania wzmianek AB# łączących się z elementami roboczymi. Ten problem występuje, ponieważ 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 organizacji Contoso lub Fabrikam. Gdy element roboczy zostanie wymieniony w komunikacie zatwierdzenia lub żądaniu ściągnięcia, obie organizacje mogą próbować utworzyć link do elementu roboczego z pasującym identyfikatorem, jeśli istnieje.

Ogólnie rzecz biorąc, użytkownik zamierza wspomnieć AB# o łączeniu do jednego elementu roboczego w jednym z projektów. Jeśli jednak element roboczy tego samego identyfikatora istnieje na obu kontach, linki zostaną utworzone dla obu elementów roboczych, co prawdopodobnie powoduje zamieszanie.

Obecnie nie ma możliwości obejścia tego problemu, dlatego zalecamy połączenie pojedynczego repozytorium GitHub tylko z jedną organizacją usługi Azure DevOps.

Uwaga

Po nawiązaniu połączenia przy użyciu aplikacji Azure Boards dla usługi GitHub aplikacja uniemożliwia nawiązywanie połączenia z dwiema różnymi organizacjami. Jeśli repozytorium GitHub jest niepoprawnie połączone z niewłaściwą organizacją usługi Azure DevOps, musisz skontaktować się z właścicielem tej organizacji, aby usunąć połączenie, zanim będzie można dodać repozytorium do właściwej organizacji usługi Azure DevOps.

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

Zaktualizuj definicje XML typów elementów roboczych, jeśli organizacja używa hostowanego kodu XML lub lokalnego modelu procesów XML w celu dostosowania środowiska śledzenia pracy i chcesz połączyć się z typami linków usługi GitHub z sekcji Programowanie w formularzach 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>  

Często zadawane pytania (często zadawane pytania)

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

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

Pyt.: Jestem organizacją Administracja istrator i włączyłem zasady umożliwiające zapraszanie 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 z nowej sesji przeglądarki zaloguj się ponownie do organizacji dev.azure.com/{organizationName} lub organizationName.visualstudio.com przy użyciu poświadczeń usługi GitHub.

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

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

Następne kroki