module PRDaikou

Create pull request of CI Service

Constants

VERSION

Public Instance Methods

code_changed?() click to toggle source
# File lib/pr-daikou.rb, line 43
def code_changed?
  `git diff --numstat` != ''
end
exec(options, _args, current_time = Time.now) click to toggle source
# File lib/pr-daikou.rb, line 10
def exec(options, _args, current_time = Time.now)
  if ENV['GITHUB_ACCESS_TOKEN'].nil?
    raise 'Please input ENV of GITHUB_ACCESS_TOKEN'
  end

  unless options[:only_pullrequest]
    return unless code_changed?

    PRDaikou::Host::Github.create_branch(
      options[:email],
      options[:name],
      topic_branch(options[:topic], current_time),
      options[:commit]
    )
  end

  pullrequest_number =
    PRDaikou::Host::Github.create_pullrequest(
      pullrequest_title(options[:title]),
      pullrequest_description(options[:description]),
      options[:base],
      topic_branch(options[:topic], current_time)
    )
  unless options[:labels].empty?
    PRDaikou::Host::Github.add_labels_to_pullrequest(
      pullrequest_number,
      options[:labels].split(',').map(&:strip)
    )
  end

  true
end
pullrequest_description(description) click to toggle source
# File lib/pr-daikou.rb, line 59
  def pullrequest_description(description)
    if description == ''
      'Auto generated by [PR daikou](https://rubygems.org/gems/pr-daikou)'
    else
      <<~DESCRIPTION
        #{description}
        Auto generated by [PR daikou](https://rubygems.org/gems/pr-daikou)
      DESCRIPTION
    end
  end
pullrequest_title(title) click to toggle source
# File lib/pr-daikou.rb, line 55
def pullrequest_title(title)
  "#{title} at #{`echo -n $(date)`}"
end
topic_branch(topic_name, current_time) click to toggle source
# File lib/pr-daikou.rb, line 47
def topic_branch(topic_name, current_time)
  if topic_name == 'ci/pr-daikou'
    "#{topic_name}_#{current_time.strftime('%Y%m%d%H%M%S.%L')}"
  else
    topic_name
  end
end