Class: Dependabot::PullRequestCreator

Inherits:
Object
  • Object
show all
Defined in:
lib/dependabot/pull_request_creator.rb,
lib/dependabot/pull_request_creator/azure.rb,
lib/dependabot/pull_request_creator/github.rb,
lib/dependabot/pull_request_creator/gitlab.rb,
lib/dependabot/pull_request_creator/labeler.rb,
lib/dependabot/pull_request_creator/codecommit.rb,
lib/dependabot/pull_request_creator/branch_namer.rb,
lib/dependabot/pull_request_creator/commit_signer.rb,
lib/dependabot/pull_request_creator/message_builder.rb,
lib/dependabot/pull_request_creator/pr_name_prefixer.rb,
lib/dependabot/pull_request_creator/message_builder/issue_linker.rb,
lib/dependabot/pull_request_creator/message_builder/metadata_presenter.rb,
lib/dependabot/pull_request_creator/message_builder/link_and_mention_sanitizer.rb

Defined Under Namespace

Classes: AnnotationError, Azure, BranchNamer, Codecommit, CommitSigner, Github, Gitlab, Labeler, MessageBuilder, NoHistoryInCommon, PrNamePrefixer, RepoArchived, RepoDisabled, RepoNotFound

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source:, base_commit:, dependencies:, files:, credentials:, pr_message_header: nil, pr_message_footer: nil, custom_labels: nil, author_details: nil, signature_key: nil, commit_message_options: {}, vulnerabilities_fixed: {}, reviewers: nil, assignees: nil, milestone: nil, branch_name_separator: "/", branch_name_prefix: "dependabot", label_language: false, automerge_candidate: false, github_redirection_service: "github-redirect.dependabot.com", custom_headers: nil, require_up_to_date_base: false, provider_metadata: {}) ⇒ PullRequestCreator

Returns a new instance of PullRequestCreator.


38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/dependabot/pull_request_creator.rb', line 38

def initialize(source:, base_commit:, dependencies:, files:, credentials:,
               pr_message_header: nil, pr_message_footer: nil,
               custom_labels: nil, author_details: nil, signature_key: nil,
               commit_message_options: {}, vulnerabilities_fixed: {},
               reviewers: nil, assignees: nil, milestone: nil,
               branch_name_separator: "/", branch_name_prefix: "dependabot",
               label_language: false, automerge_candidate: false,
               github_redirection_service: "github-redirect.dependabot.com",
               custom_headers: nil, require_up_to_date_base: false,
               provider_metadata: {})
  @dependencies               = dependencies
  @source                     = source
  @base_commit                = base_commit
  @files                      = files
  @credentials                = credentials
  @pr_message_header          = pr_message_header
  @pr_message_footer          = pr_message_footer
  @author_details             = author_details
  @signature_key              = signature_key
  @commit_message_options     = commit_message_options
  @custom_labels              = custom_labels
  @reviewers                  = reviewers
  @assignees                  = assignees
  @milestone                  = milestone
  @vulnerabilities_fixed      = vulnerabilities_fixed
  @branch_name_separator      = branch_name_separator
  @branch_name_prefix         = branch_name_prefix
  @label_language             = label_language
  @automerge_candidate        = automerge_candidate
  @github_redirection_service = github_redirection_service
  @custom_headers             = custom_headers
  @require_up_to_date_base    = require_up_to_date_base
  @provider_metadata          = 

  check_dependencies_have_previous_version
end

Instance Attribute Details

#assigneesObject (readonly)

Returns the value of attribute assignees


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def assignees
  @assignees
end

#author_detailsObject (readonly)

Returns the value of attribute author_details


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def author_details
  @author_details
end

#base_commitObject (readonly)

Returns the value of attribute base_commit


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def base_commit
  @base_commit
end

#branch_name_prefixObject (readonly)

Returns the value of attribute branch_name_prefix


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def branch_name_prefix
  @branch_name_prefix
end

#branch_name_separatorObject (readonly)

Returns the value of attribute branch_name_separator


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def branch_name_separator
  @branch_name_separator
end

#commit_message_optionsObject (readonly)

Returns the value of attribute commit_message_options


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def commit_message_options
  @commit_message_options
end

#credentialsObject (readonly)

Returns the value of attribute credentials


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def credentials
  @credentials
end

#custom_headersObject (readonly)

Returns the value of attribute custom_headers


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def custom_headers
  @custom_headers
end

#custom_labelsObject (readonly)

Returns the value of attribute custom_labels


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def custom_labels
  @custom_labels
end

#dependenciesObject (readonly)

Returns the value of attribute dependencies


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def dependencies
  @dependencies
end

#filesObject (readonly)

Returns the value of attribute files


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def files
  @files
end

#github_redirection_serviceObject (readonly)

Returns the value of attribute github_redirection_service


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def github_redirection_service
  @github_redirection_service
end

#milestoneObject (readonly)

Returns the value of attribute milestone


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def milestone
  @milestone
end

Returns the value of attribute pr_message_footer


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def pr_message_footer
  @pr_message_footer
end

#pr_message_headerObject (readonly)

Returns the value of attribute pr_message_header


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def pr_message_header
  @pr_message_header
end

#provider_metadataObject (readonly)

Returns the value of attribute provider_metadata


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def 
  @provider_metadata
end

#reviewersObject (readonly)

Returns the value of attribute reviewers


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def reviewers
  @reviewers
end

#signature_keyObject (readonly)

Returns the value of attribute signature_key


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def signature_key
  @signature_key
end

#sourceObject (readonly)

Returns the value of attribute source


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def source
  @source
end

#vulnerabilities_fixedObject (readonly)

Returns the value of attribute vulnerabilities_fixed


30
31
32
# File 'lib/dependabot/pull_request_creator.rb', line 30

def vulnerabilities_fixed
  @vulnerabilities_fixed
end

Instance Method Details

#check_dependencies_have_previous_versionObject


75
76
77
78
79
80
81
# File 'lib/dependabot/pull_request_creator.rb', line 75

def check_dependencies_have_previous_version
  return if dependencies.all? { |d| requirements_changed?(d) }
  return if dependencies.all?(&:previous_version)

  raise "Dependencies must have a previous version or changed " \
        "requirement to have a pull request created for them!"
end

#createObject


83
84
85
86
87
88
89
90
91
# File 'lib/dependabot/pull_request_creator.rb', line 83

def create
  case source.provider
  when "github" then github_creator.create
  when "gitlab" then gitlab_creator.create
  when "azure" then azure_creator.create
  when "codecommit" then codecommit_creator.create
  else raise "Unsupported provider #{source.provider}"
  end
end