GitHub CI/CD Webhook Integration
Kloudfuse ingests event streams from GitHub using webhooks, enabling you to monitor repository activity, correlate deployment events with application performance, and track CI/CD pipeline execution alongside your infrastructure telemetry.
Overview
When a GitHub event occurs — such as a push, pull request, workflow run, or deployment — GitHub delivers a JSON payload to the Kloudfuse ingestion endpoint over HTTPS. Kloudfuse stores these events and makes them queryable alongside metrics, logs, and traces.
GitHub supports several webhook scopes:
| Webhook type | When to use it |
|---|---|
Repository webhook |
Monitor a single repository — the most common setup. |
Organization webhook |
Monitor all repositories in an organization from a single webhook. |
GitHub App webhook |
Deliver events for all installations of a GitHub App. |
GitHub Marketplace webhook |
Receive events for GitHub Marketplace purchases. |
GitHub Sponsors webhook |
Receive events for sponsorship activity. |
The steps below configure a repository webhook. For other webhook types, follow the same payload URL and content-type settings in the respective GitHub configuration page.
Prerequisites
-
A Kloudfuse cluster reachable from the public internet, or from GitHub’s IP ranges if using IP allowlisting.
-
Owner or administrator access to the GitHub repository (or organization, for an organization webhook).
-
The external hostname of your Kloudfuse cluster (for example,
kloudfuse.example.com). -
If ingestion authentication is enabled, an API key — see Ingestion Authentication with API Key.
Configure the GitHub Webhook
-
Sign in to GitHub and navigate to the repository you want to monitor.
-
Open Settings > Webhooks, then click Add webhook.
GitHub may prompt you to confirm your password.
-
In the Payload URL field, enter your Kloudfuse ingestion endpoint:
https://<kloudfuse-hostname>/ingester/github/eventsReplace
<kloudfuse-hostname>with the external hostname of your Kloudfuse cluster. -
Set Content type to
application/json. -
If ingestion authentication is enabled on your cluster, expand Add header and add:
Header name Value Kf-Api-KeyYour API key token from Ingestion Authentication with API Key
-
Under Which events would you like to trigger this webhook?, select Send me everything.
This forwards all GitHub event types to Kloudfuse. Alternatively, select Let me select individual events and choose the events relevant to your observability goals (for example,
push,pull_request,workflow_run,deployment,deployment_status). -
Ensure Active is checked, then click Add webhook.
GitHub immediately sends a ping event to confirm the webhook is reachable.
A green checkmark on the webhook’s Recent Deliveries tab confirms Kloudfuse received it.
Verify Events Are Arriving
After triggering a GitHub action (for example, opening a pull request), confirm events are arriving in the Kloudfuse UI:
-
Click the Events tab, then select List from the drop-down menu.
-
In the Filters panel on the left, locate the Source facet and select github, or type
githubin the Search Events search bar to filter by source. -
Set the time range to the last 15 minutes using the interval picker in the top-right corner.
-
Confirm that GitHub events appear in the list. Each event shows a human-readable Title (for example,
demo-user push on demo-org/demo-repo) and a Source ofgithub. -
Click any event row to open the Detail view. The full webhook payload is available in the Message field, and the Facets section displays parsed fields such as
eventType(for example,github.pushorgithub.pull_request). -
To narrow results to a specific event type, click the
eventTypevalue in the Facets section of the Detail view and choose Filter By.
Troubleshooting
Ping Event Shows an Error
If the ping delivery on the webhook’s Recent Deliveries tab shows a non-2xx response or a connection error:
-
Confirm
<kloudfuse-hostname>resolves to the Kloudfuse ingress IP from GitHub’s network. -
Check that port 443 is open in your cluster’s security groups or firewall rules.
-
Verify the URL does not include a trailing slash: the path must be exactly
/ingester/github/events.
Deliveries Return 401 Unauthorized
If delivery responses show HTTP 401:
-
Ingestion authentication is enabled on your cluster.
-
Add the
Kf-Api-Keyheader with a valid API key as described in step 5 above. -
Confirm the API key has not expired — check Admin > Settings > Auth key labels in the Kloudfuse UI.
Events Delivered Successfully but Not Visible in Kloudfuse
-
Allow up to 60 seconds for events to be indexed.
-
Confirm you are querying the correct time range.
-
Check that the
source="github"filter returns any results at all before adding additional filters.
Expected Fields Are Missing from Events
GitHub webhook payloads differ by event type. The fields available in Kloudfuse reflect what GitHub sends in each payload. Refer to the GitHub Webhook Events and Payloads reference to confirm which fields are included for each event type.