Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Github API create commit

I need help with Github API,

I need commit new version of file through api, I'm trying to achieve this by sending post request to

https://api.github.com/repos/:username/:repo:/git/commits/

with data

{
    "login": "username",
    "token": "auth_token",
    "parent_commit": "sha",
    "message": "commit message.",
    "content": {
        "path": "full/path",
        "mode": "edit",
        "data": "new content"
    }
}

But it fails with result - not found.

Have anyone idea where to send this request and if this format is right?

(Format is inspired by - http://swanson.github.com/blog/2011/07/23/digging-around-the-github-api-take-2.html)

Thank you!

like image 297
yety Avatar asked Jul 02 '12 22:07

yety


2 Answers

I puzzled over this one too!

Committing new content is actually a multi-step process, using their low level and powerful API.

Here is a gist I made to share one solution. Note that a few things are hard coded, like the branch name "master".

Please feel free to fork and improve the gist, or let me know if you're having trouble getting this to run.

like image 52
Harlan T Wood Avatar answered Sep 20 '22 14:09

Harlan T Wood


Note that since May 2013, you have a CRUD API available:

That includes a file update API

{
  "message": "my commit message",
  "committer": {
    "name": "Scott Chacon",
    "email": "[email protected]"
  },
  "content": "bXkgdXBkYXRlZCBmaWxlIGNvbnRlbnRz",
  "sha": "329688480d39049927147c162b9d2deaf885005f"
}

(with content being the updated file content, Base64 encoded.)

like image 25
VonC Avatar answered Sep 24 '22 14:09

VonC