Webhook ingress
Repository provider webhook
Server-to-server only. Verifies the raw body before parsing; requires delivery id and event headers.
POST
/
v1
/
webhooks
/
github
Repository provider webhook
curl --request POST \
--url https://api.sempera.org/v1/webhooks/github \
--header 'Content-Type: application/json' \
--header 'X-Hub-Signature-256: <api-key>' \
--data '
{
"action": "<string>",
"installation": {},
"repository": {},
"ref": "<string>",
"after": "<string>"
}
'import requests
url = "https://api.sempera.org/v1/webhooks/github"
payload = {
"action": "<string>",
"installation": {},
"repository": {},
"ref": "<string>",
"after": "<string>"
}
headers = {
"X-Hub-Signature-256": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Hub-Signature-256': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
action: '<string>',
installation: {},
repository: {},
ref: '<string>',
after: '<string>'
})
};
fetch('https://api.sempera.org/v1/webhooks/github', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"ok": true,
"event": "<string>",
"ignored": "<string>",
"duplicate": true,
"results": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": {
"code": "AGENT_ENV_UNPINNED",
"message": "<string>",
"request_id": "<string>",
"field": "<string>",
"scope": "<string>",
"reason": "<string>"
}
}{
"error": "<string>"
}Authorizations
HMAC-SHA256 of raw body. X-GitHub-Delivery and X-GitHub-Event are also required.
⌘I
Repository provider webhook
curl --request POST \
--url https://api.sempera.org/v1/webhooks/github \
--header 'Content-Type: application/json' \
--header 'X-Hub-Signature-256: <api-key>' \
--data '
{
"action": "<string>",
"installation": {},
"repository": {},
"ref": "<string>",
"after": "<string>"
}
'import requests
url = "https://api.sempera.org/v1/webhooks/github"
payload = {
"action": "<string>",
"installation": {},
"repository": {},
"ref": "<string>",
"after": "<string>"
}
headers = {
"X-Hub-Signature-256": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Hub-Signature-256': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
action: '<string>',
installation: {},
repository: {},
ref: '<string>',
after: '<string>'
})
};
fetch('https://api.sempera.org/v1/webhooks/github', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"ok": true,
"event": "<string>",
"ignored": "<string>",
"duplicate": true,
"results": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": {
"code": "AGENT_ENV_UNPINNED",
"message": "<string>",
"request_id": "<string>",
"field": "<string>",
"scope": "<string>",
"reason": "<string>"
}
}{
"error": "<string>"
}