class Dependabot::PullRequestCreator::Codecommit
Attributes
base_commit[R]
branch_name[R]
commit_message[R]
credentials[R]
files[R]
labeler[R]
pr_description[R]
pr_name[R]
source[R]
Public Class Methods
new(source:, branch_name:, base_commit:, credentials:, files:, commit_message:, pr_description:, pr_name:, author_details:, labeler:, require_up_to_date_base:)
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 13 def initialize(source:, branch_name:, base_commit:, credentials:, files:, commit_message:, pr_description:, pr_name:, author_details:, labeler:, require_up_to_date_base:) @source = source @branch_name = branch_name @base_commit = base_commit @credentials = credentials @files = files @commit_message = commit_message @pr_description = pr_description @pr_name = pr_name @author_details = author_details @labeler = labeler @require_up_to_date_base = require_up_to_date_base end
Public Instance Methods
create()
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 29 def create return if branch_exists?(branch_name) && unmerged_pull_request_exists? return if require_up_to_date_base? && !base_commit_is_up_to_date? create_pull_request end
Private Instance Methods
base_commit_is_up_to_date?()
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 42 def base_commit_is_up_to_date? codecommit_client_for_source.fetch_commit( source.repo, branch_name ) == base_commit end
branch_exists?(branch_name)
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 92 def branch_exists?(branch_name) @branch_ref ||= codecommit_client_for_source.branch(branch_name) rescue Aws::CodeCommit::Errors::BranchDoesNotExistException false end
codecommit_client_for_source()
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 84 def codecommit_client_for_source @codecommit_client_for_source ||= Dependabot::Clients::CodeCommit.for_source( source: source, credentials: credentials ) end
create_branch(commit)
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 76 def create_branch(commit) # codecommit returns an empty response on create branch success codecommit_client_for_source.create_branch(source.repo, branch_name, commit) @branch_name = branch_name branch_name end
create_commit()
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 127 def create_commit author = author_details&.slice(:name, :email, :date) author = nil unless author&.any? codecommit_client_for_source.create_commit( branch_name, author, base_commit, commit_message, files ) end
create_or_get_branch(commit)
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 67 def create_or_get_branch(commit) # returns the branch name if branch_exists?(branch_name) branch_name else create_branch(commit) end end
create_pull_request()
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 49 def create_pull_request branch = create_or_get_branch(base_commit) return unless branch create_commit pull_request = codecommit_client_for_source.create_pull_request( pr_name, branch_name, source.branch || default_branch, pr_description # codecommit doesn't support PR labels ) return unless pull_request pull_request end
default_branch()
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 140 def default_branch @default_branch ||= codecommit_client_for_source.fetch_default_branch(source.repo) end
pull_requests_for_branch()
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 109 def pull_requests_for_branch @pull_requests_for_branch ||= begin open_prs = codecommit_client_for_source.pull_requests( source.repo, "open", source.branch || default_branch ) closed_prs = codecommit_client_for_source.pull_requests( source.repo, "closed", source.branch || default_branch ) [*open_prs, *closed_prs] end end
require_up_to_date_base?()
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 38 def require_up_to_date_base? @require_up_to_date_base end
unmerged_pull_request_exists?()
click to toggle source
# File lib/dependabot/pull_request_creator/codecommit.rb, line 98 def unmerged_pull_request_exists? unmerged_prs = [] pull_requests_for_branch.each do |pr| unless pr.pull_request. pull_request_targets[0].merge_metadata.is_merged unmerged_prs << pr end end unmerged_prs.any? end