lita-jenkins 0.0.4 → 0.0.5
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/lib/lita/handlers/jenkins.rb +4 -3
- data/lita-jenkins.gemspec +1 -1
- data/spec/lita/handlers/jenkins_spec.rb +43 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de14bb62c3dfbc3a6b48a6adb72230dd0f63290f
|
4
|
+
data.tar.gz: 292efa6a989179b0e60e90f4232d70d33cf53965
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74010566d3e08326c7618df2bbb3faa371e0bf538c6588bbedf24b20a20511731c3e8fc9bfc9729425f1790707516ea29ac2770fbaaf29e0a560ea11847f27b6
|
7
|
+
data.tar.gz: d3a794d404c972effb2735b7f1067adcb02cc8a5a64b64e6fdd743e6d56c9e7ab71fbd7e57e9a14b6abc9c3a8a790652eb24b3a9790910b262e812d9120b5daa
|
@@ -7,6 +7,7 @@ module Lita
|
|
7
7
|
|
8
8
|
config :auth
|
9
9
|
config :url
|
10
|
+
config :http_options, required: false, type: Hash, default: {}
|
10
11
|
|
11
12
|
route /j(?:enkins)? list( (.+))?/i, :jenkins_list, command: true, help: {
|
12
13
|
'jenkins list <filter>' => 'lists Jenkins jobs'
|
@@ -31,7 +32,7 @@ module Lita
|
|
31
32
|
named_job_url = job_url(job['name'])
|
32
33
|
path = job_build_url(named_job_url, params)
|
33
34
|
|
34
|
-
http_resp = http.post(path) do |req|
|
35
|
+
http_resp = http(config.http_options).post(path) do |req|
|
35
36
|
req.headers = headers
|
36
37
|
req.params = params if params.is_a? Hash
|
37
38
|
end
|
@@ -65,12 +66,12 @@ module Lita
|
|
65
66
|
|
66
67
|
def headers
|
67
68
|
{}.tap do |headers|
|
68
|
-
headers["Authorization"] = "Basic #{Base64.
|
69
|
+
headers["Authorization"] = "Basic #{Base64.strict_encode64(config.auth).chomp}" if config.auth
|
69
70
|
end
|
70
71
|
end
|
71
72
|
|
72
73
|
def jobs
|
73
|
-
api_response = http.get(api_url) do |req|
|
74
|
+
api_response = http(config.http_options).get(api_url) do |req|
|
74
75
|
req.headers = headers
|
75
76
|
end
|
76
77
|
JSON.parse(api_response.body)["jobs"]
|
data/lita-jenkins.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-jenkins"
|
3
|
-
spec.version = "0.0.
|
3
|
+
spec.version = "0.0.5"
|
4
4
|
spec.authors = ["Daniel Yoon", "Mike Fiedler"]
|
5
5
|
spec.email = ["daniel.kiros@gmail.com", "miketheman@gmail.com"]
|
6
6
|
spec.description = %q{Interact with Jenkins CI server.}
|
@@ -43,6 +43,49 @@ describe Lita::Handlers::Jenkins, lita_handler: true do
|
|
43
43
|
return_value = described_class.new(robot).headers
|
44
44
|
expect(return_value.inspect).to eq("{\"Authorization\"=>\"Basic Zm9vOmJhcg==\"}")
|
45
45
|
end
|
46
|
+
|
47
|
+
it 'encodes auth headers without line breaks' do
|
48
|
+
registry.config.handlers.jenkins.auth = "foo:thisisalongtokenthatmighthavelinebreakswithoutstrict"
|
49
|
+
return_value = described_class.new(robot).headers
|
50
|
+
expect(return_value.inspect).to eq("{\"Authorization\"=>\"Basic Zm9vOnRoaXNpc2Fsb25ndG9rZW50aGF0bWlnaHRoYXZlbGluZWJyZWFrc3dpdGhvdXRzdHJpY3Q=\"}")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe '#http_options' do
|
55
|
+
it 'handles no options specified by default' do
|
56
|
+
http = described_class.new(robot).http
|
57
|
+
expect(http.options.empty?).to be true
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'sets default http options on jobs request' do
|
61
|
+
handler = described_class.new(robot)
|
62
|
+
expect(handler).to receive(:http).with({}).and_call_original
|
63
|
+
allow(response).to receive(:body).and_return(api_response)
|
64
|
+
handler.jobs
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'sets default http options for build' do
|
68
|
+
expect_any_instance_of(Lita::Handlers::Jenkins).to receive(:http).twice.with({}).and_call_original
|
69
|
+
allow(response).to receive(:body).and_return(api_response)
|
70
|
+
allow(response).to receive(:status).and_return(201)
|
71
|
+
send_command('jenkins b deploy')
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'sets configured http options on jobs request' do
|
75
|
+
registry.config.handlers.jenkins.http_options = { url: 'http://test.com' }
|
76
|
+
handler = described_class.new(robot)
|
77
|
+
expect(handler).to receive(:http).with({ url: 'http://test.com' }).and_call_original
|
78
|
+
allow(response).to receive(:body).and_return(api_response)
|
79
|
+
handler.jobs
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'sets configured http options for build' do
|
83
|
+
registry.config.handlers.jenkins.http_options = { url: 'http://test.com' }
|
84
|
+
expect_any_instance_of(Lita::Handlers::Jenkins).to receive(:http).twice.with({ url: 'http://test.com' }).and_call_original
|
85
|
+
allow(response).to receive(:body).and_return(api_response)
|
86
|
+
allow(response).to receive(:status).and_return(201)
|
87
|
+
send_command('jenkins b deploy')
|
88
|
+
end
|
46
89
|
end
|
47
90
|
|
48
91
|
describe '#jenkins list' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-jenkins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Yoon
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-10-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: lita
|
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
137
|
version: '0'
|
138
138
|
requirements: []
|
139
139
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.
|
140
|
+
rubygems_version: 2.5.1
|
141
141
|
signing_key:
|
142
142
|
specification_version: 4
|
143
143
|
summary: Interact with Jenkins CI server.
|