modulesync 2.5.0 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,12 +21,12 @@ module ModuleSync
21
21
 
22
22
  class Hook < Thor
23
23
  option :hook_args,
24
- :aliases => '-a',
25
- :desc => 'Arguments to pass to msync in the git hook'
24
+ aliases: '-a',
25
+ desc: 'Arguments to pass to msync in the git hook'
26
26
  option :branch,
27
- :aliases => '-b',
28
- :desc => 'Branch name to pass to msync in the git hook',
29
- :default => CLI.defaults[:branch]
27
+ aliases: '-b',
28
+ desc: 'Branch name to pass to msync in the git hook',
29
+ default: CLI.defaults[:branch]
30
30
  desc 'activate', 'Activate the git hook.'
31
31
  def activate
32
32
  ModuleSync.hook CLI.prepare_options(options, hook: 'activate')
@@ -40,106 +40,106 @@ module ModuleSync
40
40
 
41
41
  class Base < Thor
42
42
  class_option :project_root,
43
- :aliases => '-c',
44
- :desc => 'Path used by git to clone modules into.',
45
- :default => CLI.defaults[:project_root]
43
+ aliases: '-c',
44
+ desc: 'Path used by git to clone modules into.',
45
+ default: CLI.defaults[:project_root]
46
46
  class_option :git_base,
47
- :desc => 'Specify the base part of a git URL to pull from',
48
- :default => CLI.defaults[:git_base] || 'git@github.com:'
47
+ desc: 'Specify the base part of a git URL to pull from',
48
+ default: CLI.defaults[:git_base] || 'git@github.com:'
49
49
  class_option :namespace,
50
- :aliases => '-n',
51
- :desc => 'Remote github namespace (user or organization) to clone from and push to.',
52
- :default => CLI.defaults[:namespace] || 'puppetlabs'
50
+ aliases: '-n',
51
+ desc: 'Remote github namespace (user or organization) to clone from and push to.',
52
+ default: CLI.defaults[:namespace] || 'puppetlabs'
53
53
  class_option :filter,
54
- :aliases => '-f',
55
- :desc => 'A regular expression to select repositories to update.'
54
+ aliases: '-f',
55
+ desc: 'A regular expression to select repositories to update.'
56
56
  class_option :negative_filter,
57
- :aliases => '-x',
58
- :desc => 'A regular expression to skip repositories.'
57
+ aliases: '-x',
58
+ desc: 'A regular expression to skip repositories.'
59
59
  class_option :verbose,
60
- :aliases => '-v',
61
- :desc => 'Verbose mode',
62
- :type => :boolean,
63
- :default => false
60
+ aliases: '-v',
61
+ desc: 'Verbose mode',
62
+ type: :boolean,
63
+ default: false
64
64
 
65
65
  desc 'update', 'Update the modules in managed_modules.yml'
66
66
  option :message,
67
- :aliases => '-m',
68
- :desc => 'Commit message to apply to updated modules. Required unless running in noop mode.',
69
- :default => CLI.defaults[:message]
67
+ aliases: '-m',
68
+ desc: 'Commit message to apply to updated modules. Required unless running in noop mode.',
69
+ default: CLI.defaults[:message]
70
70
  option :configs,
71
- :aliases => '-c',
72
- :desc => 'The local directory or remote repository to define the list of managed modules,' \
73
- ' the file templates, and the default values for template variables.'
71
+ aliases: '-c',
72
+ desc: 'The local directory or remote repository to define the list of managed modules, ' \
73
+ 'the file templates, and the default values for template variables.'
74
74
  option :managed_modules_conf,
75
- :desc => 'The file name to define the list of managed modules'
75
+ desc: 'The file name to define the list of managed modules'
76
76
  option :remote_branch,
77
- :aliases => '-r',
78
- :desc => 'Remote branch name to push the changes to. Defaults to the branch name.',
79
- :default => CLI.defaults[:remote_branch]
77
+ aliases: '-r',
78
+ desc: 'Remote branch name to push the changes to. Defaults to the branch name.',
79
+ default: CLI.defaults[:remote_branch]
80
80
  option :skip_broken,
