module LockDiff

Constants

VERSION

Attributes

config[RW]

Public Class Methods

init!() click to toggle source
# File lib/lock_diff.rb, line 17
def init!
  self.config = Config.new
end
logger() click to toggle source
# File lib/lock_diff.rb, line 21
def logger
  config.logger
end
run(repository:, number:, post_comment: false) click to toggle source
# File lib/lock_diff.rb, line 25
def run(repository:, number:, post_comment: false)
  pr = PullRequest.find_by(repository: repository, number: number)
  _run(pull_request: pr, post_comment: post_comment)
end
run_by_latest_tachikoma(repository:, post_comment: false) click to toggle source
# File lib/lock_diff.rb, line 30
def run_by_latest_tachikoma(repository:, post_comment: false)
  pr = PullRequest.latest_by_tachikoma(repository)
  if pr
    LockDiff.logger.info { "Running on repository: #{pr.repository}, number: #{pr.number}"}
    _run(pull_request: pr, post_comment: post_comment)
  else
    LockDiff.logger.warn("Not found pull request by tachikoma. (Hint: search pull request by whether branch name includes 'tachikoma'")
  end
end

Private Class Methods

_run(pull_request:, post_comment: false) click to toggle source
# File lib/lock_diff.rb, line 42
def _run(pull_request:, post_comment: false)
  lockfile_diff_infos = LockfileComparator.compare_by(pull_request)

  if lockfile_diff_infos.empty?
    LockDiff.logger.info("Lock file is changed but changed gem does not exist.")
    return
  end

  result = config.formatter.format(lockfile_diff_infos)

  if post_comment
    pull_request.add_comment(result)
  else
    $stdout.puts result
  end
end