This wasn't manifesting in the browser, as my browser was automatically prefixing the url with a slash, but I finally confirmed it with plain ol curl
`curl http://ci.example.com/github-webhook/`
- result: same error about payload that you see in the browser
`curl curl http://ci.example.com/github-webhook`
- result: silence. no output.
I spent like 2 hours trying to figure this out, but mostly because I didn't realize that the github service "Update settings" button needed to be pushed before "Test Hook" would work. But that's an issue for github
This still appears to be an issue.
I experienced it with the Bitbucket plugin.
`http://server/bitbucket-hook` vs `http://server/bitbucket-hook/`
I checked the code for the Bitbucket plugin, and it does not appear that the problem lies there. As it doesn't appear they control URL matching.
I think this belongs in core.