Informationen zum Testen von Webhooks
Sie können die Webhook-Übermittlung testen. Auf diese Weise können Sie überprüfen, ob GitHub als Reaktion auf ein Ereignis, von dem Sie erwarten, dass es eine Webhook-Zustellung auslöst, eine Webhook-Zustellung sendet.
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-Ereignis auslösen und bestätigen, dass GitHub eine Webhook-Zustellung gesendet hat.
-
Aktivieren Sie den Webhook. 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 finden Sie 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 daspush-Ereignis abonniert hat, können Sie einpush-Testereignis für Ihren Webhook über die REST-API auslösen. Weitere Informationen findest du unter REST-API-Endpunkte für Repository-Webhooks und REST-API-Endpunkte für Organisationswebhooks. -
Überprüfen Sie GitHub , ob eine Webhook-Übermittlung gesendet wurde. Informationen zur Ausführung für jeden Webhooktyp findest du unter Anzeigen von Webhookübermittlungen.
Wenn eine Webhook-Übermittlung nicht gesendet wurde oder eine Webhook-Übermittlung gesendet wurde, aber GitHub angibt, dass die Zustellung fehlgeschlagen ist, lesen Sie den Leitfaden zur Problembehandlung, um das Problem zu diagnostizieren. Weitere Informationen finden Sie unter Problembehandlung bei Webhooks.
Lokales Testen von Webhook-Code
Um Ihren Webhook-Code lokal auf Ihrem Computer oder Codespace zu testen, können Sie eine Webhook-Proxy-URL verwenden, um Webhooks von GitHub Ihrem 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 gezeigt, wie Sie smee.io verwenden, um eine Webhook-Proxy-URL bereitzustellen und Webhooks weiterzuleiten.
Spezifische Beispiele für Code- und Testschritte findest du unter Verwaltung von Webhook-Lieferungen.
Eine Webhook-Proxy-URL abrufen
- Navigiere im Browser zu https://smee.io/.
- Klicke auf Neuen Kanal starten.
- 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 findest du unter Erstellen von Webhooks und Bearbeiten von Webhooks.
Jetzt sendet GitHub Webhook-Zustellungen 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 findest du unter Verwaltung von Webhook-Lieferungen.
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.
Lassen Sie Ihren lokalen Server weiterlaufen, während Sie Ihren Webhook testen.
Weiterleiten von Webhooks
-
Wenn smee-client noch nicht installiert ist, führen Sie den folgenden Befehl auf Ihrem Terminal aus:
Shell npm install --global smee-client
npm install --global smee-client -
Um weitergeleitete Webhooks von smee.io zu empfangen, führen Sie den folgenden Befehl am Terminal aus. Ersetze
WEBHOOK_PROXY_URLdurch deine Webhook-Proxy-URL von früher. Ersetzen SiePATHdurch den Pfad oder die Route, die der Server verarbeitet. Ersetzen SiePORTdurch den Port, an dem ihr lokaler Server eine Überwachung ausführt.Shell smee --url WEBHOOK_PROXY_URL --path /PATH --port PORT
smee --url WEBHOOK_PROXY_URL --path /PATH --port PORTSie sollten die Ausgabe sehen, die wie folgt aussieht, wobei die Platzhalter
WEBHOOK_PROXY_URL,PORTundPATHdurch die von Ihnen angegebenen Werte ersetzt werden:Shell Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:PORT/PATH Connected WEBHOOK_PROXY_URL
Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:PORT/PATH Connected WEBHOOK_PROXY_URLWenn Ihre Webhook-Proxy-URL (smee.io-URL) eine Webhook-Auslieferung von GitHub empfängt, leitet smee die Webhook-Auslieferung an Ihren lokalen Server weiter.
-
Lassen Sie dies laufen, 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 Ihr lokaler Server als auch die Smee-Weiterleitung laufen.
Auslösen einer Webhook-Lieferung
Aktivieren Sie den Webhook. 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 finden Sie unter Erneutes Zustellen von Webhooks.
Überprüfen der Übermittlung
Sie können überprüfen, ob GitHub eine Webhook-Übermittlung gesendet wurde, dass smee die Übermittlung empfangen und weitergeleitet hat und dass Ihr lokaler Server die Webhook-Übermittlung verarbeitet hat.
Überprüfen, ob GitHub eine Lieferung gesendet hat
Prüfen Sie unter GitHub, ob eine Webhook-Zustellung erfolgt ist. Weitere Informationen finden Sie unter Anzeigen von Webhookübermittlungen.
Wenn eine Webhook-Übermittlung nicht gesendet wurde oder eine Webhook-Übermittlung gesendet wurde, aber GitHub angibt, dass die Zustellung fehlgeschlagen ist, lesen Sie den Leitfaden zur Problembehandlung, um das Problem zu diagnostizieren. Weitere Informationen finden Sie 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. Dies gibt an, dass GitHub eine Webhook-Übermittlung erfolgreich an die von Ihnen angegebene Nutzlast-URL gesendet wurde.
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 Sie, ob Ihre Webhook-Lieferung von 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 findest du unter Verwaltung von Webhook-Lieferungen.
Überprüfen, ob der lokale Server die Webhook-Übermittlung verarbeitet hat
An diesem Punkt haben Sie überprüft, ob GitHub eine Webhook-Übermittlung gesendet wurde und dass smee die Übermittlung an Ihren lokalen Server weitergeleitet hat. 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 findest du unter Verwaltung von Webhook-Lieferungen.