Class: Dependabot::PullRequestCreator

Inherits:
Object
  • Object
show all
Defined in:
lib/dependabot/pull_request_creator.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/branch_namer.rb,
lib/dependabot/pull_request_creator/commit_signer.rb,
lib/dependabot/pull_request_creator/message_builder.rb

Defined Under Namespace

Classes: BranchNamer, CommitSigner, Github, Gitlab, Labeler, MessageBuilder, NoHistoryInCommon, RepoArchived, RepoNotFound

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of PullRequestCreator.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/dependabot/pull_request_creator.rb', line 23

def initialize(source:, base_commit:, dependencies:, files:, credentials:,
               pr_message_footer: nil, custom_labels: nil,
               author_details: nil, signature_key: nil,
               reviewers: nil, assignees: nil, milestone: nil,
               vulnerabilities_fixed: {}, branch_name_separator: "/",
               branch_name_prefix: "dependabot",
               label_language: false, automerge_candidate: false,
               github_redirection_service: "github-redirect.dependabot.com")
  @dependencies               = dependencies
  @source                     = source
  @base_commit                = base_commit
  @files                      = files
  @credentials                = credentials
  @pr_message_footer          = pr_message_footer
  @author_details             = author_details
  @signature_key              = signature_key
  @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

  check_dependencies_have_previous_version
end

Instance Attribute Details

#assigneesObject (readonly)

Returns the value of attribute assignees.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def assignees
  @assignees
end

#author_detailsObject (readonly)

Returns the value of attribute author_details.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def author_details
  @author_details
end

#base_commitObject (readonly)

Returns the value of attribute base_commit.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def base_commit
  @base_commit
end

#branch_name_prefixObject (readonly)

Returns the value of attribute branch_name_prefix.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def branch_name_prefix
  @branch_name_prefix
end

#branch_name_separatorObject (readonly)

Returns the value of attribute branch_name_separator.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def branch_name_separator
  @branch_name_separator
end

#credentialsObject (readonly)

Returns the value of attribute credentials.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def credentials
  @credentials
end

#custom_labelsObject (readonly)

Returns the value of attribute custom_labels.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def custom_labels
  @custom_labels
end

#dependenciesObject (readonly)

Returns the value of attribute dependencies.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def dependencies
  @dependencies
end

#filesObject (readonly)

Returns the value of attribute files.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def files
  @files
end

#github_redirection_serviceObject (readonly)

Returns the value of attribute github_redirection_service.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def github_redirection_service
  @github_redirection_service
end

#milestoneObject (readonly)

Returns the value of attribute milestone.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def milestone
  @milestone
end

Returns the value of attribute pr_message_footer.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def pr_message_footer
  @pr_message_footer
end

#reviewersObject (readonly)

Returns the value of attribute reviewers.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def reviewers
  @reviewers
end

#signature_keyObject (readonly)

Returns the value of attribute signature_key.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def signature_key
  @signature_key
end

#sourceObject (readonly)

Returns the value of attribute source.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def source
  @source
end

#vulnerabilities_fixedObject (readonly)

Returns the value of attribute vulnerabilities_fixed.



17
18
19
# File 'lib/dependabot/pull_request_creator.rb', line 17

def vulnerabilities_fixed
  @vulnerabilities_fixed
end

Instance Method Details

#check_dependencies_have_previous_versionObject



53
54
55
56
57
58
59
# File 'lib/dependabot/pull_request_creator.rb', line 53

def check_dependencies_have_previous_version
  return if library? && 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



61
62
63
64
65
66
67
# File 'lib/dependabot/pull_request_creator.rb', line 61

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