r10k 3.9.1 → 3.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rspec_tests.yml +1 -1
  3. data/.travis.yml +0 -10
  4. data/CHANGELOG.mkd +28 -0
  5. data/README.mkd +6 -0
  6. data/doc/dynamic-environments/configuration.mkd +21 -0
  7. data/doc/puppetfile.mkd +15 -1
  8. data/integration/Rakefile +3 -1
  9. data/integration/tests/user_scenario/basic_workflow/negative/neg_specify_deleted_forge_module.rb +3 -9
  10. data/integration/tests/user_scenario/basic_workflow/single_env_purge_unmanaged_modules.rb +21 -25
  11. data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +3 -3
  12. data/integration/tests/user_scenario/complex_workflow/multi_env_remove_re-add.rb +3 -3
  13. data/integration/tests/user_scenario/complex_workflow/multi_env_unamanaged.rb +3 -3
  14. data/lib/r10k/action/base.rb +6 -3
  15. data/lib/r10k/action/deploy/display.rb +6 -3
  16. data/lib/r10k/action/deploy/environment.rb +15 -4
  17. data/lib/r10k/action/deploy/module.rb +37 -8
  18. data/lib/r10k/action/runner.rb +45 -10
  19. data/lib/r10k/cli/deploy.rb +4 -0
  20. data/lib/r10k/git.rb +3 -0
  21. data/lib/r10k/git/cache.rb +1 -1
  22. data/lib/r10k/git/rugged/credentials.rb +77 -0
  23. data/lib/r10k/git/stateful_repository.rb +1 -0
  24. data/lib/r10k/initializers.rb +10 -0
  25. data/lib/r10k/module/base.rb +37 -0
  26. data/lib/r10k/module/forge.rb +7 -2
  27. data/lib/r10k/module/git.rb +2 -1
  28. data/lib/r10k/module/svn.rb +2 -1
  29. data/lib/r10k/module_loader/puppetfile.rb +206 -0
  30. data/lib/r10k/module_loader/puppetfile/dsl.rb +37 -0
  31. data/lib/r10k/puppetfile.rb +83 -160
  32. data/lib/r10k/settings.rb +47 -2
  33. data/lib/r10k/settings/definition.rb +1 -1
  34. data/lib/r10k/source/base.rb +10 -0
  35. data/lib/r10k/source/git.rb +5 -0
  36. data/lib/r10k/source/svn.rb +4 -0
  37. data/lib/r10k/util/purgeable.rb +70 -8
  38. data/lib/r10k/version.rb +1 -1
  39. data/locales/r10k.pot +129 -57
  40. data/r10k.gemspec +2 -0
  41. data/spec/fixtures/unit/action/r10k_forge_auth.yaml +4 -0
  42. data/spec/fixtures/unit/action/r10k_forge_auth_no_url.yaml +3 -0
  43. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/managed_subdir_2/ignored_1 +0 -0
  44. data/spec/fixtures/unit/util/purgeable/managed_two/.hidden/unmanaged_3 +0 -0
  45. data/spec/unit/action/deploy/environment_spec.rb +25 -0
  46. data/spec/unit/action/deploy/module_spec.rb +216 -14
  47. data/spec/unit/action/runner_spec.rb +129 -25
  48. data/spec/unit/git/cache_spec.rb +14 -0
  49. data/spec/unit/git/rugged/credentials_spec.rb +29 -0
  50. data/spec/unit/git/stateful_repository_spec.rb +5 -0
  51. data/spec/unit/module/base_spec.rb +46 -0
  52. data/spec/unit/module/forge_spec.rb +27 -1
  53. data/spec/unit/module/git_spec.rb +17 -8
  54. data/spec/unit/module/svn_spec.rb +18 -0
  55. data/spec/unit/module_loader/puppetfile_spec.rb +343 -0
  56. data/spec/unit/module_spec.rb +28 -0
  57. data/spec/unit/puppetfile_spec.rb +127 -191
  58. data/spec/unit/settings_spec.rb +24 -2
  59. data/spec/unit/util/purgeable_spec.rb +38 -6
  60. metadata +23 -2
data/lib/r10k/settings.rb CHANGED
@@ -42,6 +42,22 @@ module R10K
42
42
  Only used by the 'rugged' Git provider."
43
43
  }),
44
44
 
