Bugzilla – Attachment 112097 Details for
Bug 24633
Add support for gitlab searching of plugins
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 24633: Add support for gitlab searching of plugins
Bug-24633-Add-support-for-gitlab-searching-of-plug.patch (text/plain), 3.79 KB, created by
Martin Renvoize (ashimema)
on 2020-10-21 12:40:24 UTC
(
hide
)
Description:
Bug 24633: Add support for gitlab searching of plugins
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2020-10-21 12:40:24 UTC
Size:
3.79 KB
patch
obsolete
>From bbd385a17974e8af2e9cbfaa3aa52673c33c91e4 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Tue, 20 Oct 2020 14:29:38 -0300 >Subject: [PATCH] Bug 24633: Add support for gitlab searching of plugins > >This patch adds the option to add Gitlab repositories to look for >Koha plugins. As with Github, plugin projects need to be named >koha-plugin-* and the release file needs to be named with the .kpz >extension. > >To test: >1. Apply this patchset >2. Check either koha-conf.xml or koha-conf.site.xml.in for sample > configurations of gitlab targets. >3. Tweak your koha-conf.xml accordingly. You could have: > > <plugin_repos> > <repo> > <name>ByWater Solutions</name> > <org_name>bywatersolutions</org_name> > <service>github</service> > </repo- > <repo> > <name>Theke Solutions</name> > <org_name>thekesolutions</org_name> > <service>gitlab</service> > </repo> > <repo> > <name>PTFS Europe</name> > <org_name>ptfs-europe</org_name> > <service>github</service> > </repo> > </plugin_repos> > >4. Flush memcached and restart plack: > $ flush_memcached > $ koha-plack --restart kohadev >5. Open the plugins page, search for anything, like 'gobi' or 'a' >=> SUCCESS: You get Theke results! >6. Pick a gitlab plugin for install >=> SUCCESS: It is installed! >7. Sign off :-D > >Sponsored-by: Theke Solutions >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > plugins/plugins-home.pl | 32 ++++++++++++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > >diff --git a/plugins/plugins-home.pl b/plugins/plugins-home.pl >index 47d5262b32..3bed2e9dc6 100755 >--- a/plugins/plugins-home.pl >+++ b/plugins/plugins-home.pl >@@ -86,6 +86,38 @@ if ($plugins_enabled) { > push( @results, { repo => $r, result => $result } ); > } > } >+ elsif ( $r->{service} eq 'gitlab' ) { >+ my $org_name = $r->{org_name}; >+ 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"; >+ my $response = from_json( get($url) ); >+ foreach my $result ( @{ $response } ) { >+ next unless $result->{name} =~ /^koha-plugin-/; >+ my $project_id = $result->{id}; >+ my $description = $result->{description} // ''; >+ my $web_url = $result->{web_url}; >+ my $releases_url = "https://gitlab.com/api/v4/projects/$project_id/releases"; >+ my @releases = @{ from_json( get($releases_url) ) }; >+ >+ if ( scalar @releases > 0 ) { >+ # Pick the first one, the latest release >+ my $latest = $releases[0]; >+ my $name = $latest->{name}; >+ my @links = @{$latest->{assets}->{links}}; >+ my $url = $links[0]->{direct_asset_url}; >+ my @parts = split( '/', $url); >+ my $filename = $parts[-1]; >+ next unless $url =~ m/\.kpz$/; >+ my $result = { >+ description => $description, >+ install_name => $filename, >+ install_url => $url, >+ html_url => $web_url, >+ name => $name, >+ }; >+ push @results, { repo => $r, result => $result }; >+ } >+ } >+ } > } > > $template->param( >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 24633
:
112066
|
112067
|
112068
|
112069
|
112074
|
112075
| 112097 |
112098
|
113224
|
113225
|
133439
|
133440
|
133441
|
133442
|
133443
|
133444