Net::GitHub::V3 - Github API v3
Prefer:
use Net::GitHub; my $gh = Net::GitHub->new( version => 3, login => 'fayland', pass => 'mypass', # or # access_token => $oauth_token );
Or:
use Net::GitHub::V3; my $gh = Net::GitHub::V3->new( login => 'fayland', pass => 'mypass', # or # access_token => $oauth_token );
http://develop.github.com/
There are two ways to authenticate through GitHub API v3:
my $gh = Net::GitHub::V3->new( login => $ENV{GITHUB_USER}, pass => $ENV{GITHUB_PASS} );
my $gh = Net::GitHub->new( access_token => $ENV{GITHUB_ACCESS_TOKEN} );
my $gh = Net::GitHub->new( # login/pass or access_token raw_response => 1 );
return raw HTTP::Response object
my $gh = Net::GitHub->new( # login/pass or access_token raw_string => 1 );
return HTTP::Response response content as string
my $gh = Net::GitHub->new( # login/pass or access_token api_throttle => 0 );
To disable call rate limiting (e.g. if your account is whitelisted), set api_throttle to 0.
By default, error responses are propagated to the user as they are received from the API. By switching RaiseError on you can make the be turned into exceptions instead, so that you don't have to check for error response after every call.
my $data = $gh->query('/user'); $gh->query('PATCH', '/user', $data); $gh->query('DELETE', '/user/emails', [ 'myemail@somewhere.com' ]);
query API directly
$gh->set_default_user_repo('fayland', 'perl-net-github'); # take effects for all $gh-> $gh->repos->set_default_user_repo('fayland', 'perl-net-github'); # take effects on $gh->repos
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'); my @contributors = $gh->repos->contributors;
2. If it is just for once, we can pass :user, :repo before any arguments
my @contributors = $repos->contributors($user, $repo);
my $user = $gh->user->show('nothingmuch'); $gh->user->update( bio => 'Just Another Perl Programmer' );
Net::GitHub::V3::Users
my @repos = $gh->repos->list; my $rp = $gh->repos->create( { "name" => "Hello-World", "description" => "This is your first repo", "homepage" => "https://github.com" } );
Net::GitHub::V3::Repos
my @issues = $gh->issue->issues(); my $issue = $gh->issue->issue($issue_id);
Net::GitHub::V3::Issues
my @pulls = $gh->pull_request->pulls();
Net::GitHub::V3::PullRequests
my @orgs = $gh->org->orgs;
Net::GitHub::V3::Orgs
Net::GitHub::V3::GitData
Net::GitHub::V3::Gists
Any::Moose, Pithub
Refer Net::GitHub
To install Net::GitHub, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::GitHub
CPAN shell
perl -MCPAN -e shell install Net::GitHub
For more information on module installation, please visit the detailed CPAN module installation guide.