build_eval 0.0.11 → 0.0.12

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTdkM2EyNDlhMjZkNzZmNTNhOTg0YmMxNzVkZmEzMjY1YzQzZmU4NA==
4
+ NDBkZjU0NzI5ODI4NDE2YTA5ZTJjZWZjNWMzZGRlMzM0MzM0YTYzYQ==
5
5
  data.tar.gz: !binary |-
6
- M2M2NmIwYjQ1NjNkYmE4YTZjZDYyYTBkN2I2NzIzNjNhNTU5ZDE4Ng==
6
+ MjMxMzI4MGVlMjVjYTQzZTIzN2YyNWY2MDI5Nzg4MDg5MDAzOTc4YQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NWVhYWUzOTNhMmEyY2Y2ZjNkNWVkYmE3ZGQ4Nzk0ZTVlZTM5MjUwN2UyNmMw
10
- ZmY4YjY1MjJkNjA5ZjYxODUyZjE3NzJmYzk0Y2VmZTExYTg4MDFhOWNjNjRh
11
- ZmY3NmVjY2UyNWIwMmVkMjk1M2Y0YzU2NTc0YjA2ZjQ1NDVhOWQ=
9
+ ODNmMjliMWM2YzMwZGY1OWIzZjRkNmYxMWI4MzJmMjM3N2UyYmVhMWZlZGFh
10
+ ODc4ZTdhOWQzMjhkZGYwMGViOWFlMzBiZDJiNjQ3MzdmZjEzYzhhZDJiY2Ji
11
+ YjM5NjAwYjYzOGQyMWRlZDliNjc5M2JlNmYwYzQ3YmEwODY5MzA=
12
12
  data.tar.gz: !binary |-
13
- ZTkzNzE4M2UxN2U0ODJmZmQ1MTFlNmI4YWJjYjgzYmRlMGQ1Y2Q3ZTBhNWVk
14
- ODY3ZjJhODI2Y2U5OGI0OTIyZjI3OWNhM2Y5NmM3OGZhNzdkMTQzZTk4YTcy
15
- ZmIwNWM4YzExYWIxZTVlMDQzZDY1MTA4MzU5NWYyNmQ4YzcxOTg=
13
+ NGJlYTg2ZjAxOTMxMjExM2I4OTRkM2UxMGZlYjI4YmQ4ODIwOThhZWE1MGVm
14
+ ZWZhZjI3MmUyNzc5M2JmNjk1MmEyZGU2YjQxZjBhODkwODE4ODQ4NTFlZWJk
15
+ ZTdiNmE5MGNmMTdjM2U4MzMzMjgzZWI2MTA0YTJlYjBkNjFiNmM=
@@ -8,10 +8,10 @@ module BuildEval
8
8
  end
9
9
 
10
10
  def build_result(name)
11
- build_path = "#{@username}/#{name}"
11
+ repository_path = "#{@username}/#{name}"
12
12
  BuildEval::Result::BuildResult.create(
13
- build_name: build_path,
14
- status_name: BuildEval::Travis.last_build_status(build_path: build_path)
13
+ build_name: repository_path,
14
+ status_name: BuildEval::Travis.last_build_status(repository_path: repository_path)
15
15
  )
16
16
  end
17
17
 
@@ -9,10 +9,11 @@ module BuildEval
9
9
  end
10
10
 
11
11
  def build_result(name)
12
- build_path = "#{@username}/#{name}"
12
+ repository_path = "#{@username}/#{name}"
13
13
  BuildEval::Result::BuildResult.create(
14
- build_name: build_path,
15
- status_name: BuildEval::Travis.last_build_status(github_token: @github_token, build_path: build_path)
14
+ build_name: repository_path,
15
+ status_name: BuildEval::Travis.last_build_status(github_token: @github_token,
16
+ repository_path: repository_path)
16
17
  )
17
18
  end
18
19
 
@@ -5,7 +5,7 @@ module BuildEval
5
5
  class << self
6
6
 
7
7
  def last_build_status(args)
8
- repository = travis_module_for(args)::Repository.find(args[:build_path])
8
+ repository = create_session(args).repo(args[:repository_path])
9
9
  repository.recent_builds.find(&:finished?).passed? ? "Success" : "Failure"
10
10
  rescue ::Travis::Client::Error
11
11
  "Unknown"
@@ -13,13 +13,11 @@ module BuildEval
13
13
 
14
14
  private
15
15
 