81
- :type => :boolean,
82
- :aliases => '-s',
83
- :desc => 'Process remaining modules if an error is found',
84
- :default => false
81
+ type: :boolean,
82
+ aliases: '-s',
83
+ desc: 'Process remaining modules if an error is found',
84
+ default: false
85
85
  option :amend,
86
- :type => :boolean,
87
- :desc => 'Amend previous commit',
88
- :default => false
86
+ type: :boolean,
87
+ desc: 'Amend previous commit',
88
+ default: false
89
89
  option :force,
90
- :type => :boolean,
91
- :desc => 'Force push amended commit',
92
- :default => false
90
+ type: :boolean,
91
+ desc: 'Force push amended commit',
92
+ default: false
93
93
  option :noop,
94
- :type => :boolean,
95
- :desc => 'No-op mode',
96
- :default => false
94
+ type: :boolean,
95
+ desc: 'No-op mode',
96
+ default: false
97
97
  option :pr,
98
- :type => :boolean,
99
- :desc => 'Submit pull/merge request',
100
- :default => false
98
+ type: :boolean,
99
+ desc: 'Submit pull/merge request',
100
+ default: false
101
101
  option :pr_title,
102
- :desc => 'Title of pull/merge request',
103
- :default => CLI.defaults[:pr_title] || 'Update to module template files'
102
+ desc: 'Title of pull/merge request',
103
+ default: CLI.defaults[:pr_title] || 'Update to module template files'
104
104
  option :pr_labels,
105
- :type => :array,
106
- :desc => 'Labels to add to the pull/merge request',
107
- :default => CLI.defaults[:pr_labels] || []
105
+ type: :array,
106
+ desc: 'Labels to add to the pull/merge request',
107
+ default: CLI.defaults[:pr_labels] || []
108
108
  option :pr_target_branch,
109
- :desc => 'Target branch for the pull/merge request',
110
- :default => CLI.defaults[:pr_target_branch]
109
+ desc: 'Target branch for the pull/merge request',
110
+ default: CLI.defaults[:pr_target_branch]
111
111
  option :offline,
112
- :type => :boolean,
113
- :desc => 'Do not run any Git commands. Allows the user to manage Git outside of ModuleSync.',
114
- :default => false
112
+ type: :boolean,
113
+ desc: 'Do not run any Git commands. Allows the user to manage Git outside of ModuleSync.',
114
+ default: false
115
115
  option :bump,
116
- :type => :boolean,
117
- :desc => 'Bump module version to the next minor',
118
- :default => false
116
+ type: :boolean,
117
+ desc: 'Bump module version to the next minor',
118
+ default: false
119
119
  option :changelog,
120
- :type => :boolean,
121
- :desc => 'Update CHANGELOG.md if version was bumped',
122
- :default => false
120
+ type: :boolean,
121
+ desc: 'Update CHANGELOG.md if version was bumped',
122
+ default: false
123
123
  option :tag,
124
- :type => :boolean,
125
- :desc => 'Git tag with the current module version',
126
- :default => false
124
+ type: :boolean,
125
+ desc: 'Git tag with the current module version',
126
+ default: false
127
127
  option :tag_pattern,
128
- :desc => 'The pattern to use when tagging releases.'
128
+ desc: 'The pattern to use when tagging releases.'
129
129
  option :pre_commit_script,
130
- :desc => 'A script to be run before committing',
131
- :default => CLI.defaults[:pre_commit_script]
130
+ desc: 'A script to be run before committing',
131
+ default: CLI.defaults[:pre_commit_script]
132
132
  option :fail_on_warnings,
133
- :type => :boolean,
134
- :aliases => '-F',
135
- :desc => 'Produce a failure exit code when there are warnings' \
136
- ' (only has effect when --skip_broken is enabled)',
137
- :default => false
133
+ type: :boolean,
134
+ aliases: '-F',
135
+ desc: 'Produce a failure exit code when there are warnings ' \
136
+ '(only has effect when --skip_broken is enabled)',
137
+ default: false
138
138
  option :branch,
