Łączenie serwera Azure DevOps Server z usługą 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 Łączenie usługi Azure Boards z usługą 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 Łączenie usługi Azure Boards z usługą GitHub.
Wymagania wstępne
- Integracja z usługą GitHub:
- Połącz się z repozytoriami GitHub.com, instalując program Azure DevOps Server 2020.1.1 Patch 2. Bez tej poprawki można łączyć się tylko z repozytoriami serwera GitHub Enterprise Server.
- Zainstaluj aplikację Usługi Azure Boards dla usługi GitHub w organizacjach lub kontach usługi GitHub.
- Połączenie projektu: połącz się z usługą Azure Boards lub projektem usługi Azure DevOps. Jeśli nie masz jeszcze projektu, utwórz go.
- Uprawnienia:
- Być członkiem grupy Administratorzy kolekcji projektów i grupy Współautorzy projektu. Jeśli projekt został utworzony, masz uprawnienia.
- Być administratorem serwera GitHub Enterprise Server, z którym nawiązujesz połączenie.
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
Zaloguj się do portalu internetowego dla serwera GitHub Enterprise.
Wybierz pozycję Ustawienia Ustawienia Dla>>deweloperów Aplikacje>Oauth Nowa aplikacja OAuth.
Wprowadź informacje, aby zarejestrować aplikację usługi Azure DevOps Server.
W polu Adres URL strony głównej określ publiczny adres URL kolekcji projektu. Ten adres URL można znaleźć po otwarciu konsoli administracyjnej usługi Azure DevOps i wyświetleniu węzła Warstwa aplikacji.
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
Wybierz pozycję Zarejestruj aplikację.
Zostanie wyświetlona strona zawierająca identyfikator klienta i klucz tajny klienta dla zarejestrowanej aplikacji OAuth.
Rejestrowanie konfiguracji protokołu OAuth na serwerze Azure DevOps Server
Zaloguj się do portalu internetowego dla serwera Usługi Azure DevOps.
Dodaj konfigurację Oauth usługi GitHub Enterprise do kolekcji usługi Azure DevOps Server.
Wybierz pozycję Ustawienia>administratora Konfiguracje>protokołu Oauth Dodaj konfigurację protokołu Oauth.
Wprowadź informacje, a następnie wybierz pozycję Utwórz.
Łączenie serwera Azure DevOps Server z serwerem GitHub Enterprise Server
Z projektem usługi Azure Boards można połączyć maksymalnie 250 repozytoriów GitHub.
Uwaga
Połączenie z więcej niż 100 repozytoriami GitHub wymaga aktualizacji serwera Azure DevOps Server 2020.1 lub nowszej.
Połączenie z repozytoriami 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ć.
Otwórz portal internetowy dla serwera Azure DevOps Server.
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.
Wybierz pozycję Ustawienia>projektu Połączenia GitHub.
Jeśli po raz pierwszy wykonuje połączenie z projektu, wybierz metodę uwierzytelniania, której chcesz użyć, aby nawiązać połączenie:
- Osobisty token dostępu, aby uzyskać szczegółowe informacje, zobacz Nawiązywanie połączenia przy użyciu osobistego tokenu dostępu.
- Nazwa użytkownika i hasło, zobacz Nawiązywanie połączenia przy użyciu nazwy użytkownika i hasła.
W przeciwnym razie wybierz pozycję Nowe połączenie, a następnie wybierz metodę uwierzytelniania w oknie dialogowym Nowe połączenie.
Wybierz pozycję Ustawienia>projektu Połączenia>usługi GitHub Connect your GitHub Enterprise account (Połącz konto usługi GitHub Enterprise).
Możesz też wybrać osobisty token dostępu lub nazwę użytkownika i hasło, jeśli używasz tych poświadczeń.
Nawiązywanie połączenia za pomocą protokołu OAuth
Wybierz konfigurację skonfigurowaną w kroku 4 sekcji Rejestrowanie konfiguracji OAuth na serwerze Azure DevOps Server. Następnie wybierz pozycję Połącz.
Nawiązywanie połączenia przy użyciu osobistego tokenu dostępu
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
.Wprowadź adres URL serwera GitHub Enterprise i poświadczenia osobistego tokenu dostępu rozpoznane przez ten serwer. A następnie wybierz pozycję Połącz.
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.
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 .
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 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.
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.
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:
Identyfikator pat może zostać odwołany lub zmienione wymagane zakresy uprawnień i są niewystarczające.
Użytkownik może utracić uprawnienia administracyjne 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 Twoja organizacja dostosowuje śledzenie pracy przy użyciu hostowanego kodu XML lub lokalnego modelu procesu XML i chce zintegrować typy linków Usługi GitHub z sekcją Programowanie formularzy elementów roboczych, musisz zaktualizować definicje XML odpowiednich typów elementów roboczych.
Aby na przykład połączyć scenariusze użytkownika i usterki z zatwierdzeniami i żądaniami ściągnięcia usługi GitHub w sekcji Programowanie formularzy elementów roboczych, musisz 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:
- Znajdź sekcję
Group Label="Development"
. - Aby obsługiwać typy linków zewnętrznych, zatwierdzenia usługi GitHub i żądania ściągnięcia w usłudze GitHub dodaj następujące wiersze kodu:
Ta integracja umożliwia bezproblemowe śledzenie działań usługi GitHub bezpośrednio z elementów roboczych w usłudze 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>