Łączenie commitów GitHub, pull requestów, gałęzi i problemów z elementami roboczymi w Azure Boards

Usługi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

W tym artykule dowiesz się, jak połączyć elementy robocze z zatwierdzeniami GitHub, żądaniami ściągnięcia, gałęziami i kompilacjami po połączeniu projektu Azure Boards z repozytorium GitHub. Użyj składni #mention dla commitów i gałęzi, użyj wzmianek !, aby odwoływać się do pull requestów GitHub w dyskusjach elementów roboczych, lub dodaj bezpośrednio z elementu roboczego w Azure Boards link do commitu, pull requestu lub gałęzi w serwisie GitHub.

Note

obsługa integracji GitHub:

  • Azure DevOps Services: integruje się zarówno z repozytoriami GitHub.com, jak i GitHub Enterprise Server za pośrednictwem aplikacji Azure Boards na potrzeby GitHub.
  • Azure DevOps Server 2020 i nowszych: obsługuje integrację tylko z repozytoriami GitHub Enterprise Server.
  • Inne repozytoria Git: integracja nie jest obsługiwana.

Tip

Możesz użyć sztucznej inteligencji do wsparcia tego zadania w dalszej części tego artykułu lub zobacz Włącz pomoc AI w serwerze MCP usługi Azure DevOps aby rozpocząć pracę.

Prerequisites

Category Requirements
uprawnienia Masz dostęp współautora zarówno do projektu Azure Boards, jak i repozytorium GitHub.
Połączenie projektu Połącz projekt Azure Boards z repozytorium GitHub zawierającym zatwierdzenia zmian, pull requesty i gałęzie, z którymi chcesz utworzyć połączenie. Aby uzyskać więcej informacji, zobacz Azure Boards-GitHub integration.

Note

Jeśli projekt używa hostowanego modelu procesu XML, zaktualizuj typy elementów roboczych, aby wyświetlić sekcję Development oraz typy linków GitHub. Aby uzyskać więcej informacji, zobacz Aktualizowanie definicji XML dla wybranych typów elementów roboczych.

Użyj wzmianek AB# w tekście GitHub, aby tworzyć linki do elementów roboczych Azure Boards.

Aby utworzyć link:

  1. Dodaj AB#{ID} do komunikatu zatwierdzenia, opisu żądania ściągnięcia lub opisu problemu.
  2. Wypchnij commit lub zapisz pull request albo zgłoszenie.
  3. Otwórz element roboczy, aby potwierdzić, że link zostanie wyświetlony w sekcji Programowanie .

Użycie AB#ID w komentarzu lub w tytule żądania pull request nie tworzy linku do elementu roboczego.

AB#{ID}

Na przykład AB#125 linkuje do elementu roboczego o identyfikatorze 125.

Możesz również przenieść elementy robocze z tekstu zatwierdzenia lub żądania ściągnięcia. Azure Boards rozpoznaje {state} lub {state category} oraz słowa kluczowe, takie jak fix, fixes i fixed, a następnie stosuje takie przejście do następującego po nim odwołania AB#.

Gdy opis żądania ściągnięcia zawiera prawidłową nazwę stanu, na przykład Closed AB#1234, system aktualizuje przywołyny element roboczy do tego określonego stanu. Jeśli nazwa stanu nie jest rozpoznawana bezpośrednio, Azure Boards próbuje dopasować ją do kategorii przepływu pracy, takiej jak Resolved lub Completed. W przypadku znalezienia dopasowania element roboczy przechodzi do pierwszego dostępnego stanu zdefiniowanego w tej kategorii.

Domyślnie elementy robocze, do których odwołują się fix, fixes lub fixed, przechodzą do pierwszego stanu skojarzonego z kategorią Rozwiązane. Jeśli taki stan nie istnieje w bieżącym procesie, system zamiast tego przenosi element roboczy do pierwszego stanu w kategorii Ukończono .