139
- :aliases => '-b',
140
- :desc => 'Branch name to make the changes in.' \
141
- ' Defaults to the default branch of the upstream repository, but falls back to "master".',
142
- :default => CLI.defaults[:branch]
139
+ aliases: '-b',
140
+ desc: 'Branch name to make the changes in. ' \
141
+ 'Defaults to the default branch of the upstream repository, but falls back to "master".',
142
+ default: CLI.defaults[:branch]
143
143
  def update
144
144
  config = CLI.prepare_options(options)
145
145
  raise Thor::Error, 'No value provided for required option "--message"' unless config[:noop] \
@@ -164,19 +164,19 @@ module ModuleSync
164
164
  DESC
165
165
 
166
166
  option :configs,
167
- :aliases => '-c',
168
- :desc => 'The local directory or remote repository to define the list of managed modules,' \
169
- ' the file templates, and the default values for template variables.'
167
+ aliases: '-c',
168
+ desc: 'The local directory or remote repository to define the list of managed modules, ' \
169
+ 'the file templates, and the default values for template variables.'
170
170
  option :managed_modules_conf,
171
- :desc => 'The file name to define the list of managed modules'
171
+ desc: 'The file name to define the list of managed modules'
172
172
  option :branch,
173
- :aliases => '-b',
174
- :desc => 'Branch name to make the changes in.',
175
- :default => CLI.defaults[:branch]
173
+ aliases: '-b',
174
+ desc: 'Branch name to make the changes in.',
175
+ default: CLI.defaults[:branch]
176
176
  option :fail_fast,
177
- :type => :boolean,
178
- :desc => 'Abort the run after a command execution failure',
179
- :default => CLI.defaults[:fail_fast].nil? ? true : CLI.defaults[:fail_fast]
177
+ type: :boolean,
178
+ desc: 'Abort the run after a command execution failure',
179
+ default: CLI.defaults[:fail_fast].nil? ? true : CLI.defaults[:fail_fast]
180
180
  def execute(*command_args)
181
181
  raise Thor::Error, 'COMMAND is a required argument' if command_args.empty?
182
182
 
@@ -196,38 +196,38 @@ module ModuleSync
196
196
  \x5 * Switch to specified branch
197
197
  DESC
198
198
  option :configs,
199
- :aliases => '-c',
200
- :desc => 'The local directory or remote repository to define the list of managed modules,' \
201
- ' the file templates, and the default values for template variables.'
199
+ aliases: '-c',
200
+ desc: 'The local directory or remote repository to define the list of managed modules, ' \
201
+ 'the file templates, and the default values for template variables.'
202
202
  option :managed_modules_conf,
203
- :desc => 'The file name to define the list of managed modules'
203
+ desc: 'The file name to define the list of managed modules'
204
204
  option :branch,
205
- :aliases => '-b',
206
- :desc => 'Branch name to make the changes in.',
207
- :default => CLI.defaults[:branch]
205
+ aliases: '-b',
206
+ desc: 'Branch name to make the changes in.',
207
+ default: CLI.defaults[:branch]
208
208
  option :offline,
209
- :type => :boolean,
210
- :desc => 'Only proceed local operations',
211
- :default => false
209
+ type: :boolean,
210
+ desc: 'Only proceed local operations',
211
+ default: false
212
212
  option :source_branch,
213
- :desc => 'Branch to reset from (e.g. origin/wip)'
213
+ desc: 'Branch to reset from (e.g. origin/wip)'
214
214
  def reset
215
215
  ModuleSync.reset CLI.prepare_options(options)
216
216
  end
217
217
 
218
218
  desc 'push', 'Push all available commits from branch to remote'
219
219
  option :configs,
220
- :aliases => '-c',
221
- :desc => 'The local directory or remote repository to define the list of managed modules,' \
222
- ' the file templates, and the default values for template variables.'
220
+ aliases: '-c',
221
+ desc: 'The local directory or remote repository to define the list of managed modules, ' \
222
+ 'the file templates, and the default values for template variables.'
223
223
  option :managed_modules_conf,
224
- :desc => 'The file name to define the list of managed modules'
224
+ desc: 'The file name to define the list of managed modules'
225
225
  option :branch,
226
- :aliases => '-b',
227
- :desc => 'Branch name to push',
228
- :default => CLI.defaults[:branch]
226
+ aliases: '-b',
227
+ desc: 'Branch name to push',
228
+ default: CLI.defaults[:branch]
229
229
  option :remote_branch,
