File Coverage

blib/lib/Pithub/Repos/Releases.pm
Criterion Covered Total %
statement 30 30 100.0
branch 10 10 100.0
condition n/a
subroutine 9 9 100.0
pod 6 6 100.0
total 55 55 100.0


line stmt bran cond sub pod time code
1             package Pithub::Repos::Releases;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01041';
4              
5             # ABSTRACT: Github v3 Repo Releases API
6              
7 16     16   109 use Moo;
  16         30  
  16         103  
8 16     16   5051 use Carp qw( croak );
  16         42  
  16         859  
9 16     16   8008 use Pithub::Repos::Releases::Assets ();
  16         54  
  16         7416  
10             extends 'Pithub::Base';
11              
12              
13             sub assets {
14 1     1 1 512 return shift->_create_instance( Pithub::Repos::Releases::Assets::, @_ );
15             }
16              
17              
18             sub list {
19 2     2 1 6812 my ( $self, %args ) = @_;
20 2         22 $self->_validate_user_repo_args( \%args );
21             return $self->request(
22             method => 'GET',
23             path => sprintf(
24             '/repos/%s/%s/releases', delete $args{user}, delete $args{repo}
25 2         38 ),
26             %args,
27             );
28             }
29              
30              
31             sub get {
32 3     3 1 2565 my ( $self, %args ) = @_;
33 3 100       25 croak 'Missing key in parameters: release_id' unless $args{release_id};
34 2         14 $self->_validate_user_repo_args( \%args );
35             return $self->request(
36             method => 'GET',
37             path => sprintf(
38             '/repos/%s/%s/releases/%d', delete $args{user},
39             delete $args{repo}, delete $args{release_id}
40 2         33 ),
41             %args,
42             );
43             }
44              
45              
46             sub create {
47 4     4 1 3768 my ( $self, %args ) = @_;
48             croak 'Missing key in parameters: data (hashref)'
49 4 100       32 unless ref $args{data} eq 'HASH';
50 3         17 $self->_validate_user_repo_args( \%args );
51             return $self->request(
52             method => 'POST',
53             path => sprintf(
54             '/repos/%s/%s/releases', delete $args{user}, delete $args{repo}
55 3         39 ),
56             %args,
57             );
58             }
59              
60              
61             sub update {
62 5     5 1 4710 my ( $self, %args ) = @_;
63 5 100       33 croak 'Missing key in parameters: release_id' unless $args{release_id};
64             croak 'Missing key in parameters: data (hashref)'
65 4 100       39 unless ref $args{data} eq 'HASH';
66 3         15 $self->_validate_user_repo_args( \%args );
67             return $self->request(
68             method => 'PATCH',
69             path => sprintf(
70             '/repos/%s/%s/releases/%d', delete $args{user},
71             delete $args{repo}, delete $args{release_id}
72 3         44 ),
73             %args,
74             );
75             }
76              
77              
78             sub delete {
79 4     4 1 3787 my ( $self, %args ) = @_;
80 4 100       35 croak 'Missing key in parameters: release_id' unless $args{release_id};
81 3         18 $self->_validate_user_repo_args( \%args );
82             return $self->request(
83             method => 'DELETE',
84             path => sprintf(
85             '/repos/%s/%s/releases/%d', delete $args{user},
86             delete $args{repo}, delete $args{release_id}
87 3         45 ),
88             %args,
89             );
90             }
91              
92             1;
93              
94             __END__