API de GitHub para crear un file

Así que estoy tratando de familiarizarme con la API de GitHub. Estoy usando commands cURL para implementar algunas de sus funciones básicas. Puedo get la autorización básica y la creación del repository correctamente. Actualmente, bash crear un file en un repository utilizando su API & am frente al post "post": error "No encontrado" como respuesta.

Su documentation sugiere esto:

PUT /repos/:owner/:repo/contents/:path 

Se me ocurrió esto como el equivalente de cURL:

 curl -H 'Authorization: <token>' -d '{"path": "test.txt", "message": "Initial Commit", "committer": {"name": "<name>", "email": "<email>"}, "content": "bXkgbmV3IGZpbGUgY29udGVudHM=", "note":"Test Commit"}' https://api.github.com/repos/InViN-test/test_repo1/contents/test.txt 

Creo que el problema está en la URL de la API que estoy usando al final, pero parece que no puedo entender cómo debería ser la URL.

Esto es lo que utilicé para crear un repository:

 curl -i -H 'Authorization: <token>' -d '{"name": "test_repo1", "message": "Initial Commit", "committer": {"name": "<name>", "email": "<email>"}, "content": "bXkgbmV3IGZpbGUgY29udGVudHM=", "note":"Test Commit"}' https://api.github.com/user/repos 

La URL de creación de repository que utilicé sigue: usuario / repos como syntax. Del mismo modo, he intentado usar user / repos / repo, pero no funcionó.

¿Alguien puede aclarar esto?

He revisado varias preguntas de StackOverflow y muchas parecen similares, pero ninguna realmente ofrece un ejemplo, así que puedo descubrir dónde está el error.

EDITAR: Gracias a TimWolla por la respuesta.

Sintaxis de un command en funcionamiento para crear un file en un repository usando la API de GitHub:

curl -i -X PUT -H 'Authorization: token <token_string>' -d '{"path": "<filename.extension>", "message": "<Commit Message>", "committer": {"name": "<Name>", "email": "<E-Mail>"}, "content": "<Base64 Encoded>", "branch": "master"}' https://api.github.com/repos/<owner>/<repository>/contents/<filename.extension>

Mi ejemplo:

curl -i -X PUT -H 'Authorization: token f94ce61613d5613a23770b324521b63d202d5645' -d '{"path": "test4.txt", "message": "Initial Commit", "committer": {"name": "Neil", "email": "neil@abc.com"}, "content": "bXkgbmV3IGZpbGUgY29udGVudHM=", "branch": "master"}' https://api.github.com/repos/InViN-test/test_repo1/contents/test4.txt

Al usar curl , debe especificar el verbo HTTP correcto ( PUT en este caso) usando la opción -X :

 curl -X PUT -H 'Authorization: …' yadayada 

También usando su carga útil de ejemplo apareció un error 500, esta carga útil acortada funcionó bien:

 {"message": "Initial Commit","content": "bXkgbmV3IGZpbGUgY29udGVudHM="} 

No obstante, no sé el motivo real del error del server.