230
- :desc => 'Remote branch to push to (e.g. maintenance)'
230
+ desc: 'Remote branch to push to (e.g. maintenance)'
231
231
  def push
232
232
  ModuleSync.push CLI.prepare_options(options)
233
233
  end
@@ -2,7 +2,7 @@ module ModuleSync
2
2
  module GitService
3
3
  # Generic class for git services
4
4
  class Base
5
- def open_pull_request(repo_path:, namespace:, title:, message:, source_branch:, target_branch:, labels:, noop:) # rubocop:disable Metrics/ParameterLists
5
+ def open_pull_request(repo_path:, namespace:, title:, message:, source_branch:, target_branch:, labels:, noop:)
6
6
  unless source_branch != target_branch
7
7
  raise ModuleSync::Error,
8
8
  "Unable to open a pull request with the same source and target branch: '#{source_branch}'"
@@ -55,7 +55,7 @@ module ModuleSync
55
55
 
56
56
  protected
57
57
 
58
- def _open_pull_request(repo_path:, namespace:, title:, message:, source_branch:, target_branch:, labels:, noop:) # rubocop:disable Metrics/ParameterLists
58
+ def _open_pull_request(repo_path:, namespace:, title:, message:, source_branch:, target_branch:, labels:, noop:)
59
59
  raise NotImplementedError
60
60
  end
61
61
  end
@@ -13,25 +13,24 @@ module ModuleSync
13
13
  Octokit.configure do |c|
14
14
  c.api_endpoint = endpoint
15
15
  end
16
- @api = Octokit::Client.new(:access_token => token)
16
+ @api = Octokit::Client.new(access_token: token)
17
17
  end
18
18
 
19
19
  private
20
20
 
21
- def _open_pull_request(repo_path:, namespace:, title:, message:, source_branch:, target_branch:, labels:, noop:) # rubocop:disable Metrics/ParameterLists
21
+ def _open_pull_request(repo_path:, namespace:, title:, message:, source_branch:, target_branch:, labels:, noop:)
22
22
  head = "#{namespace}:#{source_branch}"
23
23
 
24
24
  if noop
25
- $stdout.puts \
26
- "Using no-op. Would submit PR '#{title}' to '#{repo_path}' " \
27
- "- merges '#{source_branch}' into '#{target_branch}'"
25
+ $stdout.puts "Using no-op. Would submit PR '#{title}' to '#{repo_path}' " \
26
+ "- merges '#{source_branch}' into '#{target_branch}'"
28
27
  return
29
28
  end
30
29
 
31
30
  pull_requests = @api.pull_requests(repo_path,
32
- :state => 'open',
33
- :base => target_branch,
34
- :head => head)
31
+ state: 'open',
32
+ base: target_branch,
33
+ head: head)
35
34
  unless pull_requests.empty?
36
35
  # Skip creating the PR if it exists already.
37
36
  $stdout.puts "Skipped! #{pull_requests.length} PRs found for branch '#{source_branch}'"
@@ -11,8 +11,8 @@ module ModuleSync
11
11
  super()
12
12
 
13
13
  @api = Gitlab::Client.new(
14
- :endpoint => endpoint,
15
- :private_token => token,
14
+ endpoint: endpoint,
15
+ private_token: token,
16
16
  )
17
17
  end
18
18
 
@@ -26,18 +26,17 @@ module ModuleSync
26
26
 
27
27
  private
28
28
 
29
- def _open_pull_request(repo_path:, namespace:, title:, message:, source_branch:, target_branch:, labels:, noop:) # rubocop:disable Metrics/ParameterLists, Lint/UnusedMethodArgument
29
+ def _open_pull_request(repo_path:, namespace:, title:, message:, source_branch:, target_branch:, labels:, noop:) # rubocop:disable Lint/UnusedMethodArgument
30
30
  if noop
31
- $stdout.puts \
32
- "Using no-op. Would submit MR '#{title}' to '#{repo_path}' " \
33
- "- merges #{source_branch} into #{target_branch}"
31
+ $stdout.puts "Using no-op. Would submit MR '#{title}' to '#{repo_path}' " \
32
+ "- merges #{source_branch} into #{target_branch}"
34
33
  return
