class Dependabot::Config::File
Configuration for the repository, a parsed dependabot.yaml.
Constants
- PACKAGE_MANAGER_LOOKUP
Attributes
registries[R]
updates[R]
Public Class Methods
new(updates:, registries: nil)
click to toggle source
# File lib/dependabot/config/file.rb, line 11 def initialize(updates:, registries: nil) @updates = updates || [] @registries = registries || [] end
parse(config)
click to toggle source
Parse the YAML config file
# File lib/dependabot/config/file.rb, line 30 def self.parse(config) parsed = YAML.safe_load(config, symbolize_names: true) version = parsed[:version] raise InvalidConfigError, "invalid version #{version}" if version && version != 2 File.new(updates: parsed[:updates], registries: parsed[:registries]) end
Public Instance Methods
update_config(package_manager, directory: nil, target_branch: nil)
click to toggle source
# File lib/dependabot/config/file.rb, line 16 def update_config(package_manager, directory: nil, target_branch: nil) dir = directory || "/" package_ecosystem = PACKAGE_MANAGER_LOOKUP.invert.fetch(package_manager) cfg = updates.find do |u| u[:"package-ecosystem"] == package_ecosystem && u[:directory] == dir && (target_branch.nil? || u[:"target-branch"] == target_branch) end Dependabot::Config::UpdateConfig.new( ignore_conditions: ignore_conditions(cfg), commit_message_options: commit_message_options(cfg) ) end
Private Instance Methods
commit_message_options(cfg)
click to toggle source
# File lib/dependabot/config/file.rb, line 69 def commit_message_options(cfg) commit_message = cfg&.dig(:"commit-message") || {} Dependabot::Config::UpdateConfig::CommitMessageOptions.new( prefix: commit_message[:prefix], prefix_development: commit_message[:"prefix-development"], include: commit_message[:include] ) end
ignore_conditions(cfg)
click to toggle source
# File lib/dependabot/config/file.rb, line 58 def ignore_conditions(cfg) ignores = cfg&.dig(:ignore) || [] ignores.map do |ic| Dependabot::Config::IgnoreCondition.new( dependency_name: ic[:"dependency-name"], versions: ic[:versions], update_types: ic[:"update-types"] ) end end