|
Lines 86-91
if ($plugins_enabled) {
Link Here
|
| 86 |
push( @results, { repo => $r, result => $result } ); |
86 |
push( @results, { repo => $r, result => $result } ); |
| 87 |
} |
87 |
} |
| 88 |
} |
88 |
} |
|
|
89 |
elsif ( $r->{service} eq 'gitlab' ) { |
| 90 |
my $org_name = $r->{org_name}; |
| 91 |
my $url = "https://gitlab.com/api/v4/groups/$org_name/projects?with_issues_enabled=no\&with_merge_requests_enabled=no\&with_shared=no\&include_subgroups=yes\&search=koha-plugin+$plugin_search"; |
| 92 |
my $response = from_json( get($url) ); |
| 93 |
foreach my $result ( @{ $response } ) { |
| 94 |
next unless $result->{name} =~ /^koha-plugin-/; |
| 95 |
my $project_id = $result->{id}; |
| 96 |
my $description = $result->{description} // ''; |
| 97 |
my $web_url = $result->{web_url}; |
| 98 |
my $releases_url = "https://gitlab.com/api/v4/projects/$project_id/releases"; |
| 99 |
my @releases = @{ from_json( get($releases_url) ) }; |
| 100 |
|
| 101 |
if ( scalar @releases > 0 ) { |
| 102 |
# Pick the first one, the latest release |
| 103 |
my $latest = $releases[0]; |
| 104 |
my $name = $latest->{name}; |
| 105 |
my @links = @{$latest->{assets}->{links}}; |
| 106 |
my $url = $links[0]->{direct_asset_url}; |
| 107 |
my @parts = split( '/', $url); |
| 108 |
my $filename = $parts[-1]; |
| 109 |
next unless $url =~ m/\.kpz$/; |
| 110 |
my $result = { |
| 111 |
description => $description, |
| 112 |
install_name => $filename, |
| 113 |
install_url => $url, |
| 114 |
html_url => $web_url, |
| 115 |
name => $name, |
| 116 |
}; |
| 117 |
push @results, { repo => $r, result => $result }; |
| 118 |
} |
| 119 |
} |
| 120 |
} |
| 89 |
} |
121 |
} |
| 90 |
|
122 |
|
| 91 |
$template->param( |
123 |
$template->param( |
| 92 |
- |
|
|