35
34
  end
36
35
 
37
36
  merge_requests = @api.merge_requests(repo_path,
38
- :state => 'opened',
39
- :source_branch => source_branch,
40
- :target_branch => target_branch)
37
+ state: 'opened',
38
+ source_branch: source_branch,
39
+ target_branch: target_branch)
41
40
  unless merge_requests.empty?
42
41
  # Skip creating the MR if it exists already.
43
42
  $stdout.puts "Skipped! #{merge_requests.length} MRs found for branch '#{source_branch}'"
@@ -46,9 +45,9 @@ module ModuleSync
46
45
 
47
46
  mr = @api.create_merge_request(repo_path,
48
47
  title,
49
- :source_branch => source_branch,
50
- :target_branch => target_branch,
51
- :labels => labels)
48
+ source_branch: source_branch,
49
+ target_branch: target_branch,
50
+ labels: labels)
52
51
  $stdout.puts \
53
52
  "Submitted MR '#{title}' to '#{repo_path}' " \
54
53
  "- merges '#{source_branch}' into '#{target_branch}'"
@@ -15,10 +15,10 @@ module ModuleSync
15
15
  <<~CONTENT
16
16
  #!/usr/bin/env bash
17
17
 
18
- current_branch=\`git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,'\`
19
- git_dir=\`git rev-parse --show-toplevel\`
20
- message=\`git log -1 --format=%B\`
21
- msync -m "\$message" #{arguments}
18
+ current_branch=`git symbolic-ref HEAD | sed -e 's,.*/(.*),\1,'`
19
+ git_dir=`git rev-parse --show-toplevel`
20
+ message=`git log -1 --format=%B`
21
+ msync -m "$message" #{arguments}
22
22
  CONTENT
23
23
  end
24
24
 
@@ -15,7 +15,7 @@ module ModuleSync
15
15
  erb_obj = if RUBY_VERSION >= '2.7'
16
16
  ERB.new(template, trim_mode: '-')
17
17
  else
18
- ERB.new(template, nil, '-')
18
+ ERB.new(template, trim_mode: '-')
19
19
  end
20
20
  erb_obj.filename = template_file
21
21
  erb_obj.def_method(ForgeModuleFile, 'render()', template_file)
@@ -31,6 +31,9 @@ module ModuleSync
31
31
  end
32
32
 
33
33
  def default_branch
34
+ # `Git.default_branch` requires ruby-git >= 1.17.0
35
+ return Git.default_branch(repo.dir) if Git.respond_to? :default_branch
36
+
34
37
  symbolic_ref = repo.branches.find { |b| b.full.include?('remotes/origin/HEAD') }
35
38
  return unless symbolic_ref
36
39
 
@@ -137,8 +140,8 @@ module ModuleSync
137
140
  begin
138
141
  opts_commit = {}
139
142
  opts_push = {}
140
- opts_commit = { :amend => true } if options[:amend]
141
- opts_push = { :force => true } if options[:force]
143
+ opts_commit = { amend: true } if options[:amend]
144
+ opts_push = { force: true } if options[:force]
142
145
  if options[:pre_commit_script]
143
146
  script = "#{File.dirname(File.dirname(__FILE__))}/../contrib/#{options[:pre_commit_script]}"
144
147
  `#{script} #{@directory}`
data/lib/modulesync.rb CHANGED
@@ -12,17 +12,17 @@ require 'modulesync/util'
12
12
 
13
13
  require 'monkey_patches'
14
14
 
15
- module ModuleSync # rubocop:disable Metrics/ModuleLength
15
+ module ModuleSync
16
16
  class Error < StandardError; end
17
17
 
18
18
  include Constants
19
19
 
20
20
  def self.config_defaults
21
21
  {
22
- :project_root => 'modules/',
23
- :managed_modules_conf => 'managed_modules.yml',
24
- :configs => '.',
25
- :tag_pattern => '%s',
22
+ project_root: 'modules/',
23
+ managed_modules_conf: 'managed_modules.yml',
24
+ configs: '.',
25
+ tag_pattern: '%s',
26
26
  }
