NAME
Pithub::GitData::Trees - Github v3 Git Data Trees API
VERSION
version 0.01043
METHODS
create
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.
- •
-
Create a Tree
POST /repos/:user/:repo/git/treesParameters:
- •
-
user: mandatory string
- •
-
repo: mandatory string
- •
-
data: mandatory hashref, having following keys:
- •
-
base_tree: optional String of the SHA1 of the tree you want to update with new data.
- •
-
tree: mandatory arrayref of hashrefs, having following keys:
- •
-
path: mandatory string of the file referenced in the tree.
- •
-
mode: mandatory string of the file mode - one of
100644for file (blob),100755for executable (blob),040000for subdirectory (tree),160000for submodule (commit) or120000for a blob that specifies the path of a symlink.
- •
-
type: mandatory string of
"blob","tree","commit".
- •
-
sha: mandatory string of SHA1 checksum ID of the object in the 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".
Examples:
my $t = Pithub::GitData::Trees->new;my $result = $t->create(user => 'octocat',repo => 'Hello-World',data => {tree => [{path => 'file.rb',mode => '100644',type => 'blob',sha => '7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b',}]});Response: Status: 201 Created
{"sha": "cd8274d15fa3ae2ab983129fb037999f264ba9a7","url": "https://api.github.com/repo/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7","tree": [{"path": "file.rb","mode": "100644","type": "blob","size": 132,"sha": "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b","url": "https://api.github.com/octocat/Hello-World/git/blobs/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b"}]}
get
- •
-
Get a Tree
GET /repos/:user/:repo/git/trees/:shaParameters:
- •
-
user: mandatory string
- •
-
repo: mandatory string
- •
-
sha: mandatory string
- •
-
recursive: optional boolean
Examples:
my $t = Pithub::GitData::Trees->new;my $result = $t->get(user => 'plu',repo => 'Pithub',sha => 'df21b2660fb6');Response: Status: 200 OK
{"sha": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312","url": "https://api.github.com/repo/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312","tree": [{"path": "file.rb","mode": "100644","type": "blob","size": 30,"sha": "44b4fc6d56897b048c772eb4087f854f46256132","url": "https://api.github.com/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132"},{"path": "subdir","mode": "040000","type": "tree","sha": "f484d249c660418515fb01c2b9662073663c242e","url": "https://api.github.com/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e"},{"path": "exec_file","mode": "100755","type": "blob","size": 75,"sha": "45b983be36b73c0788dc9cbcb76cbb80fc7bb057","url": "https://api.github.com/octocat/Hello-World/git/blobs/45b983be36b73c0788dc9cbcb76cbb80fc7bb057"}]}
- •
-
Get a Tree Recursively
GET /repos/:user/:repo/git/trees/:sha?recursive=1Parameters:
- •
-
user: mandatory string
- •
-
repo: mandatory string
- •
-
sha: mandatory string
- •
-
recursive: optional boolean
Examples:
my $t = Pithub::GitData::Trees->new;my $result = $t->get(user => 'plu',repo => 'Pithub',sha => 'df21b2660fb6',recursive => 1,);Response: Status: 200 OK
{"sha": "fc6274d15fa3ae2ab983129fb037999f264ba9a7","url": "https://api.github.com/repo/octocat/Hello-World/trees/fc6274d15fa3ae2ab983129fb037999f264ba9a7","tree": [{"path": "subdir/file.txt","mode": "100644","type": "blob","size": 132,"sha": "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b","url": "https://api.github.com/octocat/Hello-World/git/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b"}]}
AUTHOR
Johannes Plunien <[email protected]>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Johannes Plunien.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.