Class: Gimp::Mover

Inherits:
Object
  • Object
show all
Defined in:
lib/gimp.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Mover

Returns a new instance of Mover.



6
7
8
9
10
11
12
# File 'lib/gimp.rb', line 6

def initialize(options)
  @client = Octokit::Client.new(access_token: options.token)
  @options = options
  @source = options.source
  @destination = options.destination
  @known_labels = Set.new
end

Instance Method Details

#move_issue(id) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/gimp.rb', line 14

def move_issue(id)
  issue = @client.issue(@source, id)
  labels = new_labels(@client.labels_for_issue(@source, id))
  comments = @client.issue_comments(@source, id)

  labels.each { |label| ensure_label(label) }
  new_issue = @client.create_issue(@destination, issue.title, issue.body,
    assignee: new_assignee(issue),
    labels: labels.map(&:name).uniq)
  @client.add_comment(@destination, new_issue.number, "*Issue migrated from #{@source}##{issue.number}*")
  comments.each { |comment| @client.add_comment(@destination, new_issue.number, comment_text(comment)) }

  @client.close_issue(@source, id)
  new_issue.number
end