class Gl::Issues
Public Instance Methods
label(label)
click to toggle source
# File lib/gl/cli/issues.rb, line 24 def label(label) label_action(label) end
list(project = nil)
click to toggle source
# File lib/gl/cli/issues.rb, line 7 def list(project = nil) if options[:i] id = issue_dialogue(project) Gl.open_in_browser("#{Gl.current_project}/issues/#{id}") else table = TTY::Table.new(%w[IID Author Title], issues_list) puts table.render(:ascii, padding: [0, 1]) end end
open(id = nil)
click to toggle source
# File lib/gl/cli/issues.rb, line 19 def open(id = nil) Gl.open_in_browser("#{Gl.current_project}/issues/#{id}") end
unlabel(label)
click to toggle source
# File lib/gl/cli/issues.rb, line 29 def unlabel(label) label_action(label) end
Private Instance Methods
issue_dialogue(project = nil)
click to toggle source
# File lib/gl/cli/issues.rb, line 48 def issue_dialogue(project = nil) prompt = TTY::Prompt.new(interrupt: :exit) prompt.select('Open a issue', filter: true) do |menu| issues_list(project).each do |issue| menu.choice issue.join(' - '), issue[0] end end end
issues_list(project)
click to toggle source
# File lib/gl/cli/issues.rb, line 57 def issues_list(project) @issues_list ||= begin issues = Gitlab.issues(Gl.current_project(project), state: :opened).auto_paginate issues.map do |issue| [issue.iid, issue.author.name, issue.title] end end end
label_action(label)
click to toggle source
# File lib/gl/cli/issues.rb, line 35 def label_action(label) id = issue_dialogue action = caller_locations(1, 1)[0].label begin Gitlab.create_issue_note(Gl.current_project, id, "/#{action} ~\"#{label}\"") rescue Gitlab::Error::BadRequest true end end