NAME

    Net::GitHub - Perl Interface for github.com

SYNOPSIS

        use Net::GitHub;
    
        my $github = Net::GitHub->new(  # Net::GitHub::V3
            login => 'fayland', pass => 'secret'
        );
    
        # If you use two factor authentication you can pass in the OTP. Do
        # note that OTPs expire quickly and you will need to generate an oauth
        # token to do anything non-trivial.
        my $github = Net::GitHub->new(
            login =>   'fayland',
            pass =>    'secret',
            otp =>     '123456',
        );
    
        # Pass api_url for GitHub Enterprise installations. Do not include a
        # trailing slash
        my $github = Net::GitHub->new(  # Net::GitHub::V3
            login =>   'fayland',
            pass =>    'secret',
            api_url => 'https://gits.aresweet.com/api/v3'
        );
    
        # suggested
        # use OAuth to create token with user/pass
        my $github = Net::GitHub->new(  # Net::GitHub::V3
            access_token => $token
        );
    
        # L<Net::GitHub::V3::Users>
        my $user = $github->user->show('nothingmuch');
        $github->user->update( bio => 'Just Another Perl Programmer' );
    
        # L<Net::GitHub::V3::Repos>
        my @repos = $github->repos->list;
        my $rp = $github->repos->create( {
            "name" => "Hello-World",
            "description" => "This is your first repo",
            "homepage" => "https://github.com"
        } );

DESCRIPTION

    http://github.com is a popular git host.

    This distribution provides easy methods to access GitHub via their
    APIs.

    Check http://developer.github.com/ for more details of the GitHub APIs.

    Read Net::GitHub::V3 for API usage.

    Read Net::GitHub::V4 for GitHub GraphQL API.

    If you prefer object oriented way, Pithub is 'There is more than one
    way to do it'.

 FAQ

      * create access_token for Non-Web Application

          my $gh = Net::GitHub::V3->new( login => 'fayland', pass => 'secret' );
          my $oauth = $gh->oauth;
          my $o = $oauth->create_authorization( {
              scopes => ['user', 'public_repo', 'repo', 'gist'], # just ['public_repo']
              note   => 'test purpose',
          } );
          print $o->{token};

      after create the token, you can use it without your password publicly
      written

          my $github = Net::GitHub->new(
              access_token => $token, # from above
          );

Git

    http://github.com/fayland/perl-net-github/

SEE ALSO

    Pithub

AUTHOR

    Fayland Lam, <fayland at gmail.com>

    Everyone who is listed in Changes.

COPYRIGHT & LICENSE

    Copyright 2009-2012 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.