Skip to main content
To send GitHub events to Chronosphere Observability Platform, create a webhook within GitHub and include a secret token to authenticate with Observability Platform. For more information, refer to webhook events and payloads in the GitHub documentation.

Obtain an API token

Before sending events from , contact Chronosphere Support to obtain an API token to authenticate with Observability Platform.
This API token differs from an API token that’s generated when you create a service account.

Create a GitHub webhook

To send GitHub events to Observability Platform:
  1. In GitHub, open the repository you want to configure a webhook for.
  2. Click Settings.
  3. Under Code and automation, click Webhooks.
  4. In the Add webhook window, in the Payload URL field, enter:
    https://TENANT.chronosphere.io/api/v1/data/events/receiver/github
    
  5. Select application/json as the Content type.
  6. In the Secret field, enter the API token you obtained from Chronosphere Support.
  7. Choose Let me select individual events, and then select Deployment and Deployment Status as the events to trigger the webhook.
  8. Save your webhook.

Map GitHub events to Observability Platform events

After creating a GitHub webhook to send events to Observability Platform, Observability Platform automatically maps the GitHub payload to change events. You can’t customize how the payload maps to change events. If you want to modify how the GitHub payload gets mapped, contact Chronosphere Support. The following table indicates the fields and values that Observability Platform produces from a GitHub webhook event:
FieldValue
categorydeploys
typedeploy_ACTION
sourcegithub
happened_atTIMESTAMP
titleTITLE
Replace the following:
  • ACTION: For deployment events, the type is always deploy_start. For deployment_status events, the type is deploy_ followed by the GitHub deployment status state, such as deploy_in_progress, deploy_success, or deploy_failure.
  • TIMESTAMP: The time the event occurred, taken from the deployment’s created_at field. Must be within seven days of the current time.
  • TITLE: A description generated from the repository name and environment, such as “Deployment for my-repo in environment production started”.
Observability Platform maps the following labels by default:
LabelSourceEvent types
environmentDeployment environmentdeployment, deployment_status
deployment.shaDeployment commit SHAdeployment, deployment_status
deployment.log_urlDeployment status log URLdeployment_status only
This snippet illustrates how to set a shell variable PAYLOAD to a JSON string that mimics a GitHub deployment webhook payload. The resulting $SIGNATURE is used in the X-Hub-Signature: sha1=$SIGNATURE header of the following curl request. The receiver validates authenticity by recomputing this same Hash-based Message Authentication Code (HMAC) against the stored secret token and comparing it to the header value, which is the same mechanism GitHub uses when delivering real webhooks.
# Generate the HMAC-SHA1 signature for the payload
PAYLOAD='{"deployment":{"created_at":"2024-07-24T14:15:22Z","environment":"staging","sha":"abc123def456","url":"https://api.github.com/repos/my-org/my-repo/deployments/1"},"repository":{"name":"my-repo"}}'
SIGNATURE=$(echo -n "$PAYLOAD" | openssl dgst -sha1 -hmac "$SECRET_TOKEN" | awk '{print $2}')
The following sample request simulates a GitHub deployment webhook. Replace the following:
  • TENANT: Your organization name from your Observability Platform tenant.
  • SECRET_TOKEN: The secret token configured in your GitHub webhook and registered with Observability Platform.
curl --request POST \
  --url https://TENANT.chronosphere.io/api/v1/data/events/receiver/github \
  --header "Content-Type: application/json" \
  --header "X-Github-Event: deployment" \
  --header "X-Hub-Signature: sha1=$SIGNATURE" \
  --data "$PAYLOAD"
This request produces a change event with the following values:
FieldValue
categorydeploys
typedeploy_start
sourcegithub
titleDeployment for my-repo in environment staging started
environmentstaging
deployment.shaabc123def456