r10k 3.9.1 → 3.11.0

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.
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