Webhook pipeline triggers can't process requests with specific Content-Types
Summary
I use contentful.com as headless CMS and want to trigger a build of my Jekyll project, when content is updated. That worked until recently. Now I get the error message:
[...]
"statusCode": 406,
"body": "{\"error\":\"The requested content-type 'application/vnd.contentful.management.v1+json' is not supported.\"}"
[...]
Steps to reproduce
- Create an account with contentful.com
- Setup a webhook for the project
- Add webhook like: https://gitlab.com/api/v4/projects/PROJECT_ID/ref/master/trigger/pipeline?token=TOKEN
- Check the failing Webhook calls when you update a piece of content
What is the current bug behavior?
Gitlab.com rejects the webhook call which looks like this:
Request details
{
"url": "https://gitlab.com/api/v4/projects/PROJECT_ID/ref/master/trigger/pipeline?token=TOKEN",
"method": "POST",
"headers": {
"Content-Type": "application/vnd.contentful.management.v1+json",
"X-Contentful-Topic": "ContentManagement.Entry.publish",
"X-Contentful-Webhook-Name": "gitlab"
},
"timeout": 30000
}
Request body
{
"sys": {
"space": {
"sys": {
"type": "Link",
"linkType": "Space",
"id": "su64fh90h593"
}
},
"type": "Entry",
"contentType": {
"sys": {
"type": "Link",
"linkType": "ContentType",
"id": "video"
}
},
"id": "72DqEdpfZCi0O62U0aM04C",
"revision": 5,
"createdAt": "2017-09-20T14:10:05.475Z",
"updatedAt": "2017-10-24T05:56:30.447Z"
},
"fields": {
"title": {
"en-US": "Klischees"
},
"client": {
"en-US": "Eurowings"
},
"director": {
"en-US": "Claas Ortmann"
},
"agency": {
"en-US": "Lukas Lindemann Rosinski"
},
"production": {
"en-US": "TONY PETERSEN FILM"
},
"vimeoId": {
"en-US": 151515306
},
"award": {
"en-US": false
},
"thumbnail": {
"en-US": {
"sys": {
"type": "Link",
"linkType": "Asset",
"id": "mgkWxggjeKo8kosa4cEqQ"
}
}
}
}
}
with this response:
Complete response
{
"statusCode": 406,
"body": "{\"error\":\"The requested content-type 'application/vnd.contentful.management.v1+json' is not supported.\"}",
"headers": {
"server": "nginx",
"date": "Tue, 24 Oct 2017 05:56:30 GMT",
"content-type": "application/json",
"content-length": "104",
"connection": "close",
"cache-control": "no-cache",
"vary": "Origin",
"x-request-id": "e6dd741c-81a8-4fa6-9ae1-346cd53dbdb5",
"x-runtime": "0.030656",
"ratelimit-limit": "600",
"ratelimit-observed": "2",
"ratelimit-remaining": "598"
},
"url": "https://gitlab.com/api/v4/projects/PROJECT_ID/ref/master/trigger/pipeline?token=TOKEN"
}
What is the expected correct behavior?
I guess the idea of the Content-Type application/vnd.contentful.management.v1+json
is that it would be processed as application/json
.
This is their documentation on the matter: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/webhooks
Output of checks
This bug happens on GitLab.com
Any help on this would be much appreciated!