I consider this a misuse of the Accept header. They're defining a bunch of custom media types, which in of itself is pretty weird, but then they're not actually using those media types as the Content-Type of the response. So I can send a request where I say 'Accept: application/vnd.github.full+json', but the response I get back is 'Content-Type: application/json; charset=utf-8', which means the server intentionally handed me a media type that I explicitly said I didn't accept.
I don't understand why they didn't just use the X-GitHub-Media-Type header as a request header.
I don't understand why they didn't just use the X-GitHub-Media-Type header as a request header.