Ćwiczenie – konfigurowanie elementu webhook na potrzeby repozytorium GitHub

Ukończone

W tym ćwiczeniu skonfigurujesz element webhook dla repozytorium GitHub. Dowiesz się, jak nasłuchiwać określonych zdarzeń (w tym przypadku zdarzenia Gollum ) i jak utworzyć wywołanie zwrotne elementu webhook w funkcji po wyzwoleniu zdarzenia.

Ustawienia

  1. Za pomocą przeglądarki internetowej zaloguj się do konta GitHub.

  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 znajdź go w menu.

  5. Kliknij przycisk Create repository (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 jest pasek boczny Strony , który wyświetla strony 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. Na pasku bocznym Ustawienia wybierz pozycję Elementy webhook. Zostanie wyświetlone okienko Elementy webhook .

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

  5. W okienku elementy webhook/ Dodaj element 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 pozycję Dodaj element webhook. Zostanie wyświetlone okienko Elementy webhook .

  7. Sprawdź, czy został wyświetlony nowy element webhook. Powinna mieć wartość (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. Zaznacz 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. Na pasku bocznym wybierz pozycję Elementy webhook. Zostanie wyświetlone okienko Elementy webhook .

  7. Zaznacz Edytuj. Zostanie wyświetlone okienko elementy webhook/Zarządzanie elementami webhook .

  8. Wybierz kartę Ostatnie dostawy (może być konieczne przewinięcie do dołu strony).

  9. Na liście wybierz górny (najnowszy) wpis dostarczania, wybierając wielokropek (...).

    Zobaczysz sekcję 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
    

    Zobaczysz również, że sekcja Ładunki zawiera informacje wskazujące, że strona typu 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ź.

    Zobaczysz 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 dla spersonalizowanej odpowiedzi.