bamboo-client 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/LICENSE +1 -1
- data/lib/bamboo-client/http/json.rb +16 -6
- data/lib/bamboo-client/rest.rb +12 -8
- data/lib/bamboo-client/version.rb +1 -1
- data/spec/bamboo-client/http/json_spec.rb +12 -7
- data/spec/bamboo-client/rest_spec.rb +9 -12
- data/spec/fixtures/change.json +1 -0
- data/spec/fixtures/result_with_changes.json +1 -0
- metadata +23 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 224a6b075dd5f763b1ad322838359cc57b9c089d
|
4
|
+
data.tar.gz: 66e9493a34ffbb55a0824e528e2880f137b895bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: acabe3c2d0be4778d1bb148bde7ef10f63147aefe9a9fb51481f97e4f9bc4c8433c7ca9b90caace18a169dd6f24adda439ce642026bbe38a7cb11dffe1aed374
|
7
|
+
data.tar.gz: 6c96bdb30aa662164dcf38cb3a3f786dab380675ccb635651db6c6a0d9d66094c4d2acea498cbc6e9c122478d1f54175057c30efe3bcfecdf2b22cc057d4093b
|
data/.travis.yml
CHANGED
data/LICENSE
CHANGED
@@ -41,19 +41,20 @@ module Bamboo
|
|
41
41
|
|
42
42
|
attr_reader :cookies
|
43
43
|
|
44
|
-
def post(uri_or_path, data = {}
|
45
|
-
resp = RestClient.post(uri_for(uri_or_path), data.to_json, :
|
44
|
+
def post(uri_or_path, data = {})
|
45
|
+
resp = RestClient.post(uri_for(uri_or_path), data.to_json, default_headers.merge(:content_type => :json))
|
46
46
|
Doc.from(resp) unless resp.empty?
|
47
47
|
end
|
48
48
|
|
49
|
-
def post_with_query(uri_or_path, query = {}
|
50
|
-
resp = RestClient.post(uri_for(uri_or_path, query), '{}', :
|
49
|
+
def post_with_query(uri_or_path, query = {})
|
50
|
+
resp = RestClient.post(uri_for(uri_or_path, query), '{}', default_headers.merge(:content_type => :json))
|
51
51
|
Doc.from(resp) unless resp.empty?
|
52
52
|
end
|
53
53
|
|
54
|
-
def get(uri_or_path, params = nil
|
54
|
+
def get(uri_or_path, params = nil)
|
55
55
|
uri = uri_for(uri_or_path, params)
|
56
|
-
|
56
|
+
puts "Json.get: url: #{uri} cookies: #{cookies}" if $DEBUG
|
57
|
+
Doc.from RestClient.get(uri, default_headers)
|
57
58
|
end
|
58
59
|
|
59
60
|
def get_cookies(uri_or_path, params = nil)
|
@@ -62,6 +63,15 @@ module Bamboo
|
|
62
63
|
@cookies = resp.cookies
|
63
64
|
end
|
64
65
|
|
66
|
+
private
|
67
|
+
|
68
|
+
def default_headers
|
69
|
+
params = { :accept => :json }
|
70
|
+
params[:cookies] = @cookies if @cookies
|
71
|
+
|
72
|
+
params
|
73
|
+
end
|
74
|
+
|
65
75
|
end # Json
|
66
76
|
end # Http
|
67
77
|
end # Client
|
data/lib/bamboo-client/rest.rb
CHANGED
@@ -93,14 +93,14 @@ module Bamboo
|
|
93
93
|
path = File.join(SERVICE, "queue/#{URI.escape key}")
|
94
94
|
|
95
95
|
if params
|
96
|
-
@http.post_with_query path, params
|
96
|
+
@http.post_with_query path, params
|
97
97
|
else
|
98
|
-
@http.post path, {}
|
98
|
+
@http.post path, {}
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
-
def results
|
103
|
-
doc = @http.get File.join(SERVICE, "result/#{URI.escape key}"),
|
102
|
+
def results(params = {})
|
103
|
+
doc = @http.get File.join(SERVICE, "result/#{URI.escape key}"), params
|
104
104
|
doc.auto_expand Result, @http
|
105
105
|
end
|
106
106
|
|
@@ -131,7 +131,7 @@ module Bamboo
|
|
131
131
|
def plans
|
132
132
|
@plans ||= (
|
133
133
|
unless @data['plans'] && @data['plans']['plan']
|
134
|
-
@data = @http.get(URI.parse(url),
|
134
|
+
@data = @http.get(URI.parse(url), :expand => 'plans').data
|
135
135
|
end
|
136
136
|
|
137
137
|
@data.fetch('plans').fetch('plan').map { |e| Plan.new(e, @http) }
|
@@ -256,6 +256,10 @@ module Bamboo
|
|
256
256
|
@data['comment']
|
257
257
|
end
|
258
258
|
|
259
|
+
def commit_url
|
260
|
+
@data['commitUrl']
|
261
|
+
end
|
262
|
+
|
259
263
|
def files
|
260
264
|
# could use expand here
|
261
265
|
Array(@data.fetch('files')['file']).map do |data|
|
@@ -280,14 +284,14 @@ module Bamboo
|
|
280
284
|
end
|
281
285
|
|
282
286
|
def add(key)
|
283
|
-
data = @http.post(File.join(SERVICE, "queue/#{URI.escape key}"), {}
|
287
|
+
data = @http.post(File.join(SERVICE, "queue/#{URI.escape key}"), {}).data
|
284
288
|
QueuedBuild.new(data, @http)
|
285
289
|
end
|
286
290
|
|
287
291
|
def queued_builds
|
288
292
|
@queued_builds ||= (
|
289
293
|
unless @data['queuedBuilds'] && @data['queuedBuilds']['queuedBuild']
|
290
|
-
@data = @http.get(File.join(SERVICE, 'queue'), {:expand => 'queuedBuilds'}
|
294
|
+
@data = @http.get(File.join(SERVICE, 'queue'), {:expand => 'queuedBuilds'}).data
|
291
295
|
end
|
292
296
|
|
293
297
|
begin
|
@@ -332,7 +336,7 @@ module Bamboo
|
|
332
336
|
def changes
|
333
337
|
@changes ||= (
|
334
338
|
unless @data['changes'] && @data['changes']['change']
|
335
|
-
@data = @http.get(URI.parse(url), {:expand => 'changes'}
|
339
|
+
@data = @http.get(URI.parse(url), {:expand => 'changes'}).data
|
336
340
|
end
|
337
341
|
|
338
342
|
@data.fetch('changes').fetch('change').map { |e| Change.new(e, @http) }
|
@@ -9,7 +9,7 @@ module Bamboo
|
|
9
9
|
|
10
10
|
it "does a GET" do
|
11
11
|
RestClient.should_receive(:get).with(
|
12
|
-
"#{url}/", :accept => :json
|
12
|
+
"#{url}/", :accept => :json
|
13
13
|
).and_return('{"some": "data"}')
|
14
14
|
|
15
15
|
doc = json.get "/"
|
@@ -18,7 +18,7 @@ module Bamboo
|
|
18
18
|
|
19
19
|
it "does a POST" do
|
20
20
|
RestClient.should_receive(:post).with(
|
21
|
-
"#{url}/", '{"some":"data"}', :accept => :json, :content_type => :json
|
21
|
+
"#{url}/", '{"some":"data"}', :accept => :json, :content_type => :json
|
22
22
|
).and_return('')
|
23
23
|
|
24
24
|
json.post("/", :some => "data").should be_nil
|
@@ -26,18 +26,23 @@ module Bamboo
|
|
26
26
|
|
27
27
|
it 'does a POST with query instead of JSON data' do
|
28
28
|
RestClient.should_receive(:post).with(
|
29
|
-
"#{url}/?some=data", '{}', :accept => :json, :content_type => :json
|
29
|
+
"#{url}/?some=data", '{}', :accept => :json, :content_type => :json
|
30
30
|
).and_return('')
|
31
31
|
|
32
32
|
json.post_with_query("/", :some => "data").should be_nil
|
33
33
|
end
|
34
34
|
|
35
35
|
it "returns cookies from GET" do
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
resp = '{}'
|
37
|
+
def resp.cookies; {'Cookie' => 'Value'}; end
|
38
|
+
|
39
39
|
RestClient.should_receive(:get).with("#{url}/", :params => nil).and_return(resp)
|
40
|
-
|
40
|
+
|
41
|
+
cookies = json.get_cookies("/")
|
42
|
+
cookies.should == {'Cookie' => 'Value'}
|
43
|
+
|
44
|
+
RestClient.should_receive(:get).with("#{url}/", :accept => :json, :cookies => cookies).and_return('{}')
|
45
|
+
json.get('/').should be_kind_of(Json::Doc)
|
41
46
|
end
|
42
47
|
|
43
48
|
end
|
@@ -110,21 +110,18 @@ module Bamboo
|
|
110
110
|
end
|
111
111
|
|
112
112
|
it "can be queued" do
|
113
|
-
http.should_receive(:
|
114
|
-
http.should_receive(:post).with("/rest/api/latest/queue/S2RB-REMWIN", {}, {"some" => "cookie"})
|
113
|
+
http.should_receive(:post).with("/rest/api/latest/queue/S2RB-REMWIN", {})
|
115
114
|
plan.queue
|
116
115
|
end
|
117
116
|
|
118
117
|
it "can be queued with parameters" do
|
119
|
-
http.should_receive(:
|
120
|
-
http.should_receive(:post_with_query).with("/rest/api/latest/queue/S2RB-REMWIN", {:customRevision => 'test123'}, {"some" => "cookie"})
|
118
|
+
http.should_receive(:post_with_query).with("/rest/api/latest/queue/S2RB-REMWIN", {:customRevision => 'test123'})
|
121
119
|
plan.queue(:customRevision => 'test123')
|
122
120
|
end
|
123
121
|
|
124
122
|
it 'can fetch results' do
|
125
123
|
document.should_receive(:auto_expand).with(Rest::Result, http)
|
126
|
-
http.should_receive(:
|
127
|
-
http.should_receive(:get).with("/rest/api/latest/result/S2RB-REMWIN", {}, {"some" => "cookie"}).and_return(document)
|
124
|
+
http.should_receive(:get).with("/rest/api/latest/result/S2RB-REMWIN", {}).and_return(document)
|
128
125
|
|
129
126
|
plan.results
|
130
127
|
end
|
@@ -148,8 +145,7 @@ module Bamboo
|
|
148
145
|
|
149
146
|
it 'can fetch plans' do
|
150
147
|
document.should_receive(:data).and_return('plans' => {'plan' => []})
|
151
|
-
http.should_receive(:
|
152
|
-
http.should_receive(:get).with(URI.parse(project.url), {:expand => 'plans'}, {"some" => "cookie"}).and_return(document)
|
148
|
+
http.should_receive(:get).with(URI.parse(project.url), {:expand => 'plans'}).and_return(document)
|
153
149
|
|
154
150
|
project.plans.should == []
|
155
151
|
end
|
@@ -195,6 +191,7 @@ module Bamboo
|
|
195
191
|
context "with details" do
|
196
192
|
before do
|
197
193
|
# TODO: arg/uri expectation?
|
194
|
+
http.stub(:cookies => {"some" => "cookie"})
|
198
195
|
http.should_receive(:get).and_return Http::Json::Doc.new(json_fixture("result_with_changes"))
|
199
196
|
end
|
200
197
|
|
@@ -258,6 +255,9 @@ module Bamboo
|
|
258
255
|
change.comment.should == "Fixed the config thing."
|
259
256
|
end
|
260
257
|
|
258
|
+
it "has a commit url" do
|
259
|
+
change.commit_url.should == "https://crucible/changelog/SVN?cs=1101"
|
260
|
+
end
|
261
261
|
it "has a list of files" do
|
262
262
|
change.files.first.should == {:name => "/trunk/server/src/main/resources/some-config.ini", :revision => "131"}
|
263
263
|
end
|
@@ -273,19 +273,16 @@ module Bamboo
|
|
273
273
|
|
274
274
|
it "has a list of queued builds when there are queued builds" do
|
275
275
|
http.should_receive(:get).and_return Http::Json::Doc.new(json_fixture("queue_with_queued_builds"))
|
276
|
-
http.should_receive(:cookies).and_return("some" => "cookie")
|
277
276
|
queue.queued_builds.first.should be_kind_of(Rest::QueuedBuild)
|
278
277
|
end
|
279
278
|
|
280
279
|
it "has an empty list when there are no queued builds" do
|
281
280
|
http.should_receive(:get).and_return Http::Json::Doc.new(json_fixture("queue_with_no_queued_builds"))
|
282
|
-
http.should_receive(:cookies).and_return("some" => "cookie")
|
283
281
|
queue.queued_builds.should be_empty
|
284
282
|
end
|
285
283
|
|
286
284
|
it "can add plan to queue" do
|
287
|
-
http.should_receive(:
|
288
|
-
http.should_receive(:post).with("/rest/api/latest/queue/DEMOPROJECT-CANARY", {}, {"some" => "cookie"}).and_return Http::Json::Doc.new(json_fixture("queued_build"))
|
285
|
+
http.should_receive(:post).with("/rest/api/latest/queue/DEMOPROJECT-CANARY", {}).and_return Http::Json::Doc.new(json_fixture("queued_build"))
|
289
286
|
queue.add("DEMOPROJECT-CANARY").should be_kind_of(Rest::QueuedBuild)
|
290
287
|
end
|
291
288
|
end
|
data/spec/fixtures/change.json
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bamboo-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jari Bakken
|
@@ -9,104 +9,104 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-04-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - ~>
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '2.5'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - ~>
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '2.5'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: cucumber
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 0.10.0
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 0.10.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: simplecov
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rake
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - ~>
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0.9'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - ~>
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0.9'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rest-client
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: json
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- -
|
95
|
+
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: nokogiri
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- -
|
102
|
+
- - ">="
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- -
|
109
|
+
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
description: Ruby client for Atlassian Bamboo's REST APIs
|
@@ -117,9 +117,9 @@ executables: []
|
|
117
117
|
extensions: []
|
118
118
|
extra_rdoc_files: []
|
119
119
|
files:
|
120
|
-
- .gitignore
|
121
|
-
- .rspec
|
122
|
-
- .travis.yml
|
120
|
+
- ".gitignore"
|
121
|
+
- ".rspec"
|
122
|
+
- ".travis.yml"
|
123
123
|
- Gemfile
|
124
124
|
- LICENSE
|
125
125
|
- README
|
@@ -166,17 +166,17 @@ require_paths:
|
|
166
166
|
- lib
|
167
167
|
required_ruby_version: !ruby/object:Gem::Requirement
|
168
168
|
requirements:
|
169
|
-
- -
|
169
|
+
- - ">="
|
170
170
|
- !ruby/object:Gem::Version
|
171
171
|
version: '0'
|
172
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
173
|
requirements:
|
174
|
-
- -
|
174
|
+
- - ">="
|
175
175
|
- !ruby/object:Gem::Version
|
176
176
|
version: '0'
|
177
177
|
requirements: []
|
178
178
|
rubyforge_project: bamboo-client
|
179
|
-
rubygems_version: 2.0
|
179
|
+
rubygems_version: 2.2.0
|
180
180
|
signing_key:
|
181
181
|
specification_version: 4
|
182
182
|
summary: Ruby client for Atlassian Bamboo's REST APIs
|
@@ -203,3 +203,4 @@ test_files:
|
|
203
203
|
- spec/fixtures/result.json
|
204
204
|
- spec/fixtures/result_with_changes.json
|
205
205
|
- spec/spec_helper.rb
|
206
|
+
has_rdoc:
|