Provided by: libnet-github-perl_0.83-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({
                   type => 'private'
                   sort => 'updated'
               });
               my @rp = $repos->list_user('c9s');
               my @rp = $repos->list_user('c9s', {
                   type => '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' });

       delete
               $repos->delete();

       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;
               my $branch = $repos->branch('master');

       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 @commits = $repos->commits({
                   author => 'fayland'
               });
               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);

       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');

       Subscriptions

       Github changed the ideas of Watchers (stars) and Subscriptions (new watchers).

           https://github.com/blog/1204-notifications-stars

       The Watchers code in this module predates the terminology change, so the new Watcher
       methods use the GitHub 'subscription' terminology.

       subscribers
           Returns a list of subscriber data hashes.

       is_subscribed
           Returns true or false if you are subscribed

               $repos->is_subscribed();
               $repos->is_subscribed('fayland','perl-net-github');

       subscription
           Returns more information about your subscription to a repo.  is_subscribed is a
           shortcut to calling this and checking for subscribed => 1.

       subscribe
           Required argument telling github if you want to subscribe or if you want to ignore
           mentions. If you want to change from subscribed to ignores you need to unsubscribe
           first.

               $repos->subscribe('fayland','perl-net-github', { subscribed => 1 })
               $repos->subscribe('fayland','perl-net-github', { ignored => 1 })

       unsubscribe
               $repos->unsubscribe('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!"
               } );

       Repo Releases API

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

       releases
               my @releases = $repos->releases();

       release
               my $release = $repos->release($release_id);

       create_release
               my $release = $repos->create_release({
                 "tag_name" => "v1.0.0",
                 "target_commitish" => "master",
                 "name" => "v1.0.0",
                 "body" => "Description of the release",
                 "draft" => \1,
               });

       update_release
               my $release = $repos->update_release($release_id, {
                 "tag_name" => "v1.0.0",
                 "target_commitish" => "master",
                 "name" => "v1.0.0",
                 "body" => "Description of the release",
               });

       delete_release
               $repos->delete_release($release_id);

       release_assets
               my @release_assets = $repos->release_assets($release_id);

       upload_asset
               my $asset = $repos->upload_asset($release_id, $name, $content_type, $file_content);

           Check examples/upload_asset.pl for a working example.

       release_asset
               my $release_asset = $repos->release_asset($release_id, $asset_id);

       update_release_asset
               my $release_asset = $repos->update_release_asset($release_id, $asset_id, {
                   name" => "foo-1.0.0-osx.zip",
                   "label" => "Mac binary"
               });

       delete_release_asset
               my $ok = $repos->delete_release_asset($release_id, $asset_id);

       Repo Deployment API

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

       list_deployments
               my $response = $repos->list_deployments( $owner, $repo, {
                   'ref' => 'feature-branch',
               });

       create_deployment
               my $response = $repos->create_deployment( $owner, $repo, {
                 "ref" => 'feature-branch',
                 "description" => "deploying my new feature",
               });

       list_deployment_statuses
               my $response = $repos->list_deployment_statuses( $owner, $repo, $deployment_id );

       create_deployment_status
               my $response = $repos->create_deployment_status( $owner, $repo, $deployment_id, {
                   "state": "success",
                   "target_url": "https://example.com/deployment/42/output",
                   "description": "Deployment finished successfully."
               });

       Repo Statistics API

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

       contributor stats
       commit activity
       code frequency
       participation
       punch card
               my $contributor_stats   = $repos->contributor_stats($owner, $repo);
               my $commit_activity     = $repos->commit_activity($owner, $repo);
               my $code_freq           = $repos->code_frequency($owner, $repo);
               my $participation       = $repos->participation($owner, $repo);
               my $punch_card          = $repos->punch_card($owner, $repo);

AUTHOR & COPYRIGHT & LICENSE

       Refer Net::GitHub