Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Latest commit

 

History

History
73 lines (47 loc) · 1.63 KB

File metadata and controls

73 lines (47 loc) · 1.63 KB
title Git Trees | GitHub API

Trees API

  • TOC {:toc}

Get a Tree

GET /repos/:owner/:repo/git/trees/:sha

Response

<%= headers 200 %> <%= json :tree %>

Get a Tree Recursively

GET /repos/:owner/:repo/git/trees/:sha?recursive=1

Response

<%= headers 200 %> <%= json :tree_extra %>

Create a Tree

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

Parameters

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

Input

<%= json "tree"=>
[{"path"=>"file.rb",
"mode"=>"100644",
"type"=>"blob",
"sha"=>"44b4fc6d56897b048c772eb4087f854f46256132"}] %>

Response

<%= headers 201, :Location => "https://api.github.com/repos/:owner/:repo/git/trees/:sha" %> <%= json :tree_new %>