Scroll to navigation

Net::GitHub::V3(3pm) User Contributed Perl Documentation Net::GitHub::V3(3pm)
 

NAME

Net::GitHub::V3 - Github API v3

SYNOPSIS

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

DESCRIPTION

<http://develop.github.com/>

ATTRIBUTES

Authentication
There are two ways to authenticate through GitHub API v3:
login/pass
    my $gh = Net::GitHub::V3->new( login => $ENV{GITHUB_USER}, pass => $ENV{GITHUB_PASS} );
    
access_token
    my $gh = Net::GitHub->new( access_token => $ENV{GITHUB_ACCESS_TOKEN} );
    
raw_response
    my $gh = Net::GitHub->new(
        # login/pass or access_token
        raw_response => 1
    );
return raw HTTP::Response object
raw_string
    my $gh = Net::GitHub->new(
        # login/pass or access_token
        raw_string => 1
    );
return HTTP::Response response content as string
api_throttle
    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.
RaiseError
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.
next_url, last_url, prev_url, first_url
Any methods which return multiple results may be paginated. After performing a query you should check to see if there are more results. These attributes will be reset for each query.
The predicates to check these attributes are "has_next_page", "has_last_page", "has_prev_page" and "has_first_page".
See Github's documentation: <http://developer.github.com/v3/#pagination>
The "per_page" parameter mentioned in their docs is NOT supported by this module.
  my @issues = $gh->issue->repos_issues;
  while ($gh->issue->has_next_page) {
      push @issues, $gh->issue->query($gh->issue->next_url);
      ## OR ##
      push @issues, $gh->issue->next_page;
  }
ua
To set the proxy for ua, you can do something like following
    $gh->ua->proxy('https', 'socks://127.0.0.1:9050');
$gh->ua is an instance of LWP::UserAgent

METHODS

query($method, $url, $data)
    my $data = $gh->query('/user');
    $gh->query('PATCH', '/user', $data);
    $gh->query('DELETE', '/user/emails', [ 'myemail@somewhere.com' ]);
query API directly
next_page
When the results have been paginated, "next_page" is sugar for the common case of iterating through all the pages in order. It simply calls "query" with the "next_url".
set_default_user_repo
    $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 provided 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);

MODULES

user
    my $user = $gh->user->show('nothingmuch');
    $gh->user->update( bio => 'Just Another Perl Programmer' );
Net::GitHub::V3::Users
repos
    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
issue
    my @issues = $gh->issue->issues();
    my $issue  = $gh->issue->issue($issue_id);
Net::GitHub::V3::Issues
pull_request
    my @pulls = $gh->pull_request->pulls();
Net::GitHub::V3::PullRequests
org
    my @orgs   = $gh->org->orgs;
Net::GitHub::V3::Orgs
git_data
Net::GitHub::V3::GitData
gist
Net::GitHub::V3::Gists
oauth
Net::GitHub::V3::OAuth
event
Net::GitHub::V3::Events
search
Net::GitHub::V3::Search

SEE ALSO

Pithub

AUTHOR & COPYRIGHT & LICENSE

Refer Net::GitHub
2014-09-11 perl v5.20.1