-
Notifications
You must be signed in to change notification settings - Fork 64
/
GitHub.pm
90 lines (59 loc) · 2.05 KB
/
GitHub.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package Net::GitHub;
use Any::Moose;
our $VERSION = '0.40_01';
our $AUTHORITY = 'cpan:FAYLAND';
sub new {
my $class = shift;
my $params = $class->BUILDARGS(@_);
my $obj;
if ( exists $params->{version} and $params->{version} == 2 ) {
require Net::GitHub::V2;
return Net::GitHub::V2->new($params);
} else {
require Net::GitHub::V3;
return Net::GitHub::V3->new($params);
}
#return $class->meta->new_object( __INSTANCE__ => $obj, @_,);
}
no Any::Moose;
__PACKAGE__->meta->make_immutable(inline_constructor => 0);
1;
__END__
=head1 NAME
Net::GitHub - Perl Interface for github.com
=head1 SYNOPSIS
use Net::GitHub;
my $github = Net::GitHub->new( login => 'fayland', pass => 'secret' ); # default to Net::GitHub::V3
# for backwards
my $github = Net::GitHub->new( # Net::GitHub::V2
version => 2,
owner => 'fayland', name => 'perl-net-github'
);
# for V3
# 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->->create( {
"name" => "Hello-World",
"description" => "This is your first repo",
"homepage" => "https://github.com"
} );
=head1 DESCRIPTION
L<http://github.com> is a popular git host.
This distribution provides easy methods to access GitHub via their APIs.
Check L<http://developer.github.com/> for more details of the GitHub APIs.
Read L<Net::GitHub::V3> for API usage.
If you prefer object oriented way, L<Pithub> is 'There is more than one way to do it'.
=head1 Git
L<http://github.com/fayland/perl-net-github/>
=head1 SEE ALSO
L<Any::Moose>, L<Pithub>
=head1 AUTHOR
Fayland Lam, C<< <fayland at gmail.com> >>
Everyone who is listed in B<Changes>.
=head1 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.