Provided by: libnet-github-perl_0.55-1_all bug

NAME

       Net::GitHub::V3::Repos - GitHub Repos API

SYNOPSIS

           use Net::GitHub::V3;

           my $gh = Net::GitHub::V3->new; # read L<Net::GitHub::V3> to set right authentication info
           my $repos = $gh->repos;

           # set :user/:repo for simple calls
           $repos->set_default_user_repo('fayland', 'perl-net-github');
           my @contributors = $repos->contributors; # don't need pass user and repos

DESCRIPTION

   METHODS
       Repos

       <http://developer.github.com/v3/repos/>

       list
       list_all
               # All public repositories on Github
               my @rp = $repos->list_all;
               # starting at id 500
               my @rp = $repos->list_all(500);

       list_user
       list_org
               my @rp = $repos->list; # or my $rp = $repos->list;
               my @rp = $repos->list('private');
               my @rp = $repos->list_user('c9s');
               my @rp = $repos->list_user('c9s', 'member');
               my @rp = $repos->list_org('perlchina');
               my @rp = $repos->list_org('perlchina', 'public');

       create
               # create for yourself
               my $rp = $repos->create( {
                   "name" => "Hello-World",
                   "description" => "This is your first repo",
                   "homepage" => "https://github.com"
               } );
               # create for organization
               my $rp = $repos->create( {
                   "org"  => "perlchina", ## the organization
                   "name" => "Hello-World",
                   "description" => "This is your first repo",
                   "homepage" => "https://github.com"
               } );

       get
               my $rp = $repos->get('fayland', 'perl-net-github');

       To ease the keyboard, we provied two ways to call any method which starts with :user/:repo

       1. SET user/repos before call methods below

           $gh->set_default_user_repo('fayland', 'perl-net-github'); # take effects for all $gh->
           $repos->set_default_user_repo('fayland', 'perl-net-github'); # only take effect to $gh->repos
           my @contributors = $repos->contributors;

       2. If it is just for once, we can pass :user, :repo before any arguments

           my @contributors = $repos->contributors($user, $repo);

       update
               $repos->update({ homepage => 'https://metacpan.org/module/Net::GitHub' });

       contributors
       languages
       teams
       tags
       contributors
               my @contributors = $repos->contributors;
               my @languages = $repos->languages;
               my @teams = $repos->teams;
               my @tags = $repos->tags;
               my @branches = $repos->branches;

       Repo Collaborators API

       <http://developer.github.com/v3/repos/collaborators/>

       collaborators
       is_collaborator
       add_collaborator
       delete_collaborator
               my @collaborators = $repos->collaborators;
               my $is = $repos->is_collaborator('fayland');
               $repos->add_collaborator('fayland');
               $repos->delete_collaborator('fayland');

       Commits API

       <http://developer.github.com/v3/repos/commits/>

       commits
       commit
               my @commits = $repos->commits;
               my $commit  = $repos->commit($sha);

       comments
       commit_comments
       create_comment
       comment
       update_comment
       delete_comment
               my @comments = $repos->comments;
               my @comments = $repos->commit_comments($sha);
               my $comment  = $repos->create_comment($sha, {
                   "body" => "Nice change",
                   "commit_id" => "6dcb09b5b57875f334f61aebed695e2e4193db5e",
                   "line" => 1,
                   "path" => "file1.txt",
                   "position" => 4
               });
               my $comment = $repos->comment($comment_id);
               my $comment = $repos->update_comment($comment_id, {
                   "body" => "Nice change"
               });
               my $st = $repos->delete_comment($comment_id);

       compare_commits
               my $diffs = $repos->compare_commits($base, $head);

       Downloads

       <http://developer.github.com/v3/repos/downloads/>

       downloads
       download
       delete_download
               my @downloads = $repos->downloads;
               my $download  = $repos->download($download_id);
               my $st = $repos->delete_download($download_id);

       create_download
       upload_download
               my $download = $repos->create_download( {
                   "name" => "new_file.jpg",
                   "size" => 114034,
                   "description" => "Latest release",
                   "content_type" => "text/plain"
               } );
               my $st = $repos->upload_download($download, "/path/to/new_file.jpg");

               # or batch it
               my $st = $repos->create_download( {
                   "name" => "new_file.jpg",
                   "size" => 114034,
                   "description" => "Latest release",
                   "content_type" => "text/plain",
                   file => '/path/to/new_file.jpg',
               } );

       Forks API

       <http://developer.github.com/v3/repos/forks/>

       forks
       create_fork
               my @forks = $repos->forks;
               my $fork = $repos->create_fork;
               my $fork = $repos->create_fork($org);

       Repos Deploy Keys API

       <http://developer.github.com/v3/repos/keys/>

       keys
       key
       create_key
       update_key
       delete_key
               my @keys = $repos->keys;
               my $key  = $repos->key($key_id); # get key
               $repos->create_key( {
                   title => 'title',
                   key   => $key
               } );
               $repos->update_key($key_id, {
                   title => $title,
                   key   => $key
               });
               $repos->delete_key($key_id);

       Repo Watching API

       <http://developer.github.com/v3/repos/watching/>

       watchers
               my @watchers = $repos->watchers;

       watched
               my @repos = $repos->watched; # what I watched
               my @repos = $repos->watched('c9s');

       is_watching
               my $is_watching = $repos->is_watching;
               my $is_watching = $repos->is_watching('fayland', 'perl-net-github');

       watch
       unwatch
               my $st = $repos->watch();
               my $st = $repos->watch('fayland', 'perl-net-github');
               my $st = $repos->unwatch();
               my $st = $repos->unwatch('fayland', 'perl-net-github');

       Hooks API

       <http://developer.github.com/v3/repos/hooks/>

       hooks
       hook
       create_hook
       update_hook
       test_hook
       delete_hook
               my @hooks = $repos->hooks;
               my $hook  = $repos->hook($hook_id);
               my $hook  = $repos->create_hook($hook_hash);
               my $hook  = $repos->update_hook($hook_id, $new_hook_hash);
               my $st    = $repos->test_hook($hook_id);
               my $st    = $repos->delete_hook($hook_id);

       Repo Merging API

       <http://developer.github.com/v3/repos/merging/>

       merges
               my $status = $repos->merges( {
                   "base" => "master",
                   "head" => "cool_feature",
                   "commit_message" => "Shipped cool_feature!"
               } );

       Repo Statuses API

       <http://developer.github.com/v3/repos/statuses/>

       list_statuses
               my @statuses = $repos->list_statuses($sha1);

       create_status
               my $status = $repos->create_status( {
                   "state" => "success",
                   "target_url" => "https://example.com/build/status",
                   "description" => "The build succeeded!"
               } );

AUTHOR & COPYRIGHT & LICENSE

       Refer Net::GitHub