Skip to main content

Testen von Webhooks

Erfahren Sie, wie Sie Ihre Webhooks und Ihren Code testen, der Webhook-Übermittlungen verarbeitet.

Informationen zum Testen von Webhooks

Sie können die Webhook-Übermittlung testen. Auf diese Weise können Sie überprüfen, ob GitHub eine Webhook-Übermittlung als Reaktion auf ein Ereignis sendet, das Sie erwarten, um eine Webhook-Übermittlung auszulösen.

Sie können auch Ihren Code testen, der Webhook-Übermittlungen verarbeitet, indem Sie Ihren Computer oder Codespace als lokalen Server verwenden und Webhook-Übermittlungen an Ihren lokalen Server weiterleiten. Dadurch können Sie Ihren Code entwickeln und debuggen, ohne den Code auf Ihrem Produktionsserver bereitzustellen.

Testen der Webhook-Übermittlung

Sie können ein Webhook-Geheimnis verwenden, um zu überprüfen, ob GitHub eine Webhook-Übermittlung gesendet hat.

  1. Lösen Sie den Webhook aus. Wenn Sie beispielsweise einen Repository-Webhook testen, der das issues-Ereignis abonniert hat, öffnen Sie einen Sachverhalt in dem Repository, in dem der Webhook konfiguriert ist.

    Sie können auch eine vorherige Webhook-Übermittlung erneut übermitteln. Weitere Informationen findest du unter Erneutes Zustellen von Webhooks.

    Wenn Sie einen Organisations- oder Repository-Webhook verwenden, können Sie das ping-Ereignis für Ihren Webhook auch über die REST-API auslösen. Wenn Sie einen Repository-Webhook verwenden und Ihr Webhook das push-Ereignis abonniert hat, können Sie ein push-Testereignis für Ihren Webhook über die REST-API auslösen. Weitere Informationen finden Sie unter REST-API-Endpunkte für Repository-Webhooks und unter REST-API-Endpunkte für Organisationswebhooks.

  2. Überprüfen Sie GitHub, um sicherzustellen, dass eine Webhook-Übermittlung gesendet wurde. Informationen dazu, wie dies für jeden Webhook-Typ durchgeführt wird, finden Sie unter „Anzeigen von Webhookübermittlungen“.

Wenn eine Webhook-Übermittlung nicht gesendet wurde oder eine Webhook-Übermittlung gesendet wurde, aber GitHub darauf hinweist, dass die Übermittlung fehlgeschlagen ist, lesen Sie den Leitfaden zur Problembehandlung, um das Problem zu diagnostizieren. Weitere Informationen findest du unter Problembehandlung bei Webhooks.

Lokales Testen von Webhook-Code

Zum loaklen Testen des Webhook-Codes auf Ihrem Computer oder Codespace können Sie eine Webhook-Proxy-URL verwenden, um Webhooks von GitHub an den Computer oder Codespace weiterzuleiten. Sie können Ihren Computer oder Codespace als lokalen Server verwenden, um diese weitergeleiteten Webhooks zu empfangen.

In den folgenden Abschnitten wird veranschaulicht, wie Sie smee.io verwenden, um eine Webhook-Proxy-URL und Webhooks weiterzuleiten.

Spezifische Beispiele für Code- und Testschritte finden Sie unter Verwalten von Webhookübermittlungen.

Abrufen einer Webhook-Proxy-URL

  1. Navigiere im Browser zu https://smee.io/.
  2. Klicke auf Neuen Kanal starten.
  3. Kopiere die vollständige URL unter „Webhook-Proxy-URL“. Sie werden diese URL in den folgenden Einrichtungschritten verwenden.

Konfigurieren eines Webhooks für die Verwendung der Webhook-Proxy-URL

Konfigurieren Sie Ihren Webhook so, dass die Webhook-Proxy-URL von oben verwendet wird. Weitere Informationen finden Sie unter Erstellen von Webhooks und unter Bearbeiten von Webhooks.

Jetzt sendet GitHub Webhook-Übermittlungen an diese URL.

Starten eines lokalen Servers

Starten Sie auf Ihrem Computer oder Codespace einen lokalen Server. Die Vorgehensweise hängt davon ab, wie Ihr Code zum Empfangen von Webhooks geschrieben wurde. Beispiele finden Sie unter Verwalten von Webhookübermittlungen.

Sie sollten sicherstellen, dass Ihr Code lokal ausgeführt werden kann. Wenn Ihr Code z. B. auf Umgebungsvariablen auf Ihrem Server in der Produktion basiert, sollten Sie sicherstellen, dass die Umgebungsvariablen auch auf Ihrem lokalen Server verfügbar sind.

Möglicherweise ist es auch hilfreich, Protokollanweisungen hinzuzufügen, damit Sie überprüfen können, ob die Schritte ihres Codes wie erwartet ausgeführt werden.

Fahren Sie mit der Ausführung Ihres lokalen Servers fort, während Sie Ihren Webhook testen.

