class Dependabot::Config::File
Configuration for the repository, a parsed dependabot.yaml.
def self.parse(config)
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
def commit_message_options(cfg)
def commit_message_options(cfg) commit_message = cfg&.dig(:"commit-message") || {} UpdateConfig::CommitMessageOptions.new( prefix: commit_message[:prefix], prefix_development: commit_message[:"prefix-development"] || commit_message[:prefix], include: commit_message[:include] ) end
def ignore_conditions(cfg)
def ignore_conditions(cfg) ignores = cfg&.dig(:ignore) || [] ignores.map do |ic| IgnoreCondition.new( dependency_name: ic[:"dependency-name"], versions: ic[:versions], update_types: ic[:"update-types"] ) end end
def initialize(updates:, registries: nil)
def initialize(updates:, registries: nil) @updates = T.let(updates || [], T::Array[T::Hash[Symbol, String]]) @registries = T.let(registries || {}, T::Hash[Symbol, T::Hash[Symbol, String]]) end
def update_config(package_manager, directory: nil, target_branch: nil)
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 UpdateConfig.new( ignore_conditions: ignore_conditions(cfg), commit_message_options: commit_message_options(cfg) ) end