From 02d57f1dc450cb438aa7fdca68bceddcebdeec6f Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Sun, 15 Mar 2020 15:35:15 +0100 Subject: [PATCH] Highlight when plugins have the adopt-this-plugin label --- core/src/main/java/hudson/PluginManager.java | 28 +++++++++++++++++++ .../hudson/PluginManager/installed.jelly | 5 ++++ .../hudson/PluginManager/installed.properties | 3 ++ .../hudson/PluginManager/table.jelly | 13 +++++++-- .../hudson/PluginManager/table.properties | 3 ++ 5 files changed, 49 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index a235146efc..9b6a987a86 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -126,6 +126,7 @@ import java.net.URL; import java.net.URLClassLoader; import java.net.URLConnection; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Enumeration; @@ -2245,6 +2246,33 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas return this; } + @Restricted(DoNotUse.class) // Used from table.jelly + public boolean isMetaLabel(String label) { + return "adopt-this-plugin".equals(label); + } + + @Restricted(DoNotUse.class) // Used from table.jelly + public boolean hasAdoptThisPluginLabel(UpdateSite.Plugin plugin) { + final String[] categories = plugin.categories; + if (categories == null) { + return false; + } + return Arrays.asList(categories).contains("adopt-this-plugin"); + } + + @Restricted(DoNotUse.class) // Used from table.jelly + public boolean hasAdoptThisPluginLabel(PluginWrapper plugin) { + final UpdateSite.Plugin pluginMeta = Jenkins.get().getUpdateCenter().getPlugin(plugin.getShortName()); + if (pluginMeta == null) { + return false; + } + final String[] categories = pluginMeta.categories; + if (categories == null) { + return false; + } + return Arrays.asList(categories).contains("adopt-this-plugin"); + } + /** * Escape hatch for StaplerProxy-based access control */ diff --git a/core/src/main/resources/hudson/PluginManager/installed.jelly b/core/src/main/resources/hudson/PluginManager/installed.jelly index 954300d4bd..c6ea9155d8 100644 --- a/core/src/main/resources/hudson/PluginManager/installed.jelly +++ b/core/src/main/resources/hudson/PluginManager/installed.jelly @@ -111,6 +111,11 @@ THE SOFTWARE. + +
+ ${%adoptThisPlugin} +
+
diff --git a/core/src/main/resources/hudson/PluginManager/installed.properties b/core/src/main/resources/hudson/PluginManager/installed.properties index ab558cbabb..c77d4015dd 100644 --- a/core/src/main/resources/hudson/PluginManager/installed.properties +++ b/core/src/main/resources/hudson/PluginManager/installed.properties @@ -26,3 +26,6 @@ detached-uninstall=This plugin may not be safe to uninstall detached-possible-dependents=Its functionality was at one point moved out of Jenkins core, and another plugin with a core dependency predating the split may be relying on it implicitly. securityWarning=\ Warning: The currently installed plugin version may not be safe to use. Please review the following security notices: +adoptThisPlugin=\ + This plugin is up for adoption! We are looking for new maintainers. \ + Visit our Adopt a Plugin initiative for more information. diff --git a/core/src/main/resources/hudson/PluginManager/table.jelly b/core/src/main/resources/hudson/PluginManager/table.jelly index abf956d516..127b2245f4 100644 --- a/core/src/main/resources/hudson/PluginManager/table.jelly +++ b/core/src/main/resources/hudson/PluginManager/table.jelly @@ -76,9 +76,11 @@ THE SOFTWARE.
- - ${app.updateCenter.getCategoryDisplayName(label)} - + + + ${app.updateCenter.getCategoryDisplayName(label)} + +
@@ -131,6 +133,11 @@ THE SOFTWARE. + +
+ ${%adoptThisPlugin} +
+
diff --git a/core/src/main/resources/hudson/PluginManager/table.properties b/core/src/main/resources/hudson/PluginManager/table.properties index 15e7cdeb33..d3f06598c4 100644 --- a/core/src/main/resources/hudson/PluginManager/table.properties +++ b/core/src/main/resources/hudson/PluginManager/table.properties @@ -46,3 +46,6 @@ depJavaWarning=\ securityWarning=\ Warning: This plugin version may not be safe to use. Please review the following security notices: ago={0} ago +adoptThisPlugin=\ + This plugin is up for adoption! We are looking for new maintainers. \ + Visit our Adopt a Plugin initiative for more information.