Weiterleiten von Webhooks

  1. Wenn smee-client noch nicht installiert ist, führen Sie den folgenden Befehl auf Ihrem Terminal aus:

    Shell
    npm install --global smee-client
    
  2. Um weitergeleitete Webhooks von smee.io zu empfangen, führen Sie den folgenden Befehl am Terminal aus. Ersetze WEBHOOK_PROXY_URL durch deine Webhook-Proxy-URL von früher. Ersetzen Sie PATH durch den Pfad oder die Route, die der Server verarbeitet. Ersetzen Sie PORT durch den Port, an dem ihr lokaler Server eine Überwachung ausführt.

    Shell
    smee --url WEBHOOK_PROXY_URL --path /PATH --port PORT
    

    Sie sollten die Ausgabe sehen, die wie folgt aussieht, wobei die Platzhalter WEBHOOK_PROXY_URL, PORT und PATH durch die von Ihnen angegebenen Werte ersetzt werden:

    Shell
    Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:PORT/PATH
    Connected WEBHOOK_PROXY_URL
    

    Wenn Ihre Webhook-Proxy-URL (smee.io-URL) nun eine Webhook-Übermittlung von GitHub empfängt, leitet smee die Webhook-Übermittlung an Ihren lokalen Server weiter.

  3. Fahren Sie mit der Ausführung fort, während Sie Ihren Webhook testen. Wenn Sie die Weiterleitung von Webhooks beenden möchten, geben Sie Strg+C ein.

Zu diesem Zeitpunkt sollten sowohl der lokale Server als auch die Smee-Weiterleitung ausgeführt werden.

Auslösen einer Webhook-Übermittlung

Lösen Sie den Webhook aus. Wenn Sie beispielsweise einen Repository-Webhook testen, der das issues-Ereignis abonniert hat, öffnen Sie einen Sachverhalt in dem Repository, in dem der Webhook konfiguriert ist.

Sie können auch eine vorherige Webhook-Übermittlung erneut übermitteln. Weitere Informationen findest du unter Erneutes Zustellen von Webhooks.

Überprüfen der Übermittlung

Sie können überprüfen, ob GitHub eine Webhook-Übermittlung gesendet hat, dass smee die Übermittlung empfangen und weitergeleitet hat und dass Ihr lokaler Server die Webhook-Übermittlung verarbeitet hat.

Überprüfen, dass GitHub eine Übermittlung gesendet hat

Überprüfen Sie GitHub, um sicherzustellen, dass eine Webhook-Übermittlung gesendet wurde. Weitere Informationen findest du unter Anzeigen von Webhookübermittlungen.

Wenn eine Webhook-Übermittlung nicht gesendet wurde oder eine Webhook-Übermittlung gesendet wurde, aber GitHub darauf hinweist, dass die Übermittlung fehlgeschlagen ist, lesen Sie den Leitfaden zur Problembehandlung, um das Problem zu diagnostizieren. Weitere Informationen findest du unter Problembehandlung bei Webhooks.

Überprüfen, ob smee Ihre Webhook-Übermittlung erhalten hat

Navigieren Sie zu Ihrer Webhook-Proxy-URL auf „smee.io“. Es sollte ein Ereignis angezeigt werden, das dem ausgelösten oder erneut übermittelten Ereignis entspricht. Das zeigt, dass GitHub erfolgreich eine Webhook-Übermittlung an die von Ihnen angegebene Nutzdaten-URL gesendet hat.

Wenn die Webhook-Übermittlung auf smee.io nicht angezeigt wird, vergewissern Sie sich, dass Ihr Webhook Ihre Webhook-Proxy-URL (smee.io-URL) verwendet.

Überprüfen, ob die Übermittlung von Webhook durch smee weitergeleitet wurde

Im Terminalfenster, in dem Sie smee --url WEBHOOK_PROXY_URL --path /PATH --port PORT ausgeführt haben, sollte etwas wie POST http://127.0.0.1:3000/webhook - 202 zu sehen sein. Das zeigt, dass smee Ihren Webhook erfolgreich an Ihren lokalen Server weitergeleitet hat.

Wenn das nicht angezeigt wird, stellen Sie sicher, dass sowohl der Smee-Client als auch der lokale Server ausgeführt werden. Diese Prozesse sollten in zwei separaten Terminalfenstern ablaufen.

Sehen Sie nach Fehlern in den Terminalfenstern, in denen Sie den Smee-Client und den lokalen Server ausführen. Die spezifischen Fehler hängen davon ab, wie Ihr Code zum Empfangen von Webhooks geschrieben wird. Beispiele finden Sie unter Verwalten von Webhookübermittlungen.

Überprüfen, ob der lokale Server die Webhook-Übermittlung verarbeitet hat

An diesem Punkt haben Sie überprüft, ob GitHub eine Webhook-Übermittlung gesendet habt und dass die Übermittlung an Ihren lokalen Server weitergeleitet wurde. Jetzt sollten Sie überprüfen, ob der Code die Webhook-Übermittlung erwartungsgemäß verarbeitet hat. Die Vorgehensweise hängt davon ab, wie Ihr Code zum Empfangen von Webhooks geschrieben wurde. Beispiele finden Sie unter Verwalten von Webhookübermittlungen.