Important

Nadal można połączyć elementy robocze i inne gałęzie, ale reguły przejścia stanu nie mają zastosowania, chyba że żądanie ściągnięcia zostanie scalone z gałęzią domyślną.

Aby uzyskać więcej informacji, zobacz Jak stany kategorii przepływu pracy są używane w listach prac i tablicach Azure Boards.

Skorzystaj z następujących przykładów składających się wyłącznie z linków:

Komunikat zatwierdzenia lub prośba o pobranie Action
AB#123 Linki elementu pracy 123 w usłudze Azure Boards. Nie następuje zmiana stanu.
Adds a new feature, AB#123. Łączy z elementem roboczym 123 w Azure Boards. Nie następuje zmiana stanu.
AB#123, AB#124, and AB#126 Łączy elementy robocze 123, 124 i 126 w usłudze Azure Boards. Nie dochodzi do zmiany stanu.
Fixing multiple bugs: issue #123 and user story AB#234 Linki do zgłoszenia GitHub 123 i elementu roboczego Azure Boards 234. Żadne przejścia nie są wykonywane.

Skorzystaj z następujących przykładów linków i przejść:

Komunikat zatwierdzenia lub prośba o pobranie Action
Fixed AB#123 Łączy i przechodzi element roboczy do kategorii 'Rozwiązano' w przepływie pracy lub, jeśli żadna nie jest zdefiniowana, do kategorii 'Ukończono' w przepływie pracy.
Closed AB#123 Łączy i przełącza element roboczy do stanu przepływu pracy Zamknięty. Jeśli żadna z nich nie jest zdefiniowana, żadne przejścia nie zostaną wykonane.
Adds a new feature, fixes AB#123. Łączy i przechodzi element roboczy do kategorii 'Rozwiązano' w przepływie pracy lub, jeśli żadna nie jest zdefiniowana, do kategorii 'Ukończono' w przepływie pracy.
Fixes AB#123, AB#124, and AB#126 Linki do elementów roboczych Azure Boards 123, 124 i 126. Przenosi tylko pierwszy element, 123, do kategorii stanu przepływu pracy Rozwiązane, a jeśli żadna nie jest zdefiniowana, to do kategorii stanu przepływu pracy Ukończone.
Fixes AB#123, Fixes AB#124, Fixes AB#125 Linki do elementów roboczych 123, 124 i 125 w Azure Boards. Przenosi wszystkie elementy do kategorii stanu przepływu pracy Rozwiązany, lub jeśli żadna nie jest zdefiniowana, do kategorii stanu przepływu pracy Ukończono.

Note

Jeśli połączysz to samo repozytorium GitHub z projektami zdefiniowanymi w co najmniej dwóch organizacjach Azure DevOps, możesz zobaczyć nieoczekiwane łączenie wzmianki AB#. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z połączeniem. Z tego powodu zalecamy połączenie repozytorium GitHub tylko z projektami zdefiniowanymi w jednej organizacji Azure DevOps.

Po dodaniu linku do elementu roboczego przy użyciu AB# w opisie żądania ściągnięcia te linki są wyświetlane w Development sekcji żądania ściągnięcia GitHub. Te linki są dostępne tylko w przypadku użycia AB# w opisie żądania ściągnięcia. Nie są wyświetlane, jeśli odwołujesz się do pull request bezpośrednio od elementu roboczego. AB# Usunięcie odwołania z opisu spowoduje również usunięcie go z sekcji Programowanie.

Zrzut ekranu linków AB# w sekcji rozwoju żądania ściągnięcia na GitHub.

Tworzenie gałęzi GitHub na podstawie elementu roboczego

