Comment puis-je obtenir une liste des plugins Jenkins installés ?
J'ai cherché le document sur l'API d'accès à distance de Jenkins, mais il n'a pas été trouvé. Dois-je utiliser le CLI de Jenkins ? Existe-t-il un document ou un exemple ?
Comment puis-je obtenir une liste des plugins Jenkins installés ?
J'ai cherché le document sur l'API d'accès à distance de Jenkins, mais il n'a pas été trouvé. Dois-je utiliser le CLI de Jenkins ? Existe-t-il un document ou un exemple ?
Vous pouvez récupérer les informations à l'aide de la fonction Jenkins script Console qui est accessible en visitant http://<jenkins-url>/script
. (Étant donné que vous êtes connecté et que vous disposez des autorisations requises).
Saisissez les éléments suivants Groovy script pour itérer sur les plugins installés et imprimer les informations pertinentes :
Jenkins.instance.pluginManager.plugins.each{
plugin ->
println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}
Il imprimera la liste des résultats comme ceci (coupée) :
Cette solution est similaire à une des réponses ci-dessus dans la mesure où il utilise Groovy, mais ici nous utilisons la console script à la place. La console script est extrêmement utile lorsqu'on utilise Jenkins.
Mise à jour
Si vous préférez une liste triée, vous pouvez appeler ceci sort
méthode :
def pluginList = new ArrayList(Jenkins.instance.pluginManager.plugins)
pluginList.sort { it.getShortName() }.each{
plugin ->
println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}
Ajustez la fermeture à votre convenance (par exemple, ici elle est triée par le nom court, dans l'exemple elle est triée par le nom d'affichage).
Ces jours-ci, j'utilise plutôt la même approche que la réponse décrite par @Behe ci-dessous, lien mis à jour : https://stackoverflow.com/a/35292719/3423146 (ancien lien : https://stackoverflow.com/a/35292719/1597808 )
Vous pouvez utiliser l'API en combinaison avec des arguments de profondeur, XPath et wrapper.
L'instruction suivante interroge l'API du pluginManager pour dresser la liste de tous les plugins installés, mais ne renvoie que leurs attributs shortName et version. Vous pouvez bien sûr récupérer des champs supplémentaires en ajoutant '|' à la fin du paramètre XPath et en spécifiant le motif pour identifier le nœud.
wget http://<jenkins>/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins
L'argument wrapper est nécessaire dans ce cas, car il renvoie plus d'un nœud dans le résultat, à la fois parce qu'il fait correspondre plusieurs champs avec le XPath et plusieurs nœuds de plugin.
Il est probablement utile d'utiliser l'URL suivante dans un navigateur pour voir quelles informations sur les plugins sont disponibles et ensuite décider ce que vous voulez limiter en utilisant XPath :
http://<jenkins>/pluginManager/api/xml?depth=1
Et le list-plugins
La commande CLI n'exige pas que l'utilisateur dispose de l'option Autorisation globale/scripts d'exécution comme groovy
fait.
Si vous travaillez dans un environnement docker et que vous voulez sortir la liste des plugins dans un format plugins.txt afin de le passer à l'install_scripts.sh, utilisez ces scripts dans le fichier http://{jenkins}/script
console :
Cette version est utile pour obtenir une version spécifique du paquet
Jenkins.instance.pluginManager.plugins.each{ plugin -> println ("${plugin.getShortName()}:${plugin.getVersion()}") }
Si vous ne voulez que le plugin avec la dernière version, vous pouvez utiliser ceci (merci @KymikoLoco pour l'astuce)
Jenkins.instance.pluginManager.plugins.each{ plugin -> println ("${plugin.getShortName()}:latest") }
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.