jenkins_api_client 0.14.1 → 1.0.0.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -1
- data/CONTRIBUTORS.md +2 -0
- data/Gemfile +1 -0
- data/README.md +1 -1
- data/jenkins_api_client.gemspec +1 -0
- data/lib/jenkins_api_client.rb +1 -0
- data/lib/jenkins_api_client/client.rb +15 -3
- data/lib/jenkins_api_client/exceptions.rb +25 -16
- data/lib/jenkins_api_client/job.rb +46 -18
- data/lib/jenkins_api_client/plugin_manager.rb +460 -0
- data/lib/jenkins_api_client/version.rb +4 -4
- data/spec/func_tests/plugin_spec.rb.pending +148 -0
- data/spec/unit_tests/fixtures/files/available_plugins.json +1 -0
- data/spec/unit_tests/fixtures/files/installed_plugins.json +1 -0
- data/spec/unit_tests/fixtures/files/updatable_plugins.json +1 -0
- data/spec/unit_tests/plugin_spec.rb +165 -0
- data/spec/unit_tests/spec_helper.rb +11 -1
- data/travis/hudson.model.UpdateCenter.xml +7 -0
- data/travis/setup.sh +1 -0
- metadata +29 -6
@@ -23,13 +23,13 @@
|
|
23
23
|
module JenkinsApi
|
24
24
|
class Client
|
25
25
|
# Major version of the gem
|
26
|
-
MAJOR =
|
26
|
+
MAJOR = 1
|
27
27
|
# Minor version of the gem
|
28
|
-
MINOR =
|
28
|
+
MINOR = 0
|
29
29
|
# Tiny version of the gem used for patches
|
30
|
-
TINY =
|
30
|
+
TINY = 0
|
31
31
|
# Used for pre-releases
|
32
|
-
PRE =
|
32
|
+
PRE = 'alpha.1'
|
33
33
|
# Version String of Jenkins API Client.
|
34
34
|
VERSION = [MAJOR, MINOR, TINY, PRE].compact.join('.')
|
35
35
|
end
|
@@ -0,0 +1,148 @@
|
|
1
|
+
#
|
2
|
+
# Specifying JenkinsApi::Client::PluginManager class capabilities
|
3
|
+
# Author Kannan Manickam <arangamani.kannan@gmail.com>
|
4
|
+
#
|
5
|
+
|
6
|
+
require File.expand_path('../spec_helper', __FILE__)
|
7
|
+
require 'yaml'
|
8
|
+
|
9
|
+
describe JenkinsApi::Client::PluginManager do
|
10
|
+
context "With properly initialized client" do
|
11
|
+
before(:all) do
|
12
|
+
@creds_file = '~/.jenkins_api_client/spec.yml'
|
13
|
+
@valid_post_responses = [200, 201, 302]
|
14
|
+
@test_plugin = "scripttrigger"
|
15
|
+
@test_plugins = ["text-finder", "terminal", "warnings"]
|
16
|
+
begin
|
17
|
+
@client = JenkinsApi::Client.new(
|
18
|
+
YAML.load_file(File.expand_path(@creds_file, __FILE__))
|
19
|
+
)
|
20
|
+
@client.plugin.check_for_updates
|
21
|
+
sleep 30
|
22
|
+
rescue Exception => e
|
23
|
+
puts "WARNING: Credentials are not set properly."
|
24
|
+
puts e.message
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "InstanceMethods" do
|
29
|
+
describe "#list_installed" do
|
30
|
+
it "lists all installed plugins in jenkins" do
|
31
|
+
@client.plugin.list_installed.class.should == Hash
|
32
|
+
end
|
33
|
+
supported_filters = [
|
34
|
+
:active, :bundled, :deleted, :downgradable, :enabled,
|
35
|
+
:hasUpdate, :pinned
|
36
|
+
]
|
37
|
+
supported_filters.each do |filter|
|
38
|
+
it "lists all installed plugins matching filter '#{filter}'" do
|
39
|
+
@client.plugin.list_installed(filter => true).class.should == Hash
|
40
|
+
end
|
41
|
+
end
|
42
|
+
it "raises an error if unsupported filter is specified" do
|
43
|
+
expect(
|
44
|
+
lambda { @client.plugin.list_installed(:unsupported => true) }
|
45
|
+
).to raise_error(ArgumentError)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "#list_available" do
|
50
|
+
it "lists all available plugins in jenkins update center" do
|
51
|
+
@client.plugin.list_available.class.should == Hash
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "#list_updates" do
|
56
|
+
it "lists all available plugin updates in jenkins update center" do
|
57
|
+
@client.plugin.list_updates.class.should == Hash
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "#install, #restart_required?" do
|
62
|
+
it "installs a single plugin given as a string" do
|
63
|
+
@client.plugin.install(@test_plugin)
|
64
|
+
# Plugin installation might take a bit
|
65
|
+
sleep 5
|
66
|
+
@client.system.restart(true) if @client.plugin.restart_required?
|
67
|
+
@client.system.wait_for_ready
|
68
|
+
@client.plugin.list_installed.keys.should include(@test_plugin)
|
69
|
+
end
|
70
|
+
it "installs multiple plugins given as an array" do
|
71
|
+
@client.plugin.install(@test_plugins)
|
72
|
+
# Plugin installation might take a bit
|
73
|
+
sleep 5
|
74
|
+
@client.system.restart(true) if @client.plugin.restart_required?
|
75
|
+
@client.system.wait_for_ready
|
76
|
+
installed = @client.plugin.list_installed.keys
|
77
|
+
@test_plugins.all? { |plugin| installed.include?(plugin) }.
|
78
|
+
should == true
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "#disable, #restart_required?" do
|
83
|
+
it "disables a single plugin given as a string" do
|
84
|
+
@client.plugin.disable(@test_plugin)
|
85
|
+
# Plugin installation might take a bit
|
86
|
+
sleep 5
|
87
|
+
@client.system.restart(true)
|
88
|
+
@client.system.wait_for_ready
|
89
|
+
@client.plugin.list_installed(:active => false).keys.
|
90
|
+
should include(@test_plugin)
|
91
|
+
end
|
92
|
+
it "disables multiple plugins given as an array" do
|
93
|
+
@client.plugin.disable(@test_plugins)
|
94
|
+
# Plugin installation might take a bit
|
95
|
+
sleep 5
|
96
|
+
@client.system.restart(true)
|
97
|
+
@client.system.wait_for_ready
|
98
|
+
installed = @client.plugin.list_installed(:active => false).keys
|
99
|
+
@test_plugins.all? { |plugin| installed.include?(plugin) }.
|
100
|
+
should == true
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe "#enable, #restart_required?" do
|
105
|
+
it "enables a single plugin given as a string" do
|
106
|
+
@client.plugin.enable(@test_plugin)
|
107
|
+
# Plugin installation might take a bit
|
108
|
+
sleep 5
|
109
|
+
@client.system.restart(true)
|
110
|
+
@client.system.wait_for_ready
|
111
|
+
@client.plugin.list_installed(:active => true).keys.
|
112
|
+
should include(@test_plugin)
|
113
|
+
end
|
114
|
+
it "enables multiple plugins given as an array" do
|
115
|
+
@client.plugin.enable(@test_plugins)
|
116
|
+
# Plugin installation might take a bit
|
117
|
+
sleep 5
|
118
|
+
@client.system.restart(true)
|
119
|
+
@client.system.wait_for_ready
|
120
|
+
installed = @client.plugin.list_installed(:active => true).keys
|
121
|
+
@test_plugins.all? { |plugin| installed.include?(plugin) }.
|
122
|
+
should == true
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
describe "#uninstall, #restart_required?" do
|
127
|
+
it "uninstalls a single plugin given as a string" do
|
128
|
+
@client.plugin.uninstall(@test_plugin)
|
129
|
+
# Plugin uninstallation might take a bit
|
130
|
+
sleep 5
|
131
|
+
@client.system.restart(true) if @client.plugin.restart_required?
|
132
|
+
@client.system.wait_for_ready
|
133
|
+
@client.plugin.list_installed.keys.should_not include(@test_plugin)
|
134
|
+
end
|
135
|
+
it "uninstalls multiple plugins given as an array" do
|
136
|
+
@client.plugin.uninstall(@test_plugins)
|
137
|
+
# Plugin uninstallation might take a bit
|
138
|
+
sleep 5
|
139
|
+
@client.system.restart(true) if @client.plugin.restart_required?
|
140
|
+
@client.system.wait_for_ready
|
141
|
+
installed = @client.plugin.list_installed.keys
|
142
|
+
@test_plugins.all? { |plugin| installed.include?(plugin) }.
|
143
|
+
should == false
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"availables":[{"name":"accurev","version":"0.6.18"},{"name":"active-directory","version":"1.33"},{"name":"AdaptivePlugin","version":"0.1"},{"name":"additional-identities-plugin","version":"1.0"},{"name":"all-changes","version":"1.3"},{"name":"analysis-collector","version":"1.35"},{"name":"analysis-core","version":"1.49"},{"name":"AnchorChain","version":"1.0"},{"name":"android-emulator","version":"2.10"},{"name":"android-lint","version":"2.1"},{"name":"ansicolor","version":"0.3.1"},{"name":"AntepediaReporter-CI-plugin","version":"1.6.3"},{"name":"antexec","version":"1.8"},{"name":"any-buildstep","version":"0.1"},{"name":"anything-goes-formatter","version":"1.0"},{"name":"appaloosa-plugin","version":"1.4.0"},{"name":"appdynamics-dashboard","version":"1.0.1"},{"name":"application-director-plugin","version":"1.3"},{"name":"artifact-diff-plugin","version":"1.2"},{"name":"artifactdeployer","version":"0.27"},{"name":"artifactory","version":"2.1.6"},{"name":"asakusa-satellite-plugin","version":"0.1.1"},{"name":"assembla","version":"1.4"},{"name":"assembla-auth","version":"1.03"},{"name":"associated-files","version":"0.2.1"},{"name":"async-http-client","version":"1.7.8"},{"name":"async-job","version":"1.3"},{"name":"audit-trail","version":"1.8"},{"name":"audit2db","version":"0.5"},{"name":"avatar","version":"1.2"},{"name":"backlog","version":"1.9"},{"name":"backup","version":"1.6.1"},{"name":"backup-interrupt-plugin","version":"1.0"},{"name":"bamboo-notifier","version":"1.1"},{"name":"batch-task","version":"1.17"},{"name":"bazaar","version":"1.22"},{"name":"beer","version":"1.2"},{"name":"bitbucket-oauth","version":"0.1"},{"name":"bitkeeper","version":"1.7"},{"name":"blame-upstream-commiters","version":"1.2"},{"name":"BlameSubversion","version":"1.200"},{"name":"BlazeMeterJenkinsPlugin","version":"1.04-beta-1"},{"name":"blink1","version":"1.1"},{"name":"blitz_io-jenkins","version":"1.04"},{"name":"brakeman","version":"0.7"},{"name":"browser-axis-plugin","version":"1.0"},{"name":"bruceschneier","version":"0.1"},{"name":"buckminster","version":"1.1.1"},{"name":"buddycloud","version":"0.2.3"},{"name":"bugzilla","version":"1.5"},{"name":"build-alias-setter","version":"0.1"},{"name":"build-blocker-plugin","version":"1.4.1"},{"name":"build-cause-run-condition","version":"0.1"},{"name":"build-failure-analyzer","version":"1.5.0"},{"name":"build-flow-plugin","version":"0.9"},{"name":"build-keeper-plugin","version":"1.3"},{"name":"build-metrics","version":"1.0"},{"name":"build-name-setter","version":"1.3"},{"name":"build-node-column","version":"0.1"},{"name":"build-pipeline-plugin","version":"1.3.4.1"},{"name":"build-publisher","version":"1.17"},{"name":"build-timeout","version":"1.11"},{"name":"build-token-root","version":"1.0"},{"name":"build-user-vars-plugin","version":"1.1"},{"name":"build-view-column","version":"0.1"},{"name":"build-with-parameters","version":"1.1"},{"name":"buildcoin-plugin","version":"1.4"},{"name":"buildcontext-capture","version":"0.6"},{"name":"buildheroes","version":"0.2"},{"name":"buildresult-trigger","version":"0.12"},{"name":"buildtriggerbadge","version":"1.0"},{"name":"built-on-column","version":"1.1"},{"name":"bulk-builder","version":"1.5"},{"name":"caliper-ci","version":"2.3"},{"name":"call-remote-job-plugin","version":"1.0.16"},{"name":"campfire","version":"2.6"},{"name":"caroline","version":"1.0"},{"name":"cas-plugin","version":"1.1.1"},{"name":"cas1","version":"1.0.1"},{"name":"categorized-view","version":"1.0"},{"name":"cccc","version":"0.6"},{"name":"ccm","version":"3.0"},{"name":"changelog-history","version":"1.3"},{"name":"changes-since-last-success","version":"0.5"},{"name":"checkstyle","version":"3.35"},{"name":"chosen","version":"1.0"},{"name":"chrome-frame-plugin","version":"1.1"},{"name":"chromedriver","version":"1.0"},{"name":"chucknorris","version":"0.5"},{"name":"ci-game","version":"1.19"},{"name":"claim","version":"2.2"},{"name":"clamav","version":"0.2.1"},{"name":"clang-scanbuild-plugin","version":"1.4"},{"name":"clearcase","version":"1.3.14"},{"name":"clearcase-release","version":"0.3"},{"name":"clearcase-ucm-baseline","version":"1.7.4"},{"name":"clearcase-ucm-plugin","version":"1.3.8"},{"name":"clone-workspace-scm","version":"0.5"},{"name":"cloudbees-deployer-plugin","version":"1.7"},{"name":"cloudbees-enterprise-plugins","version":"13.5.0"},{"name":"cloudbees-plugin-gateway","version":"4.0"},{"name":"cloudtest","version":"2.4"},{"name":"clover","version":"4.0.6"},{"name":"cloverphp","version":"0.3.3"},{"name":"cluster-stats","version":"0.4.4"},{"name":"cmakebuilder","version":"1.9"},{"name":"cmvc","version":"0.4"},{"name":"cobertura","version":"1.9.1"},{"name":"cocoapods-integration","version":"0.2.0"},{"name":"codecover","version":"1.1"},{"name":"codescanner","version":"0.11"},{"name":"collabnet","version":"1.1.8"},{"name":"collabnet-uc4-deploy","version":"1.0"},{"name":"collapsing-console-sections","version":"1.3"},{"name":"ColumnPack-plugin","version":"1.0.3"},{"name":"ColumnsPlugin","version":"1.0"},{"name":"compact-columns","version":"1.9"},{"name":"computer-queue-plugin","version":"1.3"},{"name":"concordionpresenter","version":"0.7"},{"name":"conditional-buildstep","version":"1.2.2"},{"name":"config-autorefresh-plugin","version":"1.0"},{"name":"config-file-provider","version":"2.5.1"},{"name":"config-rotator","version":"1.1.1"},{"name":"configurationslicing","version":"1.37"},{"name":"configure-job-column-plugin","version":"1.0"},{"name":"confluence-publisher","version":"1.8"},{"name":"console-column-plugin","version":"1.5"},{"name":"copy-data-to-workspace-plugin","version":"1.0"},{"name":"copy-project-link","version":"1.1"},{"name":"copy-to-slave","version":"1.4"},{"name":"copyartifact","version":"1.27"},{"name":"countjobs-viewstabbar","version":"1.0.0"},{"name":"covcomplplot","version":"1.1.1"},{"name":"coverity","version":"1.2.5"},{"name":"cppcheck","version":"1.13"},{"name":"cppncss","version":"1.1"},{"name":"cpptest","version":"0.9"},{"name":"crap4j","version":"0.8"},{"name":"create-fingerprint","version":"1.2"},{"name":"create-fingerprint-plugin","version":"1.0"},{"name":"createjobadvanced","version":"1.7"},{"name":"crittercism-dsym","version":"1.1"},{"name":"cron_column","version":"1.003"},{"name":"crowd","version":"1.2"},{"name":"crowd2","version":"1.5"},{"name":"cucumber","version":"0.0.2"},{"name":"cucumber-reports","version":"0.0.21"},{"name":"custom-job-icon","version":"0.2"},{"name":"custom-tools-plugin","version":"0.2"},{"name":"CustomHistory","version":"1.5"},{"name":"cvs-tag","version":"1.7"},{"name":"cygpath","version":"1.5"},{"name":"darcs","version":"0.3.11"},{"name":"dashboard-view","version":"2.7"},{"name":"database","version":"1.1"},{"name":"database-drizzle","version":"1.0"},{"name":"database-h2","version":"1.0"},{"name":"database-mysql","version":"1.0"},{"name":"database-postgresql","version":"1.0"},{"name":"datical-db-plugin","version":"1.0.4"},{"name":"dbCharts","version":"0.4"},{"name":"debian-package-builder","version":"1.4.2"},{"name":"delete-log-plugin","version":"1.0"},{"name":"delta-cloud","version":"1.0.1"},{"name":"dependency-queue-plugin","version":"1.1"},{"name":"dependencyanalyzer","version":"0.6"},{"name":"depgraph-view","version":"0.11"},{"name":"deploy","version":"1.9"},{"name":"deploy-websphere","version":"1.0"},{"name":"deployed-on-column","version":"1.7"},{"name":"deploygate-plugin","version":"1.2"},{"name":"description-column-plugin","version":"1.3"},{"name":"description-setter","version":"1.8"},{"name":"devstack","version":"0.0.6"},{"name":"dimensionsscm","version":"0.8.1"},{"name":"discard-old-build","version":"1.05"},{"name":"disk-usage","version":"0.20"},{"name":"display-upstream-changes","version":"0.1"},{"name":"distfork","version":"1.3"},{"name":"distTest","version":"1.0"},{"name":"doclinks","version":"0.5"},{"name":"dos-trigger","version":"1.23"},{"name":"downstream-buildview","version":"1.8"},{"name":"downstream-ext","version":"1.8"},{"name":"doxygen","version":"0.13"},{"name":"drmemory-plugin","version":"0.1.1"},{"name":"dropdown-viewstabbar-plugin","version":"1.6"},{"name":"dry","version":"2.34"},{"name":"dry-run","version":"0.9"},{"name":"dtkit","version":"1.12"},{"name":"dumpinfo-buildwrapper-plugin","version":"1.1"},{"name":"dynamic-axis","version":"1.0.1"},{"name":"dynamicparameter","version":"0.2.0"},{"name":"easyant","version":"1.1"},{"name":"ec2","version":"1.18"},{"name":"eclipse-update-site","version":"1.2"},{"name":"eggplant-plugin","version":"1.4"},{"name":"elastic-axis","version":"1.1"},{"name":"elOyente","version":"1.2"},{"name":"email-ext","version":"2.30.2"},{"name":"email-ext-recipients-column","version":"1.0"},{"name":"embeddable-build-status","version":"1.4"},{"name":"emma","version":"1.29"},{"name":"emmacoveragecolumn","version":"0.0.4"},{"name":"emotional-hudson","version":"1.3"},{"name":"emotional-jenkins-plugin","version":"1.1"},{"name":"enhanced-old-build-discarder","version":"1.0"},{"name":"envfile","version":"1.2"},{"name":"envinject","version":"1.87"},{"name":"environment-script","version":"1.1.2"},{"name":"escaped-markup-plugin","version":"0.1"},{"name":"excludeMatrixParent","version":"1.1"},{"name":"Exclusion","version":"0.8"},{"name":"exclusive-execution","version":"0.7"},{"name":"exclusive-label-plugin","version":"1.0"},{"name":"extended-choice-parameter","version":"0.28"},{"name":"extended-read-permission","version":"1.0"},{"name":"extensible-choice-parameter","version":"1.2.1"},{"name":"extension-filter","version":"1.0"},{"name":"external-scheduler","version":"1.0"},{"name":"externalresource-dispatcher","version":"1.1.0"},{"name":"extra-columns","version":"1.9"},{"name":"extreme-feedback","version":"1.2"},{"name":"ezwall","version":"0.2"},{"name":"fail-the-build-plugin","version":"1.0"},{"name":"favorite","version":"1.14"},{"name":"favorite-view","version":"1.0"},{"name":"feature-branch-notifier","version":"1.1"},{"name":"file-leak-detector","version":"1.2"},{"name":"files-found-trigger","version":"1.3"},{"name":"filesystem_scm","version":"1.20"},{"name":"findbugs","version":"4.48"},{"name":"fitnesse","version":"1.8"},{"name":"flashlog-plugin","version":"1.0"},{"name":"flexible-publish","version":"0.10"},{"name":"flexteam","version":"1.1"},{"name":"flow","version":"1.1"},{"name":"fogbugz","version":"1.0"},{"name":"form-element-path","version":"1.4"},{"name":"fortify360","version":"3.81"},{"name":"fstrigger","version":"0.36"},{"name":"ftppublisher","version":"1.2"},{"name":"fxcop-runner","version":"1.1"},{"name":"gallio","version":"1.6"},{"name":"gant","version":"1.2"},{"name":"gatling","version":"1.0.3"},{"name":"gcal","version":"0.4"},{"name":"gcm-notification","version":"1.0"},{"name":"gearman-plugin","version":"0.0.1"},{"name":"gerrit","version":"0.7"},{"name":"gerrit-trigger","version":"2.10.1"},{"name":"ghprb","version":"1.8"},{"name":"girls","version":"1.0.0"},{"name":"git","version":"1.4.0"},{"name":"git-chooser-alternative","version":"1.0"},{"name":"git-client","version":"1.0.7"},{"name":"git-notes","version":"0.0.4"},{"name":"git-parameter","version":"0.2"},{"name":"git-server","version":"1.1"},{"name":"git-userContent","version":"1.3"},{"name":"github","version":"1.6"},{"name":"github-api","version":"1.42"},{"name":"github-oauth","version":"0.13.1"},{"name":"github-sqs-plugin","version":"1.5"},{"name":"gitlab-hook","version":"0.2.6"},{"name":"gitlab-merge-request-jenkins","version":"1.1.1"},{"name":"gitorious","version":"1.0"},{"name":"global-build-stats","version":"1.3"},{"name":"global-variable-string-parameter","version":"1.1"},{"name":"gnat","version":"0.14"},{"name":"googleanalytics","version":"1.3"},{"name":"googlecode","version":"1.7"},{"name":"gradle","version":"1.22"},{"name":"grails","version":"1.6.3"},{"name":"gravatar","version":"1.1"},{"name":"greenballs","version":"1.12"},{"name":"grinder","version":"1.4"},{"name":"groovy","version":"1.13"},{"name":"groovy-label-assignment","version":"1.0.0"},{"name":"groovy-postbuild","version":"1.8"},{"name":"groovy-remote","version":"0.2"},{"name":"groovyaxis","version":"0.3"},{"name":"growl","version":"1.1"},{"name":"hadoop","version":"1.4"},{"name":"harvest","version":"0.5"},{"name":"heavy-job","version":"1.0"},{"name":"heroku-jenkins-plugin","version":"0.7.1-BETA"},{"name":"hgca","version":"1.3"},{"name":"hipchat","version":"0.1.4"},{"name":"hipchat-plugin","version":"0.1.0"},{"name":"hockeyapp","version":"1.0.4"},{"name":"hp-application-automation-tools-plugin","version":"2.0.0"},{"name":"hp-operations-orchestration-automation-execution-plugin","version":"1.0.11"},{"name":"hsts-filter-plugin","version":"1.0"},{"name":"html-audio-notifier","version":"0.4"},{"name":"html5-notifier-plugin","version":"1.2"},{"name":"htmlpublisher","version":"1.2"},{"name":"http_request","version":"1.8"},{"name":"hudson-logaction-plugin","version":"1.1"},{"name":"hudson-pview-plugin","version":"1.8"},{"name":"hudson-wsclean-plugin","version":"1.0.4"},{"name":"hudsontrayapp","version":"0.7.3"},{"name":"humbug","version":"0.1.1"},{"name":"icescrum","version":"1.0.2"},{"name":"ikachan","version":"0.0.1"},{"name":"image-gallery","version":"1.0"},{"name":"instant-messaging","version":"1.25"},{"name":"integrity-plugin","version":"1.17"},{"name":"ion-deployer-plugin","version":"0.9"},{"name":"ios-device-connector","version":"1.2"},{"name":"iphoneview","version":"0.2"},{"name":"ipmessenger-plugin","version":"1.2"},{"name":"ircbot","version":"2.23"},{"name":"ivy","version":"1.22"},{"name":"ivy-report","version":"1.2"},{"name":"ivytrigger","version":"0.28"},{"name":"jabber","version":"1.25"},{"name":"jacoco","version":"1.0.12"},{"name":"japex","version":"1.7"},{"name":"javancss","version":"1.1"},{"name":"javanet","version":"1.3"},{"name":"javanet-uploader","version":"1.7"},{"name":"javatest-report","version":"1.4"},{"name":"jboss","version":"1.0.5"},{"name":"jbpm-embedded-plugin","version":"0.2"},{"name":"jbpm-workflow-plugin","version":"0.3"},{"name":"jcaptcha-plugin","version":"1.1"},{"name":"jclouds-jenkins","version":"2.3.1"},{"name":"jdepend","version":"1.2.3"},{"name":"jenkins-cloudformation-plugin","version":"0.11"},{"name":"jenkins-flowdock-plugin","version":"1.1.2"},{"name":"jenkins-jira-issue-updater","version":"1.3"},{"name":"jenkins-leiningen","version":"0.5.1"},{"name":"jenkins-multijob-plugin","version":"1.9"},{"name":"jenkins-tag-cloud-plugin","version":"1.6"},{"name":"jenkins-testswarm-plugin","version":"1.2"},{"name":"jenkins-tracker","version":"0.1.0"},{"name":"jenkinswalldisplay","version":"0.6.17"},{"name":"jenkinswalldisplay-pom","version":"0.6.2"},{"name":"jenkow-activiti-designer","version":"0.3.1"},{"name":"jenkow-activiti-explorer","version":"0.3.1"},{"name":"jenkow-plugin","version":"0.3.1"},{"name":"jigomerge","version":"0.7"},{"name":"jira","version":"1.37"},{"name":"JiraTestResultReporter","version":"1.0.4"},{"name":"job-direct-mail","version":"1.5"},{"name":"job-dsl","version":"1.15"},{"name":"job-exporter","version":"0.4"},{"name":"job-import-plugin","version":"1.0"},{"name":"job-log-logger-plugin","version":"1.0"},{"name":"job-node-stalker","version":"1.0.1"},{"name":"job-parameter-summary","version":"0.1"},{"name":"job-poll-action-plugin","version":"1.0"},{"name":"job-strongauth-simple","version":"0.5"},{"name":"jobConfigHistory","version":"2.4"},{"name":"jobcopy-builder","version":"1.1.0"},{"name":"jobgenerator","version":"1.14"},{"name":"jobrequeue","version":"1.0"},{"name":"jobrevision","version":"0.6"},{"name":"jobtype-column","version":"1.3"},{"name":"join","version":"1.15"},{"name":"jprt","version":"1.1"},{"name":"jqs-monitoring","version":"1.2"},{"name":"jquery","version":"1.7.2-1"},{"name":"jquery-ui","version":"1.0.2"},{"name":"jsgames","version":"0.2"},{"name":"jshint-checkstyle","version":"3.36"},{"name":"jslint","version":"0.8.0"},{"name":"jslint-checkstyle","version":"3.35"},{"name":"jsoup","version":"1.6.3"},{"name":"jsunit","version":"1.5"},{"name":"jswidgets","version":"1.10"},{"name":"junit-attachments","version":"1.3"},{"name":"jython","version":"1.9"},{"name":"kagemai","version":"1.3"},{"name":"karotz","version":"0.2"},{"name":"keepSlaveOffline","version":"1.0"},{"name":"keyboard-shortcuts-plugin","version":"1.2"},{"name":"klaros-testmanagement","version":"1.4"},{"name":"klocwork","version":"1.15"},{"name":"kundo","version":"0.2"},{"name":"label-verifier","version":"1.0"},{"name":"labeled-test-groups-publisher","version":"1.2.6"},{"name":"labmanager","version":"0.2.8"},{"name":"lastfailureversioncolumn","version":"1.1"},{"name":"lastsuccessdescriptioncolumn","version":"1.0"},{"name":"lastsuccessversioncolumn","version":"1.1"},{"name":"LavaLampNotifier","version":"1.4"},{"name":"ldapemail","version":"0.7"},{"name":"leastload","version":"1.0.3"},{"name":"lechat","version":"0.1.3"},{"name":"leiningen-plugin","version":"0.5.5"},{"name":"libvirt-slave","version":"1.8.1"},{"name":"lingr-plugin","version":"0.1"},{"name":"list-command","version":"0.2"},{"name":"liverebel-deploy","version":"2.5.5"},{"name":"livescreenshot","version":"1.4.4"},{"name":"loaderio-jenkins-plugin","version":"1.0.1"},{"name":"locale","version":"1.2"},{"name":"locked-files-report","version":"1.6"},{"name":"locks-and-latches","version":"0.6"},{"name":"log-command","version":"1.0.1"},{"name":"log-parser","version":"1.0.8"},{"name":"logaction-plugin","version":"1.2"},{"name":"logfilesizechecker","version":"1.0"},{"name":"logging","version":"0.2.8"},{"name":"logstash","version":"0.8.0"},{"name":"lotus-connections-plugin","version":"1.23"},{"name":"m2-extra-steps","version":"1.1.7"},{"name":"m2-repo-reaper","version":"1.0"},{"name":"m2release","version":"0.10.0"},{"name":"mail-watcher-plugin","version":"1.4"},{"name":"mailcommander","version":"1.0.0"},{"name":"managed-scripts","version":"1.1"},{"name":"mantis","version":"0.25"},{"name":"mask-passwords","version":"2.7.2"},{"name":"matrix-reloaded","version":"1.1.1"},{"name":"Matrix-sorter-plugin","version":"1.1"},{"name":"matrixtieparent","version":"1.2"},{"name":"maven-dependency-update-trigger","version":"1.4"},{"name":"maven-deployment-linker","version":"1.5.1"},{"name":"maven-info","version":"0.0.4"},{"name":"maven-invoker-plugin","version":"1.2"},{"name":"maven-metadata-plugin","version":"1.0.0"},{"name":"maven-release-cascade","version":"1.3.2"},{"name":"maven-repo-cleaner","version":"1.2"},{"name":"measurement-plots","version":"0.1"},{"name":"memegen","version":"0.4.3"},{"name":"memory-map","version":"1.0.1"},{"name":"mercurial","version":"1.46"},{"name":"metadata","version":"1.0b"},{"name":"mock-security-realm","version":"1.0"},{"name":"mock-slave","version":"1.1"},{"name":"mogotest","version":"0.1.0"},{"name":"mongodb","version":"1.3"},{"name":"mongodb-document-upload","version":"1.0"},{"name":"monitoring","version":"1.45.0"},{"name":"monkit-plugin","version":"0.2.6"},{"name":"mozmill","version":"1.3"},{"name":"msbuild","version":"1.18"},{"name":"mstest","version":"0.7"},{"name":"mstestrunner","version":"1.0.1"},{"name":"mttr","version":"1.1"},{"name":"multi-module-tests-publisher","version":"1.32"},{"name":"multi-slave-config-plugin","version":"1.0.0"},{"name":"multiline-tabbar-plugin","version":"1.1"},{"name":"multiple-scms","version":"0.2"},{"name":"mysql-auth","version":"1.0"},{"name":"nabaztag","version":"1.9"},{"name":"naginator","version":"1.8"},{"name":"nant","version":"1.4.3"},{"name":"ncover","version":"0.3"},{"name":"nerrvana-plugin","version":"1.02.01"},{"name":"nested-view","version":"1.10"},{"name":"netio-plugin","version":"1.4"},{"name":"network-monitor","version":"1.1"},{"name":"next-build-number","version":"1.0"},{"name":"next-executions","version":"1.0.5"},{"name":"nexus-task-runner","version":"0.9.2"},{"name":"nis-notification-lamp","version":"1.131"},{"name":"nodejs","version":"0.1"},{"name":"nodelabelparameter","version":"1.4"},{"name":"nodenamecolumn","version":"1.1"},{"name":"nodeofflinenotification","version":"1.0.3"},{"name":"nopmdcheck","version":"0.9"},{"name":"nopmdverifytrac","version":"0.9"},{"name":"notification","version":"1.5"},{"name":"notifo","version":"1.0.1"},{"name":"nsiqcollector","version":"1.3.3"},{"name":"nuget","version":"0.3"},{"name":"nunit","version":"0.14"},{"name":"offlineonfailure-plugin","version":"1.0"},{"name":"openid","version":"1.6"},{"name":"openJDK-native-plugin","version":"1.0"},{"name":"openscada-jenkins-exporter","version":"0.0.2"},{"name":"origo-issue-notifier","version":"1.1"},{"name":"oslc-cm","version":"1.31"},{"name":"otabuilder","version":"0.2.3"},{"name":"parallel-test-executor","version":"1.0"},{"name":"parameterized-trigger","version":"2.18"},{"name":"patch-parameter","version":"1.0"},{"name":"pathignore","version":"0.6"},{"name":"pegdown-formatter","version":"1.3"},{"name":"pending-changes","version":"0.3.0"},{"name":"people-redirector","version":"1.3"},{"name":"perforce","version":"1.3.24"},{"name":"performance","version":"1.8"},{"name":"perfpublisher","version":"7.97"},{"name":"periodic-reincarnation","version":"1.2"},{"name":"periodicbackup","version":"1.3"},{"name":"perl","version":"0.0.4"},{"name":"persona","version":"2.3"},{"name":"phing","version":"0.13.1"},{"name":"php","version":"1.0"},{"name":"piwikanalytics","version":"1.1.0"},{"name":"plasticscm-plugin","version":"2.0"},{"name":"platformlabeler","version":"1.1"},{"name":"play-autotest-plugin","version":"0.0.12"},{"name":"plot","version":"1.5"},{"name":"pmd","version":"3.34"},{"name":"polarion","version":"1.3"},{"name":"pollscm","version":"1.2"},{"name":"port-allocator","version":"1.5"},{"name":"postbuild-task","version":"1.8"},{"name":"postbuildscript","version":"0.12"},{"name":"powershell","version":"1.2"},{"name":"pragprog","version":"1.0.4"},{"name":"prereq-buildstep","version":"1.1"},{"name":"preSCMbuildstep","version":"0.2"},{"name":"pretest-commit","version":"0.4"},{"name":"pretested-integration","version":"0.0.4"},{"name":"PrioritySorter","version":"1.3"},{"name":"progress-bar-column-plugin","version":"1.0"},{"name":"project-description-setter","version":"1.1"},{"name":"project-health-report","version":"1.2"},{"name":"project-stats-plugin","version":"0.4"},{"name":"promoted-builds","version":"2.11"},{"name":"promoted-builds-simple","version":"1.9"},{"name":"prqa-plugin","version":"1.2.0"},{"name":"pry","version":"1.1"},{"name":"publish-over-cifs","version":"0.2"},{"name":"publish-over-ftp","version":"1.9"},{"name":"publish-over-ssh","version":"1.10"},{"name":"purge-build-queue-plugin","version":"1.0"},{"name":"pvcs_scm","version":"1.1"},{"name":"pwauth","version":"0.4"},{"name":"pxe","version":"1.5"},{"name":"pyenv","version":"0.0.4"},{"name":"python","version":"1.2"},{"name":"qc","version":"1.2.1"},{"name":"r","version":"0.2"},{"name":"rabbitmq-build-trigger","version":"1.5"},{"name":"rabbitmq-consumer","version":"1.5"},{"name":"rad-builder","version":"1.1.4"},{"name":"radiatorviewplugin","version":"1.13"},{"name":"rake","version":"1.7.7"},{"name":"rally-update-plugin-1","version":"1.2"},{"name":"random-string-parameter","version":"1.0"},{"name":"rbenv","version":"0.0.14"},{"name":"read-only-configurations","version":"1.7"},{"name":"rebuild","version":"1.19"},{"name":"recipe","version":"1.0"},{"name":"redmine","version":"0.13"},{"name":"refit","version":"0.3.1"},{"name":"regexemail","version":"0.3"},{"name":"regression-report-plugin","version":"1.1"},{"name":"release","version":"2.3"},{"name":"remote-terminal-access","version":"1.4"},{"name":"repo","version":"1.5"},{"name":"repository","version":"1.0"},{"name":"repository-connector","version":"0.8.2"},{"name":"reverse-proxy-auth-plugin","version":"1.0.1"},{"name":"reviewboard","version":"1.0.1"},{"name":"rhnpush-plugin","version":"0.1"},{"name":"rich-text-publisher-plugin","version":"1.1"},{"name":"robot","version":"1.2.3"},{"name":"role-strategy","version":"1.1.2"},{"name":"rpmsign-plugin","version":"0.1"},{"name":"rqm-plugin","version":"1.0"},{"name":"rrod","version":"1.1.0"},{"name":"rtc","version":"0.3"},{"name":"ruby","version":"1.2"},{"name":"ruby-runtime","version":"0.11"},{"name":"rubyMetrics","version":"1.5.0"},{"name":"rubymotion","version":"0.13"},{"name":"run-condition","version":"0.10"},{"name":"rundeck","version":"2.11"},{"name":"rusalad-plugin","version":"1.0.8"},{"name":"rvm","version":"0.4"},{"name":"s3","version":"0.3.2"},{"name":"saferestart","version":"0.3"},{"name":"sametime","version":"0.4"},{"name":"sauce-ondemand","version":"1.57"},{"name":"sbt","version":"1.4"},{"name":"scala-junit-name-decoder","version":"1.0"},{"name":"schedule-failed-builds","version":"1.1"},{"name":"Schmant","version":"1.1.4"},{"name":"scm-sync-configuration","version":"0.0.7.1"},{"name":"scm2job","version":"2.3"},{"name":"scons","version":"0.4"},{"name":"scp","version":"1.8"},{"name":"screenshot","version":"1.1"},{"name":"script-realm","version":"1.5"},{"name":"script-scm","version":"1.12"},{"name":"scripted-cloud-plugin","version":"0.12"},{"name":"scriptler","version":"2.6.1"},{"name":"scripttrigger","version":"0.29"},{"name":"SCTMExecutor","version":"1.5.1"},{"name":"search-all-results-plugin","version":"1.0"},{"name":"secret","version":"1.7"},{"name":"sectioned-view","version":"1.18"},{"name":"selection-tasks-plugin","version":"1.0"},{"name":"selenium","version":"2.2"},{"name":"selenium-aes","version":"0.5"},{"name":"selenium-builder","version":"1.6"},{"name":"seleniumhq","version":"0.4"},{"name":"seleniumhtmlreport","version":"0.94"},{"name":"seleniumrc-plugin","version":"1.0"},{"name":"serenity","version":"0.4"},{"name":"sfee","version":"1.0.4"},{"name":"shared-objects","version":"0.44"},{"name":"shelve-project-plugin","version":"1.3"},{"name":"shiningpanda","version":"0.19"},{"name":"show-build-parameters","version":"1.0"},{"name":"sicci_for_xcode","version":"0.0.8"},{"name":"sidebar-link","version":"1.6"},{"name":"signal-killer","version":"1.0"},{"name":"simple-parameterized-builds-report","version":"1.0"},{"name":"simple-theme-plugin","version":"0.3"},{"name":"simpleclearcase","version":"1.2.2"},{"name":"simpleupdatesite","version":"1.1.2"},{"name":"sitemonitor","version":"0.4"},{"name":"skip-certificate-check","version":"1.0"},{"name":"skype-notifier","version":"1.1.0"},{"name":"sladiator-notifier","version":"1.0.4"},{"name":"slave-prerequisites","version":"1.0"},{"name":"slave-proxy","version":"1.1"},{"name":"slave-setup","version":"1.6"},{"name":"slave-squatter","version":"1.2"},{"name":"slave-status","version":"1.6"},{"name":"slave-utilization-plugin","version":"1.5"},{"name":"sloccount","version":"1.10"},{"name":"smart-jenkins","version":"1.0"},{"name":"sms-notification","version":"1.0"},{"name":"snsnotify","version":"1.6"},{"name":"sonar","version":"2.1"},{"name":"sonargraph-plugin","version":"1.2"},{"name":"sonatype-ci","version":"1.3"},{"name":"sounds","version":"0.4"},{"name":"sourcemonitor","version":"0.2"},{"name":"speaks","version":"0.1.1"},{"name":"sra-deploy","version":"1.4.2.2"},{"name":"ssh","version":"2.3"},{"name":"ssh-agent","version":"1.0"},{"name":"SSSCM","version":"1.0"},{"name":"stackhammer","version":"1.0.6"},{"name":"staf","version":"0.1"},{"name":"starteam","version":"0.6.11"},{"name":"started-by-envvar","version":"1.0"},{"name":"startup-trigger-plugin","version":"2.4"},{"name":"stashNotifier","version":"1.3"},{"name":"status-view","version":"1.0"},{"name":"statusmonitor","version":"1.3"},{"name":"stepcounter","version":"1.3.2"},{"name":"storable-configs-plugin","version":"1.0"},{"name":"strawboss","version":"1.1"},{"name":"suite-test-groups-publisher","version":"1.13"},{"name":"summary_report","version":"1.9"},{"name":"suppress-stack-trace","version":"1.1"},{"name":"Surround-SCM-plugin","version":"1.1"},{"name":"svn-release-mgr","version":"1.2"},{"name":"svn-revert-plugin","version":"1.3"},{"name":"svn-tag","version":"1.16"},{"name":"svn-workspace-cleaner","version":"1.0"},{"name":"svncompat13","version":"1.2"},{"name":"svncompat14","version":"1.1"},{"name":"svnmerge","version":"1.2"},{"name":"svnpublisher","version":"0.1"},{"name":"swarm","version":"1.9"},{"name":"synergy","version":"1.6"},{"name":"systemloadaverage-monitor","version":"1.2"},{"name":"tag-profiler","version":"0.2"},{"name":"tap","version":"1.10"},{"name":"tasks","version":"4.36"},{"name":"tattletale-plugin","version":"0.3"},{"name":"tcl","version":"0.4"},{"name":"team-views","version":"0.9.0"},{"name":"teamconcert","version":"1.0.5"},{"name":"template-project","version":"1.4"},{"name":"template-workflows","version":"1.2"},{"name":"tepco","version":"0.1"},{"name":"tepco-epuw","version":"1.0"},{"name":"terminal","version":"1.4"},{"name":"terminate-ssh-processes-plugin","version":"1.0"},{"name":"test-stability","version":"1.0"},{"name":"testabilityexplorer","version":"0.4"},{"name":"testflight","version":"1.3.8"},{"name":"testingbot","version":"1.5"},{"name":"testInProgress","version":"1.0"},{"name":"testlink","version":"3.5"},{"name":"testng-plugin","version":"1.1"},{"name":"testopia","version":"1.3"},{"name":"text-finder","version":"1.9"},{"name":"text-finder-run-condition","version":"0.1"},{"name":"tfs","version":"1.20"},{"name":"thinBackup","version":"1.7.2"},{"name":"thread-dump-action-plugin","version":"1.0"},{"name":"throttle-concurrents","version":"1.7.2"},{"name":"thucydides","version":"0.1"},{"name":"timestamper","version":"1.5.4"},{"name":"tmpcleaner","version":"1.1"},{"name":"token-macro","version":"1.7"},{"name":"toolenv","version":"1.1"},{"name":"trac","version":"1.13"},{"name":"trac-publisher-plugin","version":"1.3"},{"name":"tracking-svn","version":"1.1"},{"name":"tuxdroid","version":"1.7"},{"name":"TwilioNotifier","version":"0.2.1"},{"name":"twitter","version":"0.7"},{"name":"ui-samples-plugin","version":"1.520"},{"name":"unicorn","version":"0.1.1"},{"name":"unity-asset-server","version":"1.1.1"},{"name":"unity3d-plugin","version":"0.3"},{"name":"unreliable-slave-plugin","version":"1.1"},{"name":"update-sites-manager","version":"1.0.0"},{"name":"uptime","version":"1.0"},{"name":"url-auth","version":"1.0.1"},{"name":"URLSCM","version":"1.6"},{"name":"urltrigger","version":"0.31"},{"name":"utplsql","version":"0.4"},{"name":"vagrant","version":"0.1.4"},{"name":"valgrind","version":"0.19"},{"name":"validating-string-parameter","version":"2.2"},{"name":"vault-scm-plugin","version":"1.1.1"},{"name":"vboxwrapper","version":"1.3"},{"name":"veracode-scanner","version":"1.1"},{"name":"versioncolumn","version":"0.2"},{"name":"versionnumber","version":"1.4.1"},{"name":"vertx","version":"1.0.1"},{"name":"view-job-filters","version":"1.22"},{"name":"viewVC","version":"1.6"},{"name":"violation-columns","version":"1.5"},{"name":"violations","version":"0.7.11"},{"name":"virtualbox","version":"0.6"},{"name":"visualworks-store","version":"1.0"},{"name":"vmware","version":"0.8"},{"name":"vs-code-metrics","version":"1.6"},{"name":"vsphere-cloud","version":"0.10"},{"name":"vss","version":"1.9"},{"name":"vstestrunner","version":"1.0.1"},{"name":"warnings","version":"4.26"},{"name":"was-builder","version":"1.6.1"},{"name":"weblogic-deployer-plugin","version":"2.3"},{"name":"websocket","version":"1.0.5"},{"name":"WebSVN2","version":"0.9"},{"name":"webtestpresenter","version":"0.23"},{"name":"whitesource","version":"1.1"},{"name":"windmill","version":"1.5"},{"name":"windows-azure-storage","version":"0.1.1"},{"name":"windows-exe-runner","version":"1.1"},{"name":"wix","version":"1.2"},{"name":"writable-filesystem-monitor","version":"0.1"},{"name":"ws-cleanup","version":"0.15"},{"name":"xcode-plugin","version":"1.3.3"},{"name":"xfpanel","version":"1.2.2"},{"name":"xframe-filter-plugin","version":"1.0"},{"name":"xpath-config-viewer","version":"1.1.1"},{"name":"xpdev","version":"1.0"},{"name":"xshell","version":"0.8"},{"name":"xtrigger","version":"0.54"},{"name":"xunit","version":"1.60"},{"name":"xvfb","version":"1.0.7"},{"name":"xvnc","version":"1.14"},{"name":"yammer","version":"1.0.0"},{"name":"youtrack-plugin","version":"0.3"},{"name":"zentimestamp","version":"3.3"},{"name":"zubhium","version":"0.1.6"}]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"plugins":[{"active":true,"backupVersion":null,"bundled":true,"deleted":false,"dependencies":[],"downgradable":false,"enabled":true,"hasUpdate":false,"longName":"Jenkins Mailer Plugin","pinned":false,"shortName":"mailer","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/Mailer","version":"1.5"},{"active":false,"backupVersion":null,"bundled":true,"deleted":false,"dependencies":[],"downgradable":false,"enabled":false,"hasUpdate":false,"longName":"External Monitor Job Type Plugin","pinned":false,"shortName":"external-monitor-job","supportsDynamicLoad":"MAYBE","url":"https://wiki.jenkins-ci.org/display/JENKINS/Monitoring+external+jobs","version":"1.1"},{"active":true,"backupVersion":"1.2","bundled":true,"deleted":false,"dependencies":[{}],"downgradable":true,"enabled":false,"hasUpdate":false,"longName":"LDAP Plugin","pinned":true,"shortName":"ldap","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/LDAP+Plugin","version":"1.5"},{"active":true,"backupVersion":"1.1","bundled":true,"deleted":false,"dependencies":[{}],"downgradable":true,"enabled":true,"hasUpdate":false,"longName":"PAM Authentication plugin","pinned":true,"shortName":"pam-auth","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/PAM+Authentication+Plugin","version":"1.1"},{"active":false,"backupVersion":null,"bundled":true,"deleted":false,"dependencies":[],"downgradable":false,"enabled":false,"hasUpdate":false,"longName":"Ant Plugin","pinned":false,"shortName":"ant","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/Ant+Plugin","version":"1.2"},{"active":true,"backupVersion":null,"bundled":true,"deleted":false,"dependencies":[{},{},{},{}],"downgradable":false,"enabled":true,"hasUpdate":false,"longName":"Javadoc Plugin","pinned":false,"shortName":"javadoc","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/Javadoc+Plugin","version":"1.1"},{"active":true,"backupVersion":null,"bundled":true,"deleted":false,"dependencies":[{},{},{},{},{},{}],"downgradable":false,"enabled":true,"hasUpdate":false,"longName":"Jenkins Translation Assistance plugin","pinned":false,"shortName":"translation","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/Translation+Assistance+Plugin","version":"1.10"},{"active":true,"backupVersion":null,"bundled":false,"deleted":false,"dependencies":[{}],"downgradable":false,"enabled":false,"hasUpdate":false,"longName":"SMS Notification","pinned":false,"shortName":"sms","supportsDynamicLoad":"MAYBE","url":"https://wiki.jenkins-ci.org/display/JENKINS/SMS+Notification","version":"1.1"},{"active":true,"backupVersion":null,"bundled":true,"deleted":false,"dependencies":[{},{}],"downgradable":false,"enabled":true,"hasUpdate":false,"longName":"Maven Integration plugin","pinned":false,"shortName":"maven-plugin","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/Maven+2+Project+Plugin","version":"1.520"},{"active":false,"backupVersion":null,"bundled":true,"deleted":false,"dependencies":[],"downgradable":false,"enabled":false,"hasUpdate":false,"longName":"Credentials Plugin","pinned":false,"shortName":"credentials","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/Credentials+Plugin","version":"1.4"},{"active":true,"backupVersion":null,"bundled":true,"deleted":false,"dependencies":[{},{},{},{},{},{},{}],"downgradable":false,"enabled":true,"hasUpdate":false,"longName":"SSH Credentials Plugin","pinned":false,"shortName":"ssh-credentials","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/SSH+Credentials+Plugin","version":"0.3"},{"active":true,"backupVersion":"0.25","bundled":true,"deleted":false,"dependencies":[{},{},{},{},{}],"downgradable":true,"enabled":true,"hasUpdate":false,"longName":"Jenkins SSH Slaves plugin","pinned":true,"shortName":"ssh-slaves","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/SSH+Slaves+plugin","version":"0.27"},{"active":true,"backupVersion":"2.8","bundled":true,"deleted":false,"dependencies":[{},{},{},{}],"downgradable":true,"enabled":true,"hasUpdate":false,"longName":"Jenkins CVS Plug-in","pinned":true,"shortName":"cvs","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/CVS+Plugin","version":"2.9"},{"active":true,"backupVersion":"1.45","bundled":true,"deleted":false,"dependencies":[{},{},{},{}],"downgradable":true,"enabled":true,"hasUpdate":false,"longName":"Jenkins Subversion Plug-in","pinned":true,"shortName":"subversion","supportsDynamicLoad":"MAYBE","url":"http://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin","version":"1.50"}]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"updates":[]}
|
@@ -0,0 +1,165 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
describe JenkinsApi::Client::PluginManager do
|
5
|
+
context "With properly initialized Client" do
|
6
|
+
before do
|
7
|
+
mock_logger = Logger.new "/dev/null"
|
8
|
+
@client = mock
|
9
|
+
@client.should_receive(:logger).and_return(mock_logger)
|
10
|
+
@plugin = JenkinsApi::Client::PluginManager.new(@client)
|
11
|
+
@installed_plugins = load_json_from_fixture("installed_plugins.json")
|
12
|
+
@available_plugins = load_json_from_fixture("available_plugins.json")
|
13
|
+
@updatable_plugins = load_json_from_fixture("updatable_plugins.json")
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "InstanceMethods" do
|
17
|
+
describe "#initialize" do
|
18
|
+
it "initializes by receiving an instane of client object" do
|
19
|
+
mock_logger = Logger.new "/dev/null"
|
20
|
+
@client.should_receive(:logger).and_return(mock_logger)
|
21
|
+
expect(
|
22
|
+
lambda { JenkinsApi::Client::PluginManager.new(@client) }
|
23
|
+
).not_to raise_error
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#list_installed" do
|
28
|
+
it "lists all installed plugins in jenkins" do
|
29
|
+
@client.should_receive(:api_get_request).
|
30
|
+
with("/pluginManager", "tree=plugins[shortName,version]").
|
31
|
+
and_return(@installed_plugins)
|
32
|
+
plugins = @plugin.list_installed
|
33
|
+
plugins.class.should == Hash
|
34
|
+
plugins.size.should == @installed_plugins["plugins"].size
|
35
|
+
end
|
36
|
+
supported_filters = [
|
37
|
+
:active, :bundled, :deleted, :downgradable, :enabled,
|
38
|
+
:hasUpdate, :pinned
|
39
|
+
]
|
40
|
+
supported_filters.each do |filter|
|
41
|
+
it "lists all installed plugins matching filter '#{filter}'" do
|
42
|
+
@client.should_receive(:api_get_request).
|
43
|
+
with("/pluginManager",
|
44
|
+
"tree=plugins[shortName,version,#{filter}]"
|
45
|
+
).and_return(@installed_plugins)
|
46
|
+
@plugin.list_installed(filter => true).class.should == Hash
|
47
|
+
end
|
48
|
+
end
|
49
|
+
it "lists all installed plugins matching multiple filters" do
|
50
|
+
@client.should_receive(:api_get_request).
|
51
|
+
with("/pluginManager",
|
52
|
+
"tree=plugins[shortName,version,bundled,deleted]").
|
53
|
+
and_return(@installed_plugins)
|
54
|
+
@plugin.list_installed(:bundled => true, :deleted => true).class.
|
55
|
+
should == Hash
|
56
|
+
end
|
57
|
+
it "raises an error if unsupported filter is specified" do
|
58
|
+
expect(
|
59
|
+
lambda { @plugin.list_installed(:unsupported => true) }
|
60
|
+
).to raise_error(ArgumentError)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "#list_available" do
|
65
|
+
it "lists all available plugins in jenkins update center" do
|
66
|
+
@client.should_receive(:api_get_request).
|
67
|
+
with("/updateCenter/coreSource", "tree=availables[name,version]").
|
68
|
+
and_return(@available_plugins)
|
69
|
+
@plugin.list_available.class.should == Hash
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "#list_updates" do
|
74
|
+
it "lists all available plugin updates in jenkins update center" do
|
75
|
+
@client.should_receive(:api_get_request).
|
76
|
+
with("/updateCenter/coreSource", "tree=updates[name,version]").
|
77
|
+
and_return(@updatable_plugins)
|
78
|
+
@plugin.list_updates.class.should == Hash
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "#install" do
|
83
|
+
it "installs a single plugin given as a string" do
|
84
|
+
@client.should_receive(:api_post_request).
|
85
|
+
with("/pluginManager/install",
|
86
|
+
{"plugin.awesome-plugin.default" => "on"}
|
87
|
+
)
|
88
|
+
@plugin.install("awesome-plugin")
|
89
|
+
end
|
90
|
+
it "installs multiple plugins given as an array" do
|
91
|
+
@client.should_receive(:api_post_request).
|
92
|
+
with("/pluginManager/install",
|
93
|
+
{
|
94
|
+
"plugin.awesome-plugin-1.default" => "on",
|
95
|
+
"plugin.awesome-plugin-2.default" => "on",
|
96
|
+
"plugin.awesome-plugin-3.default" => "on"
|
97
|
+
}
|
98
|
+
)
|
99
|
+
@plugin.install([
|
100
|
+
"awesome-plugin-1",
|
101
|
+
"awesome-plugin-2",
|
102
|
+
"awesome-plugin-3"
|
103
|
+
])
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "#uninstall" do
|
108
|
+
it "uninstalls a single plugin given as a string" do
|
109
|
+
@client.should_receive(:api_post_request).
|
110
|
+
with("/pluginManager/plugin/awesome-plugin/doUninstall")
|
111
|
+
@plugin.uninstall("awesome-plugin")
|
112
|
+
end
|
113
|
+
it "uninstalls multiple plugins given as array" do
|
114
|
+
plugins = ["awesome-plugin-1", "awesome-plugin-2", "awesome-plugin-3"]
|
115
|
+
plugins.each do |plugin|
|
116
|
+
@client.should_receive(:api_post_request).
|
117
|
+
with("/pluginManager/plugin/#{plugin}/doUninstall")
|
118
|
+
end
|
119
|
+
@plugin.uninstall(plugins)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
describe "#enable" do
|
124
|
+
it "enables a single plugin given as a string" do
|
125
|
+
@client.should_receive(:api_post_request).
|
126
|
+
with("/pluginManager/plugin/awesome-plugin/makeEnabled")
|
127
|
+
@plugin.enable("awesome-plugin")
|
128
|
+
end
|
129
|
+
it "enables multiple plugins given as array" do
|
130
|
+
plugins = ["awesome-plugin-1", "awesome-plugin-2", "awesome-plugin-3"]
|
131
|
+
plugins.each do |plugin|
|
132
|
+
@client.should_receive(:api_post_request).
|
133
|
+
with("/pluginManager/plugin/#{plugin}/makeEnabled")
|
134
|
+
end
|
135
|
+
@plugin.enable(plugins)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe "#disable" do
|
140
|
+
it "disables a single plugin given as a string" do
|
141
|
+
@client.should_receive(:api_post_request).
|
142
|
+
with("/pluginManager/plugin/awesome-plugin/makeDisabled")
|
143
|
+
@plugin.disable("awesome-plugin")
|
144
|
+
end
|
145
|
+
it "disabless multiple plugins given as array" do
|
146
|
+
plugins = ["awesome-plugin-1", "awesome-plugin-2", "awesome-plugin-3"]
|
147
|
+
plugins.each do |plugin|
|
148
|
+
@client.should_receive(:api_post_request).
|
149
|
+
with("/pluginManager/plugin/#{plugin}/makeDisabled")
|
150
|
+
end
|
151
|
+
@plugin.disable(plugins)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
describe "#restart_required?" do
|
156
|
+
it "checks if restart is required after plugin install/uninstall" do
|
157
|
+
@client.should_receive(:api_get_request).
|
158
|
+
with("/updateCenter", "tree=restartRequiredForCompletion").
|
159
|
+
and_return({"restartRequiredForCompletion" => true})
|
160
|
+
@plugin.restart_required?.should == true
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
@@ -1,9 +1,19 @@
|
|
1
1
|
require File.expand_path('../../../lib/jenkins_api_client', __FILE__)
|
2
2
|
require 'logger'
|
3
|
+
require 'json'
|
3
4
|
|
4
5
|
RSpec.configure do |config|
|
5
6
|
config.before(:each) do
|
6
7
|
end
|
7
|
-
|
8
8
|
end
|
9
9
|
|
10
|
+
def load_json_from_fixture(file_name)
|
11
|
+
JSON.load(
|
12
|
+
File.read(
|
13
|
+
File.expand_path(
|
14
|
+
"../fixtures/files/#{file_name}",
|
15
|
+
__FILE__
|
16
|
+
)
|
17
|
+
)
|
18
|
+
)
|
19
|
+
end
|
data/travis/setup.sh
CHANGED
@@ -9,6 +9,7 @@ sudo apt-get install -qq jenkins
|
|
9
9
|
# Configure Jenkins
|
10
10
|
sudo service jenkins stop
|
11
11
|
sudo cp -f travis/jenkins_config.xml /var/lib/jenkins/config.xml
|
12
|
+
sudo cp -f travis/hudson.model.UpdateCenter.xml /var/lib/jenkins/hudson.model.UpdateCenter.xml
|
12
13
|
sudo mkdir -p /var/lib/jenkins/users/testuser
|
13
14
|
sudo cp -f travis/user_config.xml /var/lib/jenkins/users/testuser/config.xml
|
14
15
|
sudo service jenkins start
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jenkins_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0.alpha.1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Kannan Manickam
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-10-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -155,6 +155,22 @@ dependencies:
|
|
155
155
|
- - ! '>='
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: yard-thor
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
158
174
|
- !ruby/object:Gem::Dependency
|
159
175
|
name: yard
|
160
176
|
requirement: !ruby/object:Gem::Requirement
|
@@ -209,6 +225,7 @@ files:
|
|
209
225
|
- lib/jenkins_api_client/exceptions.rb
|
210
226
|
- lib/jenkins_api_client/job.rb
|
211
227
|
- lib/jenkins_api_client/node.rb
|
228
|
+
- lib/jenkins_api_client/plugin_manager.rb
|
212
229
|
- lib/jenkins_api_client/system.rb
|
213
230
|
- lib/jenkins_api_client/user.rb
|
214
231
|
- lib/jenkins_api_client/version.rb
|
@@ -217,20 +234,26 @@ files:
|
|
217
234
|
- spec/func_tests/client_spec.rb
|
218
235
|
- spec/func_tests/job_spec.rb
|
219
236
|
- spec/func_tests/node_spec.rb
|
237
|
+
- spec/func_tests/plugin_spec.rb.pending
|
220
238
|
- spec/func_tests/spec_helper.rb
|
221
239
|
- spec/func_tests/system_spec.rb
|
222
240
|
- spec/func_tests/user_spec.rb
|
223
241
|
- spec/func_tests/view_spec.rb
|
224
242
|
- spec/unit_tests/build_queue_spec.rb
|
225
243
|
- spec/unit_tests/client_spec.rb
|
244
|
+
- spec/unit_tests/fixtures/files/available_plugins.json
|
226
245
|
- spec/unit_tests/fixtures/files/computer_sample.xml
|
246
|
+
- spec/unit_tests/fixtures/files/installed_plugins.json
|
227
247
|
- spec/unit_tests/fixtures/files/job_sample.xml
|
248
|
+
- spec/unit_tests/fixtures/files/updatable_plugins.json
|
228
249
|
- spec/unit_tests/job_spec.rb
|
229
250
|
- spec/unit_tests/node_spec.rb
|
251
|
+
- spec/unit_tests/plugin_spec.rb
|
230
252
|
- spec/unit_tests/spec_helper.rb
|
231
253
|
- spec/unit_tests/system_spec.rb
|
232
254
|
- spec/unit_tests/user_spec.rb
|
233
255
|
- spec/unit_tests/view_spec.rb
|
256
|
+
- travis/hudson.model.UpdateCenter.xml
|
234
257
|
- travis/jenkins_config.xml
|
235
258
|
- travis/jenkins_config_with_crumb.xml
|
236
259
|
- travis/setup.sh
|
@@ -251,13 +274,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
251
274
|
version: '0'
|
252
275
|
segments:
|
253
276
|
- 0
|
254
|
-
hash:
|
277
|
+
hash: -755549316541829445
|
255
278
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
256
279
|
none: false
|
257
280
|
requirements:
|
258
|
-
- - ! '
|
281
|
+
- - ! '>'
|
259
282
|
- !ruby/object:Gem::Version
|
260
|
-
version:
|
283
|
+
version: 1.3.1
|
261
284
|
requirements: []
|
262
285
|
rubyforge_project:
|
263
286
|
rubygems_version: 1.8.23
|