Provided by: libnet-github-perl_0.55-1_all
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