class Dependabot::PullRequestCreator::Azure

Attributes

author_details[R]
base_commit[R]
branch_name[R]
commit_message[R]
credentials[R]
files[R]
labeler[R]
pr_description[R]
pr_name[R]
source[R]
work_item[R]

Public Class Methods

new(source:, branch_name:, base_commit:, credentials:, files:, commit_message:, pr_description:, pr_name:, author_details:, labeler:, work_item: nil) click to toggle source
# File lib/dependabot/pull_request_creator/azure.rb, line 13
def initialize(source:, branch_name:, base_commit:, credentials:,
               files:, commit_message:, pr_description:, pr_name:,
               author_details:, labeler:, work_item: nil)
  @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
  @work_item      = work_item
end

Public Instance Methods

create() click to toggle source
# File lib/dependabot/pull_request_creator/azure.rb, line 29
def create
  return if branch_exists? && pull_request_exists?

  # For Azure we create or update a branch in the same request as creating
  # a commit (so we don't need create or update branch logic here)
  create_commit

  create_pull_request
end

Private Instance Methods

azure_client_for_source() click to toggle source
# File lib/dependabot/pull_request_creator/azure.rb, line 41
def azure_client_for_source
  @azure_client_for_source ||=
    Dependabot::Clients::Azure.for_source(
      source: source,
      credentials: credentials
    )
end
branch_exists?() click to toggle source
# File lib/dependabot/pull_request_creator/azure.rb, line 49
def branch_exists?
  azure_client_for_source.branch(branch_name)
rescue ::Azure::Error::NotFound
  false
end
create_commit() click to toggle source
# File lib/dependabot/pull_request_creator/azure.rb, line 62
def create_commit
  author = author_details&.slice(:name, :email, :date)
  author = nil unless author&.any?

  azure_client_for_source.create_commit(
    branch_name,
    base_commit,
    commit_message,
    files,
    author
  )
end
create_pull_request() click to toggle source
# File lib/dependabot/pull_request_creator/azure.rb, line 75
def create_pull_request
  azure_client_for_source.create_pull_request(
    pr_name,
    branch_name,
    source.branch || default_branch,
    pr_description,
    labeler.labels_for_pr,
    work_item
  )
end
default_branch() click to toggle source
# File lib/dependabot/pull_request_creator/azure.rb, line 86
def default_branch
  @default_branch ||=
    azure_client_for_source.fetch_default_branch(source.repo)
end
pull_request_exists?() click to toggle source
# File lib/dependabot/pull_request_creator/azure.rb, line 55
def pull_request_exists?
  azure_client_for_source.pull_requests(
    branch_name,
    source.branch || default_branch
  ).any?
end