---
name: "Net::GitHub::V2"
section: "3pm"
platform: "linux"
package: "libnet-github-perl"
version: "0.46-1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::GitHub::V2"
---

# Net::GitHub::V2(3pm)

Perl Interface for github.com (V2)

## NAME

Net::GitHub::V2 - Perl Interface for github.com (V2)

## SYNOPSIS

Prefer:

```
    use Net::GitHub;
    my $github = Net::GitHub->new(
        version => 2, # optional, default as 2
        owner => 'fayland', repo => 'perl-net-github'
    );
```

Or:

```
    use Net::GitHub::V2;
    # for http://github.com/fayland/perl-net-github/tree/master
    my $github = Net::GitHub::V2->new( owner => 'fayland', repo => 'perl-net-github' );
```

## DESCRIPTION

NOTE: **Github will terminate API v1 and API v2 on May 1st, 2012**

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

For those **(authentication required)**, you must set login and token (in \<https://github.com/account\>). If no login and token are provided, your **.gitconfig** will be loaded: if the github.user and github.token keys are defined, they will be used.

```
    my $github = Net::GitHub::V2->new(
        owner => 'fayland', repo => 'perl-net-github',
        login => 'fayland', token => '54b5197d7f92f52abc5c7149b313cf51', # faked
    );
```

If you want to work with private repo, you can set **always\_Authorization**.

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 **throw\_errors** 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 $github = Net::GitHub::V2->new(
        owner => 'fayland', repo => 'perl-net-github',
        login => 'fayland', token => '54b5197d7f92f52abc5c7149b313cf51', # faked
        always_Authorization => 1,
        api_throttle => 0,
        throw_errors => 0,
    );
```

## METHODS

### repos

```
    $github->repos->create( 'sandbox3', 'Sandbox desc', 'http://fayland.org/', 1 );
    $github->repos->show();
```

Net::GitHub::V2::Repositories

### user

```
    my $followers = $github->user->followers();
    $github->user->update( name => 'Fayland Lam' );
```

Net::GitHub::V2::Users

### commit

```
    my $commits = $github->commit->branch();
    my $commits = $github->commit->file( 'master', 'lib/Net/GitHub.pm' );
    my $co_detail = $github->commit->show( $sha1 );
```

Net::GitHub::V2::Commits

### issue

```
    my $issues = $github->issue->list('open');
    my $issue  = $github->issue->open( 'Bug title', 'Bug detail' );
    $github->issue->close( $number );
```

Net::GitHub::V2::Issues

### object

```
    my $tree = $github->obj_tree( $tree_sha1 ); # alias object->tree
    my $blob = $github->obj_blob( $tree_sha1, 'lib/Net/GitHub.pm' ); # alias object->blob
    my $raw  = $github->obj_raw( $sha1 ); # alias object->raw
```

Net::GitHub::V2::Object

### network

```
    $github->network_meta; # alias ->network->network_meta
    $github->network_data_chunk( $net_hash ); # alias network->network_data_chunk
```

Net::GitHub::V2::Network

### organization

```
    my $organization = $github->organization->organizations('github');
    my $teams = $github->organization->teams('PerlChina');
```

Net::GitHub::V2::Organizations

### pull\_request

```
    my $pull = $github->pull_request->pull_request();
```

Net::GitHub::V2::PullRequest

## SEE ALSO

Any::Moose

## AUTHOR

Fayland Lam, `"<fayland at gmail.com>"`

More on Changes

## COPYRIGHT & LICENSE

Copyright 2009-2011 Fayland Lam, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