Aby utworzyć gałąź GitHub bezpośrednio z poziomu elementu roboczego, wykonaj następujące kroki:

  1. Na tablicy znajdź element roboczy, którego chcesz użyć do utworzenia gałęzi GitHub.

  2. Wybierz pozycję Działania elementów roboczych>Nowa gałąź GitHub.

    Zrzut ekranu elementu roboczego z opcją Więcej działań, z wyróżnioną opcją utworzenia nowej gałęzi GitHub.

  3. W oknie dialogowym Utwórz gałąź GitHub wprowadź nazwę gałęzi. Wybierz repozytorium GitHub i gałąź podstawową.

  4. Wybierz Utwórz.

     Zrzut ekranu przedstawiający okno dialogowe Tworzenie gałęzi GitHub.

    Azure Boards tworzy gałąź w określonym repozytorium GitHub i łączy ją z elementem roboczym. Aby uzyskać więcej informacji, zobacz Azure Boards-GitHub integration.

  1. Otwórz element roboczy i przejdź do obszaru Programowanie .

  2. Wybierz pozycję Dodaj link. Z każdego menu rozwijanego wybierz typ łącza, repozytorium GitHub i żądanie pull request GitHub. Możesz wyszukiwać i przechodzić do szczegółów w repozytorium, aby znaleźć i wybrać określone żądanie ściągnięcia lub zatwierdzenie bez konieczności kopiowania i wklejania adresu URL.

  3. Wybierz pozycję Dodaj link.

    Zrzut ekranu przedstawiający pięcioetapową sekwencję dodawania linku żądania ściągnięcia do elementu roboczego.

    Azure Boards sprawdza, czy wprowadzono prawidłowy link. Repozytorium GitHub musi być połączone z projektem Azure Boards, lub walidacja kończy się niepowodzeniem.

Note

Jeśli używasz Azure DevOps Server i GitHub Enterprise Server, podczas kończenia łączy AB# występuje opóźnienie. Proces używa projektu "pobierania i wysyłania", aby pobrać ze zdarzeń GitHub co godzinę dla przyrostowych zmian zatwierdzeń, żądań ściągnięcia i zgłoszeń.

Kilka zdarzeń automatycznie aktualizuje łącza w formularzu elementu roboczego, więc nie trzeba ich tworzyć ręcznie. Te zdarzenia obejmują:

wydarzenie GitHub Action
Łącze do gałęzi Po utworzeniu żądania ściągnięcia z gałęzi automatycznie łączy się z elementem roboczym.
Zatwierdzenie scalania Po scaleniu żądania pull request, wynikowy commit scalający jest automatycznie powiązany z elementem roboczym.
Usuń gałąź Jeśli gałąź zostanie usunięta (zazwyczaj po scaleniu), jego link zostanie automatycznie usunięty z elementu roboczego.

Sekcja Rozwój w formularzu elementu roboczego zawiera linki do zatwierdzeń GitHub i żądań ściągnięcia utworzone przy użyciu ikony GitHub.

Wybierz link, aby otworzyć zatwierdzenie lub pull request na GitHubie.

Wgląd w pull requesty na GitHubie

Powiązane pull requesty GitHub w sekcji Development pokazują dodatkowe szczegóły statusu. Postęp można ocenić bez otwierania pull requestu w serwisie GitHub.

Wymagania wstępne dotyczące szczegółowych informacji o żądaniach ściągnięcia

Aby wyświetlić szczegółowe informacje o żądaniach ściągnięcia, przejdź do aplikacji Azure Boards w GitHub i zaakceptuj zaktualizowane uprawnienia umożliwiające odczyt i zapis do Checks.

 Zrzut ekranu przedstawiający okno dialogowe uprawnień aplikacji Azure Boards GitHub z zaktualizowanymi uprawnieniami sprawdzania.

