release_manager 0.8.2 → 0.9.3

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,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8c5f092e245aea42b984105f438d28a7c08ee105
4
- data.tar.gz: 2f33d50455fdf64fb2ad9f6292ab1d438c5791a7
2
+ SHA256:
3
+ metadata.gz: 4711f3474a2ef018068f10268dd3a89bab7da246713b800a0912901fc9b0a70c
4
+ data.tar.gz: 1f6ef1c783a37a09fa646f855fee88e36e058e9eef43f35101f68ee412606902
5
5
  SHA512:
6
- metadata.gz: f1652bfddb2ab6671ad58216507116eab5beda0622bb977d01ce9102e09c9d047d0d5af0002a84d8b5d5e7c26ac849195263be49d384eb469763e40783606329
7
- data.tar.gz: 5de1534bd90dcd3a4c1f133bacb114dc376a604f2888702391d6332126576f456f93fafa1d095c4d5961bc492b99b41dda599457915effa9f4721c360d77640d
6
+ metadata.gz: cc5ea77eb51f6753db50284ae1419f822908c5f1d7a02d2a0306211c50af2c33105b9d7d80b51d084e88a5f23ff98f212a156522e0fbbc60307605c92f6245f7
7
+ data.tar.gz: 5819cb50e9bd8c0c49d8b180e07577a9a1ca4b3fc7c614089e69ce57454ead371e822cf88b6d5c18fd68e86536157017179d33dd70e141a38bb9583b4101dfe5
@@ -1,6 +1,18 @@
1
1
  # Release Manager
2
+ ## 0.9.3
3
+ * Fixes gh-17 - Hiera 5 environment layer support
2
4
 
3
- ## Unreleased
5
+ ## 0.9.2
6
+ * Removed slice_when in order to support older rubies.
7
+
8
+ ## 0.9.1
9
+ * Adds ability to publish release notes when tagging remotely
10
+
11
+ ## 0.9.0
12
+ * Adds ability to push a single tag
13
+
14
+ ## 0.8.3
15
+ * Fixes issue when git urls with hypens not being found
4
16
 
5
17
  ## 0.8.2
6
18
  * Fixes #7 - sandbox-create hangs when ssh does not have host id key
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source ENV['GEM_SOURCE'] ||'https://rubygems.org'
1
+ # frozen_string_literal: true
2
+
3
+ source ENV['GEM_SOURCE'] || 'https://rubygems.org'
2
4
  # Specify your gem's dependencies in release_manager.gemspec
3
5
  gem 'gitlab'
4
6
  gem 'rugged', '~> 0.26'
@@ -9,7 +11,9 @@ group :test do
9
11
  gem 'rubocop'
10
12
  gem 'rake'
11
13
  gem 'rspec'
12
- gem 'bundler'
14
+ gem 'bundler', '~> 2.1'
13
15
  # when docker compiles this it cannot find release manager until we mount the volume
14
- gem 'release_manager', path: '.' if File.exists?(File.join('release_manager.gemspec'))
16
+ if File.exist?(File.join('release_manager.gemspec'))
17
+ gem 'release_manager', path: '.'
18
+ end
15
19
  end
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- release_manager (0.8.2)
4
+ release_manager (0.9.3)
5
5
  gitlab (~> 4.2.0)
6
6
  highline (~> 1.7)
7
7
  rugged (~> 0.26)
@@ -9,58 +9,66 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- ast (2.3.0)
13
- coderay (1.1.2)
12
+ ast (2.4.1)
13
+ coderay (1.1.3)
14
14
  diff-lcs (1.3)
15
15
  gitlab (4.2.0)
16
16
  httparty
17
17
  terminal-table
18
- highline (1.7.8)
19
- httparty (0.15.6)
18
+ highline (1.7.10)
19
+ httparty (0.18.1)
20
+ mime-types (~> 3.0)
20
21
  multi_xml (>= 0.5.2)
21
- method_source (0.9.0)
22
+ method_source (1.0.0)
23
+ mime-types (3.3.1)
24
+ mime-types-data (~> 3.2015)
25
+ mime-types-data (3.2020.0512)
22
26
  multi_xml (0.6.0)