16
- def travis_module_for(args)
17
- travis_module = ::Travis
18
- if args[:github_token]
19
- travis_module = ::Travis::Pro
20
- travis_module.github_auth(args[:github_token])
16
+ def create_session(args)
17
+ travis_uri = args[:github_token] ? ::Travis::Client::PRO_URI : ::Travis::Client::ORG_URI
18
+ ::Travis::Client::Session.new(uri: travis_uri, ssl: {}).tap do |session|
19
+ session.github_auth(args[:github_token]) if args[:github_token]
21
20
  end
22
- travis_module
23
21
  end
24
22
 
25
23
  end
@@ -1,3 +1,3 @@
1
1
  module BuildEval
2
- VERSION = "0.0.11".freeze
2
+ VERSION = "0.0.12".freeze
3
3
  end
data/lib/build_eval.rb CHANGED
@@ -2,8 +2,7 @@ require 'nokogiri'
2
2
  require 'uri'
3
3
  require 'net/http'
4
4
  require 'net/https'
5
- require 'travis'
6
- require 'travis/tools/github'
5
+ require 'travis/client/session'
7
6
 
8
7
  require_relative 'build_eval/error'
9
8
  require_relative 'build_eval/http'
@@ -1,16 +1,10 @@
1
1
  describe BuildEval::Server::TravisPro do
2
- include_context "stubbed Travis API interactions"
3
2
 
4
3
  let(:username) { "some_username" }
5
4
  let(:github_token) { "ABCD1234" }
6
- let(:constructor_args) do
7
- {
8
- username: username,
9
- github_token: github_token
10
- }
11
- end
5
+ let(:args) { { username: username, github_token: github_token } }
12
6
 
13
- let(:travis_pro_server) { described_class.new(constructor_args) }
7
+ let(:travis_pro_server) { described_class.new(args) }
14
8
 
15
9
  describe "#build_result" do
16
10
 
@@ -35,7 +29,7 @@ describe BuildEval::Server::TravisPro do
35
29
 
36
30
  it "retrieves the last build status from Travis for the users build" do
37
31
  expect(BuildEval::Travis).to(
38
- receive(:last_build_status).with(hash_including(build_path: "#{username}/#{build_name}"))
32
+ receive(:last_build_status).with(hash_including(repository_path: "#{username}/#{build_name}"))
39
33
  )
40
34
 
41
35
  subject
@@ -1,5 +1,4 @@
1
1
  describe BuildEval::Server::Travis do
2
- include_context "stubbed Travis API interactions"
3
2
 
4
3
  let(:username) { "some_username" }
5
4
  let(:constructor_args) { { username: username } }
@@ -21,7 +20,7 @@ describe BuildEval::Server::Travis do
21
20
 
22
21
  it "retrieves the last build status from Travis for the users build" do
23
22
  expect(BuildEval::Travis).to(
24
- receive(:last_build_status).with(hash_including(build_path: "#{username}/#{build_name}"))
23
+ receive(:last_build_status).with(hash_including(repository_path: "#{username}/#{build_name}"))
25
24
  )
26
25
 
27
26
  subject
@@ -1,10 +1,9 @@
1
1
  describe BuildEval::Travis do
2
- include_context "stubbed Travis API interactions"
3
2
 
4
3
  describe "::last_build_status" do
5
4
 
6
- let(:build_path) { "some/build_path" }
7
- let(:optional_args) { {} }
5
+ let(:repository_path) { "some/repository_path" }
6
+ let(:optional_args) { {} }
8
7
 
9
8
  let(:recent_builds) do
10
9
  (1..3).map { |i| instance_double(::Travis::Client::Build, finished?: i > 1) }
@@ -14,11 +13,12 @@ describe BuildEval::Travis do
14
13
  let(:travis_repository) do
15
14
  instance_double(::Travis::Client::Repository, recent_builds: recent_builds)
16
15
  end
16
+ let(:travis_session) { instance_double(::Travis::Client::Session, repo: travis_repository) }
17
17
 
18
- subject { described_class.last_build_status({ build_path: build_path }.merge(optional_args)) }
18
+ subject { described_class.last_build_status({ repository_path: repository_path }.merge(optional_args)) }
19
19
 
20
20
  before(:example) do
21
- allow(::Travis::Repository).to receive(:find).and_return(travis_repository)
21
+ allow(::Travis::Client::Session).to receive(:new).and_return(travis_session)
22
22
  allow(last_finished_build).to receive(:passed?).and_return(last_finished_build_passed_flag)
23
23
  end
24
24
 
@@ -27,22 +27,24 @@ describe BuildEval::Travis do
27
27
  let(:github_token) { "SOMEGITHUBAUTHTOKEN" }
28
28
  let(:optional_args) { { github_token: github_token } }
29
29
 