Wyświetl szczegóły stanu pull request

  1. Otwórz element roboczy, który ma powiązany pull request GitHub.

  2. W sekcji Rozwój znajdź powiązane żądanie dodania. Następujące szczegóły stanu są wyświetlane obok linku żądania ściągnięcia:

    • Stan wersji roboczej: pokazuje, czy żądanie ściągnięcia jest nadal wersją roboczą.
    • Stan przeglądu: pokazuje, czy żądanie ściągnięcia wymaga przeglądu, jest zatwierdzone, czy ma żądane zmiany.
    • Status kontroli: pokazuje, czy kontrole CI przechodzą, kończą się niepowodzeniem, czy są w trakcie.

    Zrzut ekranu sekcji Rozwój przedstawiający połączone żądanie ściągnięcia z GitHub ze wskaźnikami szczegółów stanu: zamknięte, przegląd i sprawdzanie.

  3. Umieść kursor na wskaźniku stanu, aby wyświetlić więcej szczegółów, lub wybierz link żądania ściągnięcia, aby otworzyć go bezpośrednio w GitHub.

Podaj GitHub żądania ściągnięcia przy użyciu !

Użyj ! wzmianki, aby odwołać się do żądań przeciągnięcia na GitHubie bezpośrednio z dowolnego pola z sformatowanym tekstem elementu roboczego lub komentarza w dyskusji. Podczas wpisywania ! w polu tekstowym zostanie wyświetlony selektor, którego można użyć do wyszukiwania i wybrania GitHub żądania ściągnięcia z połączonego repozytorium. Wybrane żądanie ściągnięcia jest wstawione jako link do kliknięcia.

Ta funkcja ułatwia odwoływania się do powiązanych żądań ściągnięcia w opisach elementów roboczych, kryteriach akceptacji lub wątkach dyskusji bez ręcznego kopiowania adresów URL.

Gif pokazujący, jak używać ! wzmianka o odwołaniu się do żądania ściągnięcia GitHub z dyskusji elementu roboczego.

Wyświetlanie stanu kompilacji dla potoków YAML (zintegrowane w kompilacji)

Jeśli używasz Azure Pipelines YAML do kompilowania kodu hostowanego w repozytorium GitHub, możesz automatycznie tworzyć Zintegrowane w kompilacji łącza do skojarzonych elementów roboczych. Ta funkcja zapewnia możliwość śledzenia kompilacji dla repozytoriów GitHub, oferując podobne doświadczenie jak to dostępne dla Azure Repos.

Aby włączyć tę funkcję:

  1. Otwórz potok YAML, wybierz pozycję Więcej akcji, a następnie wybierz pozycję Ustawienia.

  2. W oknie dialogowym Ustawienia potoku włącz opcję Automatycznie połącz nowe elementy robocze w tej kompilacji.

    Zrzut ekranu przedstawiający okno dialogowe Ustawienia potoku YAML z opcją Automatycznie połącz nowe elementy robocze w tej kompilacji.

Po zakończeniu kompilacji link Zintegrowany w kompilacji zostanie automatycznie wyświetlony w sekcji Rozwój każdego skojarzonego elementu roboczego, co daje zespołowi pełną możliwość śledzenia z elementu roboczego do kompilacji.

Zrzut ekranu przedstawiający element roboczy z linkiem Zintegrowany w kompilacji w sekcji Programowanie.

Aby uzyskać więcej informacji na temat konfigurowania tego ustawienia, zobacz Konfigurowanie potoków do obsługi śledzenia pracy.

Wyświetlanie obiektów GitHub na tablicy

Po włączeniu na tablicy adnotacji GitHub możesz szybko otwierać powiązane commity, pull requesty lub zgłoszenia, aby uzyskać więcej szczegółów. Aby uzyskać więcej informacji, zobacz Dostosowywanie kart.

Zrzut ekranu przedstawiający łącza GitHub na kartach elementów roboczych.

Jeśli skonfigurujesz serwer Azure DevOps MCP, możesz opisywać w języku naturalnym zadania dotyczące łączenia GitHub z elementami roboczymi zamiast ręcznie przechodzić przez formularz elementu roboczego.

