gocd 1.2.5 → 1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 593cc65e4e514367d8e90e8e4f0b94b10aab593e
4
- data.tar.gz: a67d98d2fb10ad7b7737d9ea5af9bf57737a6108
2
+ SHA256:
3
+ metadata.gz: 188ab274b584582cbb0f8541d50165549b845d444f0120f784ce5dc7ef14e62a
4
+ data.tar.gz: '07808c0d30bfa63b5f1c4e395a3c2232bc81933d685d49a3ca003af748b7e0bc'
5
5
  SHA512:
6
- metadata.gz: 07a84959366c3fb9115fbaa62784eb67ab843b096217103c622114756bba3fbdc94b9b5ba310baea7eb0bb1b6775f373852be0a6afc7aea34ecbf343a04208f6
7
- data.tar.gz: 3da89e9e2ceb5a05b235c6b29751286093a2da1cc761f570e6dc6ccf7ddcfc9341f2a2a949594079a84e031254943b485e53109360875355aeed10b0b6abcaef
6
+ metadata.gz: b914ef2f894244676d15d7a12ef96ac4fab8a82ed28928e55fc3e57fa73d33da13b24b464dea34dda594340c23e27f2004e27c1567aac7225d3deaade6d03012
7
+ data.tar.gz: 23a87cb1c0e574afeacf305cc9c6a42abb8c600ab27bc2aa1b1ec09f2aaaab791f2433fd1b992b6bc1c5a5af394583036bbfcbd082e864048835a5c4d03b50d8
@@ -1,8 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.3.1
4
- - ruby
3
+ - 2.3.0
4
+ - 2.4.0
5
+ - 2.5.0
5
6
 
6
- before_install:
7
- - rvm install 2.3.1
8
- - rvm use 2.3.1
7
+ bundler_args: --without development
8
+ before_install: gem install bundler
data/Gemfile CHANGED
@@ -1,9 +1,9 @@
1
- ruby '2.3.1'
1
+ raise 'Ruby should be >= 2.3' unless RUBY_VERSION.to_f >= 2.3
2
2
 
3
3
  source :rubygems
4
4
 
5
5
  gem 'activesupport'
6
6
  gem 'cobravsmongoose', '0.0.2'
7
- gem 'rspec', '~> 3.0'
7
+ gem 'rspec'
8
8
  gem 'rake'
9
9
  gem 'rest-client'
@@ -1,48 +1,49 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activesupport (5.0.0.1)
4
+ activesupport (5.2.1)
5
5
  concurrent-ruby (~> 1.0, >= 1.0.2)
6
- i18n (~> 0.7)
6
+ i18n (>= 0.7, < 2)
7
7
  minitest (~> 5.1)
8
8
  tzinfo (~> 1.1)
9
9
  cobravsmongoose (0.0.2)
10
- concurrent-ruby (1.0.2)
11
- diff-lcs (1.2.5)
12
- domain_name (0.5.20161021)
10
+ concurrent-ruby (1.0.5)
11
+ diff-lcs (1.3)
12
+ domain_name (0.5.20180417)
13
13
  unf (>= 0.0.5, < 1.0.0)
14
14
  http-cookie (1.0.3)
15
15
  domain_name (~> 0.5)
16
- i18n (0.7.0)
17
- mime-types (3.1)
16
+ i18n (1.1.1)
17
+ concurrent-ruby (~> 1.0)
18
+ mime-types (3.2.2)
18
19
  mime-types-data (~> 3.2015)
19
- mime-types-data (3.2016.0521)
20
- minitest (5.9.0)
20
+ mime-types-data (3.2018.0812)
21
+ minitest (5.11.3)
21
22
  netrc (0.11.0)
22
- rake (11.2.2)
23
- rest-client (2.0.0)
23
+ rake (12.3.1)
24
+ rest-client (2.0.2)
24
25
  http-cookie (>= 1.0.2, < 2.0)
25
26
  mime-types (>= 1.16, < 4.0)
26
27
  netrc (~> 0.8)
