Provided by: libpithub-perl_0.01041-1_all bug

NAME

       Pithub::GitData::Trees - Github v3 Git Data Trees API

VERSION

       version 0.01041

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/trees

           Parameters:

           •   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 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.

                   •   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/:sha

           Parameters:

           •   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=1

           Parameters:

           •   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 <plu@cpan.org>

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.