45
+ Definition.new(:github_app_id, {
46
+ :desc => "The Github App id for Git SSL remotes.
47
+ Only used by the 'rugged' Git provider."
48
+ }),
49
+
50
+ Definition.new(:github_app_key, {
51
+ :desc => "The Github App private key for Git SSL remotes.
52
+ Only used by the 'rugged' Git provider."
53
+ }),
54
+
55
+ Definition.new(:github_app_ttl, {
56
+ :desc => "The ttl expiration for SSL tokens.
57
+ Only used by the 'rugged' Git provider.",
58
+ :default => "120",
59
+ }),
60
+
45
61
  URIDefinition.new(:proxy, {
46
62
  :desc => "An optional proxy server to use when interacting with Git sources via HTTP(S).",
47
63
  :default => :inherit,
@@ -65,6 +81,24 @@ module R10K
65
81
  :default => :inherit
66
82
  }),
67
83
 
84
+ Definition.new(:github_app_id, {
85
+ :desc => "The Github App id for Git SSL remotes.
86
+ Only used by the 'rugged' Git provider.",
87
+ :default => :inherit
88
+ }),
89
+
90
+ Definition.new(:github_app_key, {
91
+ :desc => "The Github App private key for Git SSL remotes.
92
+ Only used by the 'rugged' Git provider.",
93
+ :default => :inherit
94
+ }),
95
+
96
+ Definition.new(:github_app_ttl, {
97
+ :desc => "The ttl expiration for Git SSL tokens.
98
+ Only used by the 'rugged' Git provider.",
99
+ :default => :inherit
100
+ }),
101
+
68
102
  URIDefinition.new(:proxy, {
69
103
  :desc => "An optional proxy server to use when interacting with Git sources via HTTP(S).",
70
104
  :default => :inherit,
@@ -92,6 +126,9 @@ module R10K
92
126
  URIDefinition.new(:baseurl, {
93
127
  :desc => "The URL to the Puppet Forge to use for downloading modules."
94
128
  }),
129
+ Definition.new(:authorization_token, {
130
+ :desc => "The token for Puppet Forge authorization. Leave blank for unauthorized or license-based connections."
131
+ })
95
132
  ])
96
133
  end
97
134
 
@@ -158,7 +195,15 @@ module R10K
158
195
  end
159
196
  end
160
197
  }),
161
- ])
198
+ Definition.new(:exclude_spec, {
199
+ :desc => "Whether or not to deploy the spec dir of a module. Defaults to false.",
200
+ :default => false,
201
+ :validate => lambda do |value|
202
+ unless !!value == value
203
+ raise ArgumentError, "`exclude_spec` can only be a boolean value, not '#{value}'"
204
+ end
205
+ end
206
+ })])
162
207
  end
163
208
 
164
209
  def self.global_settings
@@ -177,7 +222,7 @@ module R10K
177
222
  }),
178
223
 
