| title | Git Trees | GitHub API |
|---|
- TOC {:toc}
GET /repos/:owner/:repo/git/trees/:sha
<%= headers 200 %> <%= json :tree %>
GET /repos/:owner/:repo/git/trees/:sha?recursive=1
<%= headers 200 %> <%= json :tree_extra %>
The tree creation API will take nested entries as well. If both a tree and a nested path modifying that tree are specified, it will overwrite the contents of that tree with the new path contents and write a new tree out.
POST /repos/:owner/:repo/git/trees
base_tree : optional String of the SHA1 of the tree you want to update with new data
tree
: Array of Hash objects (of path, mode, type and sha) specifying a tree structure
tree.path : String of the file referenced in the tree
tree.mode
: String of the file mode - one of 100644 for file (blob), 100755 for executable (blob), 040000 for subdirectory (tree), 160000 for submodule (commit) or 120000 for a blob that specifies the path of a symlink
tree.type
: String of blob, tree, commit
tree.sha : String of SHA1 checksum ID of the object in the tree
tree.content
: String of content you want this file to have - GitHub will write this blob out and use that SHA for this entry. Use either this or tree.sha
<%= json "tree"=>
[{"path"=>"file.rb",
"mode"=>"100644",
"type"=>"blob",
"sha"=>"44b4fc6d56897b048c772eb4087f854f46256132"}] %>
<%= headers 201, :Location => "https://api.github.com/repos/:owner/:repo/git/trees/:sha" %> <%= json :tree_new %>