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 3     3   621828 use Moo;
  3         20298  
  3         14  
6 3     3   3846 use Carp qw(croak);
  3         5  
  3         121  
7 3     3   1269 use WWW::Gitea::API::Misc;
  3         11  
  3         118  
8 3     3   1348 use WWW::Gitea::API::Users;
  3         16  
  3         123  
9 3     3   1432 use WWW::Gitea::API::Repos;
  3         10  
  3         143  
10 3     3   1342 use WWW::Gitea::API::Issues;
  3         10  
  3         95  
11 3     3   1379 use WWW::Gitea::API::PullRequests;
  3         10  
  3         130  
12 3     3   1486 use WWW::Gitea::API::Labels;
  3         11  
  3         139  
13 3     3   1450 use WWW::Gitea::API::Milestones;
  3         10  
  3         96  
14 3     3   1364 use WWW::Gitea::API::Releases;
  3         8  
  3         110  
15 3     3   1410 use WWW::Gitea::API::Orgs;
  3         12  
  3         132  
16 3     3   21 use namespace::clean;
  3         5  
  3         13  
17              
18             our $VERSION = '0.001';
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 4     4   83 my ($self) = @_;
48 4 100       171 my $url = $self->url
49             or croak 'url required (e.g. https://gitea.example.com)';
50 3         13 $url =~ s{/+$}{};
51 3         10 $url =~ s{/api/v1$}{};
52 3         19 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 1     1   15 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 1     1   16 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   17 builder => sub { WWW::Gitea::API::Releases->new(client => $_[0]) },
104             );
105              
106              
107             has orgs => (
108             is => 'lazy',
109 1     1   17 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__