Github-api dando 404 ao passar json-data com python + urllib2

Eu tenho o seguinte código, que deve executar a primeira parte da criação de um novo download no github. Deve enviar os dados do json com o POST.

jsonstring = '{"name": "test", "size": "4"}'
req = urllib2.Request("https://api.github.com/repos/<user>/<repo>/downloads")
req.add_header('Authorization', 'token ' + '<token>')
result = urllib2.urlopen(req, jsonstring)

Se eu remover o, jsonstring&nbsp;deurlopen(), não falha, e me fornece a lista de downloads disponíveis. No entanto, se eu tentar POSTAR o json-string, recebo o erro 404.

O problema tem que estar com o json, ou na maneira como eu o envio, mas não consigo descobrir qual é o problema. As cordas em<...>&nbsp;estão bem no código real, acabei de removê-los do post

Eu tentei aproximadamente o mesmo comcurl&nbsp;na linha de comando, com um método de autenticação ligeiramente diferente, e funcionou.

Testado:

Works (retorna o json desejado):

curl -u "user:password" --data "json..." https://api.github.com/repos/<user>/<repo>/downloads

Trabalho:

curl -H 'Authorization: token <token>' https://api.github.com/

Não funciona (retorna "credenciais inválidas"):

curl -H 'Authorization: token <invalid_token>' https://api.github.com/

Não funciona ("não encontrado"):

curl -H 'Authorization: token <valid_token>' --data "json..." https://api.github.com/repos/<user>/<repo>/downloads

Isso não parece ser um problema específico do código python. Os dados POST json parecem estar bem, e a autorização do token OAuth parece estar (pelo menos parcialmente) funcionando. Mas quando estes são colocados juntos, ele pára de funcionar.