File Coverage

blib/lib/WWW/Gitea.pm
Criterion Covered Total %
statement 47 54 87.0
branch 2 2 100.0
condition n/a
subroutine 19 24 79.1
pod 2 2 100.0
total 70 82 85.3


line stmt bran cond sub pod time code
1             package WWW::Gitea;
2              
3             # ABSTRACT: Perl client for the Gitea REST API
4              
5 4     4   765658 use Moo;
  4         28364  
  4         19  
6 4     4   5414 use Carp qw(croak);
  4         7  
  4         179  
7 4     4   1787 use WWW::Gitea::API::Misc;
  4         19  
  4         141  
8 4     4   1638 use WWW::Gitea::API::Users;
  4         12  
  4         118  
9 4     4   1643 use WWW::Gitea::API::Repos;
  4         22  
  4         134  
10 4     4   1554 use WWW::Gitea::API::Issues;
  4         10  
  4         137  
11 4     4   1630 use WWW::Gitea::API::PullRequests;
  4         12  
  4         143  
12 4     4   1735 use WWW::Gitea::API::Labels;
  4         12  
  4         123  
13 4     4   1726 use WWW::Gitea::API::Milestones;
  4         35  
  4         170  
14 4     4   1927 use WWW::Gitea::API::Releases;
  4         14  
  4         173  
15 4     4   2132 use WWW::Gitea::API::Orgs;
  4         13  
  4         156  
16 4     4   25 use namespace::clean;
  4         6  
  4         14  
17              
18             our $VERSION = '0.002';
19              
20              
21             has url => (
22             is => 'ro',
23             default => sub { $ENV{GITEA_URL} },
24             );
25              
26              
27             has token => (
28             is => 'ro',
29             default => sub { $ENV{GITEA_TOKEN} },
30             );
31              
32              
33             has username => (
34             is => 'ro',
35             default => sub { $ENV{GITEA_USERNAME} },
36             );
37              
38             has password => (
39             is => 'ro',
40             default => sub { $ENV{GITEA_PASSWORD} },
41             );
42              
43              
44             has api_url => (
45             is => 'lazy',
46             builder => sub {
47 5     5   90 my ($self) = @_;
48 5 100       191 my $url = $self->url
49             or croak 'url required (e.g. https://gitea.example.com)';
50 4         30 $url =~ s{/+$}{};
51 4         12 $url =~ s{/api/v1$}{};
52 4         29 return $url . '/api/v1';
53             },
54             );
55              
56              
57             with 'WWW::Gitea::Role::HTTP';
58              
59             has misc => (
60             is => 'lazy',
61 0     0   0 builder => sub { WWW::Gitea::API::Misc->new(client => $_[0]) },
62             );
63              
64              
65             has users => (
66             is => 'lazy',
67 0     0   0 builder => sub { WWW::Gitea::API::Users->new(client => $_[0]) },
68             );
69              
70              
71             has repos => (
72             is => 'lazy',
73 1     1   30 builder => sub { WWW::Gitea::API::Repos->new(client => $_[0]) },
74             );
75              
76              
77             has issues => (
78             is => 'lazy',
79 2     2   1881 builder => sub { WWW::Gitea::API::Issues->new(client => $_[0]) },
80             );
81              
82              
83             has pulls => (
84             is => 'lazy',
85 1     1   17 builder => sub { WWW::Gitea::API::PullRequests->new(client => $_[0]) },
86             );
87              
88              
89             has labels => (
90             is => 'lazy',
91 2     2   74 builder => sub { WWW::Gitea::API::Labels->new(client => $_[0]) },
92             );
93              
94              
95             has milestones => (
96             is => 'lazy',
97 0     0   0 builder => sub { WWW::Gitea::API::Milestones->new(client => $_[0]) },
98             );
99              
100              
101             has releases => (
102             is => 'lazy',
103 1     1   20 builder => sub { WWW::Gitea::API::Releases->new(client => $_[0]) },
104             );
105              
106              
107             has orgs => (
108             is => 'lazy',
109 1     1   16 builder => sub { WWW::Gitea::API::Orgs->new(client => $_[0]) },
110             );
111              
112              
113             sub version {
114 0     0 1   my ($self) = @_;
115 0           return $self->misc->version;
116             }
117              
118              
119             sub current_user {
120 0     0 1   my ($self) = @_;
121 0           return $self->misc->current_user;
122             }
123              
124              
125              
126             1;
127              
128             __END__