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 ?
Partager une autre option trouvée aquí avec des références
JENKINS_HOST=username:password@myhost.com:port
curl -sSL "http://$JENKINS_HOST/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \2\n/g'|sed 's/ /:/'
Je voulais une solution qui puisse fonctionner sur master sans aucune exigence d'authentification et je ne l'ai pas trouvée ici. J'ai fait un bash rapide script qui va extraire toutes les versions du répertoire des plugins.
if [ -f $JENKINS_HOME/plugin_versions.txt ]; then
rm $JENKINS_HOME/plugin_versions.txt
fi
for dir in $JENKINS_HOME/plugins/*/; do
dir=${dir%*/}
dir=${dir##*/}
version=$(grep Plugin-Version $JENKINS_HOME/plugins/$dir/META-INF/MANIFEST.MF | awk -F': ' '{print $2}')
echo $dir $version >> $JENKINS_HOME/plugin_versions.txt
done
Une autre option pour les utilisateurs de Python :
from jenkinsapi.jenkins import Jenkins
#get the server instance
jenkins_url = 'http://<jenkins-hostname>:<jenkins-port>/jenkins'
server = Jenkins(jenkins_url, username = '<user>', password = '<password>')
#get the installed plugins as list and print the pairs
plugins_dictionary = server.get_plugins().get_plugins_dict()
for key, value in plugins_dictionary.iteritems():
print "Plugin name: %s, version: %s" %(key, value.version)
Je pense que ces réponses ne sont pas suffisantes... beaucoup impliquent quelques étapes supplémentaires sous le capot. Voici comment j'ai procédé.
sudo apt-get install jq
...car la sortie JSON doit être consommée après l'appel de l'API.
#!/bin/bash
server_addr = 'jenkins'
server_port = '8080'
curl -s -k "http://${server_addr}:${server_port}/pluginManager/api/json?depth=1" \
| jq '.plugins[]|{shortName, version,longName,url}' -c | sort \
> plugin-list
echo "dude, here's your list: "
cat plugin-list
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.