23
- parallel (1.12.0)
24
- parser (2.4.0.2)
25
- ast (~> 2.3)
26
- powerpack (0.1.1)
27
- pry (0.11.1)
28
- coderay (~> 1.1.0)
29
- method_source (~> 0.9.0)
30
- rainbow (2.2.2)
31
- rake
32
- rake (12.3.0)
33
- rspec (3.6.0)
34
- rspec-core (~> 3.6.0)
35
- rspec-expectations (~> 3.6.0)
36
- rspec-mocks (~> 3.6.0)
37
- rspec-core (3.6.0)
38
- rspec-support (~> 3.6.0)
39
- rspec-expectations (3.6.0)
27
+ parallel (1.19.1)
28
+ parser (2.7.1.3)
29
+ ast (~> 2.4.0)
30
+ pry (0.13.1)
31
+ coderay (~> 1.1)
32
+ method_source (~> 1.0)
33
+ rainbow (3.0.0)
34
+ rake (13.0.1)
35
+ regexp_parser (1.7.1)
36
+ rexml (3.2.4)
37
+ rspec (3.9.0)
38
+ rspec-core (~> 3.9.0)
39
+ rspec-expectations (~> 3.9.0)
40
+ rspec-mocks (~> 3.9.0)
41
+ rspec-core (3.9.2)
42
+ rspec-support (~> 3.9.3)
43
+ rspec-expectations (3.9.2)
40
44
  diff-lcs (>= 1.2.0, < 2.0)
41
- rspec-support (~> 3.6.0)
42
- rspec-mocks (3.6.0)
45
+ rspec-support (~> 3.9.0)
46
+ rspec-mocks (3.9.1)
43
47
  diff-lcs (>= 1.2.0, < 2.0)
44
- rspec-support (~> 3.6.0)
45
- rspec-support (3.6.0)
46
- rubocop (0.51.0)
48
+ rspec-support (~> 3.9.0)
49
+ rspec-support (3.9.3)
50
+ rubocop (0.85.1)
47
51
  parallel (~> 1.10)
48
- parser (>= 2.3.3.1, < 3.0)
49
- powerpack (~> 0.1)
50
- rainbow (>= 2.2.2, < 3.0)
52
+ parser (>= 2.7.0.1)
53
+ rainbow (>= 2.2.2, < 4.0)
54
+ regexp_parser (>= 1.7)
55
+ rexml
56
+ rubocop-ast (>= 0.0.3)
51
57
  ruby-progressbar (~> 1.7)
52
- unicode-display_width (~> 1.0, >= 1.0.1)
53
- ruby-progressbar (1.9.0)
54
- rugged (0.26.0)
58
+ unicode-display_width (>= 1.4.0, < 2.0)
59
+ rubocop-ast (0.0.3)
60
+ parser (>= 2.7.0.1)
61
+ ruby-progressbar (1.10.1)
62
+ rugged (0.99.0)
55
63
  terminal-table (1.8.0)
56
64
  unicode-display_width (~> 1.1, >= 1.1.1)
57
- unicode-display_width (1.3.0)
65
+ unicode-display_width (1.7.0)
58
66
 
59
67
  PLATFORMS
60
68
  ruby
61
69
 
62
70
  DEPENDENCIES
63
- bundler
71
+ bundler (~> 2.1)
64
72
  gitlab
65
73
  highline (~> 1.7)
66
74
  pry
@@ -71,4 +79,4 @@ DEPENDENCIES
71
79
  rugged (~> 0.26)
72
80
 
73
81
  BUNDLED WITH
74
- 1.15.4
82
+ 2.1.4
data/README.md CHANGED
@@ -407,6 +407,35 @@ ssh-add
407
407
 
