Class: R10K::ModuleRepository::Forge
- Inherits:
-
Object
- Object
- R10K::ModuleRepository::Forge
- Includes:
- Logging
- Defined in:
- lib/r10k/module_repository/forge.rb
Constant Summary
Constants included from Logging
Instance Attribute Summary collapse
- #:conn(: conn) ⇒ Faraday readonly private
-
#conn ⇒ Object
readonly
Returns the value of attribute conn.
-
#forge ⇒ Object
readonly
Returns the value of attribute forge.
Instance Method Summary collapse
-
#initialize(forge = 'forgeapi.puppetlabs.com') ⇒ Forge
constructor
A new instance of Forge.
-
#latest_version(module_name) ⇒ String
Query for the newest published version of a module.
-
#versions(module_name) ⇒ Array<String>
Query for all published versions of a module.
Methods included from Logging
debug_formatter, default_formatter, default_outputter, #logger, #logger_name, parse_level
Constructor Details
#initialize(forge = 'forgeapi.puppetlabs.com') ⇒ Forge
Returns a new instance of Forge.
23 24 25 26 27 28 29 30 |
# File 'lib/r10k/module_repository/forge.rb', line 23 def initialize(forge = 'forgeapi.puppetlabs.com') if forge =~ /forge\.puppetlabs\.com/ logger.warn("#{forge} does not support the latest puppet forge API. Please update to \"forge 'https://forgeapi.puppetlabs.com'\"") forge = 'forgeapi.puppetlabs.com' end @forge = forge @conn = make_conn end |
Instance Attribute Details
#:conn(: conn) ⇒ Faraday (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
21 |
# File 'lib/r10k/module_repository/forge.rb', line 21 attr_reader :conn |
#conn ⇒ Object (readonly)
Returns the value of attribute conn.
21 22 23 |
# File 'lib/r10k/module_repository/forge.rb', line 21 def conn @conn end |
#forge ⇒ Object (readonly)
Returns the value of attribute forge.
16 17 18 |
# File 'lib/r10k/module_repository/forge.rb', line 16 def forge @forge end |
Instance Method Details
#latest_version(module_name) ⇒ String
Query for the newest published version of a module
65 66 67 |
# File 'lib/r10k/module_repository/forge.rb', line 65 def latest_version(module_name) versions(module_name).last end |
#versions(module_name) ⇒ Array<String>
Query for all published versions of a module
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/r10k/module_repository/forge.rb', line 41 def versions(module_name) path = "/v3/modules/#{module_name.tr('/','-')}" response = @conn.get(path) if response.status != 200 raise R10K::Error.new("Request to Puppet Forge '#{path}' failed. Status: #{response.status}") end releases = response.body['releases'].reject { |r| r['deleted_at'] } releases = releases.map do |version_info| version_info['version'] end releases.reverse end |