27
27
  end
28
28
 
@@ -33,7 +33,7 @@ module ModuleSync # rubocop:disable Metrics/ModuleLength
33
33
  def self.local_file(config_path, file)
34
34
  path = File.join(config_path, MODULE_FILES_DIR, file)
35
35
  if !File.exist?("#{path}.erb") && File.exist?(path)
36
- $stderr.puts "Warning: using '#{path}' as template without '.erb' suffix"
36
+ warn "Warning: using '#{path}' as template without '.erb' suffix"
37
37
  path
38
38
  else
39
39
  "#{path}.erb"
@@ -50,9 +50,9 @@ module ModuleSync # rubocop:disable Metrics/ModuleLength
50
50
  .collect { |p| p.chomp('.erb') }
51
51
  .to_a
52
52
  else
53
- $stderr.puts "#{local_template_dir} does not exist." \
54
- ' Check that you are working in your module configs directory or' \
55
- ' that you have passed in the correct directory with -c.'
53
+ warn "#{local_template_dir} does not exist. " \
54
+ 'Check that you are working in your module configs directory or ' \
55
+ 'that you have passed in the correct directory with -c.'
56
56
  exit 1
57
57
  end
58
58
  end
@@ -68,8 +68,8 @@ module ModuleSync # rubocop:disable Metrics/ModuleLength
68
68
 
69
69
  managed_modules = Util.parse_config(config_file)
70
70
  if managed_modules.empty?
71
- $stderr.puts "No modules found in #{config_file}." \
72
- ' Check that you specified the right :configs directory and :managed_modules_conf file.'
71
+ warn "No modules found in #{config_file}. " \
72
+ 'Check that you specified the right :configs directory and :managed_modules_conf file.'
73
73
  exit 1
74
74
  end
75
75
  managed_modules.select! { |m| m =~ Regexp.new(filter) } unless filter.nil?
@@ -99,16 +99,16 @@ module ModuleSync # rubocop:disable Metrics/ModuleLength
99
99
  erb = Renderer.build(template_file)
100
100
  # Meta data passed to the template as @metadata[:name]
101
101
  metadata = {
102
- :module_name => settings.additional_settings[:puppet_module],
103
- :namespace => settings.additional_settings[:namespace],
104
- :workdir => puppet_module.working_directory,
105
- :target_file => target_file,
102
+ module_name: settings.additional_settings[:puppet_module],
103
+ namespace: settings.additional_settings[:namespace],
104
+ workdir: puppet_module.working_directory,
105
+ target_file: target_file,
106
106
  }
107
107
  template = Renderer.render(erb, configs, metadata)
108
108
  mode = File.stat(template_file).mode
109
109
  Renderer.sync(template, target_file, mode)
110
110
  rescue StandardError
111
- $stderr.puts "#{puppet_module.given_name}: Error while rendering file: '#{filename}'"
111
+ warn "#{puppet_module.given_name}: Error while rendering file: '#{filename}'"
112
112
  raise
113
113
  end
114
114
  end
@@ -128,9 +128,9 @@ module ModuleSync # rubocop:disable Metrics/ModuleLength
128
128
  defaults,
129
129
  module_configs[GLOBAL_DEFAULTS_KEY] || {},
130
130
  module_configs,
131
- :puppet_module => puppet_module.repository_name,
132
- :git_base => options[:git_base],
133
- :namespace => puppet_module.repository_namespace)
131
+ puppet_module: puppet_module.repository_name,
132
+ git_base: options[:git_base],
133
+ namespace: puppet_module.repository_namespace)
134
134
 
135
135
  settings.unmanaged_files(module_files).each do |filename|
136
136
  $stdout.puts "Not managing '#{filename}' in '#{puppet_module.given_name}'"
@@ -178,7 +178,7 @@ module ModuleSync # rubocop:disable Metrics/ModuleLength
178
178
  manage_module(puppet_module, module_files, defaults)
179
179
  rescue ModuleSync::Error, Git::GitExecuteError => e
180
180
  message = e.message || 'Error during `update`'
