File Coverage

blib/lib/Pithub/PullRequests.pm
Criterion Covered Total %
statement 45 46 97.8
branch 16 16 100.0
condition n/a
subroutine 13 14 92.8
pod 10 10 100.0
total 84 86 97.6


line stmt bran cond sub pod time code
1             package Pithub::PullRequests;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01040';
4             # ABSTRACT: Github v3 Pull Requests API
5              
6 17     17   9280 use Moo;
  17         10534  
  17         86  
7 17     17   5951 use Carp qw( croak );
  17         33  
  17         818  
8 17     17   6845 use Pithub::PullRequests::Comments;
  17         43  
  17         431  
9 17     17   6639 use Pithub::PullRequests::Reviewers;
  17         44  
  17         10489  
10             extends 'Pithub::Base';
11              
12              
13             sub comments {
14 1     1 1 412 return shift->_create_instance('Pithub::PullRequests::Comments', @_);
15             }
16              
17              
18             sub reviewers {
19 0     0 1 0 return shift->_create_instance('Pithub::PullRequests::Reviewers', @_);
20             }
21              
22              
23             sub commits {
24 4     4 1 12339 my ( $self, %args ) = @_;
25 4 100       29 croak 'Missing key in parameters: pull_request_id' unless $args{pull_request_id};
26 3         25 $self->_validate_user_repo_args( \%args );
27             return $self->request(
28             method => 'GET',
29 3         41 path => sprintf( '/repos/%s/%s/pulls/%s/commits', delete $args{user}, delete $args{repo}, delete $args{pull_request_id} ),
30             %args,
31             );
32             }
33              
34              
35             sub create {
36 5     5 1 4153 my ( $self, %args ) = @_;
37 5 100       32 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
38 4         20 $self->_validate_user_repo_args( \%args );
39             return $self->request(
40             method => 'POST',
41 4         42 path => sprintf( '/repos/%s/%s/pulls', delete $args{user}, delete $args{repo} ),
42             %args,
43             );
44             }
45              
46              
47             sub files {
48 4     4 1 2940 my ( $self, %args ) = @_;
49 4 100       24 croak 'Missing key in parameters: pull_request_id' unless $args{pull_request_id};
50 3         16 $self->_validate_user_repo_args( \%args );
51             return $self->request(
52             method => 'GET',
53 3         36 path => sprintf( '/repos/%s/%s/pulls/%s/files', delete $args{user}, delete $args{repo}, delete $args{pull_request_id} ),
54             %args,
55             );
56             }
57              
58              
59             sub get {
60 4     4 1 2903 my ( $self, %args ) = @_;
61 4 100       22 croak 'Missing key in parameters: pull_request_id' unless $args{pull_request_id};
62 3         15 $self->_validate_user_repo_args( \%args );
63             return $self->request(
64             method => 'GET',
65 3         39 path => sprintf( '/repos/%s/%s/pulls/%s', delete $args{user}, delete $args{repo}, delete $args{pull_request_id} ),
66             %args,
67             );
68             }
69              
70              
71             sub is_merged {
72 4     4 1 2900 my ( $self, %args ) = @_;
73 4 100       24 croak 'Missing key in parameters: pull_request_id' unless $args{pull_request_id};
74 3         17 $self->_validate_user_repo_args( \%args );
75             return $self->request(
76             method => 'GET',
77 3         37 path => sprintf( '/repos/%s/%s/pulls/%s/merge', delete $args{user}, delete $args{repo}, delete $args{pull_request_id} ),
78             %args,
79             );
80             }
81              
82              
83             sub list {
84 14     14 1 2485 my ( $self, %args ) = @_;
85 14         67 $self->_validate_user_repo_args( \%args );
86             return $self->request(
87             method => 'GET',
88 10         86 path => sprintf( '/repos/%s/%s/pulls', delete $args{user}, delete $args{repo} ),
89             %args,
90             );
91             }
92              
93              
94             sub merge {
95 5     5 1 4125 my ( $self, %args ) = @_;
96 5 100       25 croak 'Missing key in parameters: pull_request_id' unless $args{pull_request_id};
97 4         18 $self->_validate_user_repo_args( \%args );
98             return $self->request(
99             method => 'PUT',
100 4         41 path => sprintf( '/repos/%s/%s/pulls/%s/merge', delete $args{user}, delete $args{repo}, delete $args{pull_request_id} ),
101             %args,
102             );
103             }
104              
105              
106             sub update {
107 6     6 1 4787 my ( $self, %args ) = @_;
108 6 100       34 croak 'Missing key in parameters: pull_request_id' unless $args{pull_request_id};
109 5 100       28 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
110 4         25 $self->_validate_user_repo_args( \%args );
111             return $self->request(
112             method => 'PATCH',
113 4         42 path => sprintf( '/repos/%s/%s/pulls/%s', delete $args{user}, delete $args{repo}, delete $args{pull_request_id} ),
114             %args,
115             );
116             }
117              
118             1;
119              
120             __END__