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.
No it isn't. If you're doing REST and your resources are not completely trivial (arguably, even if they are) you should be defining a custom media type for them (think HTML5).
>but then they're not actually using those media types as the Content-Type of the response.
Ok, that is very weird.
Nothing in the spec says the Accept and Content-Type must match.
I get that from a practical standpoint the server needs to send back a JSON Content-Type, otherwise a lot of clients won't understand that it's JSON and won't decode it properly. But given this, shouldn't they have picked a different header to declare the API version?
What's the benefit of using the Accept header in this fashion? AFAICT there is no benefit at all over just using a custom header.