181
- $stderr.puts "#{puppet_module.given_name}: #{message}"
181
+ warn "#{puppet_module.given_name}: #{message}"
182
182
  exit 1 unless options[:skip_broken]
183
183
  errors = true
184
184
  $stdout.puts "Skipping '#{puppet_module.given_name}' as update process failed"
@@ -222,7 +222,7 @@ module ModuleSync # rubocop:disable Metrics/ModuleLength
222
222
  raise Thor::Error, message if @options[:fail_fast]
223
223
 
224
224
  errors[puppet_module.given_name] = message
225
- $stderr.puts message
225
+ warn message
226
226
  end
227
227
 
228
228
  $stdout.puts ''
data/modulesync.gemspec CHANGED
@@ -3,33 +3,29 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = 'modulesync'
6
- spec.version = '2.5.0'
6
+ spec.version = '2.7.0'
7
7
  spec.authors = ['Vox Pupuli']
8
8
  spec.email = ['voxpupuli@groups.io']
9
9
  spec.summary = 'Puppet Module Synchronizer'
10
10
  spec.description = 'Utility to synchronize common files across puppet modules in Github.'
11
11
  spec.homepage = 'https://github.com/voxpupuli/modulesync'
12
12
  spec.license = 'Apache-2.0'
13
- spec.required_ruby_version = '>= 2.5.0'
13
+ spec.required_ruby_version = '>= 2.7.0'
14
14
 
15
15
  spec.files = `git ls-files -z`.split("\x0")
16
16
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
17
  spec.require_paths = ['lib']
18
18
 
19
- spec.add_development_dependency 'aruba', '>= 0.14', '< 2'
20
- spec.add_development_dependency 'bundler'
19
+ spec.add_development_dependency 'aruba', '~>2.0'
21
20
  spec.add_development_dependency 'cucumber'
22
21
  spec.add_development_dependency 'rake'
23
22
  spec.add_development_dependency 'rspec'
24
- spec.add_development_dependency 'rubocop', '~> 1.2'
25
- spec.add_development_dependency 'rubocop-performance'
26
- spec.add_development_dependency 'rubocop-rake'
27
- spec.add_development_dependency 'rubocop-rspec'
28
23
  spec.add_development_dependency 'simplecov'
24
+ spec.add_development_dependency 'voxpupuli-rubocop', '~> 1.3'
29
25
 
30
26
  spec.add_runtime_dependency 'git', '~>1.7'
31
27
  spec.add_runtime_dependency 'gitlab', '~>4.0'
32
- spec.add_runtime_dependency 'octokit', '~>4.0'
33
- spec.add_runtime_dependency 'puppet-blacksmith', '>= 3.0', '< 7'
28
+ spec.add_runtime_dependency 'octokit', '>=4', '<7'
29
+ spec.add_runtime_dependency 'puppet-blacksmith', '>= 3.0', '< 8'
34
30
  spec.add_runtime_dependency 'thor'
35
31
  end
@@ -102,21 +102,21 @@ module ModuleSync
102
102
 
103
103
  def tags
104
104
  FileUtils.chdir(bare_repo_dir) do
105
- return run %w{git tag --list}
105
+ return run %w[git tag --list]
106
106
  end
107
107
  end
108
108
 
109
109
  def delete_branch(branch)
110
110
  FileUtils.chdir(bare_repo_dir) do
111
- run %W{git branch -D #{branch}}
111
+ run %W[git branch -D #{branch}]
112
112
  end
113
113
  end
114
114
 
115
115
  def create_branch(branch, from = nil)
116
116
  from ||= default_branch
117
117
  FileUtils.chdir(tmp_repo_dir) do
118
- run %W{git branch -c #{from} #{branch}}
119
- run %W{git push --set-upstream origin #{branch}}
118
+ run %W[git branch -c #{from} #{branch}]
119
+ run %W[git push --set-upstream origin #{branch}]
120
120
  end
121
121
  end
122
122
 
@@ -7,6 +7,7 @@ module ModuleSync
7
7
 
8
8
  def self.working_directory
9
9
  raise 'Working directory must be set' if @working_directory.nil?
10
+
10
11
  FileUtils.mkdir_p @working_directory
11
12
  @working_directory
12
13
  end