bamboo-client 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|