27
- rspec (3.5.0)
28
- rspec-core (~> 3.5.0)
29
- rspec-expectations (~> 3.5.0)
30
- rspec-mocks (~> 3.5.0)
31
- rspec-core (3.5.4)
32
- rspec-support (~> 3.5.0)
33
- rspec-expectations (3.5.0)
28
+ rspec (3.8.0)
29
+ rspec-core (~> 3.8.0)
30
+ rspec-expectations (~> 3.8.0)
31
+ rspec-mocks (~> 3.8.0)
32
+ rspec-core (3.8.0)
33
+ rspec-support (~> 3.8.0)
34
+ rspec-expectations (3.8.2)
34
35
  diff-lcs (>= 1.2.0, < 2.0)
35
- rspec-support (~> 3.5.0)
36
- rspec-mocks (3.5.0)
36
+ rspec-support (~> 3.8.0)
37
+ rspec-mocks (3.8.0)
37
38
  diff-lcs (>= 1.2.0, < 2.0)
38
- rspec-support (~> 3.5.0)
39
- rspec-support (3.5.0)
40
- thread_safe (0.3.5)
41
- tzinfo (1.2.2)
39
+ rspec-support (~> 3.8.0)
40
+ rspec-support (3.8.0)
41
+ thread_safe (0.3.6)
42
+ tzinfo (1.2.5)
42
43
  thread_safe (~> 0.1)
43
44
  unf (0.1.4)
44
45
  unf_ext
45
- unf_ext (0.0.7.2)
46
+ unf_ext (0.0.7.5)
46
47
 
47
48
  PLATFORMS
48
49
  ruby
@@ -52,10 +53,7 @@ DEPENDENCIES
52
53
  cobravsmongoose (= 0.0.2)
53
54
  rake
54
55
  rest-client
55
- rspec (~> 3.0)
56
-
57
- RUBY VERSION
58
- ruby 2.3.1p112
56
+ rspec
59
57
 
60
58
  BUNDLED WITH
61
- 1.13.6
59
+ 1.16.1
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  # gocd
2
2
 
