Ćwiczenie – konfigurowanie elementu webhook na potrzeby repozytorium GitHub
W tym ćwiczeniu skonfigurujesz webhook dla repozytorium GitHub. Dowiesz się, jak nasłuchiwać określonych zdarzeń, takich jak zdarzenie Gollum. Dowiesz się również, jak utworzyć wywołanie zwrotne elementu webhook w funkcji po wyzwoleniu zdarzenia.
Ustawienia
Zaloguj się do swojego konta usługi GitHub przy użyciu przeglądarki internetowej.
Utwórz nowe repozytorium, wybierając pozycję Nowy w okienku menu po lewej stronie. Zostanie wyświetlona strona Tworzenie nowego repozytorium .
W polu Nazwa repozytorium wprowadź zrozumiałą nazwę, taką jak LearnWebhookTest.
Wybierz pozycję Publiczne, aby aktywować moduł typu wiki i znaleźć go w menu.
Wybierz pozycję Utwórz repozytorium. Zostanie wyświetlona strona Szybka konfiguracja .
Wybierz link do tworzenia nowego pliku .
Na górnym pasku menu wybierz pozycję Wiki , aby wyświetlić strony w repozytorium (lub repozytorium). Zostanie wyświetlona strona powitalna .
Wybierz pozycję Utwórz pierwszą stronę. Zostanie wyświetlony szablon Tworzenie nowej strony .
Dodaj tekst i wybierz pozycję Zapisz stronę. Pierwsza strona w witrynie typu wiki to strona główna.
Dodawanie elementu webhook dla zdarzenia Gollum
Gollum to nazwa zdarzenia usługi GitHub uruchamianego za każdym razem, gdy strona w witrynie typu wiki repozytorium zostanie utworzona lub zaktualizowana.
Na stronie głównej w widoku wiki znajduje się pasek boczny Strony , który wyświetla listę stron w repozytorium. Wybierz pozycję Strona główna , aby wyświetlić stronę główną.
Na stronie głównej na górnym pasku menu wybierz pozycję Ustawienia. Zostanie wyświetlone okienko Ustawienia .
W pasku bocznym Ustawienia wybierz Webhooks. Pojawia się okienko Webhooks.
W prawym górnym rogu wybierz Dodaj webhook. Usługa GitHub może poprosić Cię o potwierdzenie hasła dla usługi GitHub.
W panelu Webhooki/Dodaj webhook wprowadź następujące wartości dla każdego ustawienia.
Ustawienie Wartość Adres URL ładunku Adres URL aplikacji funkcji platformy Azure z poprzedniego ćwiczenia. Aby uzyskać pomoc, zobacz następującą notatkę. Typ zawartości Z listy rozwijanej wybierz pozycję application/json. Które zdarzenia chcesz wyzwolić ten element webhook? Wybierz pozycję Pozwól mi wybrać poszczególne zdarzenia. Na wyświetlonej liście zdarzeń przewiń w dół i zaznacz pole wyboru Wiki . Upewnij się, że nie zaznaczono żadnych innych pól wyboru. Aktywne Zaznaczono. Napiwek
Skopiuj adres URL funkcji z okienka Azure HttpTrigger, wybierając pozycję Pobierz adres URL funkcji na pasku poleceń. Adres URL wygląda podobnie do następującego:
https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
Wybierz Dodaj webhook. Pojawia się okienko Webhooks.
Sprawdź, czy został wyświetlony nowy element webhook. Powinien mieć (gollum) na końcu jego nazwy.
Testowanie elementu webhook
W usłudze GitHub na górnym pasku menu wybierz pozycję Wiki. Zostanie wyświetlona strona główna utworzona wcześniej.
Wybierz pozycję Edytuj. Zostanie wyświetlone okienko Edytowanie strony głównej .
W obszarze tekstowym okienka wprowadź następujący tekst:
Testing Webhook
Wybierz pozycję Zapisz stronę. Strona główna pojawia się ponownie.
Na górnym pasku menu wybierz pozycję Ustawienia. Zostanie wyświetlone okienko Ustawienia .
W pasku bocznym wybierz Webhooks. Pojawia się okienko Webhooks.
Wybierz pozycję Edytuj. Zostanie wyświetlone okienko Webhook/Zarządzanie webhookiem.
Wybierz webhook, następnie wybierz kartę Ostatnie dostawy.
Na liście wybierz pierwszy (najnowszy) wpis dostawy, wybierając wielokropek (...).
Powinna zostać wyświetlona sekcja Nagłówki , w tym zdarzenie:
Request URL: https://testwh123456.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ%3D%3D Request method: POST Accept: */* content-type: application/json User-Agent: GitHub-Hookshot/16496cb X-GitHub-Delivery: 9ed46280-6ab3-11e9-8a19-f1a14922a239 X-GitHub-Event: gollum X-GitHub-Hook-ID: 312141005 X-GitHub-Hook-Installation-Target-ID: 394459163 X-GitHub-Hook-Installation-Target-Type: repository
Powinna zostać również wyświetlona sekcja Payload (Ładunek) zawierająca informacje wskazujące, że strona wiki została edytowana. Ładunek zawiera strony, repozytorium i sekcje nadawcy , które powinny wyglądać podobnie do poniższego przykładu:
"pages": [ { "page_name": "Home", "title": "Home", "summary": null, "action": "edited", "sha": "04d012c5f92a95ae3f7721173bf9f2b1b35ea22f", "html_url": "https://github.com/.../wiki/Home" } ], "repository" : { "id": 176302421, "node_id": "MDEwOlJlcG9zaXRvcnkxNzYzMDI0MjE=", "name": "tieredstorage", ... }, "sender" : { ... }
Na karcie Ostatnie dostawy wybierz kartę Odpowiedź .
Powinien zostać wyświetlony komunikat odpowiedzi wygenerowany przez funkcję platformy Azure. W tym przykładzie treść powinna zawierać komunikat: Ta funkcja wyzwalana przez protokół HTTP została wykonana pomyślnie. Przekaż nazwę w ciągu zapytania lub w treści żądania w celu uzyskania spersonalizowanej odpowiedzi.