class DependabotGitlab::CoreFunctions
Constants
- DEFAULT_API_ENDPOINT
- DEFAULT_BRANCH
- DEFAULT_HOST_NAME
- DEFAULT_PROVIDER
Public Class Methods
new(credentials, settings)
click to toggle source
# File lib/dependabot_gitlab/core_functions.rb, line 9 def initialize(credentials, settings) @settings = settings @credentials = credentials end
Public Instance Methods
dependencies_info(create_merge_request)
click to toggle source
# File lib/dependabot_gitlab/core_functions.rb, line 14 def dependencies_info(create_merge_request) messages = [] init_source file_fetcher = fetcher files = file_fetcher.files dependencies = parser(files).parse commit = file_fetcher.commit dependencies.select(&:top_level?).each do |dep| checker = checker(files, dep) next if checker.up_to_date? requirements_to_unlock = unlock_requirements(checker) next if requirements_to_unlock == :update_not_possible updated_deps = checker.updated_dependencies( requirements_to_unlock: requirements_to_unlock ) updater = file_updater(updated_deps, files) updated_files = updater.updated_dependency_files create_mr(updated_files, updated_deps, commit) if create_merge_request messages << {name: dep.name, old_version: dep.version, new_version: updater.dependencies.first.version} end messages.join end
Private Instance Methods
checker(files, dep)
click to toggle source
# File lib/dependabot_gitlab/core_functions.rb, line 78 def checker(files, dep) Dependabot::UpdateCheckers.for_package_manager(@settings[:pkg_manager]).new( dependency: dep, dependency_files: files, credentials: @credentials, ) end
create_mr(updated_files, updated_deps, commit)
click to toggle source
# File lib/dependabot_gitlab/core_functions.rb, line 110 def create_mr(updated_files, updated_deps, commit) pr_creator = Dependabot::PullRequestCreator.new( source: @source, base_commit: commit, dependencies: updated_deps, files: updated_files, credentials: @credentials, assignees: @settings[:assignees], author_details: @settings[:author_details] || {name: "Dependabot", email: "no-reply@github.com"}, label_language: true, ) pr_creator.create end
fetcher()
click to toggle source
# File lib/dependabot_gitlab/core_functions.rb, line 63 def fetcher Dependabot::FileFetchers.for_package_manager(@settings[:pkg_manager]).new( source: @source, credentials: @credentials, ) end
file_updater(updated_deps, files)
click to toggle source
# File lib/dependabot_gitlab/core_functions.rb, line 102 def file_updater(updated_deps, files) Dependabot::FileUpdaters.for_package_manager(@settings[:pkg_manager]).new( dependencies: updated_deps, dependency_files: files, credentials: @credentials, ) end
init_source()
click to toggle source
# File lib/dependabot_gitlab/core_functions.rb, line 52 def init_source @source = Dependabot::Source.new( provider: @settings[:provider] || DEFAULT_PROVIDER, hostname: @settings[:hostname] || DEFAULT_HOST_NAME, api_endpoint: @settings[:api_endpoint] || DEFAULT_API_ENDPOINT, repo: @settings[:repo], directory: @settings[:dir], branch: @settings[:branch] || DEFAULT_BRANCH ) end
parser(files)
click to toggle source
# File lib/dependabot_gitlab/core_functions.rb, line 70 def parser(files) Dependabot::FileParsers.for_package_manager(@settings[:pkg_manager]).new( dependency_files: files, source: @source, credentials: @credentials, ) end
unlock_requirements(checker)
click to toggle source
# File lib/dependabot_gitlab/core_functions.rb, line 86 def unlock_requirements(checker) if !checker.requirements_unlocked_or_can_be? if checker.can_update?(requirements_to_unlock: :none) then :none else :update_not_possible end elsif checker.can_update?(requirements_to_unlock: :own) then :own elsif checker.can_update?(requirements_to_unlock: :all) then :all else :update_not_possible end end