Übung: Einrichten eines Webhooks für ein GitHub-Repository

Abgeschlossen

In dieser Übung richten Sie einen Webhook für ein GitHub-Repository ein. Sie werden lernen, wie Sie auf bestimmte Ereignisse (in diesem Fall das Gollum-Ereignis) lauschen, und wie Sie den Webhook-Callback in Ihrer Funktion ausführen, wenn das Ereignis ausgelöst wird.

Einrichtung

  1. Navigieren Sie zu Ihrem Webbrowser, und melden Sie sich bei Ihrem GitHub-Konto an.

  2. Erstellen Sie ein neues Repository, indem Sie im linken Menübereich Neu auswählen. Die Seite Neues Repository erstellen wird angezeigt.

  3. Geben Sie im Feld Repositoryname einen aussagekräftigen Namen ein, z. B. LearnWebhookTest.

  4. Wählen Sie Öffentlich aus, um das Wiki-Modul zu aktivieren, und suchen Sie es im Menü.

  5. Klicken Sie auf Create repository (Repository erstellen). Die Seite Express-Setup wird angezeigt.

  6. Wählen Sie den Link Erstellen einer neuen Datei aus.

  7. Klicken Sie in der oberen Menüleiste auf Wiki, um die Seiten in Ihrem Repository (auch Repo genannt) anzuzeigen. Eine Willkommenseite wird angezeigt.

  8. Wählen Sie Erste Seite erstellen aus. Die Vorlage Neue Seite erstellen wird angezeigt.

  9. Fügen Sie Text hinzu, und wählen Sie dann Seite speichern aus. Die erste Seite in einem Wiki ist die Startseite.

Hinzufügen eines Webhooks für das Gollum-Ereignis

Gollum ist der Name eines GitHub-Ereignisses, das immer dann ausgelöst wird, wenn eine Seite im Wiki eines Repositorys erstellt oder aktualisiert wird.

  1. In der Wiki-Ansicht werden auf der Startseite in der Randleiste Seiten die Seiten in Ihrem Repository aufgeführt. Klicken Sie auf Start, um die Startseite anzuzeigen.

  2. Wählen Sie auf der Startseite in der oberen Menüleiste Einstellungen aus. Der Bereich Einstellungen wird angezeigt.

  3. Wählen Sie in der Randleiste Einstellungen die Option Webhooks aus. Der Bereich Webhooks wird angezeigt.

  4. Wählen Sie oben rechts Webhook hinzufügen aus. GitHub fordert Sie möglicherweise dazu auf, Ihr GitHub-Kennwort zu bestätigen.

  5. Geben Sie im Bereich Webhooks > Webhook hinzufügen die folgenden Werte für jede Einstellung ein:

    Einstellung Wert
    URL der Nutzlast URL für Ihre Azure-Funktions-App aus der vorherigen Übung. Beachten Sie den folgenden Hinweis, wenn Sie Hilfe benötigen.
    Inhaltstyp Wählen Sie application/json aus der Dropdownliste aus.
    Durch welche Ereignisse soll dieser Webhook ausgelöst werden? Wählen Sie Let me select individual events (Einzelne Ereignisse auswählen) aus. Scrollen Sie in der angezeigten Ereignisliste nach unten, und aktivieren Sie das Kontrollkästchen Wiki. Stellen Sie sicher, dass keine anderen Kontrollkästchen aktiviert sind.
    Aktiv Aktiviert

    Tipp

    Klicken Sie in der Befehlsleiste auf Funktions-URL abrufen, um die Funktions-URL aus dem Bereich „HttpTrigger“ in Azure zu kopieren. Ihre URL sollte in etwa wie folgt aussehen: https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==.

  6. Wählen Sie Webhook hinzufügen aus. Der Bereich Webhooks wird angezeigt.

  7. Vergewissern Sie sich, dass Ihr neuer Webhook angezeigt wird. Der Name des Webhooks sollte auf (gollum) enden.

Testen des Webhooks

  1. Wählen Sie in GitHub in der oberen Menüleiste Wiki aus. Die zuvor erstellte Seite Home wird angezeigt.

  2. Wählen Sie Bearbeiten aus. Der Bereich Editing Home (Home bearbeiten) wird geöffnet.

  3. Geben Sie im Textbereich den folgenden Text ein:

    Testing Webhook
    
  4. Klicken Sie auf Seite speichern. Die Seite Home wird erneut angezeigt.

  5. Wählen Sie in der oberen Menüleiste Einstellungen aus. Der Bereich Einstellungen wird angezeigt.

  6. Klicken Sie in der Randleiste auf die Option Webhooks. Der Bereich Webhooks wird angezeigt.

  7. Wählen Sie Bearbeiten aus. Der Bereich Webhooks > Webhook verwalten wird angezeigt.

  8. Wählen Sie die Registerkarte Aktuelle Übermittlungen aus (möglicherweise müssen Sie zur Ende der Seite scrollen).

  9. Wählen Sie in der Liste den obersten (aktuellsten) Zustellungseintrag aus, indem Sie die Auslassungspunkte (...) auswählen.

    Der Abschnitt Header einschließlich des Ereignisses wird angezeigt:

    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
    

    Sie erkennen auch, dass der Abschnitt Payload (Nutzdaten) Informationen enthält, die angeben, dass Ihre Wikiseite bearbeitet wurde. Die Nutzdaten enthalten die Abschnitte Seiten, Repository, und Absender, die etwa aussehen sollten wie im nachstehenden Beispiel:

        "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. Wählen Sie auf der Registerkarte Recent Deliveries die Registerkarte Antwort aus.

    Ihnen wird die von der Azure-Funktion generierte Antwortnachricht angezeigt. In diesem Beispiel sollte der Text die Nachricht enthalten. Diese durch HTTP ausgelöste Funktion wurde erfolgreich ausgeführt. Übergeben Sie einen Namen in der Abfragezeichenfolge oder im Anforderungstext für eine personalisierte Antwort..