3
+ [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/ajitsing/gocd/graphs/commit-activity)
3
4
  [![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=102)](https://opensource.org/licenses/Apache-2.0)
4
5
  [![Gem Version](https://badge.fury.io/rb/gocd.svg)](https://badge.fury.io/rb/gocd)
6
+ [![HitCount](http://hits.dwyl.io/ajitsing/gocd.svg)](http://hits.dwyl.io/ajitsing/gocd)
5
7
  ![Gem Downloads](http://ruby-gem-downloads-badge.herokuapp.com/gocd?type=total)
6
8
  [![Build Status](https://travis-ci.org/ajitsing/gocd.svg?branch=master)](https://travis-ci.org/ajitsing/gocd)
7
9
  [![Twitter Follow](https://img.shields.io/twitter/follow/Ajit5ingh.svg?style=social)](https://twitter.com/Ajit5ingh)
@@ -1,3 +1,5 @@
1
+ require 'shellwords'
2
+
1
3
  module GOCD
2
4
  class Credentials
3
5
  attr_reader :username, :password
@@ -8,7 +10,7 @@ module GOCD
8
10
  end
9
11
 
10
12
  def curl_credentials
11
- "#{@username}:#{@password}"
13
+ Shellwords.escape("#{@username}:#{@password}")
12
14
  end
13
15
  end
14
16
 
@@ -3,7 +3,7 @@ require 'active_support/core_ext/hash/conversions'
3
3
  module GOCD
4
4
  class PipelineRepository
5
5
  def self.pipelines
6
- @pipelines ||= fetch_data
6
+ fetch_data
7
7
  end
8
8
 
9
9
  private
@@ -1,62 +1,76 @@
1
1
  module GOCD
2
2
  class AllPipelines
3
3
  class << self
4
+ DEFAULT_OPTS = {cache: false}
5
+
4
6
  def information_available?
5
7
  !pipelines.nil?
6
8
  end
7
9
 
8
- def red_pipelines
9
- pipelines.select { |pipeline| pipeline.red? }
10
+ def red_pipelines(opts = {})
11
+ pipelines(opts).select { |pipeline| pipeline.red? }
10
12
  end
11
13
 
12
- def green_pipelines
13
- pipelines.select { |pipeline| pipeline.green? }
14
+ def green_pipelines(opts = {})
15
+ pipelines(opts).select { |pipeline| pipeline.green? }
14
16
  end
15
17
 
16
- def status
17
- pipelines.map { |pipeline| pipeline.status }
18
+ def status(opts = {})
19
+ pipelines(opts).map { |pipeline| pipeline.status }
18
20
  end
19
21
 
20
- def any_red?
21
- !red_pipelines.empty?
22
+ def any_red?(opts = {})
23
+ !red_pipelines(opts).empty?
22
24
  end
23
25
 
24
- def pipelines
25
- GOCD::PipelineRepository.pipelines
26
+ def pipelines(opts = {})
27
+ merged_opts = DEFAULT_OPTS.merge(opts)
28
+ if merged_opts[:cache]
29
+ @pipelines ||= GOCD::PipelineRepository.pipelines
30
+ else
31
+ @pipelines = GOCD::PipelineRepository.pipelines
32
+ end
26
33
  end
27
34
  end
28
35
  end
29
36
 
30
37
  class PipelineGroup
31
- def initialize(pipelines)
38
+ def initialize(pipelines, opts = {})
32
39
  @pipelines = pipelines
40
+ @default_opts = {cache: false}.merge(opts)
33
41
  end
34
42
 
35
43
  def information_available?
36
44
  !pipelines.nil?
37
45
  end
38
46
 
39
- def red_pipelines
40
- pipelines.select { |pipeline| pipeline.red? }
47
+ def red_pipelines(opts = {})
48
+ pipelines(opts).select { |pipeline| pipeline.red? }
41
49
  end
42
50
 
43
- def green_pipelines
44
- pipelines.select { |pipeline| pipeline.green? }
51
+ def green_pipelines(opts = {})
52
+ pipelines(opts).select { |pipeline| pipeline.green? }
45
53
  end
46
54
 
47
- def status
48
- pipelines.map { |pipeline| pipeline.status }
55
+ def status(opts = {})
56
+ pipelines(opts).map { |pipeline| pipeline.status }
49
57
  end
50
58
 
51
- def any_red?
52
- !red_pipelines.empty?
59
+ def any_red?(opts = {})
60
+ !red_pipelines(opts).empty?
53
61
  end
54
62
 
55
- def pipelines
56
- all_pipelines = GOCD::PipelineRepository.pipelines
63
+ def pipelines(opts = {})
64
+ merged_opts = @default_opts.merge(opts)
65
+ if merged_opts[:cache]
66
+ @all_pipelines ||= GOCD::PipelineRepository.pipelines
67
+ else
68
+ @all_pipelines = GOCD::PipelineRepository.pipelines
69
+ end
70
+
57
71
  missing_pipelines = []
58
72
  @pipelines.select do |pipeline|
59
- if all_pipelines.find { |p| p.name == pipeline }.nil?
73
+ if @all_pipelines.find { |p| p.name == pipeline }.nil?
60
74
  missing_pipelines << pipeline
61
75
  end
62
76
  end
@@ -67,7 +81,7 @@ module GOCD
67
81
  end
68
82
 
69
83
  @pipelines.map do |pipeline|
70
- all_pipelines.find { |p| p.name == pipeline }
84
+ @all_pipelines.find { |p| p.name == pipeline }
71
85
  end
72
86
  end
73
87
  end
@@ -1,3 +1,3 @@
1
1
  module GOCD
2
- VERSION = '1.2.5'
2
+ VERSION = '1.3'
3
3
  end
@@ -6,4 +6,9 @@ RSpec.describe GOCD::Credentials, 'credentials' do
6
6
  credentials = GOCD::Credentials.new 'admin', 'password'
7
7
  expect(credentials.curl_credentials).to eq 'admin:password'
8
8
  end
9
- end
9
+
10
+ it '#curl_credentials should be escaped for the command line' do
11
+ credentials = GOCD::Credentials.new('admin', '"cpF@<`89Q.[cA]C%hj>M<s3\'sl')
12
+ expect(credentials.curl_credentials).to eq('admin:\"cpF@\<\`89Q.\[cA\]C\%hj\>M\<s3\\\'sl')
13
+ end
14
+ end
@@ -43,6 +43,18 @@ RSpec.describe GOCD::AllPipelines, 'pipelines' do
43
43
  mock_pipeline_repository_with_green_pipelines
44
44
  expect(GOCD::AllPipelines.any_red?).to be_falsy
45
45
  end
46
+
47
+ context 'cache' do
48
+ it 'should not fetch latest pipelines when cache is enabled' do
49
+ mock_pipeline_repository
50
+
51
+ GOCD::AllPipelines.pipelines(cache: false)
52
+ GOCD::AllPipelines.any_red?(cache: true)
53
+ GOCD::AllPipelines.red_pipelines(cache: true)
54
+ GOCD::AllPipelines.green_pipelines(cache: true)
55
+ GOCD::AllPipelines.status(cache: true)
56
+ end
57
+ end
46
58
  end
47
59
 
48
60
 
@@ -83,5 +95,43 @@ RSpec.describe GOCD::AllPipelines, 'pipelines' do
83
95
  pipeline_group = GOCD::PipelineGroup.new %w(pipeline1 pipeline3)
84
96
  expect{pipeline_group.any_red?}.to raise_error(PipelinesNotFoundException).with_message("Could not find [\"pipeline3\"]")
85
97
  end
98
+
99
+ context 'cache' do
100
+ it 'should not fetch latest pipelines when cache is enabled' do
101
+ pipeline = instance_double("Pipeline", :red? => false, :green? => true, :status => 'passing', :name => 'pipeline1')
102
+ expect(GOCD::PipelineRepository).to receive(:pipelines).once.and_return([pipeline])
103
+
104
+ pipeline_group = GOCD::PipelineGroup.new %w(pipeline1)
105
+
106
+ pipeline_group.pipelines(cache: true)
107
+ pipeline_group.any_red?(cache: true)
108
+ pipeline_group.red_pipelines(cache: true)
109
+ pipeline_group.green_pipelines(cache: true)
110
+ pipeline_group.status(cache: true)
111
+ end
112
+
113
+ it 'should not fetch latest pipelines when cache is enabled during initialization' do
114
+ pipeline = instance_double("Pipeline", :red? => false, :green? => true, :status => 'passing', :name => 'pipeline1')
115
+ expect(GOCD::PipelineRepository).to receive(:pipelines).once.and_return([pipeline])
116
+
117
+ pipeline_group = GOCD::PipelineGroup.new %w(pipeline1), cache: true
118
+
119
+ pipeline_group.pipelines
120
+ pipeline_group.any_red?
121
+ pipeline_group.red_pipelines
122
+ pipeline_group.green_pipelines
123
+ pipeline_group.status
124
+ end
125
+
126
+ it 'should fetch latest pipelines when cache is disabled during api call' do
127
+ pipeline = instance_double("Pipeline", :red? => false, :green? => true, :status => 'passing', :name => 'pipeline1')
128
+ expect(GOCD::PipelineRepository).to receive(:pipelines).twice.and_return([pipeline])
129
+
130
+ pipeline_group = GOCD::PipelineGroup.new %w(pipeline1), cache: true
131
+
132
+ pipeline_group.pipelines
133
+ pipeline_group.any_red?(cache: false)
134
+ end
135
+ end
86
136
  end
87
137
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gocd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ version: '1.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ajit Singh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-13 00:00:00.000000000 Z
11
+ date: 2018-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -102,7 +102,6 @@ extra_rdoc_files: []
102
102
  files:
103
103
  - ".gitignore"
104
104
  - ".rspec"
105
- - ".ruby-version"
106
105
  - ".travis.yml"
107
106
  - Gemfile
108
107
  - Gemfile.lock
@@ -166,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
165
  version: '0'
167
166
  requirements: []
168
167
  rubyforge_project:
169
- rubygems_version: 2.6.13
168
+ rubygems_version: 2.7.6
170
169
  signing_key:
171
170
  specification_version: 4
172
171
  summary: Get info from gocd using its apis
@@ -1 +0,0 @@
1
- 2.3.1