Użyj tych monitów jako przykładów scenariuszy. Obsługiwane operacje różnią się w zależności od skonfigurowanych zestawów narzędzi, wersji rozszerzenia i uprawnień.

Niektóre polecenia mogą zwracać instrukcje zamiast wykonywać operację zapisu albo mogą wymagać kilku poleceń, w zależności od tego, które narzędzia MCP włączono.

Przed uruchomieniem monitu zastąp symbole zastępcze, takie jak <Contoso>, <owner/repo>i <sha> rzeczywistymi wartościami.

Skorzystaj z tego szybkiego procesu uruchamiania i weryfikacji:

  1. Uruchom jeden prompt z tabeli.
  2. Przejrzyj odpowiedź na akcję podjętą.
  3. Otwórz element roboczy i potwierdź wynik w sekcji Programowanie .
  4. Otwórz powiązany artefakt GitHub i potwierdź oczekiwany link lub aktualizację.

Najpierw wypróbuj te polecenia:

  • Link work item AB#125 in project <Contoso> to GitHub pull request <owner/repo>#42
  • Link work item AB#312 in project <Contoso> to GitHub commit <owner/repo>@<sha>
  • Summarize all GitHub commits and pull requests linked to work item AB#312 in project <Contoso>
Zadanie Przykładowy monit
Powiązanie elementu roboczego z pull requestem Link work item AB#125 in project <Contoso> to GitHub pull request <owner/repo>#42
Połącz element pracy z commitem Link work item AB#312 in project <Contoso> to GitHub commit <owner/repo>@<sha>
Łączenie elementu roboczego z problemem Link work item AB#500 in project <Contoso> to GitHub issue <owner/repo>#10
Tworzenie gałęzi GitHub na podstawie elementu roboczego Create a GitHub branch named feature/checkout for work item 500 in project <Contoso> from repo <owner/repo> base branch main
Aktualizuj stan powiązanego elementu pracy po scaleniu PR After PR <owner/repo>#42 merges, update linked work item AB#125 to Resolved
Elementy robocze powiązane z łączem zbiorczym Link all active user stories in area path <Contoso\\Web> to GitHub PR <owner/repo>#42
Znajdź niepowiązane elementy robocze List all closed work items in project <Contoso> from the last 30 days that have no linked GitHub pull request
Podsumowanie działania GitHub dla elementu roboczego Summarize all GitHub commits and pull requests linked to work item AB#312 in project <Contoso>
Dodaj odwołanie AB# do PR Suggest an AB# reference line to add to PR <owner/repo>#42 description that links to work items 125 and 126
Sprawdź stan powiązanych żądań ściągnięcia Show the review and check status of all GitHub pull requests linked to active user stories in project <Contoso>

Note

Jeśli używasz Visual Studio Code, użyj trybu agenta. Azure DevOps operacje serwera MCP wymagają trybu agenta, aby uzyskać dostęp do Azure DevOps danych i wykonywać operacje.

Rozwiązywanie problemów z łączeniem wspomaganym przez sztuczną inteligencję

  • Jeśli monit nie zostanie uruchomiony, upewnij się, że tryb agenta jest włączony w kliencie sztucznej inteligencji.
  • Jeśli monit zakończy się niepowodzeniem z błędami dostępu, sprawdź, czy Twoje konto ma dostęp do projektu Azure DevOps i repozytorium GitHub.
  • Jeśli łącza nie są tworzone, zastąp wszystkie symbole zastępcze (na przykład <Contoso>, , <owner/repo><sha>) rzeczywistymi wartościami i ponownie uruchom monit.
  • Jeśli polecenie zbiorcze się nie powiedzie, najpierw spróbuj ponownie, używając pojedynczego elementu roboczego, a następnie ponów próbę z mniejszą partią.
  • Jeśli wyniki nadal nie są zgodne z oczekiwaniami, zweryfikuj wynik w sekcji elementu roboczego Development oraz w powiązanym artefakcie GitHub.

Następny krok