Udostępnij za pośrednictwem


Łą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 z GitHub były powiązane z elementami roboczymi w 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

Kategoria Wymagania
Uprawnienia — Członek grupy Administratorzy Kolekcji Projektów Jeśli utworzyłeś projekt, masz uprawnienia.
- administrator lub właściciel repozytorium GitHub, z którym chcesz się połączyć. Możesz nawiązać połączenie z wieloma repozytoriami GitHub, o ile jesteś administratorem tych repozytoriów.
członkostwa w projekcie członek projektu.

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łączoną autoryzacją jednokrotnego logowania za pomocą 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 ustawień projektu otwartego na połączenia z GitHub.

  3. Jeśli po raz pierwszy nawiązujesz połączenie z projektów, wybierz pozycję Połącz konto usługi GitHub, aby użyć danych logowania 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 Zarejestruj Azure DevOps na GitHub jako aplikację OAuth.

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

Z projektem usługi Azure Boards można połączyć maksymalnie 1000 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ź swoje dane logowania do GitHub. Jeśli masz włączone uwierzytelnianie dwuskładnikowe, wprowadź kod uwierzytelniania wysyłany przez usługę GitHub i wybierz pozycję Weryfikuj. Jeśli tak nie jest, system automatycznie rozpoznaje twoją organizację w usłudze 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. Okno dialogowe Dodawanie repozytoriów GitHub automatycznie wyświetla i wybiera wszystkie repozytoria GitHub.com, 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 wzmianek AB#, zalecamy połączenie repozytorium GitHub z projektami w ramach jednej organizacji 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 poświadczenia 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

Ważne

Zalecamy używanie tokenów Microsoft Entra. Aby uzyskać więcej informacji na temat naszych wysiłków w celu zmniejszenia użycia pat, zobacz naszym blogu. Zapoznaj się z naszymi wskazówkami dotyczącymi uwierzytelniania , aby wybrać odpowiedni mechanizm uwierzytelniania dla Twoich potrzeb.

Zalecamy użycie poświadczeń konta usługi GitHub w celu nawiązania połączenia z repozytorium GitHub.

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 okna dialogowego Nowego połączenia usługi GitHub, wybór osobistego tokenu dostępu.

    Aby utworzyć token osobistego dostępu w GitHub, przejdź do Ustawienia dewelopera > Osobiste tokeny dostępu.

  2. Wprowadź PAT i wybierz przycisk Połącz.

    Zrzut ekranu przedstawiający wprowadzony token dostępu (PAT).

  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 łączysz się z kontem GitHub lub organizacją z Azure Boards, zainstaluj aplikację Azure Boards dla GitHub. Wcześniej w tym artykule potwierdź połączenie.

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 Ustawienia>Ustawienia programisty>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 swojej 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 Ustawieniach organizacji wybierz Konfiguracje Oauth>Dodaj konfigurację 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 Ustawienia projektu>Połączenia GitHub>GitHub Enterprise Server dla pierwszego połączenia.

    Pierwsze połączenie, wybierz opcję 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, wybierz 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 nowe połączenie z GitHub Enterprise, okno dialogowe połączenia 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.

    Połącz za pomocą danych logowania GitHub

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

    Zrzut ekranu nowego ekranu połączenia z usługą GitHub Enterprise, okno dialogowe podawania nazwy 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

    Można nawiązać połączenie wyłącznie z repozytoriami zdefiniowanymi w jednej organizacji na GitHubie. 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 opisane 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 (PAT)
  • Poświadczenia GitHub

Oprogramowanie Azure DevOps Server 2020

Nie dotyczy

  • Osobisty token dostępu
  • Poświadczenia GitHub

Azure DevOps Server 2019

Nie dotyczy

  • OAuth
  • PAT (Osobisty token dostępu)
  • Poświadczenia GitHub

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 do 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 Aplikacje w sekcji Integracje>Autoryzowane aplikacje OAuth>Azure Boards.

  3. W obszarze Dostęp do organizacji rozwiąż wszelkie problemy, które mogą się pojawić. Wybierz Udziel, aby przyznać dostęp do organizacji, w których wyświetla się żądanie dostępu oczekujące na zatwierdzenie.

    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 ostrzeżenia z czerwonym 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 PAT:

    • Identyfikator PAT został odwołany lub wymagane zakresy uprawnień zostały zmienione, co sprawia, że są one 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. Aby uzyskać więcej informacji, zobacz Najlepsze praktyki dotyczące korzystania z PATs.

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

  • 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 dokumentacji 'Łączenie z 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 prowadzić do nieoczekiwanych wyników związanych ze 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 te organizacje mogą próbować połączyć element roboczy z pasującym identyfikatorem, co może spowodować 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 Twoja organizacja używa modelu procesów Hosted XML lub lokalnego XML, aby dostosować środowisko śledzenia pracy i połączyć się oraz wyświetlić typy łączy GitHub z sekcji Rozwój 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: GitHub Commit i GitHub Pull Request.

             <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

Pytanie: 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 określa ich tożsamości na GitHubie.

Q: Jestem administratorem organizacji i włączyłem politykę zapraszania użytkowników 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.

.: Czy użytkownicy usługi GitHub Enterprise uzyskują bezpłatny dostęp do usługi Azure DevOps?

Odpowiedź: Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące zarządzania użytkownikami i uprawnieniami/GitHub Enterprise.

Następne kroki