class Gitlab::Triage::Action::Summarize

Public Instance Methods

act() click to toggle source
# File lib/gitlab/triage/action/summarize.rb, line 32
def act
  perform if issue.valid?
end

Private Instance Methods

destination() click to toggle source
# File lib/gitlab/triage/action/summarize.rb, line 51
def destination
  issue.destination || network.options.source_id
end
group_summary_without_destination?() click to toggle source
# File lib/gitlab/triage/action/summarize.rb, line 55
def group_summary_without_destination?
  network.options.source == :groups && !issue.destination
end
issue() click to toggle source
# File lib/gitlab/triage/action/summarize.rb, line 47
def issue
  @issue ||= policy.build_issue
end
perform() click to toggle source
# File lib/gitlab/triage/action/summarize.rb, line 38
def perform
  if group_summary_without_destination?
    puts Gitlab::Triage::UI.warn("Issue was not created: No summary destination specified when source is 'groups'.")
    return
  end

  policy.summary = network.post_api(post_issue_url, post_issue_body)
end
post_issue_body() click to toggle source
# File lib/gitlab/triage/action/summarize.rb, line 73
def post_issue_body
  {
    title: issue.title,
    description: issue.description
  }
end
post_issue_url() click to toggle source
# File lib/gitlab/triage/action/summarize.rb, line 59
def post_issue_url
  # POST /projects/:id/issues
  # https://docs.gitlab.com/ee/api/issues.html#new-issue
  post_url = UrlBuilders::UrlBuilder.new(
    network_options: network.options,
    source_id: destination,
    resource_type: 'issues'
  ).build

  puts Gitlab::Triage::UI.debug "post_issue_url: #{post_url}" if network.options.debug

  post_url
end