30
- it "logs-in to the Travis Pro API with the provided GitHub token" do
31
- expect(::Travis::Pro).to receive(:github_auth).with(github_token)
30
+ before(:example) { allow(travis_session).to receive(:github_auth) }
31
+
32
+ it "creates a Travis session connecting to the Travis Pro site" do
33
+ expect(::Travis::Client::Session).to receive(:new).with(hash_including(uri: ::Travis::Client::PRO_URI))
32
34
 
33
35
  subject
34
36
  end
35
37
 
36
- it "uses the Travis Pro modules Repository" do
37
- expect(::Travis::Pro::Repository).to receive(:find)
38
+ it "logs-in using the provided GitHub token via the session" do
39
+ expect(travis_session).to receive(:github_auth).with(github_token)
38
40
 
39
41
  subject
40
42
  end
41
43
 
42
- context "when a Travis Client error occurs on log-in" do
44
+ context "when an error occurs on log-in" do
43
45
 
44
46
  before(:example) do
45
- allow(::Travis::Pro).to receive(:github_auth).and_raise(::Travis::Client::Error.new("Forced error"))
47
+ allow(travis_session).to receive(:github_auth).and_raise(::Travis::Client::Error.new("Forced error"))
46
48
  end
47
49
 
48
50
  it "returns 'Unknown'" do
@@ -57,16 +59,28 @@ describe BuildEval::Travis do
57
59
 
58
60
  let(:optional_args) { {} }
59
61
 
60
- it "uses the Travis modules Repository" do
61
- expect(::Travis::Repository).to receive(:find)
62
+ it "creates a Travis session connecting to the Travis Org site" do
63
+ expect(::Travis::Client::Session).to receive(:new).with(hash_including(uri: ::Travis::Client::ORG_URI))
64
+
65
+ subject
66
+ end
67
+
68
+ it "does not log-in" do
69
+ expect(travis_session).to_not receive(:github_auth)
62
70
 
63
71
  subject
64
72
  end
65
73
 
66
74
  end
67
75
 
68
- it "retrieves the repository for the provided build path" do
69
- expect(::Travis::Repository).to receive(:find).with(build_path)
76
+ it "creates a Travis session with empty SSL settings to avoid using local security certificates" do
77
+ expect(::Travis::Client::Session).to receive(:new).with(hash_including(ssl: {}))
78
+
79
+ subject
80
+ end
81
+
82
+ it "retrieves the Travis repository for the provided repository path" do
83
+ expect(travis_session).to receive(:repo).with(repository_path)
70
84
 
71
85
  subject
72
86
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: build_eval
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Ueckerman
@@ -184,7 +184,6 @@ files:
184
184
  - ./spec/lib/build_eval/server/team_city_spec.rb
185
185
  - ./spec/lib/build_eval/server/travis_pro_spec.rb
186
186
  - ./spec/lib/build_eval/server/travis_spec.rb
187
- - ./spec/lib/build_eval/travis_shared_context.rb
188
187
  - ./spec/lib/build_eval/travis_spec.rb
189
188
  - ./spec/lib/build_eval_smoke_spec.rb
190
189
  - ./spec/lib/build_eval_spec.rb
@@ -234,7 +233,6 @@ test_files:
234
233
  - ./spec/lib/build_eval/server/team_city_spec.rb
235
234
  - ./spec/lib/build_eval/server/travis_pro_spec.rb
236
235
  - ./spec/lib/build_eval/server/travis_spec.rb
237
- - ./spec/lib/build_eval/travis_shared_context.rb
238
236
  - ./spec/lib/build_eval/travis_spec.rb
239
237
  - ./spec/lib/build_eval_smoke_spec.rb
240
238
  - ./spec/lib/build_eval_spec.rb
@@ -1,50 +0,0 @@
1
- shared_context "stubbed Travis API interactions" do
2
-
3
- module StubTravisBuild
4
-
5
- def finished?
6
- # Intentionally blank
7
- end
8
-
9
- def passed?
10
- # Intentionally blank
11
- end
12
-
13
- end
14
-
15
- module StubTravisRepository
16
-
17
- def recent_builds
18
- # Intentionally blank
19
- end
20
-
21
- end
22
-
23
- module StubTravisPro
24
-
25
- Repository = StubTravisRepository
26
-
27
- def self.github_auth(auth_token)
28
- # Intentionally blank
29
- end
30
-
31
- end
32
-
33
- module StubTravis
34
-
35
- Repository = StubTravisRepository
36
- Pro = StubTravisPro
37
-
38
- module Client
39
- Repository = StubTravisRepository
40
- Build = StubTravisBuild
41
- Error = ::StandardError
42
- end
43
-
44
- end
45
-
46
- before(:context) do
47
- ::Travis = StubTravis
48
- end
49
-
50
- end