Ćwiczenie – konfigurowanie elementu webhook na potrzeby repozytorium GitHub

Ukończone

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

  1. Zaloguj się do swojego konta usługi GitHub przy użyciu przeglądarki internetowej.

  2. Utwórz nowe repozytorium, wybierając pozycję Nowy w okienku menu po lewej stronie. Zostanie wyświetlona strona Tworzenie nowego repozytorium .

  3. W polu Nazwa repozytorium wprowadź zrozumiałą nazwę, taką jak LearnWebhookTest.

  4. Wybierz pozycję Publiczne, aby aktywować moduł typu wiki i znaleźć go w menu.

  5. Wybierz pozycję Utwórz repozytorium. Zostanie wyświetlona strona Szybka konfiguracja .

  6. Wybierz link do tworzenia nowego pliku .

  7. Na górnym pasku menu wybierz pozycję Wiki , aby wyświetlić strony w repozytorium (lub repozytorium). Zostanie wyświetlona strona powitalna .

  8. Wybierz pozycję Utwórz pierwszą stronę. Zostanie wyświetlony szablon Tworzenie nowej strony .

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

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

  2. Na stronie głównej na górnym pasku menu wybierz pozycję Ustawienia. Zostanie wyświetlone okienko Ustawienia .

  3. W pasku bocznym Ustawienia wybierz Webhooks. Pojawia się okienko Webhooks.

  4. W prawym górnym rogu wybierz Dodaj webhook. Usługa GitHub może poprosić Cię o potwierdzenie hasła dla usługi GitHub.

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

  6. Wybierz Dodaj webhook. Pojawia się okienko Webhooks.

  7. Sprawdź, czy został wyświetlony nowy element webhook. Powinien mieć (gollum) na końcu jego nazwy.

Testowanie elementu webhook

  1. W usłudze GitHub na górnym pasku menu wybierz pozycję Wiki. Zostanie wyświetlona strona główna utworzona wcześniej.

  2. Wybierz pozycję Edytuj. Zostanie wyświetlone okienko Edytowanie strony głównej .

  3. W obszarze tekstowym okienka wprowadź następujący tekst:

    Testing Webhook
    
  4. Wybierz pozycję Zapisz stronę. Strona główna pojawia się ponownie.

  5. Na górnym pasku menu wybierz pozycję Ustawienia. Zostanie wyświetlone okienko Ustawienia .

  6. W pasku bocznym wybierz Webhooks. Pojawia się okienko Webhooks.

  7. Wybierz pozycję Edytuj. Zostanie wyświetlone okienko Webhook/Zarządzanie webhookiem.

  8. Wybierz webhook, następnie wybierz kartę Ostatnie dostawy.

  9. 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" : {
            ...
        }
    
  10. 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.