File Coverage

blib/lib/Pithub/Repos/Commits.pm
Criterion Covered Total %
statement 41 41 100.0
branch 20 20 100.0
condition n/a
subroutine 10 10 100.0
pod 8 8 100.0
total 79 79 100.0


line stmt bran cond sub pod time code
1             package Pithub::Repos::Commits;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01041';
4              
5             # ABSTRACT: Github v3 Repo Commits API
6              
7 16     16   114 use Moo;
  16         35  
  16         94  
8 16     16   5015 use Carp qw( croak );
  16         43  
  16         13032  
9             extends 'Pithub::Base';
10              
11              
12             sub compare {
13 3     3 1 2191 my ( $self, %args ) = @_;
14 3 100       20 croak 'Missing key in parameters: base' unless $args{base};
15 2 100       14 croak 'Missing key in parameters: head' unless $args{head};
16 1         10 $self->_validate_user_repo_args( \%args );
17             return $self->request(
18             method => 'GET',
19             path => sprintf(
20             '/repos/%s/%s/compare/%s...%s', delete $args{user},
21             delete $args{repo}, delete $args{base}, delete $args{head}
22 1         17 ),
23             %args,
24             );
25             }
26              
27              
28             sub create_comment {
29 6     6 1 10677 my ( $self, %args ) = @_;
30 6 100       32 croak 'Missing key in parameters: sha' unless $args{sha};
31             croak 'Missing key in parameters: data (hashref)'
32 5 100       39 unless ref $args{data} eq 'HASH';
33 3         20 $self->_validate_user_repo_args( \%args );
34             return $self->request(
35             method => 'POST',
36             path => sprintf(
37             '/repos/%s/%s/commits/%s/comments', delete $args{user},
38             delete $args{repo}, delete $args{sha}
39 3         43 ),
40             %args,
41             );
42             }
43              
44              
45             sub delete_comment {
46 4     4 1 5230 my ( $self, %args ) = @_;
47 4 100       51 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
48 3         25 $self->_validate_user_repo_args( \%args );
49             return $self->request(
50             method => 'DELETE',
51             path => sprintf(
52             '/repos/%s/%s/comments/%s', delete $args{user},
53             delete $args{repo}, delete $args{comment_id}
54 3         42 ),
55             %args,
56             );
57             }
58              
59              
60             sub get {
61 3     3 1 2425 my ( $self, %args ) = @_;
62 3 100       24 croak 'Missing key in parameters: sha' unless $args{sha};
63 2         12 $self->_validate_user_repo_args( \%args );
64             return $self->request(
65             method => 'GET',
66             path => sprintf(
67             '/repos/%s/%s/commits/%s', delete $args{user},
68             delete $args{repo}, delete $args{sha}
69 2         29 ),
70             %args,
71             );
72             }
73              
74              
75             sub get_comment {
76 3     3 1 2425 my ( $self, %args ) = @_;
77 3 100       24 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
78 2         13 $self->_validate_user_repo_args( \%args );
79             return $self->request(
80             method => 'GET',
81             path => sprintf(
82             '/repos/%s/%s/comments/%s', delete $args{user},
83             delete $args{repo}, delete $args{comment_id}
84 2         31 ),
85             %args,
86             );
87             }
88              
89              
90             sub list {
91 19     19 1 2295 my ( $self, %args ) = @_;
92 19         81 $self->_validate_user_repo_args( \%args );
93             return $self->request(
94             method => 'GET',
95             path => sprintf(
96             '/repos/%s/%s/commits', delete $args{user}, delete $args{repo}
97 13         120 ),
98             %args,
99             );
100             }
101              
102              
103             sub list_comments {
104 3     3 1 3312 my ( $self, %args ) = @_;
105 3         19 $self->_validate_user_repo_args( \%args );
106 3 100       13 if ( my $sha = delete $args{sha} ) {
107             return $self->request(
108             method => 'GET',
109             path => sprintf(
110             '/repos/%s/%s/commits/%s/comments', delete $args{user},
111 2         28 delete $args{repo}, $sha
112             ),
113             %args,
114             );
115             }
116             return $self->request(
117             method => 'GET',
118             path => sprintf(
119             '/repos/%s/%s/comments', delete $args{user}, delete $args{repo}
120 1         11 ),
121             %args,
122             );
123             }
124              
125              
126             sub update_comment {
127 6     6 1 5432 my ( $self, %args ) = @_;
128 6 100       30 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
129             croak 'Missing key in parameters: data (hashref)'
130 5 100       34 unless ref $args{data} eq 'HASH';
131 3         14 $self->_validate_user_repo_args( \%args );
132             return $self->request(
133             method => 'PATCH',
134             path => sprintf(
135             '/repos/%s/%s/comments/%s', delete $args{user},
136             delete $args{repo}, delete $args{comment_id}
137 3         31 ),
138             %args,
139             );
140             }
141              
142             1;
143              
144             __END__