408
408
  ```
409
409
 
410
+ ### Unable to exchange encryption keys
411
+ If you see an error message related to `Unable to exchange encryption keys` you may be dealing with an issue on your git server openssh
412
+ does not support the key exchange that libssh2 supports. Libssh2 is used by release_manager so it is important they can negotiate on the same algorithm.
413
+
414
+ There are two possible fixes for this.
415
+
416
+ * Update libssh2 to 1.7.x+
417
+
418
+ You can grab the libssh2 library on your puppetserver with r10k should you not have access to libssh2-1.7.0+
419
+
420
+ `cp /opt/puppetlabs/server/apps/r10k/lib/libssh2.so.1.0.1 /usr/lib64/libssh2.so.1.0.1`
421
+
422
+ Note: you will actually want to copy the the library whereever release_manager is used. Additionally you need to recompile
423
+ the rugged gem, only after updating libssh2 in /usr/lib64
424
+
425
+ `gem uninstall rugged && gem install rugged `
426
+
427
+
428
+ If you don't want to update libssh2 you should add support more more algorithms on the git server.
429
+
430
+
431
+ ```
432
+ # /etc/ssh/sshd_config
433
+
434
+ KexAlgorithms hmac-sha2-512
435
+ ```
436
+
437
+ Note: you should have more algorithms as that is an example only.
438
+
410
439
  ## Development
411
440
 
412
441
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -455,6 +484,7 @@ has wrong permission you will need to do the following:
455
484
 
456
485
  If the sandbox create command freezes after the first output make sure you can connect
457
486
  to the git server using git clone or running `ssh-add` to add your ssh key to the ssh agent.
487
+
458
488
  ## Contributing
459
489
 
460
490
  Bug reports and pull requests are welcome on release_manager.
@@ -35,6 +35,7 @@ class Changelog < WorkflowAction
35
35
  @root_dir
36
36
  end
37
37
 
38
+ # Create the changelog entries and commit
38
39
  # @param remote [Boolean] - if the commit is a remote git on the vcs server
39
40
  # @return [String] - sha of the commit
40
41
  def run(remote = false, branch = 'master')
@@ -79,6 +80,24 @@ class Changelog < WorkflowAction
79
80
  !!changelog_lines.each_index.find {|index| changelog_lines[index] =~ /\A\s*\#{2}\s*Version #{version}/i }
80
81
  end
81
82
 
83
+ # @return [Array] - array of lines of the unreleased content, text between unreleased and next version
84
+ def get_unreleased_content
85
+ start_content = changelog_lines.slice((unreleased_index + 1), changelog_lines.count)
86
+ end_index = start_content.find_index {|line| line.downcase.start_with?('## version')}
87
+ end_index ? start_content.slice(0, end_index) : start_content
88
+ end
89
+
90
+ # @return [Array] - array of lines of the specified version content, text between specified version and next version
91
+ # @param [String] - the version of content you want
92
+ # @note - returns empty string if version is not found
93
+ def get_version_content(version)
94
+ start_index = changelog_lines.find_index {|line| line.downcase.include?("version #{version}") }
95
+ return nil unless start_index
96
+ start_content = changelog_lines.slice((start_index + 1), changelog_lines.count)
97
+ end_index = start_content.find_index {|line| line.downcase.start_with?('## version')}
98
+ end_index ? start_content.slice(0, end_index) : start_content
99
+ end
100
+
82
101
  # @returns [Array[String]] - inserts the version header in the change log and returns the entire array of lines
83
102
  def update_unreleased
84
103
  time = Time.now.strftime("%B %d, %Y")
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ControlMod
2
4
  attr_reader :name, :metadata, :repo
3
5
  attr_accessor :version
4
6
 
5
7
  def initialize(name, args)
6
8
  @name = name
7
- @metadata = args.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
9
+ @metadata = args.each_with_object({}) { |(k, v), memo| memo[k.to_sym] = v; }
8
10
  end
9
11
 
10
12
  def repo
@@ -25,22 +27,28 @@ class ControlMod
25
27
 
26
28
  def to_s
27
29
  name_line = "mod '#{name}',"
28
- data = metadata.map { |k, v| ":#{k} => '#{v}'" }.join(",\n\ ")
30
+ data = metadata.map do |k, v|
31
+ v == :control_branch ? ":#{k} => #{v.inspect}" : ":#{k} => '#{v}'"
32
+ end.join(",\n\ ")
29
33
  "#{name_line}\n #{data}"
30
34
  end
31
35
 
32
36
  def bump_patch_version
33
37
  return unless metadata[:tag]
38
+
34
39
  pieces = metadata[:tag].split('.')
35
40
  raise "invalid semver structure #{metadata[:tag]}" if pieces.count != 3
41
+
36
42
  pieces[2] = pieces[2].next
37
43
  pin_version(pieces.join('.'))
38
44
  end
39
45
 
40
46
  def bump_minor_version
41
47
  return unless metadata[:tag]
48
+
42
49
  pieces = metadata[:tag].split('.')
43
50
  raise "invalid semver structure #{metadata[:tag]}" if pieces.count != 3
51
+
44
52
  pieces[2] = '0'
45
53
  pieces[1] = pieces[1].next
46
54
  pin_version(pieces.join('.'))
@@ -48,8 +56,10 @@ class ControlMod
48
56
 
49
57
  def bump_major_version
50
58
  return unless metadata[:tag]
59
+
51
60
  pieces = metadata[:tag].split('.')
52
61
  raise "invalid semver structure #{metadata[:tag]}" if pieces.count != 3
62
+
53
63
  pieces[2] = '0'
54
64
  pieces[1] = '0'
55
65
  pieces[0] = pieces[0].next
@@ -79,5 +89,4 @@ class ControlMod
79
89
  def pin_url(src)
80
90
  metadata[:git] = src
81
91
  end
82
-
83
92
  end
@@ -10,9 +10,11 @@ class GitError < Exception; end
10
10
  class RepoNotFound < Exception; end
11
11
  class InvalidModule < Exception; end
12
12
  class InvalidToken < Exception; end
13
+ class RemoteNotFound < Exception; end
13
14
  class InvalidSshkey < Exception; end
14
15
  class InvalidBranchName < Exception; end
15
16
  class PatchError < Exception; end
16
17
  class AlreadyReleased < Exception; end
17
18
  class AlreadyDeployed < Exception; end
18
- class TagExists < Exception; end
19
+ class TagExists < Exception; end
20
+ class NoTagsExists < Exception; end
@@ -74,7 +74,6 @@ module ReleaseManager
74
74
  # this method does currently now work
75
75
  def ssh_key_credentials(url = nil)
76
76
  logger.error("Must use ssh-agent, please run ssh-agent zsh, then ssh-add to load your ssh key")
77
- exit 1
78
77
  unless File.readable?(global_private_key)
79
78
  raise Exception.new("Unable to use SSH key auth for %{url}: private key %{private_key} is missing or unreadable" % {url: url.inspect, private_key: global_private_key.inspect} )
80
79
  end
@@ -47,7 +47,7 @@ module ReleaseManager
47
47
  else
48
48
  logger.info("Cloning repo with url: #{url} to #{path}")
49
49
  r = Rugged::Repository.clone_at(url, path, {
50
- #progress: lambda { |output| puts output },
50
+ #progress: lambda { |output| logger.debug output },
51
51
  credentials: credentials.call(url)
52
52
  })
53
53
  r
@@ -130,6 +130,7 @@ module ReleaseManager
130
130
  # @param [String] remote_name - the remote name to push the branch to
131
131
  def push_branch(remote_name, branch, force = false)
132
132
  remote = find_or_create_remote(remote_name)
133
+ raise RemoteNotFound, "Remote named: #{remote_name} was not found" unless remote
133
134
  b = repo.branches[branch]
134
135
  raise InvalidBranchName.new("Branch #{branch} does not exist locally, cannot push") unless b
135
136
  refs = [b.canonical_name]
@@ -143,6 +144,16 @@ module ReleaseManager
143
144
  repo.tags.map(&:name)
144
145
  end
145
146
 
147
+ # @return [Rugged::Tag]
148
+ # @param id [String] - the tag name or oid
149
+ def find_tag(id)
150
+ if id.length >= 40
151
+ repo.tags.find {|t| t.target.oid == id }
152
+ else
153
+ repo.tags.find {|t| t.name == id }
154
+ end
155
+ end
156
+
146
157
  # @param name [String] - the name of the tag to check for existence
147
158
  # @return [Boolean] - return true if the tag exists
148
159
  def tag_exists?(name)
@@ -151,9 +162,19 @@ module ReleaseManager
151
162
 
152
163
  # push all the tags to the remote
153
164
  # @param [String] remote_name - the remote name to push tags to
154
- def push_tags(remote_name)
165
+ # @param id [String] - a ref spec to push, set to nil to push all
166
+ def push_tags(remote_name, id = nil)
155
167
  remote = find_or_create_remote(remote_name)
156
- refs = repo.tags.map(&:canonical_name)
168
+ raise RemoteNotFound, "Remote named: #{remote_name} was not found" unless remote
169
+ all_refs = repo.tags.map(&:canonical_name)
170
+ refs = if id
171
+ tag = find_tag(id)
172
+ tag.canonical_name if tag
173
+ else
174
+ all_refs
175
+ end
176
+ raise NoTagsExists, "No tags were pushed" if refs.empty?
177
+ logger.debug("Pushing refs #{refs}")
157
178
  logger.info("Pushing tags to remote #{remote.url}")
158
179
  remote.push(refs, credentials: credentials)
159
180
  end
@@ -219,7 +240,7 @@ module ReleaseManager
219
240
  # @return [MatchData] MatchData if the remote name is a url
220
241
  # Is the name actually a url?
221
242
  def git_url?(name)
222
- /([A-Za-z0-9]+@|http(|s)\:\/\/)([A-Za-z0-9.]+)(:|\/)([A-Za-z0-9\/]+)(\.git)?/.match(name)
243
+ /(?:git|ssh|https?|git@[-\w.]+):(\/\/)?(.*?)(\.git)(\/?|\#[-\d\w._]+?)$/.match(name)
223
244
  end
224
245
 
225
246
  # @return [String] - the author name found in the config
@@ -140,12 +140,13 @@ class PuppetModule < WorkflowAction
140
140
 
141
141
  # @param remote [Boolean] - create the tag remotely using the remote VCS
142
142
  # @param id [String] - the commit id to tag to
143
- def tag_module(remote = false, id = nil)
143
+ # @param remote [Boolean] - use the vcs adapter instead of local tag
144
+ # @param release_notes [Boolean] - add release notes to the tag when remote is true
145
+ def tag_module(remote = false, id = nil, release_notes = nil)
144
146
  id ||= repo.head.target_id
145
147
  if remote
146
- # TODO add release_notes as the last argument, currently nil
147
148
  # where we get the latest from the changelog
148
- create_tag(source, "v#{version}", id, "v#{version}", nil)
149
+ create_tag(source, "v#{version}", id, "v#{version}", release_notes)
149
150
  else
150
151
  create_local_tag("v#{version}", id)
151
152
  end
@@ -204,9 +205,10 @@ class PuppetModule < WorkflowAction
204
205
  end
205
206
 
206
207
  # pushes the source and tags
207
- def push_to_upstream
208
+ # @param id [String] - a ref spec to push
209
+ def push_to_upstream(id = nil)
208
210
  push_branch(source, src_branch)
209
- push_tags(source)
211
+ push_tags(source, id)
210
212
  end
211
213
 
212
214
  # @return [String] the oid of the commit that was created
@@ -24,7 +24,6 @@ class R10kDeployer
24
24
  # cleanup branch, checkout previous branch
25
25
  end
26
26
  if mr
27
- ENV['MERGE_REQUEST_URL'] = mr.web_url
28
27
  puts mr.web_url
29
28
  end
30
29
  end
@@ -34,12 +34,18 @@ class Release
34
34
  puppet_module.next_version(level)
35
35
  end
36
36
 
37
+ def release_notes
38
+ notes = changelog.get_version_content(version) || changelog.get_unreleased_content || []
39
+ notes.join(" ")
40
+ end
41
+
42
+ # @param id [String] - the commit id to tag to
37
43
  def tag(id)
38
44
  if dry_run?
39
45
  logger.info "Would have just tagged the module to #{version}"
40
46
  return
41
47
  end
42
- puppet_module.tag_module(options[:remote], id)
48
+ puppet_module.tag_module(options[:remote], id, release_notes)
43
49
  end
44
50
 
45
51
  def bump
@@ -55,22 +61,26 @@ class Release
55
61
  puppet_module.commit_metadata(options[:remote])
56
62
  end
57
63
 
64
+ def changelog
65
+ @changelog ||= Changelog.new(puppet_module.path, version, {:commit => true})
66
+ end
67
+
58
68
  # @return [String] - sha of the commit
59
69
  def bump_log
60
70
  if dry_run?
61
71
  logger.info "Would have just bumped the CHANGELOG to version #{version}"
62
72
  return
63
73
  end
64
- log = Changelog.new(puppet_module.path, version, {:commit => true})
65
- log.run(options[:remote], puppet_module.src_branch)
74
+ changelog.run(options[:remote], puppet_module.src_branch)
66
75
  end
67
76
 
68
- def push
77
+ # @param id [String] - a ref spec to push
78
+ def push(id = nil)
69
79
  if dry_run?
70
80
  logger.info "Would have just pushed the code and tag to #{puppet_module.source}"
71
81
  return
72
82
  end
73
- puppet_module.push_to_upstream
83
+ puppet_module.push_to_upstream(id)
74
84
  end
75
85
 
76
86
  def dry_run?
@@ -125,13 +135,13 @@ class Release
125
135
  tag(id)
126
136
  # pushes the updated code and tags to the upstream repo
127
137
  if auto_release?
128
- push
138
+ push(id)
129
139
  return
130
140
  end
131
141
  print "Ready to release version #{version} to #{puppet_module.source}\n and forever change history(y/n)?: ".yellow
132
142
  answer = gets.downcase.chomp
133
143
  if answer == 'y'
134
- push
144
+ push(id)
135
145
  $?.success?
136
146
  else
137
147
  puts "Nah, forget it, this release wasn't that cool anyways.".yellow
@@ -1,3 +1,3 @@
1
1
  module ReleaseManager
2
- VERSION = "0.8.2"
2
+ VERSION = "0.9.3"
3
3
  end
@@ -1,39 +1,40 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'release_manager/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
- spec.name = "release_manager"
8
+ spec.name = 'release_manager'
8
9
  spec.version = ReleaseManager::VERSION
9
- spec.authors = ["Corey Osman"]
10
- spec.email = ["corey@nwops.io"]
10
+ spec.authors = ['Corey Osman']
11
+ spec.email = ['corey@nwops.io']
11
12
 
12
- spec.summary = %q{Release tools for puppet code}
13
- spec.description = %q{Release management tools for releasing modules and r10k control repos}
14
- spec.homepage = ""
15
- spec.license = "MIT"
13
+ spec.summary = 'Release tools for puppet code'
14
+ spec.description = 'Release management tools for releasing modules and r10k control repos'
15
+ spec.homepage = ''
16
+ spec.license = 'MIT'
16
17
 
17
18
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
19
  # to allow pushing to a single host or delete this section to allow pushing to any host.
19
20
  if spec.respond_to?(:metadata)
20
- #spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
21
+ # spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
21
22
  else
22
- raise "RubyGems 2.0 or newer is required to protect against " \
23
- "public gem pushes."
23
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
24
+ 'public gem pushes.'
24
25
  end
25
26
 
26
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
27
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
27
28
  f.match(%r{^(test|spec|features)/})
28
29
  end
29
- spec.bindir = "exe"
30
+ spec.bindir = 'exe'
30
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
- spec.require_paths = ["lib"]
32
- spec.add_runtime_dependency "gitlab", "~> 4.2.0"
33
- spec.add_runtime_dependency "rugged", "~> 0.26"
34
- spec.add_runtime_dependency "highline", '~> 1.7'
35
- spec.add_development_dependency "bundler", "~> 1.14"
36
- spec.add_development_dependency "pry"
37
- spec.add_development_dependency "rake", "~> 10.0"
38
- spec.add_development_dependency "rspec", "~> 3.0"
32
+ spec.require_paths = ['lib']
33
+ spec.add_runtime_dependency 'gitlab', '~> 4.2.0'
34
+ spec.add_runtime_dependency 'rugged', '~> 0.26'
35
+ spec.add_runtime_dependency 'highline', '~> 1.7'
36
+ spec.add_development_dependency 'bundler', '~> 2.1'
37
+ spec.add_development_dependency 'pry'
38
+ spec.add_development_dependency 'rake', '~> 13.0'
39
+ spec.add_development_dependency 'rspec', '~> 3.0'
39
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: release_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Osman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-20 00:00:00.000000000 Z
11
+ date: 2020-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gitlab
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.14'
61
+ version: '2.1'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.14'
68
+ version: '2.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '10.0'
89
+ version: '13.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '10.0'
96
+ version: '13.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -199,8 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
199
  - !ruby/object:Gem::Version
200
200
  version: '0'
201
201
  requirements: []
202
- rubyforge_project:
203
- rubygems_version: 2.6.11
202
+ rubygems_version: 3.0.3
204
203
  signing_key:
205
204
  specification_version: 4
206
205
  summary: Release tools for puppet code