File Coverage

blib/lib/Pithub/GitData/References.pm
Criterion Covered Total %
statement 24 24 100.0
branch 10 10 100.0
condition n/a
subroutine 6 6 100.0
pod 4 4 100.0
total 44 44 100.0


line stmt bran cond sub pod time code
1             package Pithub::GitData::References;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01040';
4             # ABSTRACT: Github v3 Git Data References API
5              
6 16     16   900 use Moo;
  16         32  
  16         77  
7 16     16   4319 use Carp qw( croak );
  16         33  
  16         6269  
8             extends 'Pithub::Base';
9              
10              
11             sub create {
12 5     5 1 7680 my ( $self, %args ) = @_;
13 5 100       32 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
14 3         14 $self->_validate_user_repo_args( \%args );
15             return $self->request(
16             method => 'POST',
17 3         26 path => sprintf( '/repos/%s/%s/git/refs', delete $args{user}, delete $args{repo} ),
18             %args,
19             );
20             }
21              
22              
23             sub get {
24 3     3 1 1837 my ( $self, %args ) = @_;
25 3 100       20 croak 'Missing key in parameters: ref' unless $args{ref};
26 2         13 $self->_validate_user_repo_args( \%args );
27             return $self->request(
28             method => 'GET',
29 2         38 path => sprintf( '/repos/%s/%s/git/refs/%s', delete $args{user}, delete $args{repo}, delete $args{ref} ),
30             %args,
31             );
32             }
33              
34              
35             sub list {
36 3     3 1 2759 my ( $self, %args ) = @_;
37 3         16 $self->_validate_user_repo_args( \%args );
38 3 100       12 if ( my $ref = $args{ref} ) {
39             return $self->request(
40             method => 'GET',
41 2         19 path => sprintf( '/repos/%s/%s/git/refs/%s', delete $args{user}, delete $args{repo}, delete $args{ref} ),
42             %args,
43             );
44             }
45             return $self->request(
46             method => 'GET',
47 1         8 path => sprintf( '/repos/%s/%s/git/refs', delete $args{user}, delete $args{repo} ),
48             %args,
49             );
50             }
51              
52              
53             sub update {
54 6     6 1 3980 my ( $self, %args ) = @_;
55 6 100       28 croak 'Missing key in parameters: ref' unless $args{ref};
56 5 100       28 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
57 3         13 $self->_validate_user_repo_args( \%args );
58             return $self->request(
59             method => 'PATCH',
60 3         54 path => sprintf( '/repos/%s/%s/git/refs/%s', delete $args{user}, delete $args{repo}, delete $args{ref} ),
61             %args,
62             );
63             }
64              
65             1;
66              
67             __END__