179
224
  Definition.new(:postrun, {
180
- :desc => "The command r10k should run after deploying environments.",
225
+ :desc => "The command r10k should run after deploying environments or modules.",
181
226
  :validate => lambda do |value|
182
227
  if !value.is_a?(Array)
183
228
  raise ArgumentError, "The postrun setting should be an array of strings, not a #{value.class}"
@@ -90,7 +90,7 @@ module R10K
90
90
  def resolve
91
91
  if !@value.nil?
92
92
  @value
93
- elsif @default
93
+ elsif !@default.nil?
94
94
  if @default == :inherit
95
95
  # walk all the way up to root, starting with grandparent
96
96
  ancestor = parent
@@ -63,6 +63,16 @@ class R10K::Source::Base
63
63
 
64
64
  end
65
65
 
66
+ # Perform actions to reload environments after the `preload!`. Similar
67
+ # to preload!, and likely to include network queries and rerunning
68
+ # environment generation.
69
+ #
70
+ # @api public
71
+ # @abstract
72
+ # @return [void]
73
+ def reload!
74
+ end
75
+
66
76
  # Enumerate the environments associated with this SVN source.
67
77
  #
68
78
  # @api public
@@ -93,6 +93,11 @@ class R10K::Source::Git < R10K::Source::Base
93
93
  end
94
94
  end
95
95
 
96
+ def reload!
97
+ @cache.sync!
98
+ @environments = generate_environments()
99
+ end
100
+
96
101
  def generate_environments
97
102
  envs = []
98
103
  branch_names.each do |bn|
@@ -65,6 +65,10 @@ class R10K::Source::SVN < R10K::Source::Base
65
65
  @ignore_branch_prefixes = options[:ignore_branch_prefixes]
66
66
  end
67
67
 
68
+ def reload!
69
+ @environments = generate_environments()
70
+ end
71
+
68
72
  # Enumerate the environments associated with this SVN source.
69
73
  #
70
74
  # @return [Array<R10K::Environment::SVN>] An array of environments created
@@ -9,6 +9,12 @@ module R10K
9
9
  # {#desired_contents}
10
10
  module Purgeable
11
11
 
12
+ HIDDEN_FILE = /\.[^.]+/
13
+
14
+ FN_MATCH_OPTS = File::FNM_PATHNAME | File::FNM_DOTMATCH
15
+
16
+ # @deprecated
17
+ #
12
18
  # @!method logger
13
19
  # @abstract Including classes must provide a logger method
14
20
  # @return [Log4r::Logger]
@@ -38,23 +44,79 @@ module R10K
38
44
  end
39
45
  end
40
46
 
47
+ # @deprecated Unused helper function
48
+ #
41
49
  # @return [Array<String>] Directory contents that are expected but not present
42
50
  def pending_contents(recurse)
43
51
  desired_contents - current_contents(recurse)
44
52
  end
45
53
 
54
+ def matches?(test, path)
55
+ if test == path
56
+ true
57
+ elsif File.fnmatch?(test, path, FN_MATCH_OPTS)
58
+ true
59
+ else
60
+ false
61
+ end
62
+ end
63
+
64
+ # A method to collect potentially purgeable content without searching into
65
+ # ignored directories when recursively searching.
66
+ #
67
+ # @param dir [String, Pathname] The directory to search for purgeable content
68
+ # @param exclusion_gobs [Array<String>] A list of file paths or File globs
69
+ # to exclude from recursion (These are generated by the classes that
70
+ # mix this module into them and are typically programatically generated)
71
+ # @param allowed_gobs [Array<String>] A list of file paths or File globs to exclude
72
+ # from recursion (These are passed in by the caller of purge! and typically
73
+ # are user supplied configuration values)
74
+ # @param desireds_not_to_recurse_into [Array<String>] A list of file paths not to
75
+ # recurse into. These are programatically generated, these exist to maintain
76
+ # backwards compatibility with previous implementations that used File.globs
77
+ # for "recursion", ie "**/{*,.[^.]*}" which would not recurse into dot directories.
78
+ # @param recurse [Boolean] Whether or not to recurse into child directories that do
79
+ # not match other filters.
80
+ #
81
+ # @return [Array<String>] Contents which may be purged.
82
+ def potentially_purgeable(dir, exclusion_globs, allowed_globs, desireds_not_to_recurse_into, recurse)
83
+ children = Pathname.new(dir).children.reject do |path|
84
+ path = path.to_s
85
+
86
+ if exclusion_match = exclusion_globs.find { |exclusion| matches?(exclusion, path) }
87
+ logger.debug2 _("Not purging %{path} due to internal exclusion match: %{exclusion_match}") % {path: path, exclusion_match: exclusion_match}
88
+ elsif allowlist_match = allowed_globs.find { |allowed| matches?(allowed, path) }
89
+ logger.debug _("Not purging %{path} due to whitelist match: %{allowlist_match}") % {path: path, allowlist_match: allowlist_match}
90
+ else
91
+ desired_match = desireds_not_to_recurse_into.grep(path).first
92
+ end
93
+
94
+ !!exclusion_match || !!allowlist_match || !!desired_match
95
+ end
96
+
97
+ children.flat_map do |child|
98
+ if File.directory?(child) && recurse
99
+ potentially_purgeable(child, exclusion_globs, allowed_globs, desireds_not_to_recurse_into, recurse)
100
+ else
101
+ child.to_s
102
+ end
103
+ end
104
+ end
105
+
46
106
  # @return [Array<String>] Directory contents that are present but not expected
47
107
  def stale_contents(recurse, exclusions, whitelist)
48
- fn_match_opts = File::FNM_PATHNAME | File::FNM_DOTMATCH
108
+ dirs = self.managed_directories
109
+ desireds = self.desired_contents
110
+ hidden_desireds, regular_desireds = desireds.partition do |desired|
111
+ HIDDEN_FILE.match(File.basename(desired))
112
+ end
49
113
 
50
- (current_contents(recurse) - desired_contents).reject do |item|
51
- if exclusion_match = exclusions.find { |ex_item| (ex_item == item) || File.fnmatch?(ex_item, item, fn_match_opts) }
52
- logger.debug2 _("Not purging %{item} due to internal exclusion match: %{exclusion_match}") % {item: item, exclusion_match: exclusion_match}
53
- elsif whitelist_match = whitelist.find { |wl_item| (wl_item == item) || File.fnmatch?(wl_item, item, fn_match_opts) }
54
- logger.debug _("Not purging %{item} due to whitelist match: %{whitelist_match}") % {item: item, whitelist_match: whitelist_match}
55
- end
114
+ initial_purgelist = dirs.flat_map do |dir|
115
+ potentially_purgeable(dir, exclusions, whitelist, hidden_desireds, recurse)
116
+ end
56
117
 
57
- !!exclusion_match || !!whitelist_match
118
+ initial_purgelist.reject do |path|
119
+ regular_desireds.any? { |desired| matches?(desired, path) }
58
120
  end
59
121
  end
60
122
 
data/lib/r10k/version.rb CHANGED
@@ -2,5 +2,5 @@ module R10K
2
2
  # When updating to a new major (X) or minor (Y) version, include `#major` or
3
3
  # `#minor` (respectively) in your commit message to trigger the appropriate
4
4
  # release. Otherwise, a new patch (Z) version will be released.
5
- VERSION = '3.9.1'
5
+ VERSION = '3.11.0'
6
6
  end
data/locales/r10k.pot CHANGED
@@ -6,11 +6,11 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: r10k 3.4.1-231-g5574915\n"
9
+ "Project-Id-Version: r10k 3.9.3-75-ge9bdb69\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: docs@puppetlabs.com\n"
12
- "POT-Creation-Date: 2021-05-10 23:18+0000\n"
13
- "PO-Revision-Date: 2021-05-10 23:18+0000\n"
12
+ "POT-Creation-Date: 2021-08-13 23:48+0000\n"
13
+ "PO-Revision-Date: 2021-08-13 23:48+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -31,31 +31,31 @@ msgstr ""
31
31
  msgid "Reason: %{write_lock}"
32
32
  msgstr ""
33
33
 
34
- #: ../lib/r10k/action/deploy/environment.rb:109
34
+ #: ../lib/r10k/action/deploy/environment.rb:113
35
35
  msgid "Environment(s) \\'%{environments}\\' cannot be found in any source and will not be deployed."
36
36
  msgstr ""
37
37
 
38
- #: ../lib/r10k/action/deploy/environment.rb:139
38
+ #: ../lib/r10k/action/deploy/environment.rb:146
39
39
  msgid "Environment %{env_dir} does not match environment name filter, skipping"
40
40
  msgstr ""
41
41
 
42
- #: ../lib/r10k/action/deploy/environment.rb:147
42
+ #: ../lib/r10k/action/deploy/environment.rb:154
43
43
  msgid "Deploying environment %{env_path}"
44
44
  msgstr ""
45
45
 
46
- #: ../lib/r10k/action/deploy/environment.rb:150
46
+ #: ../lib/r10k/action/deploy/environment.rb:157
47
47
  msgid "Environment %{env_dir} is now at %{env_signature}"
48
48
  msgstr ""
49
49
 
50
- #: ../lib/r10k/action/deploy/environment.rb:154
50
+ #: ../lib/r10k/action/deploy/environment.rb:161
51
51
  msgid "Environment %{env_dir} is new, updating all modules"
52
52
  msgstr ""
53
53
 
54
- #: ../lib/r10k/action/deploy/module.rb:78
54
+ #: ../lib/r10k/action/deploy/module.rb:98
55
55
  msgid "Only updating modules in environment(s) %{opt_env} skipping environment %{env_path}"
56
56
  msgstr ""
57
57
 
58
- #: ../lib/r10k/action/deploy/module.rb:80
58
+ #: ../lib/r10k/action/deploy/module.rb:100
59
59
  msgid "Updating modules %{modules} in environment %{env_path}"
60
60
  msgstr ""
61
61
 
@@ -63,27 +63,27 @@ msgstr ""
63
63
  msgid "Syntax OK"
64
64
  msgstr ""
65
65
 
66
- #: ../lib/r10k/action/runner.rb:54 ../lib/r10k/deployment/config.rb:42
66
+ #: ../lib/r10k/action/runner.rb:57 ../lib/r10k/deployment/config.rb:42
67
67
  msgid "Overriding config file setting '%{key}': '%{old_val}' -> '%{new_val}'"
68
68
  msgstr ""
69
69
 
70
- #: ../lib/r10k/action/runner.rb:91
70
+ #: ../lib/r10k/action/runner.rb:99
71
71
  msgid "Reading configuration from %{config_path}"
72
72
  msgstr ""
73
73
 
74
- #: ../lib/r10k/action/runner.rb:94
74
+ #: ../lib/r10k/action/runner.rb:102
75
75
  msgid "No config file explicitly given and no default config file could be found, default settings will be used."
76
76
  msgstr ""
77
77
 
78
- #: ../lib/r10k/content_synchronizer.rb:13
78
+ #: ../lib/r10k/content_synchronizer.rb:27
79
79
  msgid "Updating modules with %{pool_size} threads"
80
80
  msgstr ""
81
81
 
82
- #: ../lib/r10k/content_synchronizer.rb:24
82
+ #: ../lib/r10k/content_synchronizer.rb:37
83
83
  msgid "Error during concurrent deploy of a module: %{message}"
84
84
  msgstr ""
85
85
 
86
- #: ../lib/r10k/content_synchronizer.rb:52
86
+ #: ../lib/r10k/content_synchronizer.rb:75
87
87
  msgid "Module thread %{id} exiting: %{message}"
88
88
  msgstr ""
89
89
 
@@ -95,7 +95,7 @@ msgstr ""
95
95
  msgid "Unable to load sources; the supplied configuration does not define the 'sources' key"
96
96
  msgstr ""
97
97
 
98
- #: ../lib/r10k/environment/base.rb:65 ../lib/r10k/environment/base.rb:81 ../lib/r10k/environment/base.rb:90 ../lib/r10k/source/base.rb:69
98
+ #: ../lib/r10k/environment/base.rb:68 ../lib/r10k/environment/base.rb:84 ../lib/r10k/environment/base.rb:93 ../lib/r10k/source/base.rb:83
99
99
  msgid "%{class} has not implemented method %{method}"
100
100
  msgstr ""
101
101
 
@@ -103,15 +103,15 @@ msgstr ""
103
103
  msgid "Improper configuration value given for strip_component setting in %{src} source. Value must be a string, a /regex/, false, or omitted. Got \"%{val}\" (%{type})"
104
104
  msgstr ""
105
105
 
106
- #: ../lib/r10k/environment/with_modules.rb:60
106
+ #: ../lib/r10k/environment/with_modules.rb:57
107
107
  msgid "Environment and %{src} both define the \"%{name}\" module"
108
108
  msgstr ""
109
109
 
110
- #: ../lib/r10k/environment/with_modules.rb:61
110
+ #: ../lib/r10k/environment/with_modules.rb:58
111
111
  msgid "#{msg_error}. The %{src} definition will be ignored"
112
112
  msgstr ""
113
113
 
114
- #: ../lib/r10k/environment/with_modules.rb:71
114
+ #: ../lib/r10k/environment/with_modules.rb:68
115
115
  msgid "Unexpected value for `module_conflicts` setting in %{env} environment: %{val}"
116
116
  msgstr ""
117
117
 
@@ -207,54 +207,106 @@ msgstr ""
207
207
  msgid "Rugged versions prior to 0.24.0 do not support pruning stale branches during fetch, please upgrade your \\'rugged\\' gem. (Current version is: %{version})"
208
208
  msgstr ""
209
209
 
210
- #: ../lib/r10k/git/rugged/credentials.rb:24
210
+ #: ../lib/r10k/git/rugged/credentials.rb:28
211
211
  msgid "Authentication failed for Git remote %{url}."
212
212
  msgstr ""
213
213
 
214
- #: ../lib/r10k/git/rugged/credentials.rb:48
214
+ #: ../lib/r10k/git/rugged/credentials.rb:52
215
215
  msgid "Using per-repository private key %{key} for URL %{url}"
216
216
  msgstr ""
217
217
 
218
- #: ../lib/r10k/git/rugged/credentials.rb:51
218
+ #: ../lib/r10k/git/rugged/credentials.rb:55
219
219
  msgid "URL %{url} has no per-repository private key using '%{key}'."
220
220
  msgstr ""
221
221
 
222
- #: ../lib/r10k/git/rugged/credentials.rb:53
222
+ #: ../lib/r10k/git/rugged/credentials.rb:57
223
223
  msgid "Git remote %{url} uses the SSH protocol but no private key was given"
224
224
  msgstr ""
225
225
 
226
- #: ../lib/r10k/git/rugged/credentials.rb:57
226
+ #: ../lib/r10k/git/rugged/credentials.rb:61
227
227
  msgid "Unable to use SSH key auth for %{url}: private key %{private_key} is missing or unreadable"
228
228
  msgstr ""
229
229
 
230
- #: ../lib/r10k/git/rugged/credentials.rb:84
230
+ #: ../lib/r10k/git/rugged/credentials.rb:102
231
231
  msgid "Using OAuth token from stdin for URL %{url}"
232
232
  msgstr ""
233
233
 
234
- #: ../lib/r10k/git/rugged/credentials.rb:87
234
+ #: ../lib/r10k/git/rugged/credentials.rb:105
235
235
  msgid "Using OAuth token from %{token_path} for URL %{url}"
236
236
  msgstr ""
237
237
 
238
- #: ../lib/r10k/git/rugged/credentials.rb:89
238
+ #: ../lib/r10k/git/rugged/credentials.rb:107
239
239
  msgid "%{path} is missing or unreadable, cannot load OAuth token"
240
240
  msgstr ""
241
241
 
242
- #: ../lib/r10k/git/rugged/credentials.rb:93
242
+ #: ../lib/r10k/git/rugged/credentials.rb:111
243
243
  msgid "Supplied OAuth token contains invalid characters."
244
244
  msgstr ""
245
245
 
246
- #: ../lib/r10k/git/rugged/credentials.rb:117
246
+ #: ../lib/r10k/git/rugged/credentials.rb:135
247
247
  msgid "URL %{url} includes the username %{username}, using that user for authentication."
248
248
  msgstr ""
249
249
 
250
- #: ../lib/r10k/git/rugged/credentials.rb:120
250
+ #: ../lib/r10k/git/rugged/credentials.rb:138
251
251
  msgid "URL %{url} did not specify a user, using %{user} from configuration"
252
252
  msgstr ""
253
253
 
254
- #: ../lib/r10k/git/rugged/credentials.rb:123
254
+ #: ../lib/r10k/git/rugged/credentials.rb:141
255
255
  msgid "URL %{url} did not specify a user, using current user %{user}"
256
256
  msgstr ""
257
257
 
258
+ #: ../lib/r10k/git/rugged/credentials.rb:148
259
+ msgid "Github App id contains invalid characters."
260
+ msgstr ""
261
+
262
+ #: ../lib/r10k/git/rugged/credentials.rb:149
263
+ msgid "Github App token ttl contains invalid characters."
264
+ msgstr ""
265
+
266
+ #: ../lib/r10k/git/rugged/credentials.rb:150
267
+ msgid "Github App key is missing or unreadable"
268
+ msgstr ""
269
+
270
+ #: ../lib/r10k/git/rugged/credentials.rb:155
271
+ msgid "Github App key is not a valid SSL private key"
272
+ msgstr ""
273
+
274
+ #: ../lib/r10k/git/rugged/credentials.rb:158
275
+ msgid "Github App key is not a valid SSL key"
276
+ msgstr ""
277
+
278
+ #: ../lib/r10k/git/rugged/credentials.rb:161
279
+ msgid "Using Github App id %{app_id} with SSL key from %{key_path}"
280
+ msgstr ""
281
+
282
+ #: ../lib/r10k/git/rugged/credentials.rb:178
283
+ msgid ""
284
+ "Unexpected response code: #{get_response.code}\n"
285
+ "Response body: #{get_response.body}"
286
+ msgstr ""
287
+
288
+ #: ../lib/r10k/git/rugged/credentials.rb:179
289
+ msgid "Error using private key to get Github App access token from url"
290
+ msgstr ""
291
+
292
+ #: ../lib/r10k/git/rugged/credentials.rb:194
293
+ msgid ""
294
+ "Unexpected response code: #{post_response.code}\n"
295
+ "Response body: #{post_response.body}"
296
+ msgstr ""
297
+
298
+ #: ../lib/r10k/git/rugged/credentials.rb:195
299
+ msgid "Error using private key to generate access token from #{access_token_url}"
300
+ msgstr ""
301
+
302
+ #: ../lib/r10k/git/rugged/credentials.rb:200
303
+ msgid "Github App token contains invalid characters."
304
+ msgstr ""
305
+
306
+ #: ../lib/r10k/git/rugged/credentials.rb:202
307
+ msgid "Github App token generated, expires at: %{expire}"
308
+ msgstr ""
309
+
258
310
  #: ../lib/r10k/git/rugged/thin_repository.rb:85 ../lib/r10k/git/shellgit/thin_repository.rb:65
259
311
  msgid "Updated repo %{path} to include alternate object db path %{objects_dir}"
260
312
  msgstr ""
@@ -319,23 +371,39 @@ msgstr ""
319
371
  msgid "Module %{name} with args %{args} doesn't have an implementation. (Are you using the right arguments?)"
320
372
  msgstr ""
321
373
 
322
- #: ../lib/r10k/module/base.rb:75
374
+ #: ../lib/r10k/module/base.rb:80
375
+ msgid "Spec dir for #{@title} will not be deleted because it is not in the moduledir"
376
+ msgstr ""
377
+
378
+ #: ../lib/r10k/module/base.rb:92
379
+ msgid "Deleting spec data at #{spec_path}"
380
+ msgstr ""
381
+
382
+ #: ../lib/r10k/module/base.rb:100
383
+ msgid "No spec dir detected at #{spec_path}, skipping deletion"
384
+ msgstr ""
385
+
386
+ #: ../lib/r10k/module/base.rb:112
323
387
  msgid "Deploying module to %{path}"
324
388
  msgstr ""
325
389
 
326
- #: ../lib/r10k/module/base.rb:78
390
+ #: ../lib/r10k/module/base.rb:115
327
391
  msgid "Only updating modules %{modules}, skipping module %{name}"
328
392
  msgstr ""
329
393
 
330
- #: ../lib/r10k/module/base.rb:134
394
+ #: ../lib/r10k/module/base.rb:171
331
395
  msgid "Module name (%{title}) must match either 'modulename' or 'owner/modulename'"
332
396
  msgstr ""
333
397
 
334
- #: ../lib/r10k/module/forge.rb:88 ../lib/r10k/module/forge.rb:117
398
+ #: ../lib/r10k/module/forge.rb:90
399
+ msgid "The module %{title} does not appear to have any published releases, cannot determine latest version."
400
+ msgstr ""
401
+
402
+ #: ../lib/r10k/module/forge.rb:93 ../lib/r10k/module/forge.rb:122
335
403
  msgid "The module %{title} does not exist on %{url}."
336
404
  msgstr ""
337
405
 
338
- #: ../lib/r10k/module/forge.rb:192
406
+ #: ../lib/r10k/module/forge.rb:197
339
407
  msgid "Forge module names must match 'owner/modulename', instead got #{title}"
340
408
  msgstr ""
341
409
 
@@ -351,30 +419,34 @@ msgstr ""
351
419
  msgid "Could not read metadata.json"
352
420
  msgstr ""
353
421
 
354
- #: ../lib/r10k/puppetfile.rb:73
422
+ #: ../lib/r10k/module_loader/puppetfile.rb:49
355
423
  msgid "Using Puppetfile '%{puppetfile}'"
356
424
  msgstr ""
357
425
 
358
- #: ../lib/r10k/puppetfile.rb:87
359
- msgid "Puppetfile %{path} missing or unreadable"
426
+ #: ../lib/r10k/module_loader/puppetfile.rb:50
427
+ msgid "Using moduledir '%{moduledir}'"
360
428
  msgstr ""
361
429
 
362
- #: ../lib/r10k/puppetfile.rb:100
430
+ #: ../lib/r10k/module_loader/puppetfile.rb:74
363
431
  msgid "Failed to evaluate %{path}"
364
432
  msgstr ""
365
433
 
366
- #: ../lib/r10k/puppetfile.rb:114
434
+ #: ../lib/r10k/module_loader/puppetfile.rb:149
367
435
  msgid "Puppetfiles cannot contain duplicate module names."
368
436
  msgstr ""
369
437
 
370
- #: ../lib/r10k/puppetfile.rb:116
438
+ #: ../lib/r10k/module_loader/puppetfile.rb:151
371
439
  msgid "Remove the duplicates of the following modules: %{dupes}"
372
440
  msgstr ""
373
441
 
374
- #: ../lib/r10k/puppetfile.rb:276
442
+ #: ../lib/r10k/module_loader/puppetfile/dsl.rb:32
375
443
  msgid "unrecognized declaration '%{method}'"
376
444
  msgstr ""
377
445
 
446
+ #: ../lib/r10k/puppetfile.rb:105
447
+ msgid "Puppetfile %{path} missing or unreadable"
448
+ msgstr ""
449
+
378
450
  #: ../lib/r10k/settings/collection.rb:77
379
451
  msgid "Validation failed for '%{name}' settings group"
380
452
  msgstr ""
@@ -454,27 +526,27 @@ msgid ""
454
526
  "Returned: %{data}"
455
527
  msgstr ""
456
528
 
457
- #: ../lib/r10k/source/git.rb:77
529
+ #: ../lib/r10k/source/git.rb:75
458
530
  msgid "Fetching '%{remote}' to determine current branches."
459
531
  msgstr ""
460
532
 
461
- #: ../lib/r10k/source/git.rb:80
533
+ #: ../lib/r10k/source/git.rb:78
462
534
  msgid "Unable to determine current branches for Git source '%{name}' (%{basedir})"
463
535
  msgstr ""
464
536
 
465
- #: ../lib/r10k/source/git.rb:110
537
+ #: ../lib/r10k/source/git.rb:113
466
538
  msgid "Environment %{env_name} contained non-word characters, correcting name to %{corrected_env_name}"
467
539
  msgstr ""
468
540
 
469
- #: ../lib/r10k/source/git.rb:119
541
+ #: ../lib/r10k/source/git.rb:122
470
542
  msgid "Environment %{env_name} contained non-word characters, ignoring it."
471
543
  msgstr ""
472
544
 
473
- #: ../lib/r10k/source/git.rb:138 ../lib/r10k/source/svn.rb:113
545
+ #: ../lib/r10k/source/git.rb:141 ../lib/r10k/source/svn.rb:115
474
546
  msgid "Branch %{branch} filtered out by ignore_branch_prefixes %{ibp}"
475
547
  msgstr ""
476
548
 
477
- #: ../lib/r10k/source/git.rb:149
549
+ #: ../lib/r10k/source/git.rb:152
478
550
  msgid "Branch `%{name}:%{branch}` filtered out by filter_command %{cmd}"
479
551
  msgstr ""
480
552
 
@@ -518,23 +590,23 @@ msgstr ""
518
590
  msgid "pe_license feature is not available, PE only Puppet modules will not be downloadable."
519
591
  msgstr ""
520
592
 
521
- #: ../lib/r10k/util/purgeable.rb:52
522
- msgid "Not purging %{item} due to internal exclusion match: %{exclusion_match}"
593
+ #: ../lib/r10k/util/purgeable.rb:87
594
+ msgid "Not purging %{path} due to internal exclusion match: %{exclusion_match}"
523
595
  msgstr ""
524
596
 
525
- #: ../lib/r10k/util/purgeable.rb:54
526
- msgid "Not purging %{item} due to whitelist match: %{whitelist_match}"
597
+ #: ../lib/r10k/util/purgeable.rb:89
598
+ msgid "Not purging %{path} due to whitelist match: %{allowlist_match}"
527
599
  msgstr ""
528
600
 
529
- #: ../lib/r10k/util/purgeable.rb:71
601
+ #: ../lib/r10k/util/purgeable.rb:133
530
602
  msgid "No unmanaged contents in %{managed_dirs}, nothing to purge"
531
603
  msgstr ""
532
604
 
533
- #: ../lib/r10k/util/purgeable.rb:76
605
+ #: ../lib/r10k/util/purgeable.rb:138
534
606
  msgid "Removing unmanaged path %{path}"
535
607
  msgstr ""
536
608
 
537
- #: ../lib/r10k/util/purgeable.rb:81
609
+ #: ../lib/r10k/util/purgeable.rb:143
538
610
  msgid "Unable to remove unmanaged path: %{path}"
539
611
  msgstr ""
540
612